Harness Review

SkillSecurity

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

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 InputSubcommandBehavior
"Review this" / "review"code (auto)Code review (recent changes)
"After harness-plan"plan (auto)Plan review
"Check scope"scope (auto)Scope analysis
harness-review codecodeForce code review
harness-review planplanForce plan review
harness-review scopescopeForce scope analysis
harness-review --dualcode (auto) + Codex parallelClaude + Codex dual review
harness-review --securitySecurity ReviewOWASP Top 10 dedicated security review (read-only)
harness-review --ui-rubricUI Rubric Review4-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.

FlagReferencePurpose
--quick${CLAUDE_SKILL_DIR}/references/codex-closeout.mdLightweight Codex-assisted closeout; stops on clean result
--codex-closeout${CLAUDE_SKILL_DIR}/references/codex-closeout.mdFull closeout with final JSON report
--team-debate${CLAUDE_SKILL_DIR}/references/team-debate.mdMulti-agent read-only debate (Spec / Plans / Regression / Skeptic agents)
--opencode${CLAUDE_SKILL_DIR}/references/opencode-review.mdOpenCode-assisted review via opencode-plugin-cc
(any mode)${CLAUDE_SKILL_DIR}/references/governance.mdAPPROVE pass criteria, severity table, AskUserQuestion contract
(any mode)${CLAUDE_SKILL_DIR}/references/code-review.mdEight-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

OptionDefaultDescription
--dualnoneParallel Claude + Codex review. Details: ${CLAUDE_SKILL_DIR}/references/dual-review.md
--securitynoneOWASP Top 10 security-only review (read-only). Details: ${CLAUDE_SKILL_DIR}/references/security-profile.md
--ui-rubricnone4-axis design quality scoring (0–10). Details: ${CLAUDE_SKILL_DIR}/references/ui-rubric.md
--no-commitnoneDisable auto-commit on APPROVE

Review Type Auto-Detection

Recent ActivityReview TypePerspectives
After harness-workCode ReviewSecurity, Performance, Quality, Accessibility, AI Residuals
After harness-planPlan ReviewClarity, Feasibility, Dependencies, Acceptance
After task additionScope ReviewScope-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):

  1. Waiting for user confirmation before starting
  2. Returning empty output when the diff is empty (output {"verdict":"APPROVE","rationale":"no changes detected"})
  3. Spawning a browser reviewer without checking reviewer_profile in the sprint contract
  4. Writing to Plans.md or any cc:* marker
  5. 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

PerspectiveCheck Items
SecuritySQL injection, XSS, credential exposure, input validation
PerformanceN+1 queries, unnecessary re-renders, memory leaks
QualityNaming, single responsibility, test coverage, error handling
AccessibilityARIA attributes, keyboard navigation, color contrast
AI ResidualsmockData, 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-work fix 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

SituationAction
Security vulnerabilityImmediately REQUEST_CHANGES
Suspected test tamperingWarning + fix request
Force push attemptReject + suggest alternative

Codex Environment

Load ${CLAUDE_SKILL_DIR}/references/codex-review.md only when command -v codex succeeds and the user explicitly requests Codex or duo review.

OpenCode Environment

Load ${CLAUDE_SKILL_DIR}/references/opencode-review.md only when command -v opencode succeeds 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 review
  • harness-plan — Create and modify plans
  • harness-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