본문으로 건너뛰기
cccskills
무료GitHub에 공개

review

Risk-tiered code review (Blocker / High / Medium / Low). Use when the user runs /review or wants the current branch or diff reviewed.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

연동 도구GitHub
설치 방법 보기

포함된 파일(2)

  • SKILL.md6.3 KB
  • agents/openai.yaml221 B

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

/review — Risk-Tiered Code Review

Performs a structured code review with four risk tiers. Produces an AC Trace Matrix.

Optional council deliberation

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.

Usage

/review                      # Review current branch vs main
/review feat/T-42-my-feature # Review specific branch
/review #17                  # Review PR by number

Step 1 — Get the Diff

# 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

Step 2 — Read the Context

Before reviewing, understand intent:

  1. Read the PR/commit description
  2. Read the Beads task and its AC (if available)
  3. Read the knowledge file for the affected repo, if it has one: 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.
  4. Spot-check 2-3 key files to understand the full context (not just the diff)

Step 3 — Risk-Tiered Analysis

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.

Blocker — Must fix. Blocks PASS.

CategoryWhat to look for
SecurityHardcoded secrets, SQL injection, path traversal, XSS, auth bypass, unsafe deserialization
Data lossDestructive operations without confirmation, missing rollback, irreversible mutations
CredentialsAPI keys, passwords, tokens, private keys committed
Critical bugsOff-by-one in auth/payment code, null deref crashes in critical paths

High — Must fix. Blocks PASS.

CategoryWhat to look for
Error handlingUncaught exceptions in async code, silent failures, missing error boundaries
Type safetyany without justification, unsafe casts, missing null checks
Test gapsNew code paths with zero test coverage
Breaking changesChanged public interfaces without migration path
PerformanceN+1 queries, unbounded loops, blocking the main thread

Medium — Does not block. Create follow-up task.

CategoryWhat to look for
Code qualityDeeply nested logic, functions >50 lines, duplicated logic
Edge casesMissing validation for empty arrays, zero, empty strings
ObservabilityMissing logs/metrics for significant operations
NamingMisleading variable or function names

Low — Optional. Minor polish.

CategoryWhat to look for
StyleMinor formatting inconsistencies
DocsMissing JSDoc for public APIs
Naming nitsSlightly unclear names (not misleading, just verbose)

Step 4 — AC Trace Matrix

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.


Step 5 — Rework (if needed)

If Blocker or High findings exist:

  1. List all Blocker and High findings clearly
  2. Ask the worker/author to address them
  3. Maximum 2 rework iterations

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:

  • Revert the implementation
  • File a Beads bug with all findings
  • Close the review with FAIL status

Step 6 — Final Verdict

PASS

  • Zero Blockers
  • Zero High findings (or all fixed)
  • AC Trace Matrix complete
bd comments add <TASK-ID> "review: PASS — 0B/0H/2M/1L"

FAIL

  • Any unfixed Blockers or High findings
bd comments add <TASK-ID> "review: FAIL — 1B/2H/0M/0L — reverted"

Output Format

## 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

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

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.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

jupes/agent-forge-harness22026년 10월 19일 업데이트

add-repo

무료

Register a new sub-repo in the knowledge base.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

jupes/agent-forge-harness22026년 10월 19일 업데이트

Add focused Bun unit tests for mission-critical behavior and edge cases — not blanket coverage.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

jupes/agent-forge-harness22026년 10월 19일 업데이트

ask

무료

Answer questions about the codebase from knowledge files. Use when the user runs /ask or asks a domain/knowledge question about the repos.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

jupes/agent-forge-harness22026년 10월 19일 업데이트

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).

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

jupes/agent-forge-harness22026년 10월 19일 업데이트

Choose Beads issue priority (P0–P4, numeric, or named) from urgency, impact, and risk when creating or triaging work.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

jupes/agent-forge-harness22026년 10월 19일 업데이트

jupes의 스킬 모두 보기

이 스킬의 문제 신고