add-bead
免费Capture free-text work as a tracked Beads issue. Use when the user runs /add-bead or wants to quickly file a Beads issue.
中文简介正在准备中。当前显示原文说明。
Risk-tiered code review (Blocker / High / Medium / Low). Use when the user runs /review or wants the current branch or diff reviewed.
中文简介正在准备中。当前显示原文说明。
安装前可以查看交给 AI 代理的指令内容。
Performs a structured code review with four risk tiers. Produces an AC Trace Matrix.
When the user includes --council <profile-path>, follow .claude/commands/council.md after collecting the diff, acceptance criteria, and context below. For a PR use the pr source; for a local branch supply the captured diff and context as text. Treat the council transcript as additional review evidence, preserve dissent and limitations, and still complete the AC Trace Matrix. Never silently substitute the key-free demo for a real review. Council findings do not authorize code changes or GitHub publication.
/review # Review current branch vs main
/review feat/T-42-my-feature # Review specific branch
/review #17 # Review PR by number
# For a branch
git diff main..<branch> --stat # File overview
git diff main..<branch> # Full diff
# For a PR
gh pr diff <number>
gh pr view <number> --json title,body,commits
Also fetch the task details (if a Beads ID is findable from branch name or PR body):
bd show <TASK-ID> 2>/dev/null || true
Before reviewing, understand intent:
cat knowledge/repos/<repo>.yaml 2>/dev/null || echo "no knowledge file for <repo>". A repo has one only after /add-repo or /sync-knowledge has been run for it, and knowledge/repos/ is empty in a fresh checkout; with none, review from the diff and the files around it.Evaluate the diff against all four tiers. Rate each finding.
For UI-facing changes, also apply .claude/protocols/evaluation-rubric.md (visual design / originality vs generic patterns) in addition to the tiers below — surface HIGH findings when polish or product depth misses stated intent, not only when code is broken.
| Category | What to look for |
|---|---|
| Security | Hardcoded secrets, SQL injection, path traversal, XSS, auth bypass, unsafe deserialization |
| Data loss | Destructive operations without confirmation, missing rollback, irreversible mutations |
| Credentials | API keys, passwords, tokens, private keys committed |
| Critical bugs | Off-by-one in auth/payment code, null deref crashes in critical paths |
| Category | What to look for |
|---|---|
| Error handling | Uncaught exceptions in async code, silent failures, missing error boundaries |
| Type safety | any without justification, unsafe casts, missing null checks |
| Test gaps | New code paths with zero test coverage |
| Breaking changes | Changed public interfaces without migration path |
| Performance | N+1 queries, unbounded loops, blocking the main thread |
| Category | What to look for |
|---|---|
| Code quality | Deeply nested logic, functions >50 lines, duplicated logic |
| Edge cases | Missing validation for empty arrays, zero, empty strings |
| Observability | Missing logs/metrics for significant operations |
| Naming | Misleading variable or function names |
| Category | What to look for |
|---|---|
| Style | Minor formatting inconsistencies |
| Docs | Missing JSDoc for public APIs |
| Naming nits | Slightly unclear names (not misleading, just verbose) |
Map each acceptance criterion to how it is verified:
## AC Trace Matrix
| Criterion | Verified By | Status |
|-----------|-------------|--------|
| User can update display name | `useUserSettings.test.ts:42` | ✓ |
| Error shows if API fails | `UserSettingsPage.test.tsx:89` | ✓ |
| Settings persist after refresh | Manual: navigate away and back | ✓ |
| Cannot set empty display name | `useUserSettings.test.ts:67` | ✓ |
If a criterion has no test and no documented manual verification: flag as High finding.
If Blocker or High findings exist:
After each rework: re-run the review against the updated diff.
Log the result: bd comments add <TASK-ID> "review: iteration <n> — <finding counts>"
If issues remain after 2 iterations:
bd comments add <TASK-ID> "review: PASS — 0B/0H/2M/1L"
bd comments add <TASK-ID> "review: FAIL — 1B/2H/0M/0L — reverted"
## Code Review: feat/T-42-refresh-tokens
Files reviewed: 4 (+187 / -23 lines)
Task: T-42 — Add refresh token rotation
### Findings
🔴 BLOCKER (0)
🟠 HIGH (1)
- src/api/auth.ts:87 — Missing error handling on token refresh failure.
Async function with no try/catch; unhandled promise rejection in production.
Fix: wrap in try/catch, return error state to caller.
🟡 MEDIUM (2)
- src/hooks/useAuth.ts:34 — refreshToken function is 60+ lines. Consider splitting.
- src/api/auth.ts — No logging on token rotation for audit trail.
⚪ LOW (0)
### AC Trace Matrix
| Criterion | Verified By | Status |
|-----------|-------------|--------|
| Token rotates on use | useAuth.test.ts:112 | ✓ |
| Old token rejected after rotation | useAuth.test.ts:134 | ✓ |
| Error state on network failure | ✗ NOT COVERED | — |
### Verdict: FAIL — 0B/1H/2M/0L
AC criterion "Error state on network failure" is untested.
Address HIGH finding and add error state test, then re-review.
Rework iteration: 1/2
还没有评价。欢迎分享你的使用感受。
无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。
还没有评论。来写第一条吧。
Capture free-text work as a tracked Beads issue. Use when the user runs /add-bead or wants to quickly file a Beads issue.
中文简介正在准备中。当前显示原文说明。
Register a new sub-repo in the knowledge base.
中文简介正在准备中。当前显示原文说明。
Add focused Bun unit tests for mission-critical behavior and edge cases — not blanket coverage.
中文简介正在准备中。当前显示原文说明。
Answer questions about the codebase from knowledge files. Use when the user runs /ask or asks a domain/knowledge question about the repos.
中文简介正在准备中。当前显示原文说明。
Meta-skill for creating Agent Forge skills under .claude/skills/ with SKILL.md, optional references/ and scripts/, and Bun scaffolds. Use when the user wants to add or author a skill, scaffold a new skill folder, or align skill docs with harness conventions (JSON script output, Beads for tasks).
中文简介正在准备中。当前显示原文说明。
Choose Beads issue priority (P0–P4, numeric, or named) from urgency, impact, and risk when creating or triaging work.
中文简介正在准备中。当前显示原文说明。