Skip to content

feat!: unify all review commands into a single auto-dispatching /code-review#7

Merged
terry90918 merged 41 commits into
mainfrom
develop
May 29, 2026
Merged

feat!: unify all review commands into a single auto-dispatching /code-review#7
terry90918 merged 41 commits into
mainfrom
develop

Conversation

@terry90918

Copy link
Copy Markdown
Contributor

Summary

將 9 個 slash command 收斂為單一 /code-review,執行時依變更檔案自動偵測語言/框架並 dispatch 對應的 specialist reviewer agent — 不再需要為每個語言記不同 command。

Changes

  • 移除 /review-pr + 7 個語言 command(cpp/fastapi/flutter/go/kotlin/python/rust),能力併入 /code-review
  • 新增 Language/Framework Auto-Dispatch:依副檔名(.py→python-reviewer、.go→go-reviewer…),框架(Django/FastAPI/Flutter)以內容特徵輔助;偵測到才加,零匹配不浪費
  • 本地與 PR 模式跑相同完整 pipeline:code-graph 前置 → 8 通用 agent + dispatch 的語言 agent 並行 → verification Phase 3.5 → 彙整。本地輸出終端機,PR 發佈到 GitHub/Bitbucket
  • 保留 --focus--profile
  • 同步 CLAUDE.md / README.md / docs/index.html(badge/stats 9→1、架構圖、sidebar、Contributing)
  • 27 agents、3 skills 不變

Breaking change

/review-pr 與所有 /<lang>-review command 移除 → 一律改用 /code-review。觸發 major bump(→ 2.0.0)。

🤖 Generated with Claude Code

terry90918 and others added 30 commits May 27, 2026 15:32
Rewrites CLAUDE.md to serve as a genuine Claude Code session guide:
- Add no-build-steps declaration (pure Markdown content repo)
- Add branch workflow, commit type guide with Release Please impact
- Add version drift warning (plugin.json v1.2.0 vs marketplace.json v1.0.0)
- Add agent/skill frontmatter schema reference
- Add environment variables for Bitbucket PR review
- Document --focus options for /review-pr
- Remove discoverable-by-ls content (17 lang reviewer names, 7 predictable command mappings)
- Remove static GitHub repo metadata

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Remove "(9 個)" from Commands header (table only shows 2 key entries)
- Replace pinned version numbers with a grep command to verify sync;
  specific versions rot once the drift is fixed

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…and agent/command distinction

- Add directory structure overview with .claude-plugin/ explanation
- Add PR creation gh api commands for labels/assignee
- Enumerate all 17 language agents by name
- Expand Commands table to list all 9 language commands
- Note that 10 language agents have no corresponding /xxx-review command
- Add step 5 to "新增 Agent" checklist (update CLAUDE.md counts)
- Add step 4 to "新增 Command" checklist (update CLAUDE.md table)
- Fix version sync section: Release Please auto-syncs via extra-files;
  develop branch needs git merge origin/main after each release PR
- Add current version (v1.2.0) to project overview
- Add missing "新增 Skill" workflow (5 steps with subdirectory structure)
- Fix Plugin Manifest update guidance: version is auto-synced, only
  keywords and description need manual updates
- Fix directory structure comment to reflect auto-sync mechanism
Replace vague "push to main = 自動發布" with accurate flow:
feat/fix commits → Release Please opens release PR on main →
merging that PR triggers new version publish. Prevents confusion
where any push to main is expected to immediately publish.
…ontext

Inspired by CodeRabbit's architecture research:

1. /review-pr — Verification layer (Step 4):
   Replace simple dedupe with 5-step verification process:
   contradiction filter, confidence filter (≥80%), FP guard,
   and multi-agent agreement requirement. Batch delivery of
   findings only after all agents complete verification.

2. /review-pr & /code-review — Linked issues context:
   Fetch GitHub issues referenced in PR body (Fixes/Closes/
   Resolves/Related to #N) and include issue title+description
   as review context. Reduces false positives by giving agents
   PR intent beyond just the diff.

3. /code-review — Incremental review mode (--from=<commit>):
   New --from=<commit> flag limits review scope to files changed
   since a given commit/branch (e.g. --from=main, --from=HEAD~3).
   Avoids re-reviewing already-reviewed code on large branches.
Closes the biggest recall gap vs CodeRabbit by adding explicit
caller tracing to all three review entry points:

- agents/code-reviewer.md: Expand Step 3 with Caller Tracing block —
  grep for all call sites of modified exported symbols, read 3-5
  most relevant callers before applying review checklist
- commands/review-pr.md: Step 2 now traces callers for each modified
  exported symbol found in the diff before running parallel agents
- commands/code-review.md: GitHub PR Phase 2 CONTEXT gains Step 5
  (Caller Tracing) after changed-files enumeration

All three skip private/test-only symbols to prevent context explosion.
Phase 3 improvement: move static analysis from post-review validation
to pre-review context building, so agents review code with linter
signals already available.

- commands/code-review.md:
  - Phase 2 gains Step 6 (Static Analysis): run tsc/lint/clippy/vet/ruff
    before review starts, capture output (head -60 per tool)
  - Phase 3 opens with cross-reference instruction: any file:line
    already flagged by linter treated as elevated-confidence finding
  - Phase 4 VALIDATE simplified to test + build only (lint/typecheck
    already ran in Phase 2, results recorded there)
- commands/review-pr.md:
  - Step 2 appends linter capture after caller tracing; output passed
    as context when launching each parallel agent in Step 3
Matches CodeRabbit's approach of always producing a file-by-file
overview before listing findings, giving reviewers an at-a-glance
map of PR scope.

- commands/review-pr.md: new Step 5 generates a Walkthrough table
  (file | change type | one-sentence summary) before posting findings;
  old steps 5-6 renumbered to 6-7
- commands/code-review.md: Phase 6 REPORT template gains a Walkthrough
  section between the decision header and the Summary paragraph
…tracing grep

`--include="*.{ts,tsx,...}"` uses shell brace expansion which grep's fnmatch
does not support — the pattern is matched literally and returns no results,
silently breaking caller tracing. Replaced with individual --include flags in
commands/code-review.md and commands/review-pr.md to match agents/code-reviewer.md.
…mental diff semantics

- Replace `grep -oP` (PCRE, unavailable on macOS BSD grep) with `perl -ne`
  for linked-issue extraction in both code-review.md and review-pr.md;
  also switch from `xargs` to `while read` to avoid executing `gh issue view`
  with no arguments when no issues are linked
- Fix incremental review diff: `git diff --name-only <commit>..HEAD` excludes
  uncommitted working-directory changes; drop `..HEAD` to compare <commit>
  directly against the working tree, consistent with default Local Review Mode
…review profiles, CI checks

Phase 1 quality improvements derived from CodeRabbit architecture research:

- Add verification-reviewer agent: second-pass gate that validates HIGH/CRITICAL
  findings before output, mirroring CodeRabbit's Verification Agent pattern
- Fix review-pr.md Step 4b: CRITICAL findings from security-reviewer now always
  bypass contradiction filter regardless of agent agreement count
- Add Step 3.5 verification pass to /review-pr pipeline; launches verification-
  reviewer after parallel agents complete
- Add Review Effort score (1–5) to /review-pr walkthrough with rubric
- Add NITPICK severity tier to code-reviewer agent (below LOW, style-only)
- Add --profile=chill|assertive flag to /code-review (chill: CRITICAL+HIGH only;
  assertive: all 5 levels including NITPICK, default)
- Add CI check reading (gh pr checks) to GitHub PR Mode Phase 2 as context;
  failing checks elevate related code paths to priority review
- Upgrade HIGH/CRITICAL output format: require diff block + AI Implementation
  Prompt for every actionable finding
- Update agent count to 25 across CLAUDE.md, README.md, docs/index.html
…ler grep -n, pipefail guards

- Fix linked issues perl regex to capture all #N per matching line (handles
  "Fixes #1, #2"); use while(/.../gi) loop instead of single-capture print
- Add read -r to while read loops to handle backslashes correctly
- Change caller tracing grep -l (filenames only) to -n (file:line:match) in
  review-pr.md, code-review.md, and agents/code-reviewer.md — aligns with
  the "read 3–5 most relevant callers" instruction
- Add || true to all static analysis commands (tsc, lint, clippy, vet, ruff)
  to prevent pipefail environments from aborting context collection
- Clarify incremental mode: use git diff <commit> (not <commit>..HEAD) to
  include uncommitted working tree changes; remove ambiguous Phase 2 reference
- CLAUDE.md: rename "Agent Frontmatter 必填欄位" to "建議欄位"; clarify
  name/description/color are required, tools/model are recommended
- Bump version v1.1.0 → v1.2.0 in nav and footer
- Add verification-reviewer agent card (orange, 通用主審 section)
- Add NITPICK severity row to severity table
- Add --profile=chill|assertive to /code-review syntax and profile section
- Add Verification Pass (Step 3.5) and Walkthrough/Effort Score sections to /review-pr
README.md:
- Add verification-reviewer to 通用主審 agents table
- Update architecture diagram to include verification-reviewer
- Update feature table: parallel review now mentions verification pass

CLAUDE.md:
- Add design principles 6 (verification gate) and 7 (NITPICK tier)
…tion guide

Add 常用操作速查 index table at top for faster session orientation, and
新增 本地驗證 section with commit checklist to prevent common omissions
(missing README/index.html/CLAUDE.md count updates after adding agents).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…ion sync trigger

- Move /reload-plugins out of bash block (it's a Claude Code slash command,
  not a shell command) to prevent new contributors from running it in terminal
- Add count verification one-liner to detect stale agent/command/skill counts
- Add git log check to surface when develop branch needs version sync
Phase 1 — Signal-to-Noise Filter + Evidence Gate:
- commands/code-review.md: severity-based delivery (CRITICAL/HIGH as inline
  comments with suggestion blocks, MEDIUM as summary table, LOW/NITPICK as
  collapsible <details>); Phase 6.5 auto-updates PR description with review
  summary; Phase 1.5 CLASSIFY routes DOCS/CONFIG to Fast Path, LOGIC/SECURITY
  to Slow Path; Phase 8 saves last-reviewed commit for incremental tracking;
  Phase 2 Step 1 loads .claude/review-paths.yaml for path-based rules;
  Bitbucket Phase 7 updated to match three-step severity delivery
- commands/review-pr.md: Step 5 posts walkthrough as dedicated first comment
  (before findings) with optional Mermaid sequence diagram; Step 6 rewritten
  to severity-based delivery with inline suggestion blocks; pr-walkthrough-writer
  added to parallel agent list
- agents/verification-reviewer.md: Gates 1 and 3 now require mandatory Bash
  commands (grep/Read) before any verdict; CONFIRMED output includes Evidence
  and Caller check fields; Confidence Standard updated to require actual
  command output

Phase 2 — New agent:
- agents/pr-walkthrough-writer.md: new agent that generates file-change table
  and Mermaid sequence diagrams; used in /review-pr parallel step

Update counts: 25 → 26 agents, 6 → 7 parallel agents in /review-pr
New agent performs sequential pre-computation before parallel reviewer
agents launch:
- L2: grep-based import dependency tracing (1 BFS hop) — identifies
  files NOT in the diff but that depend on changed code
- L3: git log co-change risk analysis (last 50 commits) — surfaces
  files historically paired with changed files but absent from this PR
- SHA-based cache in .claude/code-graph/ — reuses map across sessions
  when HEAD commit matches; cache miss triggers fresh computation

Integration:
- /review-pr Step 2.5: runs code-graph-analyzer sequentially, injects
  IMPACT_MAP into each parallel agent's prompt as context
- /code-review Phase 2.5: same pattern for local diff and PR modes

Also updates all documentation (README, CLAUDE.md, docs/index.html)
to reflect 27 agents total.
…eatures

Resolved add/add and content conflicts between v1.3.0 release commit
and develop's new work (code-graph-analyzer, CodeRabbit-parity pipeline).
Kept develop HEAD for all conflicted files — develop contains all v1.3.0
content plus the new additions.
Address claude-review HIGH finding and Copilot suppressed comments:
- docs/index.html meta description: 26-agent → 27-agent
- docs/index.html stat-num Parallel PR Agents: 6 → 7
- docs/index.html lead paragraph: 25 個 → 27 個
- docs/index.html feature list: 25 Reviewer → 27 Agent, 六並行 → 七並行
- docs/index.html parallel section description: 6 → 7 + add code graph context
- README.md architecture tree: 25 個 reviewer agents → 27 個 agent (×2)
- commands/code-review.md: unify Phase 1.5 \$NUMBER/\${NUMBER} → <NUMBER> placeholder
- commands/code-review.md: clarify .claude/review-paths.yaml is optional user-created file
- agents/verification-reviewer.md: add || true to Gate 1 and Gate 3 grep to survive set -e/pipefail
- agents/code-graph-analyzer.md: exclude test files (*.test.*, *.spec.*, __tests__) from L2b dependents scan
- agents/code-graph-analyzer.md: add .git and test file exclusions to require() style scan
- CLAUDE.md: clarify docs: goes to CHANGELOG but doesn't trigger version bump (not completely ignored)
- commands/code-review.md Phase 6.5: replace --body "\$STRIPPED..." with
  printf pipe to --body-file - to prevent shell injection from PR body
  containing quotes or \$(command) subshells
- agents/code-graph-analyzer.md L3: pass \$FILE via env var (FILE="\$FILE"
  python3) instead of interpolating into -c string, preventing injection
  from malicious filenames with shell metacharacters
- agents/code-graph-analyzer.md: move node_modules/.git/test exclusions
  from output filtering (| grep -v) to search stage (--exclude-dir/--exclude)
  for faster scan within the 60s time budget
- agents/verification-reviewer.md: change Gate 3 grep from BRE \| to
  ERE (-ERn with |) for portability; add --exclude-dir for node_modules/.git
