review-implementation ยท git:20260828.a0aec57 ยท 2026-08-28 ยท sha256 2208ad16bdd79ad2
review-implementation git:20260828.a0aec57A
Immutable. This exact content never changes and is served at /api/v1/blob/2208ad16bdd79ad2.
--- name: review-implementation description: Review a code implementation for correctness, quality, test coverage, security, performance, and spec alignment. --- # Review Implementation Audits a code implementation and reports findings across eight categories: correctness, code quality, test coverage, security, performance, spec alignment, reversibility, and forward compatibility. Each finding is prioritized with ๐ด MUST fix, ๐ก SHOULD fix, or ๐ข MAY fix. ## Prerequisites - Apply the shared SDLC conventions in `skills/sdlc/references/shared.md`. - If no argument is provided, locate the feature directory under `.sdlc/features/` whose frontmatter `issue` field references `$ISSUE_NUMBER`. - Code to review provided in context, as file paths to read, or as a diff - Specification or acceptance criteria (optional, improves alignment check) - `.sdlc/features/N-<slug>/lifecycle.md` (optional, if a lifecycle document was produced): verify state machines, transition guards, invariants, and retention policies are implemented correctly - `.sdlc/features/N-<slug>/telemetry.md` (optional, if a telemetry plan was produced): verify analytics events are implemented correctly - `.sdlc/features/N-<slug>/observability.md` (optional, if an observability plan was produced): verify logging, metrics, tracing, and health checks are implemented correctly ## Steps 1. Read the code thoroughly. 2. Cross-reference against the specification or acceptance criteria if provided. 3. Identify issues in each category below. 4. Prioritize each finding: ๐ด MUST, ๐ก SHOULD, ๐ข MAY. 5. Report findings using the output format. Omit categories with no findings. 6. Write the findings to `.sdlc/features/N-<slug>/review-implementation.md` with frontmatter `artifact: implementation`, `verdict` (`approved` if there are no blocking findings, `changes-requested` if the author must address findings, `rejected` for a fundamental flaw), and `reviewed_at: <ISO date>`, and the findings as the body, per `skills/sdlc/references/shared.md`. Record any unresolved open questions in the findings body. ## Review Checklist ### Correctness - Does the implementation meet all acceptance criteria? - Are edge cases and error conditions handled? - Are there logic errors, off-by-one errors, or incorrect conditionals? - Is state managed correctly (no races, no stale data)? ### Code Quality - Are names clear and consistent with codebase conventions? - Is the code DRY without premature abstraction? - Is complexity appropriate โ are there simpler alternatives? - Is dead code or commented-out code absent? ### Test Coverage - Delegate the coverage analysis to [`/analyze-test-coverage`](../analyze-test-coverage/SKILL.md): invoke it with the implementation diff, and embed its three tables (introduced tests, change coverage, uncovered code) into the Test Coverage section below. Raise its findings in the findings body. - Are tests verifying behavior rather than implementation details? - Do tests cover error paths and edge cases? ### Security - Is user input validated and sanitized? - Are there hardcoded secrets or credentials? - Are authorization checks in place for protected operations? - Are SQL queries parameterized? ### Performance - Are there N+1 queries or unnecessary repeated work? - Is caching used appropriately? - Are there blocking operations that should be async? ### Spec Alignment - Does the implementation match the API contract (field names, types, status codes)? - Are all specified behaviors implemented? - Are there behaviors implemented that are not in the spec (scope creep)? - If a lifecycle document exists, are all states, transitions, guard conditions, and invariants implemented correctly? - If a lifecycle document exists, are retention and expiry policies enforced as specified? - If a telemetry plan exists, are all analytics events emitted at the right locations with correct properties? - If an observability plan exists, are all metrics, logs, traces, and health checks implemented per the plan? ### Reversibility - Can we undo this cleanly if the change needs to be reverted? - Are there irreversible side effects (destructive migrations, permanent data loss, one-way API transformations)? - Are one-way-door design decisions called out explicitly? ### Forward Compatibility - Can contracts and persisted data accept future additions without breaking (unknown fields tolerated, unknown enum values handled, additive-only changes)? - Is there a versioning strategy so future evolution does not force coordinated upgrades on all consumers? - Are extension points provided for known likely future change, or does the code bake in fixed-set assumptions? ## Output Format ```markdown ## Summary ๐ด / ๐ข <Overall assessment in one sentence.> ## Correctness <Findings with ๐ด/๐ก/๐ข priority, or "No issues found."> ## Code Quality <Findings or "No issues found."> ## Test Coverage *Populated by [`/analyze-test-coverage`](../analyze-test-coverage/SKILL.md). Embed its three tables below and append any findings.* ### Introduced tests | Test file | Test(s) | What it tests | |---|---|---| | <path> | <test name> | <behavior verified> | ### Change coverage | Changed file | Behavior changed | Covered by test? | Gap | |---|---|---|---| | <path> | <description> | Yes / No | <gap or em-dash> | ### Uncovered code | File | Function / branch / path | Why it matters | |---|---|---| | <path> | <description> | <risk if this code regresses silently> | <Findings or "No issues found."> ## Security <Findings or "No issues found."> ## Performance <Findings or "No issues found."> ## Spec Alignment <Findings or "No issues found."> ## Reversibility <Findings or "No issues found."> ## Forward Compatibility <Findings or "No issues found."> ``` ## Outcome If `$OUTCOME_YAML` is set, emit your verdict there per `skills/sdlc/references/shared.md`: | Verdict | When | |---|---| | `approved` | No blocking findings; the subject passes review | | `changes-requested` | Findings the author must address before it passes | | `rejected` | Fundamental flaw requiring rework or stopping | In the same emission, list the findings file under `artifacts:` (`.sdlc/features/N-<slug>/review-implementation.md`). ## Example Usage **Scenario 1: Missing error handling** Handler returns 500 for all errors instead of specific codes defined in the spec. ๐ด MUST fix. **Scenario 2: N+1 query** A loop fetches user data individually for each item in a list. ๐ก SHOULD fix with a batch query. **Scenario 3: Variable naming** Variable `d` used instead of `discount_rate`. ๐ข MAY improve. ## Next Step Once all ๐ด MUST findings are resolved, continue with `/create-documentation`, then `/validate-implementation` to capture visual proof and get user sign-off, then `/create-pr`. ## Useful Commands Reference No CLI commands required. This skill operates on code provided in context or via file reads.