Skip to content

v1.34.0.0 feat: add /plan-status skill#1438

Open
Willardgmoore wants to merge 8 commits into
garrytan:mainfrom
Willardgmoore:plan-status-skill
Open

v1.34.0.0 feat: add /plan-status skill#1438
Willardgmoore wants to merge 8 commits into
garrytan:mainfrom
Willardgmoore:plan-status-skill

Conversation

@Willardgmoore
Copy link
Copy Markdown

@Willardgmoore Willardgmoore commented May 12, 2026

Summary

/plan-status ships — ask "where am I on this plan?" and get an answer in seconds.

/ship pre-flight now warns about open plan checkboxes before you create a PR.

Implements #1343.

New skill: /plan-status

  • Reads any gstack plan file (CEO plan, eng plan) from ~/.gstack/projects/$SLUG/
  • Extracts phases, success-criteria checkboxes, file refs, and gem refs
  • Cross-references git commits and filesystem state (DONE / PARTIAL / REMAINING / DROPPED)
  • Produces a gstack Lifecycle Dashboard (which skills have run, which are required) and a per-phase status table
  • Conservative classification: if uncertain, marks REMAINING rather than DONE
  • plan_glob knob in ~/.gstack/config.yaml for custom plan directories (addresses wwybdd23-bot's Ask 2)
  • Empty-state message when no plans found: "Run /office-hours or /plan-ceo-review to create one"

/ship pre-flight (Step 1, item 5)

  • Before creating the PR, ship now checks for open checkboxes in the most recent plan file
  • Informational warning only — never blocks
  • "Note: Plan has N open checkbox(es) in <plan>. Run /plan-status to review what's REMAINING — or proceed if intentionally deferred."

Test Coverage

Component              Status      Tier
─────────────────────────────────────────
E2E Execution          ✓ 100%      gate
Touchfile Selection    ✓ 100%      automatic
Ship Pre-flight        ~ 40%       implicit
SKILL.md Validation    ✗ 0%        missing (mitigated by E2E)
Fixture Coverage       ✓ 100%      mixed-phase

Overall Coverage: 68%  (3/5 components fully covered)
Gaps: 3 (no dedicated ship pre-flight test, E2E assertions check header+labels only, no SKILL.md tier-1 validation)

Tests: 2 new (E2E test + fixture plan)

Pre-Landing Review

No issues found. Diff is new skill template + tests + docs — no SQL, no LLM trust boundary, no shell injection, no race conditions.

Design Review

No frontend files changed — design review skipped.

Eval Results

No prompt-related files (Rails service classes, system prompt configs) changed — evals skipped.

Greptile Review

No Greptile comments (no existing PR during review).

Scope Drift

Scope Check: CLEAN
Intent: Add /plan-status skill + /ship pre-flight plan check
Delivered: Exactly that — skill template, E2E test, fixture, touchfiles, ship pre-flight, docs, CHANGELOG

Plan Completion

- [x] bun test passes (tier 1, free, < 2s) — DONE (780 pass, 0 fail)
- [x] gen:skill-docs --host all generates SKILL.md without warnings — DONE (8/8 hosts)
- [x] skill:check shows plan-status as healthy — DONE (8/8 ✅, expected ⚠️ for no $B)
- [x] E2E test passes (gate tier) — DONE (byny76klr exit 0; full suite passed plan-status)
- [~] Plan-status installs via ./setup — PARTIAL (auto-discovery pattern, not explicitly verified)
- [x] plan_glob knob documented — DONE (gstack-config get plan_glob in bash block)
- [x] Empty-state message when no plans found — DONE (confirmed in SKILL.md)
- [x] /ship pre-flight warns on REMAINING — DONE (OPEN_CHECKBOXES logic in ship/SKILL.md)

7/8 DONE, 1 PARTIAL (./setup auto-discovery follows the same pattern as 40+ existing skills).

TODOS

No TODO items completed in this PR. Added: ## plan-status follow-on monitor entry for issue #1343.

Test plan

🤖 Generated with Claude Code

Willardgmoore and others added 5 commits May 11, 2026 16:44
New skill that reads a gstack plan file and cross-references git commits
and filesystem state to produce a DONE/PARTIAL/REMAINING status report.
Includes gstack Lifecycle Dashboard (matching Review Readiness Dashboard
format) plus per-phase and per-criteria classification.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Gate-tier E2E test using a filesystem-only fixture plan (2 phases,
4 checkboxes). Loose assertions: transcript contains "Plan Status"
and at least one of DONE/REMAINING. Touchfiles entry triggers the
test when plan-status/** or the fixture changes.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Adds a lightweight open-checkbox grep to /ship pre-flight.
If the current branch's plan has unchecked - [ ] items, surfaces an
informational note before PR creation. Informational only, never blocks.

Regenerate ship golden baselines to include new Step 1 item 5.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Add skill row and full docs/skills.md section for /plan-status.
Add TODOS.md entry to monitor issue garrytan#1343 for community asks.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
These files are created by the gstack preamble's feature discovery section
via `touch ~/.claude/skills/gstack/.feature-prompted-*`. When the dev symlink
points .claude/skills/gstack back to the repo root, they land here instead of
in the user's home dir. They're machine-local state, never project files.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@Willardgmoore
Copy link
Copy Markdown
Author

Reviewer context — overlaps, related issues, merge order

Related issue

Implements #1343 (feat: /plan-status — track plan progress against git log + codebase). Community feedback in that thread confirms the use-case and the plan_glob config knob addresses the "Ask 2" from commenter wwybdd23-bot (non-code artifact tracking). Issue can close when this lands.


Open PR overlaps

PR #1432 (garrytan/dublin-v1 — v1.33.0.0 sync-gbrain refactor) has 6 overlapping files with this PR:

File #1432 #1438 Notes
CHANGELOG.md +71 lines +49 lines Both prepend new entries — no content overlap, but will conflict
TODOS.md +61 lines +10 lines Same — both append, different content
VERSION → 1.33.0.0 → 1.34.0.0 Intentional: this PR queues behind #1432
package.json version bump version sync Same field, will conflict
test/fixtures/golden/codex-ship-SKILL.md −21 lines +25 lines Both regenerated after touching ship/SKILL.md.tmpl
test/fixtures/golden/factory-ship-SKILL.md −21 lines +25 lines Same

Recommended merge order: land #1432 first → rebase this PR on top → land this PR. The rebase will be mechanical (prepend CHANGELOG entry, bump VERSION past 1.33.0.0 to 1.34.0.0, re-regenerate the two ship goldens). No logic conflicts.

If #1432 is not landing soon, this PR can land independently as-is — the version jump to 1.34.0.0 is safe to skip 1.33.0.0.

PR #1429 (anbangr — v1.31.1.0 build refactor, 160+ files) also touches CHANGELOG.md, TODOS.md, VERSION, AGENTS.md, and docs/skills.md. Same rebase note applies if it lands before this one.

PR #1427 (garrytan-agents — /document-generate + /document-release enhancements): no overlap with this PR.

All other open PRs: no overlap.


What this PR does NOT touch

  • No new npm dependencies
  • No LLM prompt changes, no eval impact
  • No external APIs or shell injection surface
  • /ship pre-flight check is informational only — never blocks, gated behind an open-checkbox grep that exits cleanly if no plan file is found

Known gaps (per author)

Willardgmoore and others added 2 commits May 11, 2026 18:03
Context Recovery (tier 2+) finds checkpoint files from prior /context-save
sessions and tells the model to read them. On projects where a checkpoint
stores a claude --resume <uuid>, the model tries to act on it, producing:
  "Claude Code error: No conversation found with session ID: <uuid>"

plan-status is a read-only single-shot skill -- it has no multi-session
workflow and gains nothing from context recovery. Dropping to tier 1 removes
the section entirely. AskUserQuestion for multi-plan disambiguation is
preserved via inline guidance in Step 0; the tool is still in allowed-tools.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Brings in:
- v1.33.2.0: setup guard against Conductor worktree pollution (garrytan#1446)
- v1.33.1.0: learnings token-OR query + task-shaped retrieval (garrytan#1442)
- v1.33.0.0: /sync-gbrain memory stage batch-import refactor (garrytan#1432)

VERSION stays at 1.34.0.0 (no collision — queue-aware check confirms).
CHANGELOG: our [1.34.0.0] entry at top, three new main entries below.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant