arch-design
System-design thinking before any doc or code: goals/non-goals, back-of-envelope numbers, components and contracts, failure modes, operability, security,…
Static code review of the active diff: trace changed paths and report concrete P1/P2/P3 correctness, security, or spec bugs with file:line evidence. Use for code review or bug checks. Not runtime QA.
$ npx -y skills add heliohq/ship --skill review --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/reviewContext preview
The summary Claude sees to decide when to auto-load this skill.
Static code review of the active diff: trace changed paths and report concrete P1/P2/P3 correctness, security, or spec bugs with file:line evidence. Use for code review or bug checks. Not runtime QA.
name: review version: 0.2.1 description: > Static code review of the active diff: trace changed paths and report concrete P1/P2/P3 correctness, security, or spec bugs with file:line evidence. Use for code review or bug checks. Not runtime QA. allowed-tools: - Bash - Read - Glob - Grep - Write - AskUserQuestion
This file is an operating contract for an AI reviewer.
1. Find real bugs in the active change scope. 2. Report findings first, ordered `P1`, then `P2`, then `P3`. 3. Add a short diagnosis only if multiple findings share one root cause.
**Never:**
Report only issues that meet at least one of these:
A finding without a traced code path or concrete observation is not a valid finding.
Do not report:
| Label | Use when | |------|----------| | `P1` | ship-stopping correctness failure, security issue, data loss, or major regression | | `P2` | real bug or spec deviation with narrower scope or blast radius | | `P3` | concrete lower-impact bug or edge-case failure |
`P3` is still a real bug. It needs the same evidence standard as `P1` and `P2`.
Use the smallest possible setup contract:
If there is no spec, do a diff-only review and say so explicitly. If there are no changes, write a short clean report and stop.
Resolve `<base>` first — not every repo has `origin/HEAD` set:
BASE=$(git symbolic-ref refs/remotes/origin/HEAD 2>/dev/null | sed 's|refs/remotes/origin/||') [ -z "$BASE" ] && BASE=$(git rev-parse --verify origin/main >/dev/null 2>&1 && echo main || echo master) git diff "$BASE"...HEAD --name-only git diff --cached --name-only git diff --name-only
Use the union of those file lists as the review scope in both pipeline and standalone mode. In a clean worktree, the staged and unstaged lists are empty.
If a spec exists:
If no spec exists:
Before writing any finding, understand:
For every changed file:
1. Read the full file 2. Read directly affected callers and consumers when needed 3. Trace cross-file effects when types, interfaces, or shared constants changed 4. If a potential bug is unclear, keep tracing until you can prove or disprove it
Do not infer behavior from names, comments, tests, or the spec alone. Do not stop at the first bug. Review the full scope before finalizing.
Check for:
Rank findings `P1`, then `P2`, then `P3`; within a bucket, order by user impact. Never use `B1`, `B2`, or any non-severity numbering scheme.
After collecting all findings, ask whether several findings share one structural deficiency, for example:
If one clear root cause explains multiple findings, add a short diagnosis after the findings. Otherwise omit diagnosis.
Write to `<task_dir>/review.md`.
`review.md` is freeform. Favor concise, actionable review notes over a rigid template. Findings come first. Open questions come after findings.
Each finding must include: severity (`P1`, `P2`, or `P3`), short title, `file:line`, trigger or concrete observation, impact, and fix direction.
Example:
# Code Review ## Findings ### P1: Missing transaction around user write and audit write - File: `src/services/createUser.ts:48` - Trigger: user insert succeeds and audit insert fails - Impact: state becomes inconsistent - Fix: wrap both writes in one transaction or add rollback ### P2: New enum value is not handled in status mapping - File: `src/email/status.ts:22` - Trigger: `DeliveryStatus.Bounced` reaches this swi
An agentic development harness for Claude Code & Codex: agent-routed workflows from raw requirement to green PR.
System-design thinking before any doc or code: goals/non-goals, back-of-envelope numbers, components and contracts, failure modes, operability, security,…
Run Ship's full production workflow from raw requirement to PR: design, dev, E2E, review, QA, refactor, and handoff. Use only for explicit /ship:auto, auto…
Plan implementation before coding: investigate the repo, write spec and plan, and validate with a peer. Use for "plan", "design approach", "scope", or any…
Implement from a spec or plan: extract stories, build in safe waves, test, commit, and get peer review per story. Use for "implement", "build/code this plan",…
Add durable end-to-end tests for user/API-visible behavior. Detect or scaffold the E2E framework, write tests, run the app, and store evidence. Use for E2E,…