3 Commits

Author SHA1 Message Date
Li Liu e3fd28c0f0 feat: omniscient audit + tightened reviewer/structurizer/analyzer prompts
Major changes:

1. Audit (verifyIssues) rewrite — now THE final judge instead of a severity-recalibrator:
   - Inputs structured issues + Task line with PR URL (audit fetches diff itself via
     `gh pr diff` + Read/Grep/Glob). Does NOT consume reviewer chat or pre-stuffed diff.
   - Output schema extended: verdict (keep/rewrite/drop/new), body, evidence, reason.
   - Can DELETE false positives (not just downgrade), REWRITE weak descriptions, ADD
     missed issues — especially cross-file pattern repetition.
   - Optional .magpie-house-rules.md picked up from cwd as authoritative repo conventions.
   - New config block `audit:` with claude-opus-4-7 + max effort by default.

2. Reviewer prompts (Round 1 + Round 2):
   - Add severity vocabulary at reviewer stage (was only at structurizer before).
   - Add reverse rubric: do NOT report build script polish, missing comments, forward-
     compat hypotheticals, style preferences, theoretical-but-impossible cases.
   - Require file:line + code quote + failure scenario for every issue.
   - Drop "Review EVERY file / don't stop early" — brevity over completeness.
   - Round 2: drop "find what others MISSED" anti-pattern; agreeing is fine.

3. Structurizer:
   - line field now REQUIRED (drop issues that can't be anchored to a hunk line).
   - Description must capture WHY + FAILURE scenario + FIX (so audit has basis to verify).
   - Drop "STRICT — choose LOWER" severity bias.

4. Analyzer: add 6th "建议的 review 重点" section; parseFocusAreas now matches
   English + Chinese headings, with-/no-space, bold variant; handles `-` `*` `•`
   `·` ①-⑳ `1.`/`1、`/`1)` bullets.

5. Convergence judge: fix parse bug (verdict swallowed by trailing punctuation);
   explicit one-word verdict format constraint.

Schema additions:
- MergedIssue: verdict, body, evidence, auditReason
- MagpieConfig: audit?: ReviewerConfig

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-26 22:34:33 +00:00
Li Liu d3a3be9a19 feat: add dynamic focus broadcast from analyzer to reviewers
Add parseFocusAreas to extract suggested review focus from analyzer
output and inject them as hints into each reviewer's first-round
prompt. Focus areas are suggestions, not constraints — reviewers are
explicitly told to also flag anything else they notice.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 19:40:24 +08:00
Li Liu eccc867e6a feat: add issue parser with deduplication
Add parseReviewerOutput to extract structured issues from reviewer
JSON blocks and deduplicateIssues to merge similar issues across
multiple reviewers using Jaccard similarity on title words.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 19:27:17 +08:00