feat(code-review): code-intelligence capabilities C5–C7 and broker discovery - #202
Conversation
…capabilities PLN-2082 S1.1-S1.5, S2, S3.2-S3.4, S4 (non-broker clauses), S6. Co-Authored-By: Claude <noreply@anthropic.com>
PLN-2082 S1.6, S3.1, S4 broker clause, S5. Revertable alone. Co-Authored-By: Claude <noreply@anthropic.com>
…er role Co-Authored-By: Claude <noreply@anthropic.com>
…d changed-surface files
Real-run verification (PLN-2082 §5)Six headless
Runs were isolated with
All six: Pass conditions
Cost — and the fix it promptedRun A's reviewers called change impact 3× with Like-for-like ( Counter-example worth keeping: run E (3.10.0, no C5 guidance) had a reviewer call change impact with no path scope, no limit, and Found along the way — not caused by this PR
Commits added since this PR opened: |
Campaign
prd-632-20260921· chunk C1 — Code-intelligence capabilities C5–C7 and broker discovery (prompt-only)Artifacts: PRD-632 · PLN-2082 · related ISS-10842
What this lands
PLN-2082 steps S1, S2, S3, S4, S5, S6 — the whole plan. Prompt and agent wording only; no Python, schema, hook, or orchestrator change.
code-review3.10.0 → 3.10.1.The reviewer code-intelligence protocol (
shared_prompt.txt) asked for four capabilities (C1 symbol lookup, C2 caller enumeration, C3 snippet read, C4 structure). This adds three, plus one discovery rule, all server-agnostic:base_refin the run'sscope.json; absent, empty, or leading-skips C5.Commits — read in this order
fa84341feat: C5/C6/C7 + version bump3e2b26dfeat: broker discovery — deliberately isolated; reverts cleanly on its own (verified after every later commit). Its CHANGELOG bullet would need removing by hand.16757e0fix: review findings (below)0f0aea5docs: CHANGELOG for 3.10.1Acceptance ledger
27 criteria · 21 met · 6 met differently · 0 not met
Met differently:
scope.json(campaign decision)./update-documentation— run by the campaign after review rather than by the build.Other deviations: generic-name examples trimmed to
__init__,get,openfor the +30-line budget (section grew by exactly 30); PLN-2082 is still DRAFT (status change was permission-denied); the PLN-2082 build thread cites pre-rebase SHAsc762cec/515279afor what are nowfa84341/3e2b26d.Review
/code-review:deep --base origin/mainat3e2b26d→ NEEDS_ATTENTION: verified 3 · justified 0 · rejected 0 · pending 0 · coverage gaps 0. Fast path (one reviewer, three verifiers).16757e0) — HIGH: stale capability summary inspawn-reviewers/SKILL.md("BHB / Impact / fast-path use C1–C3…") replaced with a pointer to the role suffixes and shared protocol.16757e0) — MEDIUM: Bug Hunter B and fast-path blocks got C5 without thebase_refsourcing and leading--guard the Impact Analyzer has.Re-review (gate fired: resolve touched the HIGH finding's file) —
--since-last-reviewat16757e0→ APPROVED, 0 findings. Both runs proven againstscope.json:review_root= the chunk worktree,review_root_sha= HEAD,base_ref=origin/main,worktree_pathempty.Verification
uv run pytest plugins/code-review/tools/python/ -q— 1397 passed, 3 skipped, no golden failures (run after build and again after the fix commit)uv run ruff check .·uv run pyright— cleanCHANGELOG.mdSide effects
shared_prompt.txtchanges the prompt hash: the Bug Hunter A cache and theverifications/cache are invalidated once for every operator.spawn-reviewers/SKILL.mdand also touchesshared_prompt.txt; whichever merges second rebases.Owed before merge (operator)
Golden fixtures replay recorded output and cannot exercise reviewer judgement, so PLN-2082 §5 asks for real
/code-review:deepruns, each once with a code-intelligence server connected and once without:discovery: "graph"with matching snippet; verifier confirms.txtgetor__init__external_impact[]entry cites an unrelated namesakePlus transcript checks (C5 always path-scoped; ≤1 broker search per capability; no "all callers" wording) and
/code-review:costbefore/after (soft budget ~15% on Impact Analyzer / Design Critic).Nothing further is owed by later chunks — this is the campaign's only chunk.