Harness Review
SkillSecurityMulti-angle code and plan review with security, scope, and UI profiles. Use when reviewing code, plans, PRs, or running pre-merge quality gates.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Harness Review skill
What this skill tells your AI
The instructions your AI receives, as published by tim-hub/powerball-harness in harness/skills/harness-review/SKILL.md and read by ahel’s review.
Quick Reference
| User Input | Subcommand | Behavior |
|---|---|---|
| "Review this" / "review" | code (auto) | Code review (recent changes) |
"After harness-plan" | plan (auto) | Plan review |
| "Check scope" | scope (auto) | Scope analysis |
harness-review code | code | Force code review |
harness-review plan | plan | Force plan review |
harness-review scope | scope | Force scope analysis |
harness-review --dual | code (auto) + Codex parallel | Claude + Codex dual review |
harness-review --security | Security Review | OWASP Top 10 dedicated security review (read-only) |
harness-review --ui-rubric | UI Rubric Review | 4-axis design quality scoring |
Operating Modes
Maps flags to their reference files. Quick Reference above covers trigger → subcommand routing; this table covers flag → reference dispatch.
| Flag | Reference | Purpose |
|---|---|---|
--quick | ${CLAUDE_SKILL_DIR}/references/codex-closeout.md | Lightweight Codex-assisted closeout; stops on clean result |
--codex-closeout | ${CLAUDE_SKILL_DIR}/references/codex-closeout.md | Full closeout with final JSON report |
--team-debate | ${CLAUDE_SKILL_DIR}/references/team-debate.md | Multi-agent read-only debate (Spec / Plans / Regression / Skeptic agents) |
--opencode | ${CLAUDE_SKILL_DIR}/references/opencode-review.md | OpenCode-assisted review via opencode-plugin-cc |
| (any mode) | ${CLAUDE_SKILL_DIR}/references/governance.md | APPROVE pass criteria, severity table, AskUserQuestion contract |
| (any mode) | ${CLAUDE_SKILL_DIR}/references/code-review.md | Eight-lens review flow and verdict rules |
--team-debate is required when changes span multiple modules, touch security/auth/release, or when the same issue fails two consecutive post-fix re-reviews (see governance.md).
Options
| Option | Default | Description |
|---|---|---|
--dual | none | Parallel Claude + Codex review. Details: ${CLAUDE_SKILL_DIR}/references/dual-review.md |
--security | none | OWASP Top 10 security-only review (read-only). Details: ${CLAUDE_SKILL_DIR}/references/security-profile.md |
--ui-rubric | none | 4-axis design quality scoring (0–10). Details: ${CLAUDE_SKILL_DIR}/references/ui-rubric.md |
--no-commit | none | Disable auto-commit on APPROVE |
Review Type Auto-Detection
| Recent Activity | Review Type | Perspectives |
|---|---|---|
After harness-work | Code Review | Security, Performance, Quality, Accessibility, AI Residuals |
After harness-plan | Plan Review | Clarity, Feasibility, Dependencies, Acceptance |
| After task addition | Scope Review | Scope-creep, Priority, Feasibility, Impact |
Verdict Framework
Establish severity classification before reviewing. See ${CLAUDE_SKILL_DIR}/references/verdict-framework.md for the full severity matrix and AI Residuals classification.
Rule: If critical or major findings exist → REQUEST_CHANGES. If only minor/recommendation → APPROVE.
Code Review Flow
Step 0: Reviewer Mode Auto-Detection (Browser vs Static)
Fork context auto-start (
REVIEW_AUTOSTART): emit this as the very first output token in a forked session before any other processing.Fork-context prohibition list (5 forbidden failure modes):
- Waiting for user confirmation before starting
- Returning empty output when the diff is empty (output
{"verdict":"APPROVE","rationale":"no changes detected"})- Spawning a browser reviewer without checking
reviewer_profilein the sprint contract- Writing to
Plans.mdor anycc:*marker- Exiting without emitting a JSON verdict
Does the change include UI files (.tsx, .jsx, .vue, .css, .html)?
├─ No → Static reviewer (proceed to Step 1)
└─ Yes → Does the sprint-contract specify reviewer_profile: "browser"?
├─ Yes → Browser reviewer (launch browser-review-runner.sh)
└─ No → Is this a visual/design change?
├─ Yes → Browser reviewer recommended
└─ No → Static reviewer
Browser reviewer path: bash "${CLAUDE_SKILL_DIR}/../../scripts/browser-review-runner.sh" --contract "${CONTRACT_PATH}"
Step 1: Collect Change Diff
CHANGED_FILES="$(git diff --name-only --diff-filter=ACMR "${BASE_REF:-HEAD~1}")"
git diff ${BASE_REF:-HEAD~1} --stat
git diff ${BASE_REF:-HEAD~1} -- ${CHANGED_FILES}
Step 2: Static Scan for AI Residuals
AI_RESIDUALS_JSON="$(bash "${CLAUDE_SKILL_DIR}/../../scripts/review-ai-residuals.sh" --base-ref "${BASE_REF:-HEAD~1}")"
Step 3: Review from 5 Perspectives
| Perspective | Check Items |
|---|---|
| Security | SQL injection, XSS, credential exposure, input validation |
| Performance | N+1 queries, unnecessary re-renders, memory leaks |
| Quality | Naming, single responsibility, test coverage, error handling |
| Accessibility | ARIA attributes, keyboard navigation, color contrast |
| AI Residuals | mockData, dummy, fake, localhost, TODO, FIXME, it.skip, hardcoded secrets |
Apply the severity framework from verdict-framework.md to each finding.
Step 4: Output Review Result
See ${CLAUDE_SKILL_DIR}/references/result-schema.md for the full review-result.v1 JSON schema.
For --dual flag: see ${CLAUDE_SKILL_DIR}/references/dual-review.md
For --security flag: see ${CLAUDE_SKILL_DIR}/references/security-profile.md
For --ui-rubric flag: see ${CLAUDE_SKILL_DIR}/references/ui-rubric.md
Step 5: Commit Decision
- APPROVE: Execute auto-commit (unless
--no-commit) - REQUEST_CHANGES: Present critical/major findings. Auto-fix via
harness-workfix loop (up to 3 times), then re-review.
Plan Review Flow
See ${CLAUDE_SKILL_DIR}/references/plan-review.md
Scope Review Flow
See ${CLAUDE_SKILL_DIR}/references/scope-review.md
Anomaly Detection
| Situation | Action |
|---|---|
| Security vulnerability | Immediately REQUEST_CHANGES |
| Suspected test tampering | Warning + fix request |
| Force push attempt | Reject + suggest alternative |
Codex Environment
Load
${CLAUDE_SKILL_DIR}/references/codex-review.mdonly whencommand -v codexsucceeds and the user explicitly requests Codex or duo review.
OpenCode Environment
Load
${CLAUDE_SKILL_DIR}/references/opencode-review.mdonly whencommand -v opencodesucceeds and the user explicitly requests OpenCode review (e.g.,--opencode, "use opencode", "opencode review").
↑ Claude will summarize this result. Type a new prompt to redirect or press Enter to continue.
Related Skills
harness-work— Implement fixes after reviewharness-plan— Create and modify plansharness-release— Release after review passes
Signals
- GitHub stars
- 34
- Last commit
- Aug 2026
Advanced
- Catalog kind
- skill
- Gateway key
harness-review-tim-hub- Source
- github.com/tim-hub/powerball-harness