- agents/pr-walkthrough-writer.md: wrap Step 5 example in 4-backtick
  fence so inner ```mermaid block doesn't break the outer code fence
- commands/review-pr.md: add security-reviewer back to Step 3 parallel
  agents list (was missing, causing contradiction with Step 3.5/4b
  exception rules); update 七→八 agent count in CLAUDE.md/README/docs
- commands/code-review.md: add text/markdown language tags to bare code
  fences in Step 7a (MD040); add profile gate notes to Step 7b/7c so
  --profile=chill correctly suppresses MEDIUM/LOW/NITPICK sections
- commands/review-pr.md: add text/markdown language tags to bare fences
  at Step 2.5 impact map block and Step 6a comment/suggestion blocks
- docs/index.html: fix Parallel PR Agents stat 7→8; add security-reviewer
  and pr-walkthrough-writer rows to parallel agents table (was 6, now 8)
- README.md: fix stale "6 個專項 agent" → "8 個專項 agent" in section 3
…iewer

Step 3.5 and Step 4b exception rules were narrowed to security-reviewer
only, violating CLAUDE.md Design Principle #6 ('CRITICAL 不可被移除,最多降為
HIGH' — no agent-source qualifier). Expand both rules back to 'any agent'
and drop the redundant note on the security-reviewer list entry.
…add principles #6/#7

- Parallel agents table: remove misleading 'CRITICAL 不可被移除' from
  security-reviewer row (rule now applies to all agents, not just this one)
- Design Principles: add #6 Verification gate (CRITICAL 最多降為 HIGH) and
  #7 NITPICK 分層 (--profile=chill skips MEDIUM/LOW/NITPICK) to align with
  CLAUDE.md which lists 7 principles
…position in CLAUDE.md

- commands/review-pr.md: fix argument-hint from stale security|performance|types|tests
  to comments|tests|errors|types|code|simplify (matches usage text and agent mapping)
- CLAUDE.md: add note to /review-pr 協作 section clarifying full 8-agent parallel list
  = code-reviewer + security-reviewer (通用主審) + 6 協作 agents
Replace stale security/performance focus values with the correct
options: comments|tests|errors|types|code|simplify.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
terry90918 and others added 11 commits May 27, 2026 19:13
- Fix stale --focus values (security/performance → comments/errors/code/simplify)
- Add principle #6: Verification gate (CRITICAL cannot be dropped)
- Add principle #7: NITPICK 分層 (--profile=chill vs assertive)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
… incremental clarity, L2 language coverage

- verification-reviewer: INVALID/FALSE POSITIVE verdicts now demote CRITICAL to HIGH instead of removing entirely; protection extended from security-reviewer-only to all agents
- verification-reviewer Gate 1: use -F (fixed-string) grep to prevent regex metacharacters in finding descriptions causing false INVALID demotions
- verification-reviewer Gate 3: use -r instead of -R to prevent symlink infinite loops in pnpm monorepos
- code-review Phase 5: add explicit CRITICAL_COUNT/HIGH_COUNT/MEDIUM_COUNT/LOW_COUNT counting step so Phase 6.5 SUMMARY_BLOCK has real values instead of empty strings
- code-review Phase 1.5: reframe incremental detection as skip-if-unchanged gate (not diff-scoping), add explanatory note; store LOGIC_FILES/SECURITY_FILES in arrays instead of echo-only
- code-review Phase 2.5: pass ${LOGIC_FILES[@]} and ${SECURITY_FILES[@]} arrays explicitly to code-graph-analyzer
- code-graph-analyzer Step 2b: add language-specific import patterns for Python, Java/Kotlin, Rust, Swift, C#, Ruby, PHP; add --include=*.rb and --include=*.php to fix silent gap for files classified as LOGIC
- docs/index.html: add 前置分析 sidebar nav link pointing to #agents-graph section
… + code-graph-analyzer multi-language L2 coverage
- Add missing file extensions (.cpp/.dart/.vue etc.) to LOGIC case in
  Phase 1.5 classifier; previously C++ and Flutter PRs fell through to
  OTHER and triggered the Fast Path, causing logic review to be silently
  skipped (#4372102283, claude[bot] HIGH)
- Add bash language tag to /review-pr example code block in README.md
  (#4372111736, CodeRabbit)
Fixes 15 bugs found by /code-review #4 across the multi-agent PR review pipeline:

**verification-reviewer**: UNCERTAIN verdict now includes CRITICAL carve-out,
preventing silent removal of CRITICAL findings (were silently dropped before).

**review-pr**: Step 4b exception now explicitly covers CRITICAL→HIGH demotions
by verification-reviewer; Step 4f defines LOW_COUNT/LOW_NITPICK_LIST variables;
Step 3 adds --focus filtering table; Step 3 captures pr-walkthrough-writer output
as WALKTHROUGH_OUTPUT; Step 5a references WALKTHROUGH_OUTPUT; Step 6b adds BLOCK
tier for CRITICAL; Step 6c Bitbucket uses LOW_NITPICK_LIST; Steps 7–9 added
(idempotent PR description update + findings report + gated SHA tracking);
file classification added with SECURITY before TEST classifier order.

**code-review**: Fast Path contradiction resolved (skip Phases 2–5, secret scan
only); Phase 8 SHA write gated on Phase 7 success; SECURITY classifier moved
before TEST; bash arrays replaced with portable space-separated strings;
`git rev-parse --short` fixed to `--short=8`; orphan cr-summary:start tag
cleanup added to Phase 6.5 python3 snippet.

**code-graph-analyzer**: Step 5 heredoc replaced with Write tool instruction
so actual generated content is cached instead of literal placeholder text.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…fixes

- code-review.md: Fast Path now jumps to Phase 7 (gh pr review --approve) instead
  of Phase 6 (local artifact only); LOW_NITPICK_LIST added to Phase 5 count block;
  BLOCK header prepend code added to Phase 7b for CRITICAL findings; CI check item 7
  moved inside Phase 2 (before Phase 2.5); CRLF-safe tr -d '\r' in CHANGED_FILES;
  Phase 8 SHA-save gated with executable if [ REVIEW_EXIT -eq 0 ]

- review-pr.md: skip-if-unchanged check physically moved before Step 1 (was a
  deferred instruction at Step 9); headRefOid added to Step 1 gh pr view --json
  for cache key availability; BLOCK header prepend code added to Step 6b; Step 3.5
  now explicitly carries forward UNCERTAIN HIGH→MEDIUM findings (not CONFIRMED-only);
  unknown --focus value validation added with error message; CRLF-safe tr -d '\r';
  Step 9 SHA-save gated with executable conditional

- code-graph-analyzer.md: cache-hit stop gate made emphatic (bold warning, explicit
  "Do NOT proceed to Steps 2–5"); L2 basename grep patterns anchored — JS/TS now
  requires BASENAME preceded by / or quote; Python/Java/Kotlin/Rust use \b word
  boundaries to prevent substring false positives

- verification-reviewer.md: INVALID row split — "FIXED IN THIS PR" is a new verdict
  that removes findings at any severity (PR itself is the fix); Gate 1 teaches agent
  to distinguish never-existed vs fixed-in-diff; UNCERTAIN HIGH demotion criterion
  made concrete (objectively risky pattern required, not just unclear trigger)
Update docs/index.html, CLAUDE.md, and README.md to accurately reflect
the current behavior of verification-reviewer and /review-pr Step 3.5:

- Step 3.5 now carries forward UNCERTAIN HIGH→MEDIUM findings in addition
  to CONFIRMED findings (previously stated "only confirmed survive")
- New "FIXED IN THIS PR" verdict removes findings at any severity when
  the issue is resolved by another hunk in the same diff (no CRITICAL
  protection applies here — the PR itself is the fix)
- verification-reviewer description updated to list all three outcomes:
  CONFIRMED kept, UNCERTAIN→MEDIUM kept, FIXED IN THIS PR removed
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…-review

Collapse the 9 slash commands into one /code-review entry point that
auto-detects the language/framework of changed files and dispatches the
matching specialist reviewer agents — no per-language command needed.

- Remove /review-pr and the 7 language commands (cpp/fastapi/flutter/go/
  kotlin/python/rust); fold their multi-agent parallel + verification
  capability into /code-review.
- Add Language/Framework Auto-Dispatch: by file extension (.py→python-
  reviewer, .go→go-reviewer, …), refined by content for frameworks
  (Django/FastAPI/Flutter). Detected-only, zero match = zero waste.
- Both local and PR modes now run the same full pipeline (code-graph →
  8 general agents + dispatched specialists → verification Phase 3.5 →
  aggregate). Local reports to terminal; PR publishes to GitHub/Bitbucket.
- Keep --focus and --profile flags.
- Sync CLAUDE.md, README.md, docs/index.html (badges/stats 9→1,
  architecture, sidebar, contributing guide).

BREAKING CHANGE: /review-pr and all /<lang>-review commands are removed.
Use /code-review for everything — language specialists are now dispatched
automatically based on the changed files.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings May 29, 2026 06:26
@terry90918 terry90918 added the enhancement New feature or request label May 29, 2026
@coderabbitai

coderabbitai Bot commented May 29, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@terry90918, we couldn't start this review because you've reached your PR review rate limit.

More reviews will be available in 34 minutes and 30 seconds. Learn how PR review limits work.

Your organization has run out of usage credits. Purchase more in the billing tab.

⌛ How to resolve this issue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available.

Please see our Fair Usage Limits Policy for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 0c8c13ed-5de5-4f8b-b016-1c8a2d6d7940

📥 Commits

Reviewing files that changed from the base of the PR and between dbee28f and c56831d.

📒 Files selected for processing (12)
  • CLAUDE.md
  • README.md
  • commands/code-review.md
  • commands/cpp-review.md
  • commands/fastapi-review.md
  • commands/flutter-review.md
  • commands/go-review.md
  • commands/kotlin-review.md
  • commands/python-review.md
  • commands/review-pr.md
  • commands/rust-review.md
  • docs/index.html
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch develop

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@terry90918 terry90918 self-assigned this May 29, 2026
@terry90918
terry90918 merged commit cedbba2 into main May 29, 2026
3 of 4 checks passed

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

@claude claude Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

變更摘要

  • 將 9 個 slash command 收斂為單一 /code-review,移除 /review-pr 與 7 個語言專項 command
  • commands/code-review.md 實作 Language/Framework Auto-Dispatch:依副檔名 + 內容特徵自動加入對應 specialist agent
  • 本地模式升級為與 PR 模式相同的完整並行 pipeline;同步更新 CLAUDE.md、README.md、docs/index.html

優點

  • Phase 結構一致性佳:Local / GitHub / Bitbucket 三種模式均參照相同的 Classify & Dispatch → Context → Code Graph → Parallel Agents → Verification 流程,減少使用者需記的模式差異
  • dispatch shell script 精確add_agent() 以 substring match 去重,while IFS= read -r 正確處理含空格的路徑;migration 目錄的第二段 case 置於迴圈內也能正確疊加 database-reviewer
  • headRefOid 補入 Phase 1 fetch:Phase 7b inline comment 需要 HEAD SHA,Phase 1 已取得,Phase 7 再次 fetch 是冗餘但不是 bug;Phase 1 的補入讓快取可行

問題與建議

無 — 此 PR 通過 Phase 3 全部過濾。

(Chill profile 下掃描 HIGH / CRITICAL;詳細檢視 dispatch script、phase 編號更新、cross-reference 一致性、Bitbucket Phase 2–5 合併、Fast Path 跳過清單新增 2.5 / 3.5,均無發現可重現的功能缺陷。)

結論

可合併

terry90918 added a commit that referenced this pull request May 29, 2026
)

* docs: overhaul CLAUDE.md with actionable session guidance

Rewrites CLAUDE.md to serve as a genuine Claude Code session guide:
- Add no-build-steps declaration (pure Markdown content repo)
- Add branch workflow, commit type guide with Release Please impact
- Add version drift warning (plugin.json v1.2.0 vs marketplace.json v1.0.0)
- Add agent/skill frontmatter schema reference
- Add environment variables for Bitbucket PR review
- Document --focus options for /review-pr
- Remove discoverable-by-ls content (17 lang reviewer names, 7 predictable command mappings)
- Remove static GitHub repo metadata

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* docs: fix Commands header count and remove stale version snapshot

- Remove "(9 個)" from Commands header (table only shows 2 key entries)
- Replace pinned version numbers with a grep command to verify sync;
  specific versions rot once the drift is fixed

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* docs: improve CLAUDE.md with directory structure, full command list, and agent/command distinction

- Add directory structure overview with .claude-plugin/ explanation
- Add PR creation gh api commands for labels/assignee
- Enumerate all 17 language agents by name
- Expand Commands table to list all 9 language commands
- Note that 10 language agents have no corresponding /xxx-review command
- Add step 5 to "新增 Agent" checklist (update CLAUDE.md counts)
- Add step 4 to "新增 Command" checklist (update CLAUDE.md table)

* docs: improve CLAUDE.md accuracy and completeness

- Fix version sync section: Release Please auto-syncs via extra-files;
  develop branch needs git merge origin/main after each release PR
- Add current version (v1.2.0) to project overview
- Add missing "新增 Skill" workflow (5 steps with subdirectory structure)
- Fix Plugin Manifest update guidance: version is auto-synced, only
  keywords and description need manual updates
- Fix directory structure comment to reflect auto-sync mechanism

* docs: clarify plugin release trigger mechanism

Replace vague "push to main = 自動發布" with accurate flow:
feat/fix commits → Release Please opens release PR on main →
merging that PR triggers new version publish. Prevents confusion
where any push to main is expected to immediately publish.

* feat: add verification layer, incremental review, and linked issues context

Inspired by CodeRabbit's architecture research:

1. /review-pr — Verification layer (Step 4):
   Replace simple dedupe with 5-step verification process:
   contradiction filter, confidence filter (≥80%), FP guard,
   and multi-agent agreement requirement. Batch delivery of
   findings only after all agents complete verification.

2. /review-pr & /code-review — Linked issues context:
   Fetch GitHub issues referenced in PR body (Fixes/Closes/
   Resolves/Related to #N) and include issue title+description
   as review context. Reduces false positives by giving agents
   PR intent beyond just the diff.

3. /code-review — Incremental review mode (--from=<commit>):
   New --from=<commit> flag limits review scope to files changed
   since a given commit/branch (e.g. --from=main, --from=HEAD~3).
   Avoids re-reviewing already-reviewed code on large branches.

* feat: add Code Graph simulation via systematic caller tracing

Closes the biggest recall gap vs CodeRabbit by adding explicit
caller tracing to all three review entry points:

- agents/code-reviewer.md: Expand Step 3 with Caller Tracing block —
  grep for all call sites of modified exported symbols, read 3-5
  most relevant callers before applying review checklist
- commands/review-pr.md: Step 2 now traces callers for each modified
  exported symbol found in the diff before running parallel agents
- commands/code-review.md: GitHub PR Phase 2 CONTEXT gains Step 5
  (Caller Tracing) after changed-files enumeration

All three skip private/test-only symbols to prevent context explosion.

* feat: inject linter output into review context before analysis begins

Phase 3 improvement: move static analysis from post-review validation
to pre-review context building, so agents review code with linter
signals already available.

- commands/code-review.md:
  - Phase 2 gains Step 6 (Static Analysis): run tsc/lint/clippy/vet/ruff
    before review starts, capture output (head -60 per tool)
  - Phase 3 opens with cross-reference instruction: any file:line
    already flagged by linter treated as elevated-confidence finding
  - Phase 4 VALIDATE simplified to test + build only (lint/typecheck
    already ran in Phase 2, results recorded there)
- commands/review-pr.md:
  - Step 2 appends linter capture after caller tracing; output passed
    as context when launching each parallel agent in Step 3

* feat: add structured walkthrough summary to review output

Matches CodeRabbit's approach of always producing a file-by-file
overview before listing findings, giving reviewers an at-a-glance
map of PR scope.

- commands/review-pr.md: new Step 5 generates a Walkthrough table
  (file | change type | one-sentence summary) before posting findings;
  old steps 5-6 renumbered to 6-7
- commands/code-review.md: Phase 6 REPORT template gains a Walkthrough
  section between the decision header and the Summary paragraph

* fix: replace brace expansion with multiple --include flags in caller tracing grep

`--include="*.{ts,tsx,...}"` uses shell brace expansion which grep's fnmatch
does not support — the pattern is matched literally and returns no results,
silently breaking caller tracing. Replaced with individual --include flags in
commands/code-review.md and commands/review-pr.md to match agents/code-reviewer.md.

* fix: address Copilot review findings — grep -oP portability and incremental diff semantics

- Replace `grep -oP` (PCRE, unavailable on macOS BSD grep) with `perl -ne`
  for linked-issue extraction in both code-review.md and review-pr.md;
  also switch from `xargs` to `while read` to avoid executing `gh issue view`
  with no arguments when no issues are linked
- Fix incremental review diff: `git diff --name-only <commit>..HEAD` excludes
  uncommitted working-directory changes; drop `..HEAD` to compare <commit>
  directly against the working tree, consistent with default Local Review Mode

* feat: CodeRabbit-parity upgrades — verification agent, effort score, review profiles, CI checks

Phase 1 quality improvements derived from CodeRabbit architecture research:

- Add verification-reviewer agent: second-pass gate that validates HIGH/CRITICAL
  findings before output, mirroring CodeRabbit's Verification Agent pattern
- Fix review-pr.md Step 4b: CRITICAL findings from security-reviewer now always
  bypass contradiction filter regardless of agent agreement count
- Add Step 3.5 verification pass to /review-pr pipeline; launches verification-
  reviewer after parallel agents complete
- Add Review Effort score (1–5) to /review-pr walkthrough with rubric
- Add NITPICK severity tier to code-reviewer agent (below LOW, style-only)
- Add --profile=chill|assertive flag to /code-review (chill: CRITICAL+HIGH only;
  assertive: all 5 levels including NITPICK, default)
- Add CI check reading (gh pr checks) to GitHub PR Mode Phase 2 as context;
  failing checks elevate related code paths to priority review
- Upgrade HIGH/CRITICAL output format: require diff block + AI Implementation
  Prompt for every actionable finding
- Update agent count to 25 across CLAUDE.md, README.md, docs/index.html

* fix: address Copilot review findings — linked issues multi-match, caller grep -n, pipefail guards

- Fix linked issues perl regex to capture all #N per matching line (handles
  "Fixes #1, #2"); use while(/.../gi) loop instead of single-capture print
- Add read -r to while read loops to handle backslashes correctly
- Change caller tracing grep -l (filenames only) to -n (file:line:match) in
  review-pr.md, code-review.md, and agents/code-reviewer.md — aligns with
  the "read 3–5 most relevant callers" instruction
- Add || true to all static analysis commands (tsc, lint, clippy, vet, ruff)
  to prevent pipefail environments from aborting context collection
- Clarify incremental mode: use git diff <commit> (not <commit>..HEAD) to
  include uncommitted working tree changes; remove ambiguous Phase 2 reference
- CLAUDE.md: rename "Agent Frontmatter 必填欄位" to "建議欄位"; clarify
  name/description/color are required, tools/model are recommended

* docs: update landing page for v1.2.0

- Bump version v1.1.0 → v1.2.0 in nav and footer
- Add verification-reviewer agent card (orange, 通用主審 section)
- Add NITPICK severity row to severity table
- Add --profile=chill|assertive to /code-review syntax and profile section
- Add Verification Pass (Step 3.5) and Walkthrough/Effort Score sections to /review-pr

* docs: update README and CLAUDE.md for v1.2.0 features

README.md:
- Add verification-reviewer to 通用主審 agents table
- Update architecture diagram to include verification-reviewer
- Update feature table: parallel review now mentions verification pass

CLAUDE.md:
- Add design principles 6 (verification gate) and 7 (NITPICK tier)

* docs: improve CLAUDE.md with quick-reference table and local verification guide

Add 常用操作速查 index table at top for faster session orientation, and
新增 本地驗證 section with commit checklist to prevent common omissions
(missing README/index.html/CLAUDE.md count updates after adding agents).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* docs: improve CLAUDE.md — fix /reload-plugins format and clarify version sync trigger

- Move /reload-plugins out of bash block (it's a Claude Code slash command,
  not a shell command) to prevent new contributors from running it in terminal
- Add count verification one-liner to detect stale agent/command/skill counts
- Add git log check to surface when develop branch needs version sync

* feat: upgrade review pipeline to CodeRabbit-parity quality

Phase 1 — Signal-to-Noise Filter + Evidence Gate:
- commands/code-review.md: severity-based delivery (CRITICAL/HIGH as inline
  comments with suggestion blocks, MEDIUM as summary table, LOW/NITPICK as
  collapsible <details>); Phase 6.5 auto-updates PR description with review
  summary; Phase 1.5 CLASSIFY routes DOCS/CONFIG to Fast Path, LOGIC/SECURITY
  to Slow Path; Phase 8 saves last-reviewed commit for incremental tracking;
  Phase 2 Step 1 loads .claude/review-paths.yaml for path-based rules;
  Bitbucket Phase 7 updated to match three-step severity delivery
- commands/review-pr.md: Step 5 posts walkthrough as dedicated first comment
  (before findings) with optional Mermaid sequence diagram; Step 6 rewritten
  to severity-based delivery with inline suggestion blocks; pr-walkthrough-writer
  added to parallel agent list
- agents/verification-reviewer.md: Gates 1 and 3 now require mandatory Bash
  commands (grep/Read) before any verdict; CONFIRMED output includes Evidence
  and Caller check fields; Confidence Standard updated to require actual
  command output

Phase 2 — New agent:
- agents/pr-walkthrough-writer.md: new agent that generates file-change table
  and Mermaid sequence diagrams; used in /review-pr parallel step

Update counts: 25 → 26 agents, 6 → 7 parallel agents in /review-pr

* feat: add code-graph-analyzer agent with .claude/code-graph/ persistence

New agent performs sequential pre-computation before parallel reviewer
agents launch:
- L2: grep-based import dependency tracing (1 BFS hop) — identifies
  files NOT in the diff but that depend on changed code
- L3: git log co-change risk analysis (last 50 commits) — surfaces
  files historically paired with changed files but absent from this PR
- SHA-based cache in .claude/code-graph/ — reuses map across sessions
  when HEAD commit matches; cache miss triggers fresh computation

Integration:
- /review-pr Step 2.5: runs code-graph-analyzer sequentially, injects
  IMPACT_MAP into each parallel agent's prompt as context
- /code-review Phase 2.5: same pattern for local diff and PR modes

Also updates all documentation (README, CLAUDE.md, docs/index.html)
to reflect 27 agents total.

* fix: correct stale agent counts in docs — 26→27, 25→27, 六→七 parallel

Address claude-review HIGH finding and Copilot suppressed comments:
- docs/index.html meta description: 26-agent → 27-agent
- docs/index.html stat-num Parallel PR Agents: 6 → 7
- docs/index.html lead paragraph: 25 個 → 27 個
- docs/index.html feature list: 25 Reviewer → 27 Agent, 六並行 → 七並行
- docs/index.html parallel section description: 6 → 7 + add code graph context
- README.md architecture tree: 25 個 reviewer agents → 27 個 agent (×2)

* fix: address Copilot PR review findings (7 items)

- commands/code-review.md: unify Phase 1.5 \$NUMBER/\${NUMBER} → <NUMBER> placeholder
- commands/code-review.md: clarify .claude/review-paths.yaml is optional user-created file
- agents/verification-reviewer.md: add || true to Gate 1 and Gate 3 grep to survive set -e/pipefail
- agents/code-graph-analyzer.md: exclude test files (*.test.*, *.spec.*, __tests__) from L2b dependents scan
- agents/code-graph-analyzer.md: add .git and test file exclusions to require() style scan
- CLAUDE.md: clarify docs: goes to CHANGELOG but doesn't trigger version bump (not completely ignored)

* fix: patch 2 HIGH shell injection vulnerabilities

- commands/code-review.md Phase 6.5: replace --body "\$STRIPPED..." with
  printf pipe to --body-file - to prevent shell injection from PR body
  containing quotes or \$(command) subshells
- agents/code-graph-analyzer.md L3: pass \$FILE via env var (FILE="\$FILE"
  python3) instead of interpolating into -c string, preventing injection
  from malicious filenames with shell metacharacters

* fix: address Copilot PR review round 2 (4 items)

- agents/code-graph-analyzer.md: move node_modules/.git/test exclusions
  from output filtering (| grep -v) to search stage (--exclude-dir/--exclude)
  for faster scan within the 60s time budget
- agents/verification-reviewer.md: change Gate 3 grep from BRE \| to
  ERE (-ERn with |) for portability; add --exclude-dir for node_modules/.git
- agents/pr-walkthrough-writer.md: wrap Step 5 example in 4-backtick
  fence so inner ```mermaid block doesn't break the outer code fence
