Priority: P3 — Low (Roadmap)
Current State
ChainReview currently supports TypeScript/JavaScript repositories only. The static analysis toolchain (ts-morph for call graphs, TypeScript compiler for patch validation) is TypeScript-specific.
Roadmap for Multi-Language Support
This is a tracking issue for future multi-language support. Each language requires:
- Call graph tool — equivalent to
ts-morph for TypeScript
- Patch validation — compiler/linter check for the target language
- Semgrep rules — Semgrep supports Python/Go/Rust natively ✓
- Language-specific agent prompts — may need adjustment per language
Proposed Languages (by demand)
| Language |
Call Graph Tool |
Patch Validator |
Effort |
| Python |
pycallgraph / ast module |
mypy / pyflakes |
Medium |
| Go |
go/callgraph |
go build |
Medium |
| Rust |
cargo-call-stack |
cargo check |
High |
| Java |
javac AST |
javac |
High |
Architecture Changes Needed
- Abstract
GraphTool interface with language-specific implementations
- Abstract
PatchValidator interface
- Language detection from repo file extensions
- Per-language agent prompts
Near-term (Python)
Python is the most-requested language. A minimal Python implementation could:
- Use Semgrep for pattern scanning (already supported ✓)
- Use
ast module via subprocess for call graph
- Use
mypy for patch validation
Acceptance Criteria (Tracking Issue)
Priority: P3 — Low (Roadmap)
Current State
ChainReview currently supports TypeScript/JavaScript repositories only. The static analysis toolchain (
ts-morphfor call graphs, TypeScript compiler for patch validation) is TypeScript-specific.Roadmap for Multi-Language Support
This is a tracking issue for future multi-language support. Each language requires:
ts-morphfor TypeScriptProposed Languages (by demand)
pycallgraph/astmodulemypy/pyflakesgo/callgraphgo buildcargo-call-stackcargo checkjavacASTjavacArchitecture Changes Needed
GraphToolinterface with language-specific implementationsPatchValidatorinterfaceNear-term (Python)
Python is the most-requested language. A minimal Python implementation could:
astmodule via subprocess for call graphmypyfor patch validationAcceptance Criteria (Tracking Issue)