Problem
I would like to use roborev analyze to analyze existing files in a monorepo/codebase, not only commit-by-commit review output.
Today, roborev analyze appears to require choosing one analysis type at a time, for example:
roborev analyze duplication ./...
roborev analyze complexity ./...
roborev analyze refactor ./...
roborev analyze api-design ./...
roborev analyze dead-code ./...
roborev analyze architecture ./...
roborev analyze test-fixtures ./...
For a large monorepo, running each analysis mode separately can be expensive in tokens and time because each run may need to load or rediscover overlapping repository context.
This is especially noticeable when the goal is to get a broad “what should we improve in this existing codebase?” pass rather than a narrowly scoped single-mode analysis.
Use case
I want to run a broad analysis pass over existing files in a monorepo, for example:
roborev analyze all ./...
or:
roborev analyze holistic ./...
I would also like to run a selected subset of modes together when I do not need every analysis type.
For example:
roborev analyze duplication,refactor,architecture ./...
or:
roborev analyze --types duplication,refactor,architecture ./...
or:
roborev analyze --modes duplication,refactor,architecture ./...
This would allow users to choose between:
- A single specific mode.
- A selected group of modes.
- All built-in modes.
- A holistic/cross-category mode.
Why this matters
The current workaround is to script each mode manually:
for mode in duplication refactor complexity test-fixtures api-design dead-code architecture; do
roborev analyze "$mode" ./...
done
This works functionally, but it has several downsides:
- Token duplication: each mode may independently rebuild repository understanding.
- Fragmented findings: related issues may be split across multiple analysis jobs.
- Harder prioritization: it is harder to get a single ranked list of high-impact improvements across categories.
- Monorepo overhead: large repos often need the agent to understand shared architecture, package boundaries, conventions, generated/vendor areas, and cross-package relationships.
- No middle ground: users may not want all modes, but may still want a focused combination such as
duplication + refactor + architecture.
Requested feature
Add support for combined and multi-mode analysis over existing files/directories/globs.
Possible CLI designs:
# Run all built-in analysis modes
roborev analyze all ./...
# Run a holistic cross-category analysis
roborev analyze holistic ./...
# Run selected modes using comma-separated mode names
roborev analyze duplication,refactor,architecture ./...
# Run selected modes using an explicit flag
roborev analyze --types duplication,refactor,architecture ./...
# Alternative naming
roborev analyze --modes duplication,refactor,architecture ./...
Desired behavior
The combined/multi-mode analysis should ideally:
-
Load or inspect relevant repo context once where possible.
-
Allow users to run either all modes or a selected subset of modes.
-
Produce findings grouped by category.
-
Deduplicate overlapping findings across categories.
-
Identify cross-category findings where appropriate.
-
Rank findings by impact/severity/confidence.
-
Work with existing file, directory, and glob targets.
-
Work with monorepos where the target may be a subtree but the repo root still matters.
-
Respect existing include/exclude behavior for analyze.
-
Support existing flags where applicable, such as:
--per-file
--wait
--json
--reasoning
--agent
--model
--fix, if compatible with the existing fix workflow
-
Clearly indicate which analysis categories contributed to each finding.
Example commands
# Analyze all existing files across all built-in modes
roborev analyze all ./...
# Holistic repo-level analysis
roborev analyze holistic ./...
# Focused combined pass
roborev analyze duplication,refactor,architecture ./...
# Complexity + API design only
roborev analyze complexity,api-design ./...
# Selected modes with per-file behavior
roborev analyze duplication,complexity,dead-code --per-file ./...
# JSON output with categories included
roborev analyze duplication,refactor,architecture --json ./...
Example output shape
Something like:
Architecture
- Finding A...
Duplication
- Finding B...
Refactor
- Finding C...
Cross-category / high-impact
- Finding D touches architecture + duplication + refactor...
For --json, it would be helpful if each finding had a category or categories field.
Example:
{
"findings": [
{
"title": "Repeated parsing logic across ingestion modules",
"categories": ["duplication", "refactor", "architecture"],
"severity": "medium",
"confidence": "high",
"files": [
"path/to/file_a.py",
"path/to/file_b.py"
],
"evidence": "...",
"suggested_fix": "..."
}
]
}
Potential mode semantics
There may be two slightly different needs:
1. Multi-mode analyze
This runs selected existing analyze modes together and groups/deduplicates findings.
Example:
roborev analyze duplication,refactor,architecture ./...
This should preserve the semantics of the selected modes as much as possible.
2. Holistic analyze
This is a broader repo-level analysis that is not just a mechanical union of all modes. It should look for cross-category issues and prioritize the highest-impact improvements.
Example:
roborev analyze holistic ./...
This could include all current analyze dimensions:
- duplication
- complexity
- refactoring opportunities
- test fixture/helper opportunities
- API design issues
- dead code
- architecture issues
The holistic mode could potentially produce fewer but higher-level findings than running every mode separately.
Alternatives considered
Script all modes manually
for mode in duplication refactor complexity test-fixtures api-design dead-code architecture; do
roborev analyze "$mode" ./...
done
This works, but it can be token-heavy and creates separate jobs instead of a coherent combined analysis.
Use roborev run with a custom combined prompt
A custom prompt can approximate a holistic analysis, for example by asking the agent to look for duplication, architecture, dead code, complexity, API design, and refactor opportunities in one pass.
However, a native analyze feature would be better because it could:
- Reuse Roborev’s built-in analyze prompts.
- Preserve typed analysis categories.
- Provide structured JSON output.
- Deduplicate related findings.
- Integrate better with existing analyze/fix workflows.
- Make the behavior discoverable through
roborev analyze --help.
Additional context
This is especially useful for monorepos where I want to analyze the existing codebase and not every commit.
A combined or multi-mode analyze feature would make roborev analyze more useful as a codebase assessment tool, not just a set of isolated targeted checks.
The selected-mode use case is important because I may want to run only related modes together, such as:
roborev analyze duplication,refactor,architecture ./...
without paying the token/time cost of running every built-in mode.
Problem
I would like to use
roborev analyzeto analyze existing files in a monorepo/codebase, not only commit-by-commit review output.Today,
roborev analyzeappears to require choosing one analysis type at a time, for example:For a large monorepo, running each analysis mode separately can be expensive in tokens and time because each run may need to load or rediscover overlapping repository context.
This is especially noticeable when the goal is to get a broad “what should we improve in this existing codebase?” pass rather than a narrowly scoped single-mode analysis.
Use case
I want to run a broad analysis pass over existing files in a monorepo, for example:
or:
I would also like to run a selected subset of modes together when I do not need every analysis type.
For example:
or:
or:
This would allow users to choose between:
Why this matters
The current workaround is to script each mode manually:
This works functionally, but it has several downsides:
duplication + refactor + architecture.Requested feature
Add support for combined and multi-mode analysis over existing files/directories/globs.
Possible CLI designs:
Desired behavior
The combined/multi-mode analysis should ideally:
Load or inspect relevant repo context once where possible.
Allow users to run either all modes or a selected subset of modes.
Produce findings grouped by category.
Deduplicate overlapping findings across categories.
Identify cross-category findings where appropriate.
Rank findings by impact/severity/confidence.
Work with existing file, directory, and glob targets.
Work with monorepos where the target may be a subtree but the repo root still matters.
Respect existing include/exclude behavior for analyze.
Support existing flags where applicable, such as:
--per-file--wait--json--reasoning--agent--model--fix, if compatible with the existing fix workflowClearly indicate which analysis categories contributed to each finding.
Example commands
Example output shape
Something like:
For
--json, it would be helpful if each finding had acategoryorcategoriesfield.Example:
{ "findings": [ { "title": "Repeated parsing logic across ingestion modules", "categories": ["duplication", "refactor", "architecture"], "severity": "medium", "confidence": "high", "files": [ "path/to/file_a.py", "path/to/file_b.py" ], "evidence": "...", "suggested_fix": "..." } ] }Potential mode semantics
There may be two slightly different needs:
1. Multi-mode analyze
This runs selected existing analyze modes together and groups/deduplicates findings.
Example:
This should preserve the semantics of the selected modes as much as possible.
2. Holistic analyze
This is a broader repo-level analysis that is not just a mechanical union of all modes. It should look for cross-category issues and prioritize the highest-impact improvements.
Example:
This could include all current analyze dimensions:
The holistic mode could potentially produce fewer but higher-level findings than running every mode separately.
Alternatives considered
Script all modes manually
This works, but it can be token-heavy and creates separate jobs instead of a coherent combined analysis.
Use
roborev runwith a custom combined promptA custom prompt can approximate a holistic analysis, for example by asking the agent to look for duplication, architecture, dead code, complexity, API design, and refactor opportunities in one pass.
However, a native
analyzefeature would be better because it could:roborev analyze --help.Additional context
This is especially useful for monorepos where I want to analyze the existing codebase and not every commit.
A combined or multi-mode analyze feature would make
roborev analyzemore useful as a codebase assessment tool, not just a set of isolated targeted checks.The selected-mode use case is important because I may want to run only related modes together, such as:
without paying the token/time cost of running every built-in mode.