- commands/review-pr.md: add security-reviewer back to Step 3 parallel
  agents list (was missing, causing contradiction with Step 3.5/4b
  exception rules); update 七→八 agent count in CLAUDE.md/README/docs

* fix: address CodeRabbit review (6 items)

- commands/code-review.md: add text/markdown language tags to bare code
  fences in Step 7a (MD040); add profile gate notes to Step 7b/7c so
  --profile=chill correctly suppresses MEDIUM/LOW/NITPICK sections
- commands/review-pr.md: add text/markdown language tags to bare fences
  at Step 2.5 impact map block and Step 6a comment/suggestion blocks
- docs/index.html: fix Parallel PR Agents stat 7→8; add security-reviewer
  and pr-walkthrough-writer rows to parallel agents table (was 6, now 8)
- README.md: fix stale "6 個專項 agent" → "8 個專項 agent" in section 3

* fix: restore CRITICAL protection to all agents, not just security-reviewer

Step 3.5 and Step 4b exception rules were narrowed to security-reviewer
only, violating CLAUDE.md Design Principle #6 ('CRITICAL 不可被移除,最多降為
HIGH' — no agent-source qualifier). Expand both rules back to 'any agent'
and drop the redundant note on the security-reviewer list entry.

* docs: fix index.html — remove stale security-reviewer CRITICAL note, add principles #6/#7

- Parallel agents table: remove misleading 'CRITICAL 不可被移除' from
  security-reviewer row (rule now applies to all agents, not just this one)
- Design Principles: add #6 Verification gate (CRITICAL 最多降為 HIGH) and
  #7 NITPICK 分層 (--profile=chill skips MEDIUM/LOW/NITPICK) to align with
  CLAUDE.md which lists 7 principles

* fix: sync review-pr argument-hint and clarify /review-pr parallel composition in CLAUDE.md

- commands/review-pr.md: fix argument-hint from stale security|performance|types|tests
  to comments|tests|errors|types|code|simplify (matches usage text and agent mapping)
- CLAUDE.md: add note to /review-pr 協作 section clarifying full 8-agent parallel list
  = code-reviewer + security-reviewer (通用主審) + 6 協作 agents

* docs: update /review-pr --focus examples to match argument-hint

Replace stale security/performance focus values with the correct
options: comments|tests|errors|types|code|simplify.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* docs: update README --focus examples and add design principles #6-#7

- Fix stale --focus values (security/performance → comments/errors/code/simplify)
- Add principle #6: Verification gate (CRITICAL cannot be dropped)
- Add principle #7: NITPICK 分層 (--profile=chill vs assertive)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix: address code review findings — CRITICAL protection, grep safety, incremental clarity, L2 language coverage

