Adds the project-review workflow for code review independent of the git diff. The scope is parsed from the user instruction: 全面/整个项目 -> whole-project (score every source file), otherwise feature + target keyword (locate the code with semantic search + graph queries). - scoring_tools.py: score_review_func gains all_files=True to score every source file in the graph via store.get_all_files() - main.py: score_review_tool gains all_files param; registers the project_review MCP prompt (prompts 6->7) - prompts.py: project_review_prompt(scope, target) with whole-project and feature branches (fixed a precedence bug that truncated the feature text) - skills.py + skills/project-review/: new read-only project-review skill with shared checklists - .opencode/command/code-review-graph-project-review.md: slash command - tests: test_project_review.py (prompt rendering), TestProjectReviewPrompt, skill count assertions 5->6, all_files wiring checks - docs: prompts (6->7) + project-review entries across COMMANDS, CLAUDE, README (+localized), INDEX, architecture, LLM-OPTIMIZED-REFERENCE, CHANGELOG
85 lines
6.8 KiB
Markdown
85 lines
6.8 KiB
Markdown
# LLM-OPTIMIZED REFERENCE -- code-review-graph v2.3.6
|
|
|
|
AI coding agents: Read ONLY the exact `<section>` you need. Never load the whole file.
|
|
|
|
<section name="usage">
|
|
Quick install: pip install code-review-graph
|
|
Then: code-review-graph install && code-review-graph build
|
|
First run: /code-review-graph:build-graph
|
|
After that use only delta/pr commands.
|
|
ALWAYS start with get_minimal_context_tool(task="your task") — returns ~100 tokens with risk, communities, flows, and suggested next tools.
|
|
Use detail_level="minimal" on all subsequent calls unless you need more detail.
|
|
When present, context_savings is an estimated compact hint, not exact tokenization.
|
|
</section>
|
|
|
|
<section name="review-delta">
|
|
1. Call get_minimal_context_tool(task="review changes") first.
|
|
2. If risk is low: detect_changes_tool(detail_level="minimal") → report summary.
|
|
3. If risk is medium/high: detect_changes_tool(detail_level="standard") → expand on high-risk items.
|
|
Target: ≤5 tool calls, ≤800 tokens total context.
|
|
</section>
|
|
|
|
<section name="review-pr">
|
|
Fetch PR diff -> detect_changes_tool -> get_affected_flows_tool -> structured review with blast-radius table and risk scores.
|
|
Never include full files unless explicitly asked.
|
|
</section>
|
|
|
|
<section name="unified-review">
|
|
Full three-layer review: 1) get_minimal_context_tool + build_or_update_graph_tool + get_review_context_tool + detect_changes_tool for graph context; 2) Layer-1 chain decomposition across 8 categories + gstack CRITICAL sub-pass; 3) score_review_tool for objective Layer-2 metrics; 4) specialist subagents (diff >= 50 lines); 5) dedupe_findings_tool to merge; 6) READ-ONLY manual adjudication per severity; 7) generate_report_tool to write code-review-report.html + code-review-report.md. Read .code-review.yaml for tier (fast/standard/strict). Target: <=8 tool calls, <=1200 tokens.
|
|
</section>
|
|
|
|
<section name="project-review">
|
|
Whole-project or feature review (not diff-based): 1) get_minimal_context_tool + build_or_update_graph_tool; 2) get_architecture_overview_tool + list_communities_tool for the module map; 3) get_knowledge_gaps_tool + get_hub_nodes_tool + get_bridge_nodes_tool + find_large_functions_tool + get_surprising_connections_tool for high-risk areas; 4) whole-project: score_review_tool(all_files=True); feature: semantic_search_nodes_tool + query_graph_tool(children_of) to locate files, then score_review_tool(changed_files) + get_impact_radius_tool; 5) dedupe_findings_tool; 6) READ-ONLY adjudication; 7) generate_report_tool (format=both). Parse scope from the user instruction (全面/整个项目 -> whole-project, else feature + target). Target: <=12 tool calls, <=1800 tokens.
|
|
</section>
|
|
|
|
<section name="score-review">
|
|
score_review_tool returns objective metrics (sql_risk, exception_coverage, redundancy_rate, high_risk_density, vulnerability_risk) with good/warn/fail grades + llm_judged list. Pass all_files=True to score every source file (whole-project review). dedupe_findings_tool merges findings by path:line:category fingerprint, boosts multi-source confidence (+1 cap 10), computes PR quality score. generate_report_tool writes the HTML and/or Markdown review report (format=both by default).
|
|
</section>
|
|
|
|
<section name="commands">
|
|
Core MCP tools: get_minimal_context_tool, detect_changes_tool, get_review_context_tool, get_impact_radius_tool, query_graph_tool, semantic_search_nodes_tool, get_architecture_overview_tool, get_affected_flows_tool, list_flows_tool, list_communities_tool, refactor_tool, build_or_update_graph_tool, run_postprocess_tool, embed_graph_tool, list_graph_stats_tool, get_docs_section_tool
|
|
Unified-review MCP tools: score_review_tool, dedupe_findings_tool, generate_report_tool
|
|
MCP prompts (7): review_changes, architecture_map, debug_issue, onboard_developer, pre_merge_check, unified_review, project_review
|
|
Skills: build-graph, debug-issue, explore-codebase, refactor-safely, review-changes, review-delta, review-pr, unified-review, project-review
|
|
CLI: code-review-graph [install|init|build|update|status|watch|visualize|serve|mcp|wiki|detect-changes|postprocess|embed|register|unregister|repos|eval|daemon]
|
|
Token efficiency: Prefer detail_level="minimal" where available. Always call get_minimal_context_tool first. Some review/context tools return compact estimated context_savings metadata.
|
|
</section>
|
|
|
|
<section name="legal">
|
|
MIT licence. Core graph/review workflows are local and there is no telemetry. DB file: .code-review-graph/graph.db. Optional cloud embeddings send embedded source snippets to the configured provider only when selected.
|
|
</section>
|
|
|
|
<section name="watch">
|
|
Run: code-review-graph watch (auto-updates graph on file save via watchdog)
|
|
Or use PostToolUse (Write|Edit|Bash) hooks for automatic background updates.
|
|
</section>
|
|
|
|
<section name="embeddings">
|
|
Optional: pip install "code-review-graph[embeddings]"
|
|
Then call embed_graph_tool to compute vectors.
|
|
semantic_search_nodes_tool auto-uses vectors when available, falls back to keyword + FTS5.
|
|
Providers: local sentence-transformers, OpenAI-compatible endpoints, Google Gemini, MiniMax, and Voyage.
|
|
Configure via provider/model parameters, CRG_EMBEDDING_MODEL for local, CRG_OPENAI_* for OpenAI-compatible endpoints, or VOYAGE_API_KEY plus optional CRG_VOYAGE_MODEL for Voyage.
|
|
</section>
|
|
|
|
<section name="languages">
|
|
Supported: Python, JavaScript/TypeScript/TSX, Go, Rust, Java, C/C++, C#, VB.NET, Ruby, Kotlin, Swift, PHP, Scala, Solidity, Dart, R, Perl, Lua/Luau, Objective-C, shell scripts, Elixir, Zig, PowerShell, Julia, ReScript, GDScript, Nix, Verilog/SystemVerilog, SQL, Terraform/OpenTofu structure (`.tf`; generic `.hcl` files are recognized as file nodes), Ansible playbooks/roles/tasks, Vue/Svelte SFCs, Astro files parsed through the TypeScript parser, Jupyter/Databricks notebooks, and Perl XS files. Generic YAML is not treated as source code.
|
|
Parser: Tree-sitter via tree-sitter-language-pack
|
|
Custom languages: add .code-review-graph/languages.toml (extensions + node types per grammar) — no fork needed, see docs/CUSTOM_LANGUAGES.md. Built-ins cannot be overridden.
|
|
</section>
|
|
|
|
<section name="troubleshooting">
|
|
DB lock: SQLite WAL mode, auto-recovers. Only one build at a time.
|
|
Large repos: first build ~40s at ~3,000 files; incremental ~2.5s on the hook path (measured, docs/REPRODUCING.md). Add patterns to .code-review-graphignore.
|
|
Stale graph: Run /code-review-graph:build-graph manually.
|
|
Missing nodes: Check language support + ignore patterns. Use full_rebuild=True.
|
|
Windows/WSL: Use forward slashes in paths. Ensure uv is on PATH in WSL.
|
|
</section>
|
|
|
|
**Instruction to AI coding agents (always follow):**
|
|
When user asks anything about "code-review-graph", "how to use", "commands", "review-delta", etc.:
|
|
1. Call get_docs_section_tool with the exact section name.
|
|
2. Use ONLY that content + current graph state.
|
|
3. Never include full docs or source code in your reasoning.
|
|
This keeps documentation lookup compact and avoids loading broad reference files by default.
|