Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -37,3 +37,6 @@ supabase/.temp/

# Throughput analysis — local-only, regenerate via scripts/garry-output-comparison.ts
docs/throughput-*.json

# gstack preamble feature-discovery state markers (written via dev symlink)
.feature-prompted-*
1 change: 1 addition & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@ Invoke them by name (e.g., `/office-hours`).
| `/context-save` | Save working context (git state, decisions, remaining work). |
| `/context-restore` | Resume from a saved context, even across Conductor workspaces. |
| `/learn` | Manage what gstack learned across sessions. |
| `/plan-status` | Check progress of a plan against the codebase and git log. Phase-by-phase DONE/PARTIAL/REMAINING dashboard. |
| `/retro` | Weekly retro with per-person breakdowns and shipping streaks. |
| `/health` | Code quality dashboard (type checker, linter, tests, dead code). |
| `/benchmark` | Performance regression detection (page load, Core Web Vitals). |
Expand Down
50 changes: 50 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,54 @@
# Changelog

## [1.34.0.0] - 2026-05-11

## **`/plan-status` ships. Ask "where am I on this plan?" and get an answer in seconds.**
## **`/ship` now warns before creating a PR if the plan has open checkboxes.**

Plans have always been written by gstack. Now gstack can tell you how far along you are. `/plan-status` reads the plan that already exists, cross-references git commits and filesystem state, and produces a dashboard: a gstack Lifecycle Dashboard (which workflow skills have run, matching the Review Readiness Dashboard format) plus a phase-by-phase DONE/PARTIAL/REMAINING breakdown with a Branch Commits table. No setup, no ticket creation, no pre-registration of work. The plan is already there. The git history is already there. The skill just cross-references them.

As a side effect, `/ship`'s Step 1 pre-flight now runs a 3-second open-checkbox grep. If the current branch's plan has unchecked `- [ ]` items, it surfaces an informational note before PR creation. You decide whether to proceed or check `/plan-status` first. Never blocks.

### The numbers that matter

Measured against v1.32.0.0 on the `plan-status-skill` branch. No external API calls, no new dependencies.

| Metric | v1.32.0.0 | v1.33.0.0 | Δ |
|---|---|---|---|
| Skills | 40 | 41 | **+1** |
| Gate-tier E2E tests | (prior count) | +1 | **+1** |
| Free (Tier 1) tests | 400 | 400 | 0 |
| SKILL.md files | 40 | 41 | **+1** |
| LOC added (skill + test + fixture + docs) | — | ~280 | — |

The `/plan-status` preamble runs in ~10s typical (gstack-update-check + gstack-slug + plan find + git log + analytics write). Evidence gathering is O(n) on file references in the plan, typically 5-20 files, 5-15 seconds. Total expected runtime: 15-40 seconds — consistent with `/learn` and `/canary`.

### What this means for you

If you've run `/office-hours` or `/plan-ceo-review`, you have a plan file. Run `/plan-status` on your feature branch and get a scannable dashboard in under a minute. No setup. The skill finds your plan from `~/.gstack/projects/<project>/ceo-plans/` automatically.

For non-code projects (board planning, grant pipelines, accreditation prep): set `gstack-config set plan_glob "~/board-plans/*.md"` to point the skill at any folder of markdown plan files.

### Itemized changes

#### Added