- verification-reviewer: INVALID/FALSE POSITIVE verdicts now demote CRITICAL to HIGH instead of removing entirely; protection extended from security-reviewer-only to all agents
- verification-reviewer Gate 1: use -F (fixed-string) grep to prevent regex metacharacters in finding descriptions causing false INVALID demotions
- verification-reviewer Gate 3: use -r instead of -R to prevent symlink infinite loops in pnpm monorepos
- code-review Phase 5: add explicit CRITICAL_COUNT/HIGH_COUNT/MEDIUM_COUNT/LOW_COUNT counting step so Phase 6.5 SUMMARY_BLOCK has real values instead of empty strings
- code-review Phase 1.5: reframe incremental detection as skip-if-unchanged gate (not diff-scoping), add explanatory note; store LOGIC_FILES/SECURITY_FILES in arrays instead of echo-only
- code-review Phase 2.5: pass ${LOGIC_FILES[@]} and ${SECURITY_FILES[@]} arrays explicitly to code-graph-analyzer
- code-graph-analyzer Step 2b: add language-specific import patterns for Python, Java/Kotlin, Rust, Swift, C#, Ruby, PHP; add --include=*.rb and --include=*.php to fix silent gap for files classified as LOGIC
- docs/index.html: add 前置分析 sidebar nav link pointing to #agents-graph section

* docs: update landing page — verification-reviewer CRITICAL protection + code-graph-analyzer multi-language L2 coverage

* fix: address code review findings — LOGIC extensions and bash tag

