review
Local pre-commit review of unstaged/staged diff against the Darkroom quality checklist (TypeScript, React, a11y, perf, security). Also summarizes inbound PR review comments on the active PR. Distinct from native /review which inspects open PRs. Triggers "review my changes", "check this diff", "feedback on this code", "PR comments", "what did reviewers say", "summarize PR feedback", post-implementation self-review before commit.
适合你,如果你希望在提交前获得代码质量检查并快速了解PR评审意见
npx oh-my-skill add darkroomengineering/cc-settings/reviewcurl -fsSL https://oh-my-skill.com/install.sh | bash -s -- darkroomengineering/cc-settings/reviewnpx oh-my-skill verify darkroomengineering/cc-settings/review怎么用
商店整理自技能原文 · 版本 fa04efc · 表述以原文为准安装后,Claude 可以审查本地代码暂存区的差异,对照 TypeScript、React、可访问性、性能、安全等质量清单给出建议;也可以汇总当前分支上活跃 PR 的审查评论,按严重程度分组输出。
当你说“审查我的改动”、“检查这段代码差异”或“总结 PR 评论”时触发。
技能原文 SKILL.md
Code Review
Reviews against the full Darkroom quality checklist defined in the reviewer agent.
Focus areas: TypeScript strictness, React patterns, accessibility, performance, security, file structure.
Current State
- Branch: !
git branch --show-current 2>/dev/null || echo "unknown" - Staged files: !
git diff --staged --stat 2>/dev/null || echo "nothing staged" - Unstaged files: !
git diff --stat 2>/dev/null || echo "nothing unstaged"
Get Changes
# Unstaged changes git diff # Staged changes git diff --staged # Specific file git diff path/to/file
Cross-model review (when the Codex bridge is available)
This skill runs as the Claude reviewer agent — often Claude reviewing a diff Claude just wrote, the self-preferential-bias case. Run an independent review from a different model family in parallel and reconcile (the reviewer has Bash, so call the bridge directly):
bun "$HOME/.claude/src/scripts/codex-run.ts" review
Codex reads the same diff and returns HIGH / MEDIUM / LOW findings. Adjudicate every finding before it drives a fix — Codex produces false positives and stale findings, so its output is a set of claims, not a verdict. Tag each one:
- confirmed — you reproduced or traced it in the diff. Only confirmed findings drive a fix or land as Critical.
- rejected — a false positive or stale claim; note the one-line reason you rejected it.
- unverified — you couldn't check it cheaply; surface it as a Suggestion for a human, don't act on it.
Then fold the confirmed findings into the verdict below — map HIGH→Critical, MEDIUM→Warning, LOW→Suggestion. Agreement with your own review raises confidence. The bridge is gated and fails open: if Codex is unavailable, proceed with the Claude review alone.
Output Format
## Summary [1-2 plain-English sentences: what this change does, then your overall read] ## Critical Issues - [Must fix before merge] ## Warnings - [Should fix, but not blocking] ## Suggestions - [Nice to have improvements] ## Verdict [APPROVED / NEEDS CHANGES / BLOCKED]
Remember
- Be constructive, not just critical
- Explain WHY something is an issue
- Comments in plain English — explain the issue and its impact like you're talking to a teammate, not citing a rulebook. No jargon dump.
- Suggest specific fixes
- If you find a pattern worth remembering, save it via auto-memory (personal) or
/share-learning(team-wide). - Escalate to
/verifywhen the diff touches auth, payments, crypto, input validation, or a breaking public API — this skill is the fast checklist pass;/verifyruns three adversarial agents (issue-finder, disprover, judge) and is the gate for security-sensitive or financial code.
Variant: Summarize Inbound PR Comments
When the user asks "what did reviewers say" or wants a digest of feedback on the active PR (not a self-review of local diff):
- Resolve the active PR for the current branch.
- Fetch review comments (file/line-anchored) and discussion comments (issue-level).
- Group by severity — blocking, suggestion, nit, open question.
- Return an action list ordered by priority.
Commands
# Resolve the active PR
gh pr view --json number,url,headRefName,reviews,comments
# Inline review comments (file/line anchored)
gh api repos/{owner}/{repo}/pulls/PR_NUMBER/comments \
--jq '.[] | {user: .user.login, body, path, line}'
# Discussion comments (issue-level, not file-anchored)
gh api repos/{owner}/{repo}/issues/PR_NUMBER/comments \
--jq '.[] | {user: .user.login, body, created_at}'
# Review states (APPROVED / CHANGES_REQUESTED / COMMENTED)
gh pr view --json reviews --jq '.reviews[] | {user: .author.login, state, body}'
Output Format
## Summary [1-2 sentence overview of feedback] ## Blocking (must address) - [reviewer]: [path:line] — [issue + suggested fix] ## Suggestions (should address) - [reviewer]: [path:line] — [issue] ## Nits (optional) - [reviewer]: [path:line] — [issue] ## Open questions - [unresolved threads needing a reply]
Guardrails
- Quote actual reviewer text. Do not paraphrase in ways that change meaning.
- Group by severity, not by reviewer.
- If a reviewer didn't mark severity explicitly, infer from language ("must", "should", "consider", "nit:").