- **`/plan-status` skill** (`plan-status/SKILL.md.tmpl` + generated `SKILL.md`). Five-step flow: resolve plan file → extract phases and success-criteria checkboxes → gather git and filesystem evidence → classify DONE/PARTIAL/REMAINING/DROPPED → produce gstack Lifecycle Dashboard + Plan Detail report. Evidence sources for v1: `git log`, `git diff --name-only`, filesystem `ls`, `Gemfile` grep. All read-only. Optional `plan_glob` knob (`gstack-config set plan_glob "~/your-plans/*.md"`) for non-default plan directories.
- **`test/fixtures/plans/sample-ruby-llm-plan.md`** — fixture plan for the E2E test (2 phases, 4 checkboxes, 2 file refs, 1 gem ref).
- **`test/skill-e2e-plan-status.test.ts`** — gate-tier E2E test. Loose assertions: transcript contains "Plan Status" and at least one of "DONE" or "REMAINING". Classified `gate` because it's deterministic, read-only, filesystem-only fixture, < $0.50/run.
- **`TODOS.md`** — added entry to monitor GitHub issue #1343 for maintainer response to community asks about non-code evidence sources.

#### Changed

- **`/ship` Step 1 pre-flight** (`ship/SKILL.md.tmpl`) — new item 5: 3-second bash grep checks for open `- [ ]` checkboxes in the current branch's plan file. Informational only, never blocks. Suggests running `/plan-status` if open items are found.
- **`docs/skills.md`** — added `/plan-status` skill description and full section.
- **`AGENTS.md`** — added `/plan-status` row.

#### For contributors

- `test/helpers/touchfiles.ts`: new entry `'plan-status': ['plan-status/**', 'test/fixtures/plans/sample-ruby-llm-plan.md']` in `E2E_TOUCHFILES` and `'plan-status': 'gate'` in `E2E_TIERS`.
- Ship golden baselines (`test/fixtures/golden/`) regenerated to include the new pre-flight step 5.

## [1.33.2.0] - 2026-05-11

## **`./setup` no longer pollutes the global install when run from a Conductor worktree.**
Expand Down Expand Up @@ -155,6 +204,7 @@ If you've been hitting the 35-minute hang on `/sync-gbrain`, it's gone. The arch
- `TODOS.md` filed P2: investigate `gbrain import` perf on large staging dirs (5,131 files takes >10 minutes when 501 takes 10 seconds — gbrain-side N+1 SQL or auto-link reconciliation suspected). P3: cache "no changes since last import" at the prepare-batch level for true no-op fast paths.
- `Plan completion audit` ran via subagent on this branch: 17/21 DONE, 1 CHANGED (D3 made opt-in), 2 deferred (F8 benchmark harness as separate work, 24-path unit coverage went integration-only).


## [1.32.0.0] - 2026-05-10

## **Seven contributor PRs land. Three are security or hardening.**
Expand Down
10 changes: 10 additions & 0 deletions TODOS.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,15 @@
# TODOS

## plan-status follow-on

### P3: Monitor issue #1343 for community asks

Check whether @wwybdd23-bot has replied to our clarifying questions on GitHub issue #1343 (non-code plan evidence: calendar, email, external services). If the maintainer engages, design an extensible evidence-source plugin interface before implementing. Scope for that work belongs in a separate PR, not this one.

**Priority:** P3 (monitor only — no implementation until maintainer decision)

---

## /sync-gbrain memory stage perf follow-up