- Add missing file extensions (.cpp/.dart/.vue etc.) to LOGIC case in
  Phase 1.5 classifier; previously C++ and Flutter PRs fell through to
  OTHER and triggered the Fast Path, causing logic review to be silently
  skipped (#4372102283, claude[bot] HIGH)
- Add bash language tag to /review-pr example code block in README.md
  (#4372111736, CodeRabbit)

* fix: address code review findings — 15 correctness and structural bugs

Fixes 15 bugs found by /code-review #4 across the multi-agent PR review pipeline:

**verification-reviewer**: UNCERTAIN verdict now includes CRITICAL carve-out,
preventing silent removal of CRITICAL findings (were silently dropped before).

**review-pr**: Step 4b exception now explicitly covers CRITICAL→HIGH demotions
by verification-reviewer; Step 4f defines LOW_COUNT/LOW_NITPICK_LIST variables;
Step 3 adds --focus filtering table; Step 3 captures pr-walkthrough-writer output
as WALKTHROUGH_OUTPUT; Step 5a references WALKTHROUGH_OUTPUT; Step 6b adds BLOCK
tier for CRITICAL; Step 6c Bitbucket uses LOW_NITPICK_LIST; Steps 7–9 added
(idempotent PR description update + findings report + gated SHA tracking);
file classification added with SECURITY before TEST classifier order.

**code-review**: Fast Path contradiction resolved (skip Phases 2–5, secret scan
only); Phase 8 SHA write gated on Phase 7 success; SECURITY classifier moved
before TEST; bash arrays replaced with portable space-separated strings;
`git rev-parse --short` fixed to `--short=8`; orphan cr-summary:start tag
cleanup added to Phase 6.5 python3 snippet.

**code-graph-analyzer**: Step 5 heredoc replaced with Write tool instruction
so actual generated content is cached instead of literal placeholder text.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix: address second code review pass — 15 correctness and structural fixes

- code-review.md: Fast Path now jumps to Phase 7 (gh pr review --approve) instead
  of Phase 6 (local artifact only); LOW_NITPICK_LIST added to Phase 5 count block;
  BLOCK header prepend code added to Phase 7b for CRITICAL findings; CI check item 7
  moved inside Phase 2 (before Phase 2.5); CRLF-safe tr -d '\r' in CHANGED_FILES;
  Phase 8 SHA-save gated with executable if [ REVIEW_EXIT -eq 0 ]

- review-pr.md: skip-if-unchanged check physically moved before Step 1 (was a
  deferred instruction at Step 9); headRefOid added to Step 1 gh pr view --json
  for cache key availability; BLOCK header prepend code added to Step 6b; Step 3.5
  now explicitly carries forward UNCERTAIN HIGH→MEDIUM findings (not CONFIRMED-only);
  unknown --focus value validation added with error message; CRLF-safe tr -d '\r';
  Step 9 SHA-save gated with executable conditional

- code-graph-analyzer.md: cache-hit stop gate made emphatic (bold warning, explicit
  "Do NOT proceed to Steps 2–5"); L2 basename grep patterns anchored — JS/TS now
  requires BASENAME preceded by / or quote; Python/Java/Kotlin/Rust use \b word
  boundaries to prevent substring false positives

- verification-reviewer.md: INVALID row split — "FIXED IN THIS PR" is a new verdict
  that removes findings at any severity (PR itself is the fix); Gate 1 teaches agent
  to distinguish never-existed vs fixed-in-diff; UNCERTAIN HIGH demotion criterion
  made concrete (objectively risky pattern required, not just unclear trigger)

* docs: sync verification-reviewer semantics across all documentation

Update docs/index.html, CLAUDE.md, and README.md to accurately reflect
the current behavior of verification-reviewer and /review-pr Step 3.5:

- Step 3.5 now carries forward UNCERTAIN HIGH→MEDIUM findings in addition
  to CONFIRMED findings (previously stated "only confirmed survive")
- New "FIXED IN THIS PR" verdict removes findings at any severity when
  the issue is resolved by another hunk in the same diff (no CRITICAL
  protection applies here — the PR itself is the fix)
- verification-reviewer description updated to list all three outcomes:
  CONFIRMED kept, UNCERTAIN→MEDIUM kept, FIXED IN THIS PR removed

* docs: sync version string to v1.3.0 in CLAUDE.md and landing page

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* feat!: unify all review commands into a single auto-dispatching /code-review

Collapse the 9 slash commands into one /code-review entry point that
auto-detects the language/framework of changed files and dispatches the
matching specialist reviewer agents — no per-language command needed.

- Remove /review-pr and the 7 language commands (cpp/fastapi/flutter/go/
  kotlin/python/rust); fold their multi-agent parallel + verification
  capability into /code-review.
- Add Language/Framework Auto-Dispatch: by file extension (.py→python-
  reviewer, .go→go-reviewer, …), refined by content for frameworks
  (Django/FastAPI/Flutter). Detected-only, zero match = zero waste.
- Both local and PR modes now run the same full pipeline (code-graph →
  8 general agents + dispatched specialists → verification Phase 3.5 →
  aggregate). Local reports to terminal; PR publishes to GitHub/Bitbucket.
- Keep --focus and --profile flags.
- Sync CLAUDE.md, README.md, docs/index.html (badges/stats 9→1,
  architecture, sidebar, contributing guide).

BREAKING CHANGE: /review-pr and all /<lang>-review commands are removed.
Use /code-review for everything — language specialists are now dispatched
automatically based on the changed files.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* chore: correct plugin manifest descriptions (27 agents, single command)

plugin.json and marketplace.json described 24 reviewer agents (actual: 27)
and parallel PR review commands; after the 9-to-1 refactor there is a single
/code-review command that auto-dispatches language specialists. Sync all
three description strings to match.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* feat: align all 27 agents with official plugin-dev triggering format

Audited the plugin against the plugin-dev skills (plugin-structure,
agent-development) and applied the validated improvements:

- Rewrite every agent description to the official triggering shape
  (Use this agent when... Typical triggers include... See When to invoke)
  and add a ## When to invoke body section with third-person scenario
  bullets. Improves auto-dispatch hit rate; passes validate-agent.sh with
  zero errors.
- Fix verification-reviewer color orange -> yellow (orange is outside the
  official validator color set); sync the docs marker.
- Open the six analyzer agent prompts in second person where missing.
- Add homepage to plugin.json (parity with marketplace.json).
- Document the triggering-format convention + validator command in CLAUDE.md.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* feat: rewrite skill descriptions to official third-person triggering format

Per the plugin-dev skill-development spec, skill descriptions should use
third person ("This skill should be used when...") with specific trigger
phrases so Claude activates them reliably. All three skills used the
wrong person or had no triggers:

- security-review: "Use this skill when..." -> third person, fuller triggers
- security-scan: content blurb -> "This skill should be used when the user
  asks to scan .claude config / audit hooks/MCP/agents..."
- flutter-dart-code-review: content blurb -> "This skill should be used
  when reviewing Flutter/Dart code or .dart changes..."

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* fix: address PR #8 review — When-to-invoke placement, color note, stale ref

Resolves findings from the PR #8 reviews (claude, Copilot, CodeRabbit):

- Move ## When to invoke to immediately after frontmatter (before
  ## Prompt Defense Baseline) in the 7 agents where it was placed lower:
  go, python, rust, typescript reviewers + silent-failure-hunter,
  type-design-analyzer, pr-walkthrough-writer. Matches the documented
  agents/**/*.md convention; pure section move, no content change.
- CLAUDE.md color note: reword the contradictory parenthetical so it
  clearly states only blue/cyan/green/yellow/magenta/red are valid and
  orange/purple/gray are not.
- code-graph-analyzer description: drop the stale /review-pr Step 2.5
  reference, keep /code-review Phase 2.5.

Re-validated: validate-agent.sh 0 errors across all 27; When-to-invoke
now precedes Prompt Defense Baseline in every agent.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* fix: restore proactive dispatch imperatives + true-yellow color (self-review)

Addresses findings from /code-review #8 (recall-biased pass) on this PR:

- Restore the proactive-dispatch imperatives the triggering-format rewrite
  had stripped from 15 agent descriptions (verified 15 deleted, 0 retained):
  "MUST BE USED for X projects" on the language/framework reviewers, and
  "Use PROACTIVELY ..." on code-reviewer, security-reviewer, database-reviewer,
  code-graph-analyzer, verification-reviewer. Kept inside the official
  "Use this agent when... Typical triggers include..." format so both signals
  coexist. validate-agent.sh still 0 errors; all 27 still start with the
  required phrase.
- docs/index.html: verification-reviewer card #a06818 (the --amber token, an
  orange shade) -> #9a8200 (true yellow) so the landing page matches the
  yellow label used in frontmatter/README/CLAUDE.md.
- CLAUDE.md: document that descriptions must keep the imperative alongside the
  triggering format; note the validator requires the plugin-dev plugin and how
  to locate the script if the cache path differs.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* fix(agents): 補上 6 個 language/framework agent 缺漏的 MUST BE USED 強觸發語

回應 PR #8 code review(HIGH):本 PR 在 CLAUDE.md 引入「語言/框架 agent 描述須含
MUST BE USED for X projects.」規則,但這 6 個 agent 改寫 description 後未加,與
cpp/go/python 等 11 個同類不一致,降低自動 dispatch 命中率。

於各 description 末(See "When to invoke" 之前)補上:
- fastapi-reviewer:        MUST BE USED for FastAPI projects.
- flutter-reviewer:        MUST BE USED for Flutter projects.
- healthcare-reviewer:     MUST BE USED for healthcare and EMR/EHR projects.
- kotlin-reviewer:         MUST BE USED for Kotlin and Android/KMP projects.
- mle-reviewer:            MUST BE USED for ML/MLOps projects.
- network-config-reviewer: MUST BE USED for network configuration reviews.

官方 validate-agent.sh:6 檔全 PASS(exit 0)。

* fix: trim redundant imperatives and normalize java to "for X projects" form

Second self-review pass on PR #8 caught 3 LOW polish issues introduced
by the previous imperative-restoration commit:

- code-graph-analyzer: imperative "Use PROACTIVELY as the pre-computation
  step before parallel reviewers launch." tripled an already-stated concept.
  Shortened to "Use PROACTIVELY before launching parallel reviewers."
- code-reviewer: imperative chained two clauses; "Use immediately after
  writing or modifying code;" duplicated the opener. Trimmed to just
  "MUST BE USED for all code changes."
- java-reviewer: "MUST BE USED for all Java code changes." deviated from
  the "MUST BE USED for X projects." convention all other 9 language
  reviewers (and CLAUDE.md) use. Normalized to "MUST BE USED for Java
  projects."

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
terry90918 added a commit that referenced this pull request May 29, 2026
* docs: overhaul CLAUDE.md with actionable session guidance

Rewrites CLAUDE.md to serve as a genuine Claude Code session guide:
- Add no-build-steps declaration (pure Markdown content repo)
- Add branch workflow, commit type guide with Release Please impact
- Add version drift warning (plugin.json v1.2.0 vs marketplace.json v1.0.0)
- Add agent/skill frontmatter schema reference
- Add environment variables for Bitbucket PR review
- Document --focus options for /review-pr
- Remove discoverable-by-ls content (17 lang reviewer names, 7 predictable command mappings)
- Remove static GitHub repo metadata

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* docs: fix Commands header count and remove stale version snapshot

- Remove "(9 個)" from Commands header (table only shows 2 key entries)
- Replace pinned version numbers with a grep command to verify sync;
  specific versions rot once the drift is fixed

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* docs: improve CLAUDE.md with directory structure, full command list, and agent/command distinction

- Add directory structure overview with .claude-plugin/ explanation
- Add PR creation gh api commands for labels/assignee
- Enumerate all 17 language agents by name
- Expand Commands table to list all 9 language commands
- Note that 10 language agents have no corresponding /xxx-review command
- Add step 5 to "新增 Agent" checklist (update CLAUDE.md counts)
- Add step 4 to "新增 Command" checklist (update CLAUDE.md table)

* docs: improve CLAUDE.md accuracy and completeness

- Fix version sync section: Release Please auto-syncs via extra-files;
  develop branch needs git merge origin/main after each release PR
- Add current version (v1.2.0) to project overview
- Add missing "新增 Skill" workflow (5 steps with subdirectory structure)
- Fix Plugin Manifest update guidance: version is auto-synced, only
  keywords and description need manual updates
- Fix directory structure comment to reflect auto-sync mechanism

* docs: clarify plugin release trigger mechanism

Replace vague "push to main = 自動發布" with accurate flow:
feat/fix commits → Release Please opens release PR on main →
merging that PR triggers new version publish. Prevents confusion
where any push to main is expected to immediately publish.

* feat: add verification layer, incremental review, and linked issues context

Inspired by CodeRabbit's architecture research:

1. /review-pr — Verification layer (Step 4):
   Replace simple dedupe with 5-step verification process:
   contradiction filter, confidence filter (≥80%), FP guard,
   and multi-agent agreement requirement. Batch delivery of
   findings only after all agents complete verification.

2. /review-pr & /code-review — Linked issues context:
   Fetch GitHub issues referenced in PR body (Fixes/Closes/
   Resolves/Related to #N) and include issue title+description
   as review context. Reduces false positives by giving agents
   PR intent beyond just the diff.

3. /code-review — Incremental review mode (--from=<commit>):
   New --from=<commit> flag limits review scope to files changed
   since a given commit/branch (e.g. --from=main, --from=HEAD~3).
   Avoids re-reviewing already-reviewed code on large branches.

* feat: add Code Graph simulation via systematic caller tracing

Closes the biggest recall gap vs CodeRabbit by adding explicit
caller tracing to all three review entry points:

- agents/code-reviewer.md: Expand Step 3 with Caller Tracing block —
  grep for all call sites of modified exported symbols, read 3-5
  most relevant callers before applying review checklist
- commands/review-pr.md: Step 2 now traces callers for each modified
  exported symbol found in the diff before running parallel agents
- commands/code-review.md: GitHub PR Phase 2 CONTEXT gains Step 5
  (Caller Tracing) after changed-files enumeration

All three skip private/test-only symbols to prevent context explosion.

* feat: inject linter output into review context before analysis begins

Phase 3 improvement: move static analysis from post-review validation
to pre-review context building, so agents review code with linter
signals already available.

- commands/code-review.md:
  - Phase 2 gains Step 6 (Static Analysis): run tsc/lint/clippy/vet/ruff
    before review starts, capture output (head -60 per tool)
  - Phase 3 opens with cross-reference instruction: any file:line
    already flagged by linter treated as elevated-confidence finding
  - Phase 4 VALIDATE simplified to test + build only (lint/typecheck
    already ran in Phase 2, results recorded there)
- commands/review-pr.md:
  - Step 2 appends linter capture after caller tracing; output passed
    as context when launching each parallel agent in Step 3

* feat: add structured walkthrough summary to review output

Matches CodeRabbit's approach of always producing a file-by-file
overview before listing findings, giving reviewers an at-a-glance
map of PR scope.

- commands/review-pr.md: new Step 5 generates a Walkthrough table
  (file | change type | one-sentence summary) before posting findings;
  old steps 5-6 renumbered to 6-7
- commands/code-review.md: Phase 6 REPORT template gains a Walkthrough
  section between the decision header and the Summary paragraph

* fix: replace brace expansion with multiple --include flags in caller tracing grep

`--include="*.{ts,tsx,...}"` uses shell brace expansion which grep's fnmatch
does not support — the pattern is matched literally and returns no results,
silently breaking caller tracing. Replaced with individual --include flags in
commands/code-review.md and commands/review-pr.md to match agents/code-reviewer.md.

* fix: address Copilot review findings — grep -oP portability and incremental diff semantics

- Replace `grep -oP` (PCRE, unavailable on macOS BSD grep) with `perl -ne`
  for linked-issue extraction in both code-review.md and review-pr.md;
  also switch from `xargs` to `while read` to avoid executing `gh issue view`
  with no arguments when no issues are linked
- Fix incremental review diff: `git diff --name-only <commit>..HEAD` excludes
  uncommitted working-directory changes; drop `..HEAD` to compare <commit>
  directly against the working tree, consistent with default Local Review Mode

* feat: CodeRabbit-parity upgrades — verification agent, effort score, review profiles, CI checks

Phase 1 quality improvements derived from CodeRabbit architecture research:

- Add verification-reviewer agent: second-pass gate that validates HIGH/CRITICAL
  findings before output, mirroring CodeRabbit's Verification Agent pattern
- Fix review-pr.md Step 4b: CRITICAL findings from security-reviewer now always
  bypass contradiction filter regardless of agent agreement count
- Add Step 3.5 verification pass to /review-pr pipeline; launches verification-
  reviewer after parallel agents complete
- Add Review Effort score (1–5) to /review-pr walkthrough with rubric
- Add NITPICK severity tier to code-reviewer agent (below LOW, style-only)
- Add --profile=chill|assertive flag to /code-review (chill: CRITICAL+HIGH only;
  assertive: all 5 levels including NITPICK, default)
- Add CI check reading (gh pr checks) to GitHub PR Mode Phase 2 as context;
  failing checks elevate related code paths to priority review
- Upgrade HIGH/CRITICAL output format: require diff block + AI Implementation
  Prompt for every actionable finding
- Update agent count to 25 across CLAUDE.md, README.md, docs/index.html

* fix: address Copilot review findings — linked issues multi-match, caller grep -n, pipefail guards

- Fix linked issues perl regex to capture all #N per matching line (handles
  "Fixes #1, #2"); use while(/.../gi) loop instead of single-capture print
- Add read -r to while read loops to handle backslashes correctly
- Change caller tracing grep -l (filenames only) to -n (file:line:match) in
  review-pr.md, code-review.md, and agents/code-reviewer.md — aligns with
  the "read 3–5 most relevant callers" instruction
- Add || true to all static analysis commands (tsc, lint, clippy, vet, ruff)
  to prevent pipefail environments from aborting context collection
- Clarify incremental mode: use git diff <commit> (not <commit>..HEAD) to
  include uncommitted working tree changes; remove ambiguous Phase 2 reference
- CLAUDE.md: rename "Agent Frontmatter 必填欄位" to "建議欄位"; clarify
  name/description/color are required, tools/model are recommended

* docs: update landing page for v1.2.0

- Bump version v1.1.0 → v1.2.0 in nav and footer
- Add verification-reviewer agent card (orange, 通用主審 section)
- Add NITPICK severity row to severity table
- Add --profile=chill|assertive to /code-review syntax and profile section
- Add Verification Pass (Step 3.5) and Walkthrough/Effort Score sections to /review-pr

* docs: update README and CLAUDE.md for v1.2.0 features

README.md:
- Add verification-reviewer to 通用主審 agents table
- Update architecture diagram to include verification-reviewer
- Update feature table: parallel review now mentions verification pass

CLAUDE.md:
- Add design principles 6 (verification gate) and 7 (NITPICK tier)

* docs: improve CLAUDE.md with quick-reference table and local verification guide

Add 常用操作速查 index table at top for faster session orientation, and
新增 本地驗證 section with commit checklist to prevent common omissions
(missing README/index.html/CLAUDE.md count updates after adding agents).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* docs: improve CLAUDE.md — fix /reload-plugins format and clarify version sync trigger

- Move /reload-plugins out of bash block (it's a Claude Code slash command,
  not a shell command) to prevent new contributors from running it in terminal
- Add count verification one-liner to detect stale agent/command/skill counts
- Add git log check to surface when develop branch needs version sync

* feat: upgrade review pipeline to CodeRabbit-parity quality

Phase 1 — Signal-to-Noise Filter + Evidence Gate:
- commands/code-review.md: severity-based delivery (CRITICAL/HIGH as inline
  comments with suggestion blocks, MEDIUM as summary table, LOW/NITPICK as
  collapsible <details>); Phase 6.5 auto-updates PR description with review
  summary; Phase 1.5 CLASSIFY routes DOCS/CONFIG to Fast Path, LOGIC/SECURITY
  to Slow Path; Phase 8 saves last-reviewed commit for incremental tracking;
  Phase 2 Step 1 loads .claude/review-paths.yaml for path-based rules;
  Bitbucket Phase 7 updated to match three-step severity delivery
- commands/review-pr.md: Step 5 posts walkthrough as dedicated first comment
  (before findings) with optional Mermaid sequence diagram; Step 6 rewritten
  to severity-based delivery with inline suggestion blocks; pr-walkthrough-writer
  added to parallel agent list
- agents/verification-reviewer.md: Gates 1 and 3 now require mandatory Bash
  commands (grep/Read) before any verdict; CONFIRMED output includes Evidence
  and Caller check fields; Confidence Standard updated to require actual
  command output

Phase 2 — New agent:
- agents/pr-walkthrough-writer.md: new agent that generates file-change table
  and Mermaid sequence diagrams; used in /review-pr parallel step

Update counts: 25 → 26 agents, 6 → 7 parallel agents in /review-pr

* feat: add code-graph-analyzer agent with .claude/code-graph/ persistence

New agent performs sequential pre-computation before parallel reviewer
agents launch:
- L2: grep-based import dependency tracing (1 BFS hop) — identifies
  files NOT in the diff but that depend on changed code
- L3: git log co-change risk analysis (last 50 commits) — surfaces
  files historically paired with changed files but absent from this PR
- SHA-based cache in .claude/code-graph/ — reuses map across sessions
  when HEAD commit matches; cache miss triggers fresh computation

Integration:
- /review-pr Step 2.5: runs code-graph-analyzer sequentially, injects
  IMPACT_MAP into each parallel agent's prompt as context
- /code-review Phase 2.5: same pattern for local diff and PR modes

Also updates all documentation (README, CLAUDE.md, docs/index.html)
to reflect 27 agents total.

* fix: correct stale agent counts in docs — 26→27, 25→27, 六→七 parallel

Address claude-review HIGH finding and Copilot suppressed comments:
- docs/index.html meta description: 26-agent → 27-agent
- docs/index.html stat-num Parallel PR Agents: 6 → 7
- docs/index.html lead paragraph: 25 個 → 27 個
- docs/index.html feature list: 25 Reviewer → 27 Agent, 六並行 → 七並行
- docs/index.html parallel section description: 6 → 7 + add code graph context
- README.md architecture tree: 25 個 reviewer agents → 27 個 agent (×2)

* fix: address Copilot PR review findings (7 items)

- commands/code-review.md: unify Phase 1.5 \$NUMBER/\${NUMBER} → <NUMBER> placeholder
- commands/code-review.md: clarify .claude/review-paths.yaml is optional user-created file
- agents/verification-reviewer.md: add || true to Gate 1 and Gate 3 grep to survive set -e/pipefail
- agents/code-graph-analyzer.md: exclude test files (*.test.*, *.spec.*, __tests__) from L2b dependents scan
- agents/code-graph-analyzer.md: add .git and test file exclusions to require() style scan
- CLAUDE.md: clarify docs: goes to CHANGELOG but doesn't trigger version bump (not completely ignored)

* fix: patch 2 HIGH shell injection vulnerabilities

- commands/code-review.md Phase 6.5: replace --body "\$STRIPPED..." with
  printf pipe to --body-file - to prevent shell injection from PR body
  containing quotes or \$(command) subshells
- agents/code-graph-analyzer.md L3: pass \$FILE via env var (FILE="\$FILE"
  python3) instead of interpolating into -c string, preventing injection
  from malicious filenames with shell metacharacters

* fix: address Copilot PR review round 2 (4 items)

- agents/code-graph-analyzer.md: move node_modules/.git/test exclusions
  from output filtering (| grep -v) to search stage (--exclude-dir/--exclude)
  for faster scan within the 60s time budget
- agents/verification-reviewer.md: change Gate 3 grep from BRE \| to
  ERE (-ERn with |) for portability; add --exclude-dir for node_modules/.git
- agents/pr-walkthrough-writer.md: wrap Step 5 example in 4-backtick
  fence so inner ```mermaid block doesn't break the outer code fence
- commands/review-pr.md: add security-reviewer back to Step 3 parallel
  agents list (was missing, causing contradiction with Step 3.5/4b
  exception rules); update 七→八 agent count in CLAUDE.md/README/docs

* fix: address CodeRabbit review (6 items)

- commands/code-review.md: add text/markdown language tags to bare code
  fences in Step 7a (MD040); add profile gate notes to Step 7b/7c so
  --profile=chill correctly suppresses MEDIUM/LOW/NITPICK sections
- commands/review-pr.md: add text/markdown language tags to bare fences
  at Step 2.5 impact map block and Step 6a comment/suggestion blocks
- docs/index.html: fix Parallel PR Agents stat 7→8; add security-reviewer
  and pr-walkthrough-writer rows to parallel agents table (was 6, now 8)
- README.md: fix stale "6 個專項 agent" → "8 個專項 agent" in section 3

* fix: restore CRITICAL protection to all agents, not just security-reviewer

Step 3.5 and Step 4b exception rules were narrowed to security-reviewer
only, violating CLAUDE.md Design Principle #6 ('CRITICAL 不可被移除,最多降為
HIGH' — no agent-source qualifier). Expand both rules back to 'any agent'
and drop the redundant note on the security-reviewer list entry.

* docs: fix index.html — remove stale security-reviewer CRITICAL note, add principles #6/#7

- Parallel agents table: remove misleading 'CRITICAL 不可被移除' from
  security-reviewer row (rule now applies to all agents, not just this one)
- Design Principles: add #6 Verification gate (CRITICAL 最多降為 HIGH) and
  #7 NITPICK 分層 (--profile=chill skips MEDIUM/LOW/NITPICK) to align with
  CLAUDE.md which lists 7 principles

* fix: sync review-pr argument-hint and clarify /review-pr parallel composition in CLAUDE.md

- commands/review-pr.md: fix argument-hint from stale security|performance|types|tests
  to comments|tests|errors|types|code|simplify (matches usage text and agent mapping)
- CLAUDE.md: add note to /review-pr 協作 section clarifying full 8-agent parallel list
  = code-reviewer + security-reviewer (通用主審) + 6 協作 agents

* docs: update /review-pr --focus examples to match argument-hint

Replace stale security/performance focus values with the correct
options: comments|tests|errors|types|code|simplify.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* docs: update README --focus examples and add design principles #6-#7

- Fix stale --focus values (security/performance → comments/errors/code/simplify)
- Add principle #6: Verification gate (CRITICAL cannot be dropped)
- Add principle #7: NITPICK 分層 (--profile=chill vs assertive)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix: address code review findings — CRITICAL protection, grep safety, incremental clarity, L2 language coverage

- verification-reviewer: INVALID/FALSE POSITIVE verdicts now demote CRITICAL to HIGH instead of removing entirely; protection extended from security-reviewer-only to all agents
- verification-reviewer Gate 1: use -F (fixed-string) grep to prevent regex metacharacters in finding descriptions causing false INVALID demotions
- verification-reviewer Gate 3: use -r instead of -R to prevent symlink infinite loops in pnpm monorepos
- code-review Phase 5: add explicit CRITICAL_COUNT/HIGH_COUNT/MEDIUM_COUNT/LOW_COUNT counting step so Phase 6.5 SUMMARY_BLOCK has real values instead of empty strings
- code-review Phase 1.5: reframe incremental detection as skip-if-unchanged gate (not diff-scoping), add explanatory note; store LOGIC_FILES/SECURITY_FILES in arrays instead of echo-only
- code-review Phase 2.5: pass ${LOGIC_FILES[@]} and ${SECURITY_FILES[@]} arrays explicitly to code-graph-analyzer
- code-graph-analyzer Step 2b: add language-specific import patterns for Python, Java/Kotlin, Rust, Swift, C#, Ruby, PHP; add --include=*.rb and --include=*.php to fix silent gap for files classified as LOGIC
- docs/index.html: add 前置分析 sidebar nav link pointing to #agents-graph section

* docs: update landing page — verification-reviewer CRITICAL protection + code-graph-analyzer multi-language L2 coverage

* fix: address code review findings — LOGIC extensions and bash tag

- Add missing file extensions (.cpp/.dart/.vue etc.) to LOGIC case in
  Phase 1.5 classifier; previously C++ and Flutter PRs fell through to
  OTHER and triggered the Fast Path, causing logic review to be silently
  skipped (#4372102283, claude[bot] HIGH)
- Add bash language tag to /review-pr example code block in README.md
  (#4372111736, CodeRabbit)

* fix: address code review findings — 15 correctness and structural bugs

Fixes 15 bugs found by /code-review #4 across the multi-agent PR review pipeline:

**verification-reviewer**: UNCERTAIN verdict now includes CRITICAL carve-out,
preventing silent removal of CRITICAL findings (were silently dropped before).

**review-pr**: Step 4b exception now explicitly covers CRITICAL→HIGH demotions
by verification-reviewer; Step 4f defines LOW_COUNT/LOW_NITPICK_LIST variables;
Step 3 adds --focus filtering table; Step 3 captures pr-walkthrough-writer output
as WALKTHROUGH_OUTPUT; Step 5a references WALKTHROUGH_OUTPUT; Step 6b adds BLOCK
tier for CRITICAL; Step 6c Bitbucket uses LOW_NITPICK_LIST; Steps 7–9 added
(idempotent PR description update + findings report + gated SHA tracking);
file classification added with SECURITY before TEST classifier order.

**code-review**: Fast Path contradiction resolved (skip Phases 2–5, secret scan
only); Phase 8 SHA write gated on Phase 7 success; SECURITY classifier moved
before TEST; bash arrays replaced with portable space-separated strings;
`git rev-parse --short` fixed to `--short=8`; orphan cr-summary:start tag
cleanup added to Phase 6.5 python3 snippet.

**code-graph-analyzer**: Step 5 heredoc replaced with Write tool instruction
so actual generated content is cached instead of literal placeholder text.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix: address second code review pass — 15 correctness and structural fixes

- code-review.md: Fast Path now jumps to Phase 7 (gh pr review --approve) instead
  of Phase 6 (local artifact only); LOW_NITPICK_LIST added to Phase 5 count block;
  BLOCK header prepend code added to Phase 7b for CRITICAL findings; CI check item 7
  moved inside Phase 2 (before Phase 2.5); CRLF-safe tr -d '\r' in CHANGED_FILES;
  Phase 8 SHA-save gated with executable if [ REVIEW_EXIT -eq 0 ]

- review-pr.md: skip-if-unchanged check physically moved before Step 1 (was a
  deferred instruction at Step 9); headRefOid added to Step 1 gh pr view --json
  for cache key availability; BLOCK header prepend code added to Step 6b; Step 3.5
  now explicitly carries forward UNCERTAIN HIGH→MEDIUM findings (not CONFIRMED-only);
  unknown --focus value validation added with error message; CRLF-safe tr -d '\r';
  Step 9 SHA-save gated with executable conditional

- code-graph-analyzer.md: cache-hit stop gate made emphatic (bold warning, explicit
  "Do NOT proceed to Steps 2–5"); L2 basename grep patterns anchored — JS/TS now
  requires BASENAME preceded by / or quote; Python/Java/Kotlin/Rust use \b word
  boundaries to prevent substring false positives

- verification-reviewer.md: INVALID row split — "FIXED IN THIS PR" is a new verdict
  that removes findings at any severity (PR itself is the fix); Gate 1 teaches agent
  to distinguish never-existed vs fixed-in-diff; UNCERTAIN HIGH demotion criterion
  made concrete (objectively risky pattern required, not just unclear trigger)

* docs: sync verification-reviewer semantics across all documentation

Update docs/index.html, CLAUDE.md, and README.md to accurately reflect
the current behavior of verification-reviewer and /review-pr Step 3.5:

- Step 3.5 now carries forward UNCERTAIN HIGH→MEDIUM findings in addition
  to CONFIRMED findings (previously stated "only confirmed survive")
- New "FIXED IN THIS PR" verdict removes findings at any severity when
  the issue is resolved by another hunk in the same diff (no CRITICAL
  protection applies here — the PR itself is the fix)
- verification-reviewer description updated to list all three outcomes:
  CONFIRMED kept, UNCERTAIN→MEDIUM kept, FIXED IN THIS PR removed

* docs: sync version string to v1.3.0 in CLAUDE.md and landing page

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* feat!: unify all review commands into a single auto-dispatching /code-review

Collapse the 9 slash commands into one /code-review entry point that
auto-detects the language/framework of changed files and dispatches the
matching specialist reviewer agents — no per-language command needed.

- Remove /review-pr and the 7 language commands (cpp/fastapi/flutter/go/
  kotlin/python/rust); fold their multi-agent parallel + verification
  capability into /code-review.
- Add Language/Framework Auto-Dispatch: by file extension (.py→python-
  reviewer, .go→go-reviewer, …), refined by content for frameworks
  (Django/FastAPI/Flutter). Detected-only, zero match = zero waste.
- Both local and PR modes now run the same full pipeline (code-graph →
  8 general agents + dispatched specialists → verification Phase 3.5 →
  aggregate). Local reports to terminal; PR publishes to GitHub/Bitbucket.
- Keep --focus and --profile flags.
- Sync CLAUDE.md, README.md, docs/index.html (badges/stats 9→1,
  architecture, sidebar, contributing guide).

BREAKING CHANGE: /review-pr and all /<lang>-review commands are removed.
Use /code-review for everything — language specialists are now dispatched
automatically based on the changed files.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* chore: correct plugin manifest descriptions (27 agents, single command)

plugin.json and marketplace.json described 24 reviewer agents (actual: 27)
and parallel PR review commands; after the 9-to-1 refactor there is a single
/code-review command that auto-dispatches language specialists. Sync all
three description strings to match.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* feat: align all 27 agents with official plugin-dev triggering format

Audited the plugin against the plugin-dev skills (plugin-structure,
agent-development) and applied the validated improvements:

- Rewrite every agent description to the official triggering shape
  (Use this agent when... Typical triggers include... See When to invoke)
  and add a ## When to invoke body section with third-person scenario
  bullets. Improves auto-dispatch hit rate; passes validate-agent.sh with
  zero errors.
- Fix verification-reviewer color orange -> yellow (orange is outside the
  official validator color set); sync the docs marker.
- Open the six analyzer agent prompts in second person where missing.
- Add homepage to plugin.json (parity with marketplace.json).
- Document the triggering-format convention + validator command in CLAUDE.md.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* feat: rewrite skill descriptions to official third-person triggering format

Per the plugin-dev skill-development spec, skill descriptions should use
third person ("This skill should be used when...") with specific trigger
phrases so Claude activates them reliably. All three skills used the
wrong person or had no triggers:

- security-review: "Use this skill when..." -> third person, fuller triggers
- security-scan: content blurb -> "This skill should be used when the user
  asks to scan .claude config / audit hooks/MCP/agents..."
- flutter-dart-code-review: content blurb -> "This skill should be used
  when reviewing Flutter/Dart code or .dart changes..."

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* fix: address PR #8 review — When-to-invoke placement, color note, stale ref

Resolves findings from the PR #8 reviews (claude, Copilot, CodeRabbit):

- Move ## When to invoke to immediately after frontmatter (before
  ## Prompt Defense Baseline) in the 7 agents where it was placed lower:
  go, python, rust, typescript reviewers + silent-failure-hunter,
  type-design-analyzer, pr-walkthrough-writer. Matches the documented
  agents/**/*.md convention; pure section move, no content change.
- CLAUDE.md color note: reword the contradictory parenthetical so it
  clearly states only blue/cyan/green/yellow/magenta/red are valid and
  orange/purple/gray are not.
- code-graph-analyzer description: drop the stale /review-pr Step 2.5
  reference, keep /code-review Phase 2.5.

Re-validated: validate-agent.sh 0 errors across all 27; When-to-invoke
now precedes Prompt Defense Baseline in every agent.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* fix: restore proactive dispatch imperatives + true-yellow color (self-review)

Addresses findings from /code-review #8 (recall-biased pass) on this PR:

- Restore the proactive-dispatch imperatives the triggering-format rewrite
  had stripped from 15 agent descriptions (verified 15 deleted, 0 retained):
  "MUST BE USED for X projects" on the language/framework reviewers, and
  "Use PROACTIVELY ..." on code-reviewer, security-reviewer, database-reviewer,
  code-graph-analyzer, verification-reviewer. Kept inside the official
  "Use this agent when... Typical triggers include..." format so both signals
  coexist. validate-agent.sh still 0 errors; all 27 still start with the
  required phrase.
- docs/index.html: verification-reviewer card #a06818 (the --amber token, an
  orange shade) -> #9a8200 (true yellow) so the landing page matches the
  yellow label used in frontmatter/README/CLAUDE.md.
- CLAUDE.md: document that descriptions must keep the imperative alongside the
  triggering format; note the validator requires the plugin-dev plugin and how
  to locate the script if the cache path differs.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* fix(agents): 補上 6 個 language/framework agent 缺漏的 MUST BE USED 強觸發語

回應 PR #8 code review(HIGH):本 PR 在 CLAUDE.md 引入「語言/框架 agent 描述須含
MUST BE USED for X projects.」規則,但這 6 個 agent 改寫 description 後未加,與
cpp/go/python 等 11 個同類不一致,降低自動 dispatch 命中率。

於各 description 末(See "When to invoke" 之前)補上:
- fastapi-reviewer:        MUST BE USED for FastAPI projects.
- flutter-reviewer:        MUST BE USED for Flutter projects.
- healthcare-reviewer:     MUST BE USED for healthcare and EMR/EHR projects.
- kotlin-reviewer:         MUST BE USED for Kotlin and Android/KMP projects.
- mle-reviewer:            MUST BE USED for ML/MLOps projects.
- network-config-reviewer: MUST BE USED for network configuration reviews.

官方 validate-agent.sh:6 檔全 PASS(exit 0)。

* fix: trim redundant imperatives and normalize java to "for X projects" form

Second self-review pass on PR #8 caught 3 LOW polish issues introduced
by the previous imperative-restoration commit:

- code-graph-analyzer: imperative "Use PROACTIVELY as the pre-computation
  step before parallel reviewers launch." tripled an already-stated concept.
  Shortened to "Use PROACTIVELY before launching parallel reviewers."
- code-reviewer: imperative chained two clauses; "Use immediately after
  writing or modifying code;" duplicated the opener. Trimmed to just
  "MUST BE USED for all code changes."
- java-reviewer: "MUST BE USED for all Java code changes." deviated from
  the "MUST BE USED for X projects." convention all other 9 language
  reviewers (and CLAUDE.md) use. Normalized to "MUST BE USED for Java
  projects."

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* docs: sync version string to v2.0.0 in CLAUDE.md and landing page

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
terry90918 added a commit that referenced this pull request May 30, 2026
…w command (#11)

* docs: overhaul CLAUDE.md with actionable session guidance

Rewrites CLAUDE.md to serve as a genuine Claude Code session guide:
- Add no-build-steps declaration (pure Markdown content repo)
- Add branch workflow, commit type guide with Release Please impact
- Add version drift warning (plugin.json v1.2.0 vs marketplace.json v1.0.0)
- Add agent/skill frontmatter schema reference
- Add environment variables for Bitbucket PR review
- Document --focus options for /review-pr
- Remove discoverable-by-ls content (17 lang reviewer names, 7 predictable command mappings)
- Remove static GitHub repo metadata

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* docs: fix Commands header count and remove stale version snapshot

- Remove "(9 個)" from Commands header (table only shows 2 key entries)
- Replace pinned version numbers with a grep command to verify sync;
  specific versions rot once the drift is fixed

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* docs: improve CLAUDE.md with directory structure, full command list, and agent/command distinction

- Add directory structure overview with .claude-plugin/ explanation
- Add PR creation gh api commands for labels/assignee
- Enumerate all 17 language agents by name
- Expand Commands table to list all 9 language commands
- Note that 10 language agents have no corresponding /xxx-review command
- Add step 5 to "新增 Agent" checklist (update CLAUDE.md counts)
- Add step 4 to "新增 Command" checklist (update CLAUDE.md table)

* docs: improve CLAUDE.md accuracy and completeness

- Fix version sync section: Release Please auto-syncs via extra-files;
  develop branch needs git merge origin/main after each release PR
- Add current version (v1.2.0) to project overview
- Add missing "新增 Skill" workflow (5 steps with subdirectory structure)
- Fix Plugin Manifest update guidance: version is auto-synced, only
  keywords and description need manual updates
- Fix directory structure comment to reflect auto-sync mechanism

* docs: clarify plugin release trigger mechanism

Replace vague "push to main = 自動發布" with accurate flow:
feat/fix commits → Release Please opens release PR on main →
merging that PR triggers new version publish. Prevents confusion
where any push to main is expected to immediately publish.

* feat: add verification layer, incremental review, and linked issues context

Inspired by CodeRabbit's architecture research:

1. /review-pr — Verification layer (Step 4):
   Replace simple dedupe with 5-step verification process:
   contradiction filter, confidence filter (≥80%), FP guard,
   and multi-agent agreement requirement. Batch delivery of
   findings only after all agents complete verification.

2. /review-pr & /code-review — Linked issues context:
   Fetch GitHub issues referenced in PR body (Fixes/Closes/
   Resolves/Related to #N) and include issue title+description
   as review context. Reduces false positives by giving agents
   PR intent beyond just the diff.

3. /code-review — Incremental review mode (--from=<commit>):
   New --from=<commit> flag limits review scope to files changed
   since a given commit/branch (e.g. --from=main, --from=HEAD~3).
   Avoids re-reviewing already-reviewed code on large branches.

* feat: add Code Graph simulation via systematic caller tracing

Closes the biggest recall gap vs CodeRabbit by adding explicit
caller tracing to all three review entry points:

- agents/code-reviewer.md: Expand Step 3 with Caller Tracing block —
  grep for all call sites of modified exported symbols, read 3-5
  most relevant callers before applying review checklist
- commands/review-pr.md: Step 2 now traces callers for each modified
  exported symbol found in the diff before running parallel agents
- commands/code-review.md: GitHub PR Phase 2 CONTEXT gains Step 5
  (Caller Tracing) after changed-files enumeration

All three skip private/test-only symbols to prevent context explosion.

* feat: inject linter output into review context before analysis begins

Phase 3 improvement: move static analysis from post-review validation
to pre-review context building, so agents review code with linter
signals already available.

- commands/code-review.md:
  - Phase 2 gains Step 6 (Static Analysis): run tsc/lint/clippy/vet/ruff
    before review starts, capture output (head -60 per tool)
  - Phase 3 opens with cross-reference instruction: any file:line
    already flagged by linter treated as elevated-confidence finding
  - Phase 4 VALIDATE simplified to test + build only (lint/typecheck
    already ran in Phase 2, results recorded there)
- commands/review-pr.md:
  - Step 2 appends linter capture after caller tracing; output passed
    as context when launching each parallel agent in Step 3

* feat: add structured walkthrough summary to review output

Matches CodeRabbit's approach of always producing a file-by-file
overview before listing findings, giving reviewers an at-a-glance
map of PR scope.

- commands/review-pr.md: new Step 5 generates a Walkthrough table
  (file | change type | one-sentence summary) before posting findings;
  old steps 5-6 renumbered to 6-7
- commands/code-review.md: Phase 6 REPORT template gains a Walkthrough
  section between the decision header and the Summary paragraph

* fix: replace brace expansion with multiple --include flags in caller tracing grep

`--include="*.{ts,tsx,...}"` uses shell brace expansion which grep's fnmatch
does not support — the pattern is matched literally and returns no results,
silently breaking caller tracing. Replaced with individual --include flags in
commands/code-review.md and commands/review-pr.md to match agents/code-reviewer.md.

* fix: address Copilot review findings — grep -oP portability and incremental diff semantics

- Replace `grep -oP` (PCRE, unavailable on macOS BSD grep) with `perl -ne`
  for linked-issue extraction in both code-review.md and review-pr.md;
  also switch from `xargs` to `while read` to avoid executing `gh issue view`
  with no arguments when no issues are linked
- Fix incremental review diff: `git diff --name-only <commit>..HEAD` excludes
  uncommitted working-directory changes; drop `..HEAD` to compare <commit>
  directly against the working tree, consistent with default Local Review Mode

* feat: CodeRabbit-parity upgrades — verification agent, effort score, review profiles, CI checks

Phase 1 quality improvements derived from CodeRabbit architecture research:

- Add verification-reviewer agent: second-pass gate that validates HIGH/CRITICAL
  findings before output, mirroring CodeRabbit's Verification Agent pattern
- Fix review-pr.md Step 4b: CRITICAL findings from security-reviewer now always
  bypass contradiction filter regardless of agent agreement count
- Add Step 3.5 verification pass to /review-pr pipeline; launches verification-
  reviewer after parallel agents complete
- Add Review Effort score (1–5) to /review-pr walkthrough with rubric
- Add NITPICK severity tier to code-reviewer agent (below LOW, style-only)
- Add --profile=chill|assertive flag to /code-review (chill: CRITICAL+HIGH only;
  assertive: all 5 levels including NITPICK, default)
- Add CI check reading (gh pr checks) to GitHub PR Mode Phase 2 as context;
  failing checks elevate related code paths to priority review
- Upgrade HIGH/CRITICAL output format: require diff block + AI Implementation
  Prompt for every actionable finding
- Update agent count to 25 across CLAUDE.md, README.md, docs/index.html

* fix: address Copilot review findings — linked issues multi-match, caller grep -n, pipefail guards

- Fix linked issues perl regex to capture all #N per matching line (handles
  "Fixes #1, #2"); use while(/.../gi) loop instead of single-capture print
- Add read -r to while read loops to handle backslashes correctly
- Change caller tracing grep -l (filenames only) to -n (file:line:match) in
  review-pr.md, code-review.md, and agents/code-reviewer.md — aligns with
  the "read 3–5 most relevant callers" instruction
- Add || true to all static analysis commands (tsc, lint, clippy, vet, ruff)
  to prevent pipefail environments from aborting context collection
- Clarify incremental mode: use git diff <commit> (not <commit>..HEAD) to
  include uncommitted working tree changes; remove ambiguous Phase 2 reference
- CLAUDE.md: rename "Agent Frontmatter 必填欄位" to "建議欄位"; clarify
  name/description/color are required, tools/model are recommended

* docs: update landing page for v1.2.0

- Bump version v1.1.0 → v1.2.0 in nav and footer
- Add verification-reviewer agent card (orange, 通用主審 section)
- Add NITPICK severity row to severity table
- Add --profile=chill|assertive to /code-review syntax and profile section
- Add Verification Pass (Step 3.5) and Walkthrough/Effort Score sections to /review-pr

* docs: update README and CLAUDE.md for v1.2.0 features

README.md:
- Add verification-reviewer to 通用主審 agents table
- Update architecture diagram to include verification-reviewer
- Update feature table: parallel review now mentions verification pass

CLAUDE.md:
- Add design principles 6 (verification gate) and 7 (NITPICK tier)

* docs: improve CLAUDE.md with quick-reference table and local verification guide

Add 常用操作速查 index table at top for faster session orientation, and
新增 本地驗證 section with commit checklist to prevent common omissions
(missing README/index.html/CLAUDE.md count updates after adding agents).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* docs: improve CLAUDE.md — fix /reload-plugins format and clarify version sync trigger

- Move /reload-plugins out of bash block (it's a Claude Code slash command,
  not a shell command) to prevent new contributors from running it in terminal
- Add count verification one-liner to detect stale agent/command/skill counts
- Add git log check to surface when develop branch needs version sync

* feat: upgrade review pipeline to CodeRabbit-parity quality

Phase 1 — Signal-to-Noise Filter + Evidence Gate:
- commands/code-review.md: severity-based delivery (CRITICAL/HIGH as inline
  comments with suggestion blocks, MEDIUM as summary table, LOW/NITPICK as
  collapsible <details>); Phase 6.5 auto-updates PR description with review
  summary; Phase 1.5 CLASSIFY routes DOCS/CONFIG to Fast Path, LOGIC/SECURITY
  to Slow Path; Phase 8 saves last-reviewed commit for incremental tracking;
  Phase 2 Step 1 loads .claude/review-paths.yaml for path-based rules;
  Bitbucket Phase 7 updated to match three-step severity delivery
- commands/review-pr.md: Step 5 posts walkthrough as dedicated first comment
  (before findings) with optional Mermaid sequence diagram; Step 6 rewritten
  to severity-based delivery with inline suggestion blocks; pr-walkthrough-writer
  added to parallel agent list
- agents/verification-reviewer.md: Gates 1 and 3 now require mandatory Bash
  commands (grep/Read) before any verdict; CONFIRMED output includes Evidence
  and Caller check fields; Confidence Standard updated to require actual
  command output

Phase 2 — New agent:
- agents/pr-walkthrough-writer.md: new agent that generates file-change table
  and Mermaid sequence diagrams; used in /review-pr parallel step

Update counts: 25 → 26 agents, 6 → 7 parallel agents in /review-pr

* feat: add code-graph-analyzer agent with .claude/code-graph/ persistence

New agent performs sequential pre-computation before parallel reviewer
agents launch:
- L2: grep-based import dependency tracing (1 BFS hop) — identifies
  files NOT in the diff but that depend on changed code
- L3: git log co-change risk analysis (last 50 commits) — surfaces
  files historically paired with changed files but absent from this PR
- SHA-based cache in .claude/code-graph/ — reuses map across sessions
  when HEAD commit matches; cache miss triggers fresh computation

Integration:
- /review-pr Step 2.5: runs code-graph-analyzer sequentially, injects
  IMPACT_MAP into each parallel agent's prompt as context
- /code-review Phase 2.5: same pattern for local diff and PR modes

Also updates all documentation (README, CLAUDE.md, docs/index.html)
to reflect 27 agents total.

* fix: correct stale agent counts in docs — 26→27, 25→27, 六→七 parallel

Address claude-review HIGH finding and Copilot suppressed comments:
- docs/index.html meta description: 26-agent → 27-agent
- docs/index.html stat-num Parallel PR Agents: 6 → 7
- docs/index.html lead paragraph: 25 個 → 27 個
- docs/index.html feature list: 25 Reviewer → 27 Agent, 六並行 → 七並行
- docs/index.html parallel section description: 6 → 7 + add code graph context
- README.md architecture tree: 25 個 reviewer agents → 27 個 agent (×2)

* fix: address Copilot PR review findings (7 items)

- commands/code-review.md: unify Phase 1.5 \$NUMBER/\${NUMBER} → <NUMBER> placeholder
- commands/code-review.md: clarify .claude/review-paths.yaml is optional user-created file
- agents/verification-reviewer.md: add || true to Gate 1 and Gate 3 grep to survive set -e/pipefail
- agents/code-graph-analyzer.md: exclude test files (*.test.*, *.spec.*, __tests__) from L2b dependents scan
- agents/code-graph-analyzer.md: add .git and test file exclusions to require() style scan
- CLAUDE.md: clarify docs: goes to CHANGELOG but doesn't trigger version bump (not completely ignored)

* fix: patch 2 HIGH shell injection vulnerabilities

- commands/code-review.md Phase 6.5: replace --body "\$STRIPPED..." with
  printf pipe to --body-file - to prevent shell injection from PR body
  containing quotes or \$(command) subshells
- agents/code-graph-analyzer.md L3: pass \$FILE via env var (FILE="\$FILE"
  python3) instead of interpolating into -c string, preventing injection
  from malicious filenames with shell metacharacters

* fix: address Copilot PR review round 2 (4 items)

- agents/code-graph-analyzer.md: move node_modules/.git/test exclusions
  from output filtering (| grep -v) to search stage (--exclude-dir/--exclude)
  for faster scan within the 60s time budget
- agents/verification-reviewer.md: change Gate 3 grep from BRE \| to
  ERE (-ERn with |) for portability; add --exclude-dir for node_modules/.git
- agents/pr-walkthrough-writer.md: wrap Step 5 example in 4-backtick
  fence so inner ```mermaid block doesn't break the outer code fence
- commands/review-pr.md: add security-reviewer back to Step 3 parallel
  agents list (was missing, causing contradiction with Step 3.5/4b
  exception rules); update 七→八 agent count in CLAUDE.md/README/docs

* fix: address CodeRabbit review (6 items)

- commands/code-review.md: add text/markdown language tags to bare code
  fences in Step 7a (MD040); add profile gate notes to Step 7b/7c so
  --profile=chill correctly suppresses MEDIUM/LOW/NITPICK sections
- commands/review-pr.md: add text/markdown language tags to bare fences
  at Step 2.5 impact map block and Step 6a comment/suggestion blocks
- docs/index.html: fix Parallel PR Agents stat 7→8; add security-reviewer
  and pr-walkthrough-writer rows to parallel agents table (was 6, now 8)
- README.md: fix stale "6 個專項 agent" → "8 個專項 agent" in section 3

* fix: restore CRITICAL protection to all agents, not just security-reviewer

Step 3.5 and Step 4b exception rules were narrowed to security-reviewer
only, violating CLAUDE.md Design Principle #6 ('CRITICAL 不可被移除,最多降為
HIGH' — no agent-source qualifier). Expand both rules back to 'any agent'
and drop the redundant note on the security-reviewer list entry.

* docs: fix index.html — remove stale security-reviewer CRITICAL note, add principles #6/#7

- Parallel agents table: remove misleading 'CRITICAL 不可被移除' from
  security-reviewer row (rule now applies to all agents, not just this one)
- Design Principles: add #6 Verification gate (CRITICAL 最多降為 HIGH) and
  #7 NITPICK 分層 (--profile=chill skips MEDIUM/LOW/NITPICK) to align with
  CLAUDE.md which lists 7 principles

* fix: sync review-pr argument-hint and clarify /review-pr parallel composition in CLAUDE.md

- commands/review-pr.md: fix argument-hint from stale security|performance|types|tests
  to comments|tests|errors|types|code|simplify (matches usage text and agent mapping)
- CLAUDE.md: add note to /review-pr 協作 section clarifying full 8-agent parallel list
  = code-reviewer + security-reviewer (通用主審) + 6 協作 agents

* docs: update /review-pr --focus examples to match argument-hint

Replace stale security/performance focus values with the correct
options: comments|tests|errors|types|code|simplify.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* docs: update README --focus examples and add design principles #6-#7

- Fix stale --focus values (security/performance → comments/errors/code/simplify)
- Add principle #6: Verification gate (CRITICAL cannot be dropped)
- Add principle #7: NITPICK 分層 (--profile=chill vs assertive)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix: address code review findings — CRITICAL protection, grep safety, incremental clarity, L2 language coverage

- verification-reviewer: INVALID/FALSE POSITIVE verdicts now demote CRITICAL to HIGH instead of removing entirely; protection extended from security-reviewer-only to all agents
- verification-reviewer Gate 1: use -F (fixed-string) grep to prevent regex metacharacters in finding descriptions causing false INVALID demotions
- verification-reviewer Gate 3: use -r instead of -R to prevent symlink infinite loops in pnpm monorepos
- code-review Phase 5: add explicit CRITICAL_COUNT/HIGH_COUNT/MEDIUM_COUNT/LOW_COUNT counting step so Phase 6.5 SUMMARY_BLOCK has real values instead of empty strings
- code-review Phase 1.5: reframe incremental detection as skip-if-unchanged gate (not diff-scoping), add explanatory note; store LOGIC_FILES/SECURITY_FILES in arrays instead of echo-only
- code-review Phase 2.5: pass ${LOGIC_FILES[@]} and ${SECURITY_FILES[@]} arrays explicitly to code-graph-analyzer
- code-graph-analyzer Step 2b: add language-specific import patterns for Python, Java/Kotlin, Rust, Swift, C#, Ruby, PHP; add --include=*.rb and --include=*.php to fix silent gap for files classified as LOGIC
- docs/index.html: add 前置分析 sidebar nav link pointing to #agents-graph section

* docs: update landing page — verification-reviewer CRITICAL protection + code-graph-analyzer multi-language L2 coverage

* fix: address code review findings — LOGIC extensions and bash tag

- Add missing file extensions (.cpp/.dart/.vue etc.) to LOGIC case in
  Phase 1.5 classifier; previously C++ and Flutter PRs fell through to
  OTHER and triggered the Fast Path, causing logic review to be silently
  skipped (#4372102283, claude[bot] HIGH)
- Add bash language tag to /review-pr example code block in README.md
  (#4372111736, CodeRabbit)

* fix: address code review findings — 15 correctness and structural bugs

Fixes 15 bugs found by /code-review #4 across the multi-agent PR review pipeline:

**verification-reviewer**: UNCERTAIN verdict now includes CRITICAL carve-out,
preventing silent removal of CRITICAL findings (were silently dropped before).

**review-pr**: Step 4b exception now explicitly covers CRITICAL→HIGH demotions
by verification-reviewer; Step 4f defines LOW_COUNT/LOW_NITPICK_LIST variables;
Step 3 adds --focus filtering table; Step 3 captures pr-walkthrough-writer output
as WALKTHROUGH_OUTPUT; Step 5a references WALKTHROUGH_OUTPUT; Step 6b adds BLOCK
tier for CRITICAL; Step 6c Bitbucket uses LOW_NITPICK_LIST; Steps 7–9 added
(idempotent PR description update + findings report + gated SHA tracking);
file classification added with SECURITY before TEST classifier order.

**code-review**: Fast Path contradiction resolved (skip Phases 2–5, secret scan
only); Phase 8 SHA write gated on Phase 7 success; SECURITY classifier moved
before TEST; bash arrays replaced with portable space-separated strings;
`git rev-parse --short` fixed to `--short=8`; orphan cr-summary:start tag
cleanup added to Phase 6.5 python3 snippet.

**code-graph-analyzer**: Step 5 heredoc replaced with Write tool instruction
so actual generated content is cached instead of literal placeholder text.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix: address second code review pass — 15 correctness and structural fixes

- code-review.md: Fast Path now jumps to Phase 7 (gh pr review --approve) instead
  of Phase 6 (local artifact only); LOW_NITPICK_LIST added to Phase 5 count block;
  BLOCK header prepend code added to Phase 7b for CRITICAL findings; CI check item 7
  moved inside Phase 2 (before Phase 2.5); CRLF-safe tr -d '\r' in CHANGED_FILES;
  Phase 8 SHA-save gated with executable if [ REVIEW_EXIT -eq 0 ]

- review-pr.md: skip-if-unchanged check physically moved before Step 1 (was a
  deferred instruction at Step 9); headRefOid added to Step 1 gh pr view --json
  for cache key availability; BLOCK header prepend code added to Step 6b; Step 3.5
  now explicitly carries forward UNCERTAIN HIGH→MEDIUM findings (not CONFIRMED-only);
  unknown --focus value validation added with error message; CRLF-safe tr -d '\r';
  Step 9 SHA-save gated with executable conditional

- code-graph-analyzer.md: cache-hit stop gate made emphatic (bold warning, explicit
  "Do NOT proceed to Steps 2–5"); L2 basename grep patterns anchored — JS/TS now
  requires BASENAME preceded by / or quote; Python/Java/Kotlin/Rust use \b word
  boundaries to prevent substring false positives

- verification-reviewer.md: INVALID row split — "FIXED IN THIS PR" is a new verdict
  that removes findings at any severity (PR itself is the fix); Gate 1 teaches agent
  to distinguish never-existed vs fixed-in-diff; UNCERTAIN HIGH demotion criterion
  made concrete (objectively risky pattern required, not just unclear trigger)

* docs: sync verification-reviewer semantics across all documentation

Update docs/index.html, CLAUDE.md, and README.md to accurately reflect
the current behavior of verification-reviewer and /review-pr Step 3.5:

- Step 3.5 now carries forward UNCERTAIN HIGH→MEDIUM findings in addition
  to CONFIRMED findings (previously stated "only confirmed survive")
- New "FIXED IN THIS PR" verdict removes findings at any severity when
  the issue is resolved by another hunk in the same diff (no CRITICAL
  protection applies here — the PR itself is the fix)
- verification-reviewer description updated to list all three outcomes:
  CONFIRMED kept, UNCERTAIN→MEDIUM kept, FIXED IN THIS PR removed

* docs: sync version string to v1.3.0 in CLAUDE.md and landing page

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* feat!: unify all review commands into a single auto-dispatching /code-review

Collapse the 9 slash commands into one /code-review entry point that
auto-detects the language/framework of changed files and dispatches the
matching specialist reviewer agents — no per-language command needed.

- Remove /review-pr and the 7 language commands (cpp/fastapi/flutter/go/
  kotlin/python/rust); fold their multi-agent parallel + verification
  capability into /code-review.
- Add Language/Framework Auto-Dispatch: by file extension (.py→python-
  reviewer, .go→go-reviewer, …), refined by content for frameworks
  (Django/FastAPI/Flutter). Detected-only, zero match = zero waste.
- Both local and PR modes now run the same full pipeline (code-graph →
  8 general agents + dispatched specialists → verification Phase 3.5 →
  aggregate). Local reports to terminal; PR publishes to GitHub/Bitbucket.
- Keep --focus and --profile flags.
- Sync CLAUDE.md, README.md, docs/index.html (badges/stats 9→1,
  architecture, sidebar, contributing guide).

BREAKING CHANGE: /review-pr and all /<lang>-review commands are removed.
Use /code-review for everything — language specialists are now dispatched
automatically based on the changed files.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* chore: correct plugin manifest descriptions (27 agents, single command)

plugin.json and marketplace.json described 24 reviewer agents (actual: 27)
and parallel PR review commands; after the 9-to-1 refactor there is a single
/code-review command that auto-dispatches language specialists. Sync all
three description strings to match.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* feat: align all 27 agents with official plugin-dev triggering format

Audited the plugin against the plugin-dev skills (plugin-structure,
agent-development) and applied the validated improvements:

- Rewrite every agent description to the official triggering shape
  (Use this agent when... Typical triggers include... See When to invoke)
  and add a ## When to invoke body section with third-person scenario
  bullets. Improves auto-dispatch hit rate; passes validate-agent.sh with
  zero errors.
- Fix verification-reviewer color orange -> yellow (orange is outside the
  official validator color set); sync the docs marker.
- Open the six analyzer agent prompts in second person where missing.
- Add homepage to plugin.json (parity with marketplace.json).
- Document the triggering-format convention + validator command in CLAUDE.md.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* feat: rewrite skill descriptions to official third-person triggering format

Per the plugin-dev skill-development spec, skill descriptions should use
third person ("This skill should be used when...") with specific trigger
phrases so Claude activates them reliably. All three skills used the
wrong person or had no triggers:

- security-review: "Use this skill when..." -> third person, fuller triggers
- security-scan: content blurb -> "This skill should be used when the user
  asks to scan .claude config / audit hooks/MCP/agents..."
- flutter-dart-code-review: content blurb -> "This skill should be used
  when reviewing Flutter/Dart code or .dart changes..."

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* fix: address PR #8 review — When-to-invoke placement, color note, stale ref

Resolves findings from the PR #8 reviews (claude, Copilot, CodeRabbit):

- Move ## When to invoke to immediately after frontmatter (before
  ## Prompt Defense Baseline) in the 7 agents where it was placed lower:
  go, python, rust, typescript reviewers + silent-failure-hunter,
  type-design-analyzer, pr-walkthrough-writer. Matches the documented
  agents/**/*.md convention; pure section move, no content change.
- CLAUDE.md color note: reword the contradictory parenthetical so it
  clearly states only blue/cyan/green/yellow/magenta/red are valid and
  orange/purple/gray are not.
- code-graph-analyzer description: drop the stale /review-pr Step 2.5
  reference, keep /code-review Phase 2.5.

Re-validated: validate-agent.sh 0 errors across all 27; When-to-invoke
now precedes Prompt Defense Baseline in every agent.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* fix: restore proactive dispatch imperatives + true-yellow color (self-review)

Addresses findings from /code-review #8 (recall-biased pass) on this PR:

- Restore the proactive-dispatch imperatives the triggering-format rewrite
  had stripped from 15 agent descriptions (verified 15 deleted, 0 retained):
  "MUST BE USED for X projects" on the language/framework reviewers, and
  "Use PROACTIVELY ..." on code-reviewer, security-reviewer, database-reviewer,
  code-graph-analyzer, verification-reviewer. Kept inside the official
  "Use this agent when... Typical triggers include..." format so both signals
  coexist. validate-agent.sh still 0 errors; all 27 still start with the
  required phrase.
- docs/index.html: verification-reviewer card #a06818 (the --amber token, an
  orange shade) -> #9a8200 (true yellow) so the landing page matches the
  yellow label used in frontmatter/README/CLAUDE.md.
- CLAUDE.md: document that descriptions must keep the imperative alongside the
  triggering format; note the validator requires the plugin-dev plugin and how
  to locate the script if the cache path differs.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* fix(agents): 補上 6 個 language/framework agent 缺漏的 MUST BE USED 強觸發語

回應 PR #8 code review(HIGH):本 PR 在 CLAUDE.md 引入「語言/框架 agent 描述須含
MUST BE USED for X projects.」規則,但這 6 個 agent 改寫 description 後未加,與
cpp/go/python 等 11 個同類不一致,降低自動 dispatch 命中率。

於各 description 末(See "When to invoke" 之前)補上:
- fastapi-reviewer:        MUST BE USED for FastAPI projects.
- flutter-reviewer:        MUST BE USED for Flutter projects.
- healthcare-reviewer:     MUST BE USED for healthcare and EMR/EHR projects.
- kotlin-reviewer:         MUST BE USED for Kotlin and Android/KMP projects.
- mle-reviewer:            MUST BE USED for ML/MLOps projects.
- network-config-reviewer: MUST BE USED for network configuration reviews.

官方 validate-agent.sh:6 檔全 PASS(exit 0)。

* fix: trim redundant imperatives and normalize java to "for X projects" form

Second self-review pass on PR #8 caught 3 LOW polish issues introduced
by the previous imperative-restoration commit:

- code-graph-analyzer: imperative "Use PROACTIVELY as the pre-computation
  step before parallel reviewers launch." tripled an already-stated concept.
  Shortened to "Use PROACTIVELY before launching parallel reviewers."
- code-reviewer: imperative chained two clauses; "Use immediately after
  writing or modifying code;" duplicated the opener. Trimmed to just
  "MUST BE USED for all code changes."
- java-reviewer: "MUST BE USED for all Java code changes." deviated from
  the "MUST BE USED for X projects." convention all other 9 language
  reviewers (and CLAUDE.md) use. Normalized to "MUST BE USED for Java
  projects."

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* docs: sync version string to v2.0.0 in CLAUDE.md and landing page

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix: use fully-qualified agent names in code-review command

All agent references in commands/code-review.md changed from short names
(e.g. `code-reviewer`) to namespaced form (`code-review:code-reviewer`).

Plugin agents register in Claude Code's subagent registry under the
`<plugin-name>:<agent-name>` namespace. Without the prefix, registry
lookup fails and Claude falls back to `general-purpose` instead of the
intended specialist agent — losing its specialized system prompt,
tools, and review logic.

Covers: all add_agent() calls, Phase 3 pool, focus-filter table,
Phase 2.5, Phase 3.5, and all prose references.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix: namespace database-reviewer comment in migration detection

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix: align database-reviewer tools and color with other language reviewers

Remove Write and Edit tools (review-only, not edit), change color from
yellow to blue to match the standard language reviewer profile.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants