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
20 lines
1.2 KiB
Markdown
20 lines
1.2 KiB
Markdown
# Unified Review — Common Mistakes
|
|
|
|
- **Skipping graph context** — always run `get_minimal_context` first; CRG
|
|
context is what makes the review token-efficient and blast-radius aware.
|
|
- **Rushing to fix** — this skill is READ-ONLY. Present findings, wait for
|
|
user decision. Never apply fixes, commit, or push.
|
|
- **Ignoring tier** — read `.code-review.yaml`. `fast` skips Layer 2/3;
|
|
`strict` requires per-item confirmation for every blocker/major.
|
|
- **Judging metrics without evidence** — `score_review_tool` outputs are
|
|
heuristics. Cite the evidence, and let the LLM confirm SQL/exception/vuln
|
|
findings before presenting them as facts.
|
|
- **Missing manual-review modules** — payment, order, inventory, permission,
|
|
distributed-lock, data-migration always require a manual review checklist.
|
|
- **Forgetting enum completeness reads OUTSIDE the diff** — grep sibling
|
|
values, then read each consumer; in-diff review alone is insufficient.
|
|
- **Batch-skipping blockers** — 🔴 blockers cannot be batch-skipped; each
|
|
needs an explicit user decision.
|
|
- **Not producing the report** — always call `generate_report_tool` at the
|
|
end and present the text report inline.
|