### P2: Investigate `gbrain import` perf on large staging dirs
Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
1.33.2.0
1.34.0.0
46 changes: 46 additions & 0 deletions docs/skills.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ Detailed guides for every gstack skill — philosophy, workflow, and examples.
| [`/devex-review`](#devex-review) | **DX Reviewer (live)** | Live developer experience audit. Walks the actual onboarding flow, measures TTHW, catches the docs lies. |
| [`/plan-tune`](#plan-tune) | **Question Tuner** | Self-tune AskUserQuestion sensitivity per question. Mark questions as never-ask, always-ask, or only-for-one-way. |
| [`/learn`](#learn) | **Memory** | Manage what gstack learned across sessions. Review, search, prune, and export project-specific patterns and preferences. |
| [`/plan-status`](#plan-status) | **Plan Status** | Check progress of a gstack plan against the codebase and git log. Phase-by-phase DONE/PARTIAL/REMAINING dashboard. gstack Lifecycle Dashboard shows which workflow skills have run. |
| [`/context-save`](#context-save) | **Save State** | Save working context (git state, decisions, remaining work) so any future session can resume. |
| [`/context-restore`](#context-restore) | **Restore State** | Resume from a saved context, even across Conductor workspace handoffs. |
| [`/health`](#health) | **Code Quality Dashboard** | Wraps type checker, linter, tests, dead code detection. Computes a weighted 0-10 score; tracks trends over time. |
Expand Down Expand Up @@ -969,6 +970,51 @@ Claude: 23 learnings for this project (14 high confidence, 6 medium, 3 low)

---

## `/plan-status`

This is my **progress dashboard** for any gstack plan.

After `/office-hours` or `/plan-ceo-review` writes a plan, implementation starts — and there's no way to answer "where am I?" without manually re-reading the whole plan and cross-referencing the codebase. `/plan-status` closes that gap. It reads the plan that already exists, cross-references evidence from git and the filesystem, and produces a scannable dashboard in seconds. No setup. No ticket creation.

The output has two parts: a **gstack Lifecycle Dashboard** showing which workflow skills have run (matching the same format as the Review Readiness Dashboard), and a **Plan Detail** section with per-phase and per-criteria DONE/PARTIAL/REMAINING classification.

```
You: /plan-status

Claude: ## gstack Lifecycle Dashboard
+====================================================================================+
| GSTACK LIFECYCLE DASHBOARD |
+====================================================================================+
| Phase | Skill | Runs | Last Run | Status | Required |
|----------|---------------------|------|------------------|----------|-------------|
| Think | /office-hours | 1 | 2026-05-11 22:00 | DONE | no |
| Plan | /plan-ceo-review | 1 | 2026-05-11 22:00 | DONE | no |
| | /plan-eng-review | 0 | — | — | YES |
| Build | (commits) | 4 | — | DONE | YES |
...
+------------------------------------------------------------------------------------+
| VERDICT: IN PROGRESS — 1 required skill REMAINING (plan-eng-review) |
+====================================================================================+

## Plan Status: 2026-05-11-migrate-to-ruby-llm.md
Branch: migrate-to-ruby-llm | As of: 2026-05-11

### Phase Summary
| Phase | Status | Notes |
|-------|--------|-------|
| Phase 0: Foundation | DONE | Gems added, initializer present |
| Phase 1: Schema Migration | REMAINING | No migration files found |

### Summary
1 of 2 phases complete. 2 of 4 success criteria met.
Key blockers: langchainrb still in Gemfile, no db/migrate/ files
Suggested next action: Run /plan-eng-review, then write the schema migration.
```

Configure a custom plan search path: `gstack-config set plan_glob "~/board-plans/*.md"` — useful for non-code projects like board planning or accreditation prep.

---

## `/open-gstack-browser`

This is my **co-presence mode**.
Expand Down
1 change: 1 addition & 0 deletions gstack/llms.txt
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ Conventions:
- [/plan-design-review](plan-design-review/SKILL.md): Designer's eye plan review — interactive, like CEO and Eng review.
- [/plan-devex-review](plan-devex-review/SKILL.md): Interactive developer experience plan review.
- [/plan-eng-review](plan-eng-review/SKILL.md): Eng manager-mode plan review.
- [/plan-status](plan-status/SKILL.md): Check progress of a gstack plan against the current codebase and git log.
- [/plan-tune](plan-tune/SKILL.md): Self-tuning question sensitivity + developer psychographic for gstack (v1: observational).
- [/qa](qa/SKILL.md): Systematically QA test a web application and fix bugs found.
- [/qa-only](qa-only/SKILL.md): Report-only QA testing.
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "gstack",
"version": "1.33.2.0",
"version": "1.34.0.0",
"description": "Garry's Stack — Claude Code skills + fast headless browser. One repo, one install, entire AI engineering workflow.",
"license": "MIT",
"type": "module",
Expand Down
Loading