gstack-plan-eng-review
Skill2 starsChanged 23 days agoApache-2.0View on GitHub
Eng manager-mode plan review. (gstack)
2 other projects use a version of this, 1 of them edited.
Adopted by
Most recently taken up by
- robertkarl/rkstackedited, first seen Oct 20, 2026
- sagnikmitra/skillstheir own version, first seen Jun 8, 2026
Other versions2 projects use a version of this.
Word for word · 0
None found.
Edited · 1
- robertkarl/rkstack★ 026% same
Wrote their own version · 1
- sagnikmitra/skills★ 1same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository40 other files it gives its agents.
- caveman-commitSkill
- caveman-reviewSkill
- cavemanSkill
- gstack-autoplanSkill
- gstack-carefulSkill
- gstack-csoSkill
- gstack-design-reviewSkill
- gstack-freezeSkill
- gstack-guardSkill
- gstack-investigateSkill
- gstack-office-hoursSkill
- gstack-plan-ceo-reviewSkill
- gstack-plan-design-reviewSkill
- gstack-plan-devex-reviewSkill
- gstack-qaSkill
- gstack-retroSkill
- gstack-reviewSkill
- gstack-shipSkill
- ponytail-auditSkill
- ponytail-debtSkill
- ponytail-reviewSkill
- ponytailSkill
- brainstormingSkill
- dispatching-parallel-agentsSkill
- executing-plansSkill
- finishing-a-development-branchSkill
- receiving-code-reviewSkill
- requesting-code-reviewSkill
- subagent-driven-developmentSkill
- systematic-debuggingSkill
- test-driven-developmentSkill
- using-git-worktreesSkill
- using-superpowersSkill
- verification-before-completionSkill
- writing-plansSkill
- writing-skillsSkill
- tandem-db-safetySkill
- tandem-harnessSkill
- tandem-reviewSkill
- tandem-worktree-etiquetteSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
20 rules. About 0 are common, 16 are distinctive, and 4 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈16
Distinctive · estimate
This author's own choices. Worth a look.
4
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 28
Do NOT call git log / git diff / grep / Read / Glob / Bash, begin any review section, or write any plan, before the user answers.
- Very specific: line 29
If ask-the-user is disallowed (--disallowedTools), render the options as plain prose — each on its own line starting with the letter and …
- Distinctive: line 39
If the user asks you to compress or the system triggers context compaction: Step 0 > Test diagram > Opinionated recommendations > …
- Distinctive: line 69
When evaluating architecture, think "boring by default." When reviewing tests, think "systems over heroes." When assessing complexity, ask …
- Distinctive: line 102
When the design doc check above prints "No design doc found," offer the prerequisite skill before proceeding.
- Distinctive: line 116
If they skip: "No worries — standard review.
- Distinctive: line 119
If they choose A:
- Very specific: line 124
Read the /office-hours skill file at ../gstack-office-hours/SKILL.md using the Read tool.
- Distinctive: line 128
Follow its instructions from top to bottom, skipping these sections (already handled by the parent skill):
- Distinctive: line 144
After /office-hours completes, re-run the design doc check:
- Distinctive: line 154
If a design doc is now found, read it and continue the review.
- Distinctive: line 155
If none was produced (user may have cancelled), proceed with standard review.
- Distinctive: line 161
Before reviewing anything, answer these questions:
- Distinctive: line 164
Complexity check: If the plan touches more than 8 files or introduces more than 2 new classes/services, treat that as a smell and challenge …
- Distinctive: line 170
If WebSearch is unavailable, skip this check and note: "Search unavailable — proceeding with in-distribution knowledge only."
- Very specific: line 173
TODOS cross-reference: Read TODOS.md if it exists.
- Distinctive: line 177
Distribution check: If the plan introduces a new artifact type (CLI binary, library package, container image, mobile app), does it include …
- Distinctive: line 181
If the plan defers distribution, flag it explicitly in the "NOT in scope" section — don't let it silently drop.
- Distinctive: line 187
If the complexity check does not trigger, present your Step 0 findings and proceed directly to Section 1.
- Distinctive: line 189
Always work through the full interactive review: one section at a time (Architecture → Code Quality → Tests → Performance) with at most 8 …
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Tandem vendoring note. Vendored from gstack (MIT, (c) Garry Tan, https://github.com/garrytan/gstack @ a3259400). The upstream Claude-Code-specific boilerplate (telemetry, session tracking, update checks, plan-mode hooks, learnings/brain sync) was removed; the workflow itself is unchanged. Paths below are relative to this skill's directory; sibling skills live at
../<id>/(ids are prefixedgstack-).$GSTACK_ROOTis an optional upstream gstack install (default~/.claude/skills/gstack) needed only for optional helpers such as thebrowsebinary; skip any step that needs it when it is absent. "Ask the user" means a plain chat question when no structured question tool exists.
When to invoke this skill
Lock in the execution plan — architecture, data flow, diagrams, edge cases, test coverage, performance. Walks through issues interactively with opinionated recommendations. Use when asked to "review the architecture", "engineering review", or "lock in the plan". Proactively suggest when the user has a plan or design doc and is about to start coding — to catch architecture issues before implementation.
Voice triggers (speech-to-text aliases): "tech review", "technical review", "plan engineering review".
Scope gate (FIRST — overrides everything below). This is a hard STOP.
Before ANYTHING else in this skill — before the Design Doc Check, the office-hours prerequisite offer, Step 0, and any git / Read / Grep / Glob / Bash call — your VERY FIRST tool call MUST be ask-the-user, to confirm the review target. Do not run the Design Doc Check bash or explore the repo before the user answers.
- First tool call = ask-the-user (tool_use). Confirm what to review.
- Do NOT call
git log/git diff/grep/Read/Glob/Bash, begin any review section, or write any plan, before the user answers. - If ask-the-user is disallowed (
--disallowedTools), render the options as plain prose — each on its own line starting with the letter and paren at column 0 (no blockquote, no leading>) — then STOP and wait. Use exactly this shape:
What should I review? A) The current branch diff — the work in progress on this branch. B) A plan or design doc I'll paste or point you to. C) A specific file, directory, or path.
Recommendation: A when a branch diff exists, otherwise B. Reply with A, B, or C. STOP and wait for the answer — only after the user picks do you run the Design Doc Check and Step 0 against that target.
Priority hierarchy
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 -- the system handles compaction automatically.
My engineering preferences (use these to guide your recommendations):
- DRY is important—flag repetition aggressively.
- Well-tested code is non-negotiable; I'd rather have too many tests than too few.
- I want code that's "engineered enough" — not under-engineered (fragile, hacky) and not over-engineered (premature abstraction, unnecessary complexity).
- I err on the side of handling more edge cases, not fewer; thoughtfulness > speed.
- Bias toward explicit over clever.
- Right-sized diff: favor the smallest diff that cleanly expresses the change ... but don't compress a necessary rewrite into a minimal patch. If the existing foundation is broken, say "scrap it and do this instead."
Cognitive Patterns — How Great Eng Managers Think
These are not additional checklist items. They are the instincts that experienced engineering leaders develop over years — the pattern recognition that separates "reviewed the code" from "caught the landmine." Apply them throughout your review.
- State diagnosis — Teams exist in four states: falling behind, treading water, repaying debt, innovating. Each demands a different intervention (Larson, An Elegant Puzzle).
- Blast radius instinct — Every decision evaluated through "what's the worst case and how many systems/people does it affect?"
- Boring by default — "Every company gets about three innovation tokens." Everything else should be proven technology (McKinley, Choose Boring Technology).
- Incremental over revolutionary — Strangler fig, not big bang. Canary, not global rollout. Refactor, not rewrite (Fowler).
- Systems over heroes — Design for tired humans at 3am, not your best engineer on their best day.
- Reversibility preference — Feature flags, A/B tests, incremental rollouts. Make the cost of being wrong low.
- Failure is information — Blameless postmortems, error budgets, chaos engineering. Incidents are learning opportunities, not blame events (Allspaw, Google SRE).
- Org structure IS architecture — Conway's Law in practice. Design both intentionally (Skelton/Pais, Team Topologies).
- DX is product quality — Slow CI, bad local dev, painful deploys → worse software, higher attrition. Developer experience is a leading indicator.
- Essential vs accidental complexity — Before adding anything: "Is this solving a real problem or one we created?" (Brooks, No Silver Bullet).
- Two-week smell test — If a competent engineer can't ship a small feature in two weeks, you have an onboarding problem disguised as architecture.
- Glue work awareness — Recognize invisible coordination work. Value it, but don't let people get stuck doing only glue (Reilly, The Staff Engineer's Path).
- Make the change easy, then make the easy change — Refactor first, implement second. Never structural + behavioral changes simultaneously (Beck).
- Own your code in production — No wall between dev and ops. "The DevOps movement is ending because there are only engineers who write code and own it in production" (Majors).
- Error budgets over uptime targets — SLO of 99.9% = 0.1% downtime budget to spend on shipping. Reliability is resource allocation (Google SRE).
When evaluating architecture, think "boring by default." When reviewing tests, think "systems over heroes." When assessing complexity, ask Brooks's question. When a plan introduces new infrastructure, check whether it's spending an innovation token wisely.
Documentation and diagrams:
- I value ASCII art diagrams highly — for data flow, state machines, dependency graphs, processing pipelines, and decision trees. Use them liberally in plans and design docs.
- For particularly complex designs or behaviors, embed ASCII diagrams directly in code comments in the appropriate places: Models (data relationships, state transitions), Controllers (request flow), Concerns (mixin behavior), Services (processing pipelines), and Tests (what's being set up and why) when the test structure is non-obvious.
- Diagram maintenance is part of the change. When modifying code that has ASCII diagrams in comments nearby, review whether those diagrams are still accurate. Update them as part of the same commit. Stale diagrams are worse than no diagrams — they actively mislead. Flag any stale diagrams you encounter during review even if they're outside the immediate scope of the change.
Section index — Read each section when its situation applies
This skill is a decision-tree skeleton. The steps below point to on-demand sections. Read a section in full before doing its step; do not work from memory.
| When | Read this section |
| running the 4-section review, outside voice, required outputs, and review report (only after Step 0 scope is agreed) | sections/review-sections.md |
BEFORE YOU START:
Design Doc Check
setopt +o nomatch 2>/dev/null || true # zsh compat
SLUG=$($GSTACK_ROOT/browse/bin/remote-slug 2>/dev/null || 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 ~/.gstack/projects/$SLUG/*-$BRANCH-design-*.md 2>/dev/null | head -1)
[ -z "$DESIGN" ] && DESIGN=$(ls -t ~/.gstack/projects/$SLUG/*-design-*.md 2>/dev/null | head -1)
[ -n "$DESIGN" ] && echo "Design doc found: $DESIGN" || echo "No design doc found"If a design doc exists, read it. Use it as the source of truth for the problem statement, constraints, and chosen approach. If it has a Supersedes: field, note that this is a revised design — check the prior version for context on what changed and why.
Prerequisite Skill Offer
When the design doc check above prints "No design doc found," offer the prerequisite skill before proceeding.
Say to the user via ask-the-user:
"No design doc found for this branch.
/office-hoursproduces a structured problem statement, premise challenge, and explored alternatives — it gives this review much sharper input to work with. Takes about 10 minutes. The design doc is per-feature, not per-product — it captures the thinking behind this specific change."
Options:
- A) Run /office-hours now (we'll pick up the review right after)
- B) Skip — proceed with standard review
If they skip: "No worries — standard review. If you ever want sharper input, try /office-hours first next time." Then proceed normally. Do not re-offer later in the session.
If they choose A:
Say: "Running /office-hours inline. Once the design doc is ready, I'll pick up the review right where we left off."
Read the /office-hours skill file at ../gstack-office-hours/SKILL.md using the Read tool.
If unreadable: Skip with "Could not load /office-hours — skipping." and continue.
Follow its instructions from top to bottom, skipping these sections (already handled by the parent skill):
- Preamble (run first)
- ask-the-user Format
- Completeness Principle — Boil the Ocean
- Search Before Building
- Contributor Mode
- Completion Status Protocol
- Telemetry (run last)
- Step 0: Detect platform and base branch
- Review Readiness Dashboard
- Plan File Review Report
- Prerequisite Skill Offer
- Plan Status Footer
Execute every other section at full depth. When the loaded skill's instructions are complete, continue with the next step below.
After /office-hours completes, re-run the design doc check:
setopt +o nomatch 2>/dev/null || true # zsh compat
SLUG=$($GSTACK_ROOT/browse/bin/remote-slug 2>/dev/null || 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 ~/.gstack/projects/$SLUG/*-$BRANCH-design-*.md 2>/dev/null | head -1)
[ -z "$DESIGN" ] && DESIGN=$(ls -t ~/.gstack/projects/$SLUG/*-design-*.md 2>/dev/null | head -1)
[ -n "$DESIGN" ] && echo "Design doc found: $DESIGN" || echo "No design doc found"If a design doc is now found, read it and continue the review. If none was produced (user may have cancelled), proceed with standard review.
Step 0: Scope Challenge
Reminder: the Scope gate at the top of this skill is a hard STOP. Do not run Step 0 until the user has answered it, and run it against the target they chose.
Before reviewing anything, answer these questions:
- What existing code already partially or fully solves each sub-problem? Can we capture outputs from existing flows rather than building parallel ones?
- What is the minimum set of changes that achieves the stated goal? Flag any work that could be deferred without blocking the core objective. Be ruthless about scope creep.
- Complexity check: If the plan touches more than 8 files or introduces more than 2 new classes/services, treat that as a smell and challenge whether the same goal can be achieved with fewer moving parts.
Search check: For each architectural pattern, infrastructure component, or concurrency approach the plan introduces:
- Does the runtime/framework have a built-in? Search: "{framework} {pattern} built-in"
- Is the chosen approach current best practice? Search: "{pattern} best practice {current year}"
- Are there known footguns? Search: "{framework} {pattern} pitfalls"
If WebSearch is unavailable, skip this check and note: "Search unavailable — proceeding with in-distribution knowledge only."
If the plan rolls a custom solution where a built-in exists, flag it as a scope reduction opportunity. Annotate recommendations with [Layer 1], [Layer 2], [Layer 3], or [EUREKA] (see preamble's Search Before Building section). If you find a eureka moment — a reason the standard approach is wrong for this case — present it as an architectural insight.
- TODOS cross-reference: Read
TODOS.mdif it exists. Are any deferred items blocking this plan? Can any deferred items be bundled into this PR without expanding scope? Does this plan create new work that should be captured as a TODO? - Completeness check: Is the plan doing the complete version or a shortcut? With AI-assisted coding, the cost of completeness (100% test coverage, full edge case handling, complete error paths) is 10-100x cheaper than with a human team. If the plan proposes a shortcut that saves human-hours but only saves minutes with CC+gstack, recommend the complete version. Boil the ocean.
- Distribution check: If the plan introduces a new artifact type (CLI binary, library package, container image, mobile app), does it include the build/publish pipeline? Code without distribution is code nobody can use. Check:
- Is there a CI/CD workflow for building and publishing the artifact?
- Are target platforms defined (linux/darwin/windows, amd64/arm64)?
- How will users download or install it (GitHub Releases, package manager, container registry)? If the plan defers distribution, flag it explicitly in the "NOT in scope" section — don't let it silently drop.
If the complexity check triggers (8+ files or 2+ new classes/services), STOP before any review-section work. Call ask-the-user: name what's overbuilt, propose a minimal version that achieves the core goal, ask whether to reduce or proceed as-is. The ask-the-user call is a tool_use, not prose — call the tool directly.
STOP. Do NOT proceed to Section 1 (Architecture review), edit the plan file with a proposed scope reduction, or call plan-mode exit until the user responds. Naming the 80% solution in chat prose and continuing — or loading the ask-the-user schema via ToolSearch and then never invoking it — is the failure mode this gate exists to prevent.
If the complexity check does not trigger, present your Step 0 findings and proceed directly to Section 1.
Always work through the full interactive review: one section at a time (Architecture → Code Quality → Tests → Performance) with at most 8 top issues per section.
Critical: Once the user accepts or rejects a scope reduction recommendation, commit fully. Do not re-argue for smaller scope during later review sections. Do not silently reduce scope or skip planned components.
STOP. Before running the 4-section review, outside voice, required outputs, and review report (only after Step 0 scope is agreed), Read
sections/review-sections.mdand execute it in full. Do not work from memory — that section is the source of truth for this step.
Section self-check (before you finish)
Confirm you Read the review section the Section index named, and executed every review section (Architecture, Code Quality, Tests, Performance), the outside voice, and the required outputs in full. If you produced findings or the review report from memory without Reading sections/review-sections.md, stop and Read it now.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

