feat: add unified-review workflow (scoring tools + skill)

Adds the unified-review integration that fuses CRG graph context with the
ai-code-review scoring methodology and gstack-review fix-first workflow:

- scoring.py: objective Layer-2 metrics (sql_risk, exception_coverage,
  redundancy_rate, high_risk_density, vulnerability_risk) with
  good/warn/fail grades, plus dedupe_findings (fingerprint merge,
  multi-source confidence boost, PR quality score) and report data builder
- tools/scoring_tools.py + main.py: three new MCP tools
  (score_review_tool, dedupe_findings_tool, generate_report_tool)
- assets/report-template.html: self-contained HTML report template
- skills.py + skills/unified-review/: new read-only unified-review skill
  with language/manual-review/specialist checklists
- docs and CHANGELOG updated; tests added (test_scoring, test_report,
  test_unified_review) and test_skills updated for 5 skills
This commit is contained in:
dev
2026-08-05 13:31:55 +08:00
parent 82b7c6dc9e
commit 84ae9b817e
32 changed files with 2229 additions and 19 deletions
+15 -1
View File
@@ -1,6 +1,6 @@
"""MCP tool definitions for the Code Review Graph server.
Exposes 27 tools:
Exposes 31 tools:
1. build_or_update_graph - full or incremental build
2. get_impact_radius - blast radius from changed files
3. query_graph - predefined graph queries
@@ -29,6 +29,9 @@ Exposes 27 tools:
26. get_surprising_connections - find unexpected architectural coupling
27. get_suggested_questions - auto-generated review questions from graph analysis
28. traverse_graph - BFS/DFS traversal from best-matching node
29. score_review - objective Layer-2 review metrics for changed files
30. dedupe_findings - fingerprint dedup + confidence merge for findings
31. generate_report - render the standalone HTML code review report
"""
from __future__ import annotations
@@ -103,6 +106,13 @@ from .review import (
get_review_context,
)
# -- scoring (unified-review) ------------------------------------------------
from .scoring_tools import (
dedupe_findings_func,
generate_report_func,
score_review_func,
)
__all__ = [
# _common
"_BUILTIN_CALL_NAMES",
@@ -143,6 +153,10 @@ __all__ = [
"detect_changes_func",
"get_affected_flows_func",
"get_review_context",
# scoring (unified-review)
"score_review_func",
"dedupe_findings_func",
"generate_report_func",
# analysis_tools
"get_bridge_nodes_func",
"get_hub_nodes_func",