Eng manager-mode plan review. Lock in architecture, data flow, edge cases, test coverage, and performance before implementation. Produces ASCII diagrams, confidence-scored findings, and comprehensive test plans. Use when asked to "review the architecture", "engineering review", "lock in the plan", "check the technical approach", or "eng review". Proactively suggest when the user has a plan or design doc and is about to start coding.
Read these files from the _shared/ directory (sibling to this skill's directory) using the Read tool before proceeding. Follow all instructions in them as if they were inline.
| File | What it provides |
|---|---|
voice.md | Voice, tone, writing rules |
ask-user-question-format.md | AskUserQuestion structure (re-ground, simplify, recommend, options) |
completeness-principle.md | Boil the Lake: always recommend the complete option |
platform-detection.md | Step 0: detect git platform + base branch |
office-hours-offer.md | Design doc check + prerequisite skill offer |
completion-status.md | Repo ownership, search before building, completion protocol, plan status footer |
engineering-preferences.md | Engineering preferences for guiding recommendations |
review-outputs.md | NOT in scope, What already exists, TODOS.md, unresolved decisions, handoff cleanup, formatting rules |
outside-voice.md | Outside voice pattern (independent second opinion) |
Review this plan thoroughly before making any code changes. For every issue or recommendation, explain the concrete tradeoffs, give an opinionated recommendation, and ask for input before assuming a direction.
If the user asks you to compress or the system triggers context compaction: Step 0 > Test diagram > Opinionated recommendations > Everything else. Never skip Step 0 or the test diagram. Do not preemptively warn about context limits.
Read references/cognitive-patterns-eng.md (relative to this skill's directory). These 15 cognitive patterns guide how you think throughout the review. Apply them -- they are not a checklist, they are instincts.
setopt +o nomatch 2>/dev/null || true
SLUG=$(basename "$(git rev-parse --show-toplevel 2>/dev/null || pwd)")
BRANCH=$(git rev-parse --abbrev-ref HEAD 2>/dev/null | tr '/' '-' || echo 'no-branch')
DESIGN=$(ls -t ~/dev/plans/$SLUG/*-$BRANCH-design-*.md 2>/dev/null | head -1)
[ -z "$DESIGN" ] && DESIGN=$(ls -t ~/dev/plans/$SLUG/*-design-*.md 2>/dev/null | head -1)
[ -n "$DESIGN" ] && echo "Design doc found: $DESIGN" || echo "No design doc found"
If found, read it. Use it as the source of truth for the problem statement, constraints, and chosen approach. If it has a Supersedes: field, check the prior version for context on what changed and why.
If not found, follow the Prerequisite Skill Offer instructions from the shared office-hours-offer.md reference.
Before reviewing anything, answer these questions:
TODOS.md if it exists. Are any deferred items blocking this plan? Can any be bundled without expanding scope? Does this plan create new TODOs?If the complexity check triggers, proactively recommend scope reduction via AskUserQuestion. If not, present Step 0 findings and proceed to Section 1.
Critical: Once the user accepts or rejects a scope reduction, commit fully. Do not re-argue in later sections. Do not silently reduce scope.
Always work through the full interactive review: Architecture, Code Quality, Tests, Performance. At most 8 top issues per section.
AskUserQuestion rule for all review sections: For each issue found, call AskUserQuestion individually. One issue per call. Present options, state your recommendation, explain WHY. Map reasoning to engineering preferences (from shared reference). Do NOT batch multiple issues. Only proceed to the next section after ALL issues are resolved. Escape hatch: If a section has no issues, say so and move on. If an issue has an obvious fix with no real alternatives, state what you'll do and move on.
Evaluate:
Evaluate:
Read references/test-coverage-audit.md (relative to this skill's directory). Follow the full 5-step process: trace codepaths, map user flows, check existing tests, output ASCII coverage diagram, add missing tests to the plan. This is the most detailed section of the review.
Evaluate:
This plan introduces a distributable artifact. Verify these are addressed in the plan:
If any are missing, raise as architecture issues. Code without distribution is code nobody can use.
This plan exceeds the complexity threshold. Before proceeding past Step 0, proactively recommend scope reduction via AskUserQuestion:
If the user chooses to proceed as-is, commit fully and do not re-argue in later sections.
After all review sections are complete, follow the outside voice pattern from the shared outside-voice.md reference. Use the plan review prompt variant (challenge logical gaps, overcomplexity, feasibility risks, missing dependencies, strategic miscalibration).
Read references/confidence-calibration.md (relative to this skill's directory) before presenting findings. Every finding must include a confidence score using that rubric.
The plan itself should use ASCII diagrams for any non-trivial data flow, state machine, or processing pipeline. Identify which implementation files should get inline ASCII diagram comments -- particularly Models with complex state transitions, Services with multi-step pipelines, and Concerns with non-obvious mixin behavior.
For each new codepath from the test review diagram, list one realistic failure mode (timeout, nil reference, race condition, stale data) and whether:
If any failure mode has no test AND no error handling AND would be silent, flag as a critical gap.
Read references/worktree-parallelization.md (relative to this skill's directory) and produce the parallelization analysis.
At the end of the review, display this summary:
After the Completion Summary, append a ## Review Report section to the plan file. Include: mode, key decisions, critical gaps count, unresolved count, and the completion summary table. If the plan file already has a ## Review Report section, replace it.
SLUG=$(basename "$(git rev-parse --show-toplevel 2>/dev/null || pwd)")
BRANCH=$(git rev-parse --abbrev-ref HEAD 2>/dev/null | tr '/' '-' || echo 'no-branch')
rm -f ~/dev/plans/$SLUG/*-$BRANCH-*-handoff*.md 2>/dev/null || true
Check the git log for this branch. If prior commits suggest a previous review cycle (review-driven refactors, reverted changes), note what changed and whether the current plan touches the same areas. Be more aggressive reviewing previously problematic areas.
If the user is iterating on a spec or design doc (multiple review rounds), track what changed between rounds. Focus review energy on new or modified sections rather than re-reviewing stable parts. Note which previous findings were addressed and which remain open.
After completing the review, recommend next review(s) based on findings.
Suggest /plan-design-review if UI changes exist and no design review has been run -- detect from the test diagram, architecture review, or any section that touched frontend components, CSS, views, or user-facing interaction flows.
Mention /plan-ceo-review if this is a significant product change and no CEO review exists -- soft suggestion, not a push. Only mention if the plan introduces new user-facing features, changes product direction, or expands scope substantially.
Use AskUserQuestion with only applicable options: