Skip to content

feat: add multi-language support roadmap — Python, Go, Rust (post-MVP) #46

Description

@charannyk06

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:

  1. Call graph tool — equivalent to ts-morph for TypeScript
  2. Patch validation — compiler/linter check for the target language
  3. Semgrep rules — Semgrep supports Python/Go/Rust natively ✓
  4. 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)

  • Python support implemented (separate PR/issue)
  • Go support implemented (separate PR/issue)
  • Language detection logic added
  • Multi-language documented in README

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions