Problem
gstack generates detailed plan files (CEO plans, eng plans) in ~/.gstack/projects/<slug>/ceo-plans/ and eng-plans/. These plans have phases, success-criteria checkboxes, file/gem references, and pre-migration checklists.
There is no skill to answer: "Where am I against this plan?"
The current workaround is asking Claude to manually read the plan and cross-reference the codebase — which works but is ad-hoc, inconsistent, and not something you'd think to do unless you remembered to ask.
Proposed skill: /plan-status
A read-only skill that:
- Resolves the plan file — from an explicit argument, branch-name match, or AskUserQuestion if multiple plans exist
- Extracts phases,
- [ ]/- [x] success-criteria checkboxes, file/directory references, gem references, and pre-migration checklists
- Gathers evidence from
git log (commits since branching from main), git diff --name-only, filesystem checks (does the file/dir exist or was it deleted as planned?), and Gemfile grep
- Classifies each item as DONE / PARTIAL / REMAINING / DROPPED using evidence conservatively (uncertain = REMAINING)
- Produces a scannable dashboard:
## Plan Status: 2026-05-05-ruby-llm-full-migration.md
Branch: feature/ruby-llm-migration | As of: 2026-05-06
### Phase Summary
| Phase | Status | Notes |
|-------|--------|-------|
| Phase 0: Foundation | DONE | Gems added, initializers present |
| Phase 7: RAG migration | REMAINING | NotImplementedError stubs; no RubyLLM.embed calls |
### Success Criteria
| Item | Status |
|------|--------|
| langchainrb removed from Gemfile | REMAINING |
| Cross-tenant scoping test passes | REMAINING |
| ActsAsTenant require_tenant = true | PARTIAL — dev only |
### Summary
6 of 8 phases complete. 8 of 13 success criteria met.
Suggested next: Phase 7 RAG migration (remove langchainrb, wire RubyLLM.embed)
- Offers to start on the top REMAINING item or update the plan's checkboxes — but never auto-starts.
Triggers
- "plan status"
- "how far along is the plan"
- "what's done / what's left"
- "check plan progress"
- "where are we on the plan"
Why it belongs in gstack
gstack already owns the plan lifecycle: /office-hours → /plan-ceo-review → /plan-eng-review → implementation → /ship. Plan status is the missing step between "plan written" and "ship called" — the regular check-in that keeps the plan and reality synchronized.
The skill is entirely read-only (no file writes), uses only Bash, Read, Glob, Grep, and optionally AskUserQuestion. Low complexity, high signal.
Related issues
Notes
I've built a local version of this skill at ~/.claude/skills/gstack/plan-status/SKILL.md and am running it now. Happy to contribute the implementation upstream if the direction looks right.
Problem
gstack generates detailed plan files (CEO plans, eng plans) in
~/.gstack/projects/<slug>/ceo-plans/andeng-plans/. These plans have phases, success-criteria checkboxes, file/gem references, and pre-migration checklists.There is no skill to answer: "Where am I against this plan?"
The current workaround is asking Claude to manually read the plan and cross-reference the codebase — which works but is ad-hoc, inconsistent, and not something you'd think to do unless you remembered to ask.
Proposed skill:
/plan-statusA read-only skill that:
- [ ]/- [x]success-criteria checkboxes, file/directory references, gem references, and pre-migration checklistsgit log(commits since branching from main),git diff --name-only, filesystem checks (does the file/dir exist or was it deleted as planned?), andGemfilegrepTriggers
Why it belongs in gstack
gstack already owns the plan lifecycle:
/office-hours→/plan-ceo-review→/plan-eng-review→ implementation →/ship. Plan status is the missing step between "plan written" and "ship called" — the regular check-in that keeps the plan and reality synchronized.The skill is entirely read-only (no file writes), uses only
Bash,Read,Glob,Grep, and optionallyAskUserQuestion. Low complexity, high signal.Related issues
Notes
I've built a local version of this skill at
~/.claude/skills/gstack/plan-status/SKILL.mdand am running it now. Happy to contribute the implementation upstream if the direction looks right.