Skip to content

Commit 9c0f97c

Browse files
feat: wire /plan-pm-review into /autoplan Phase 1.5, update docs + version
- /autoplan gains Phase 1.5 (PM Review) between CEO and Eng: auto-runs for plans >5 deliverables, multiple segments, or TODOS conflicts; skips for small plans with named segment - Pre-Gate Verification, Review Scores, and Completion logs updated - Generated plan-pm-review/SKILL.md and regenerated autoplan/SKILL.md - AGENTS.md and docs/skills.md document the new skill - VERSION: 1.43.3.0 → 1.44.0.0 (new skill is a MINOR bump)
1 parent bc1fb63 commit 9c0f97c

9 files changed

Lines changed: 1651 additions & 6 deletions

File tree

AGENTS.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ Invoke them by name (e.g., `/office-hours`).
1515
|-------|-------------|
1616
| `/office-hours` | Start here. Reframes your product idea before you write code. |
1717
| `/plan-ceo-review` | CEO-level review: find the 10-star product in the request. |
18+
| `/plan-pm-review` | PM-mode review: RICE prioritization, JTBD segmentation, acceptance criteria. |
1819
| `/plan-eng-review` | Lock architecture, data flow, edge cases, and tests. |
1920
| `/plan-design-review` | Rate each design dimension 0-10, explain what a 10 looks like. |
2021
| `/plan-devex-review` | DX-mode review: TTHW, magical moments, friction points, persona traces. |

CHANGELOG.md

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,50 @@
11
# Changelog
22

3+
## [1.44.0.0] - 2026-05-23
4+
5+
## **`/plan-pm-review` ships: RICE prioritization, JTBD segmentation, and acceptance criteria land as the missing PM voice in the review pipeline.**
6+
## **`/autoplan` gains Phase 1.5 between CEO and Eng review — plans with 5+ deliverables, multiple user segments, or TODOS conflicts now get a cut list before architecture commits.**
7+
8+
The plan review pipeline had a gap: the CEO review tells you what to build, the eng review locks in how to build it, but nobody asked who it's for, what to cut, or what "done" actually means. `/plan-pm-review` fills that role.
9+
10+
Three modes, each sharpening the plan before engineering touches it. PRIORITIZE applies RICE scoring (Reach x Impact x Confidence / Effort) to every item and produces a ranked cut list with explicit tradeoffs. SHARPEN turns vague plan items into acceptance criteria and done definitions — a done condition is valid only if a QA engineer can verify it without asking the developer a question. SEGMENT runs JTBD analysis: who is the primary user, what job are they hiring this product to do, what tool are they firing when they switch, and does the plan actually solve the job or just the surface feature. All three modes produce an explicit "NOT in scope" section so deferred items are tracked, not forgotten.
11+
12+
For AI-assisted projects, RICE effort is measured in CC+gstack time (not human-team months), so scores look dramatically different from traditional PM estimates. A task that takes a human team two weeks takes CC thirty minutes. The cut list reflects that.
13+
14+
### The numbers that matter
15+
16+
New skill: `plan-pm-review/` (1464 lines, ~17K tokens — comparable to `/plan-eng-review`).
17+
`/autoplan` Phase 1.5 adds 60 lines to `autoplan/SKILL.md.tmpl` with skip conditions so small plans with a named segment pass through at zero cost.
18+
19+
| Item | Before | After |
20+
|------|--------|-------|
21+
| Plan review voices | CEO + Eng (+Design, +DX conditional) | CEO + PM + Eng (+Design, +DX conditional) |
22+
| RICE scoring in pipeline | Not available | Auto-runs for plans >5 deliverables or multiple segments |
23+
| Acceptance criteria | Manual (user responsibility) | SHARPEN mode produces testable done conditions for every item |
24+
| JTBD analysis | Not available | SEGMENT mode: functional + emotional + social job, firing trigger, success metric |
25+
| `/autoplan` phases | 4 phases (1 CEO + optional Design + Eng + optional DX) | 5 phases (1 CEO + optional PM + optional Design + Eng + optional DX) |
26+
27+
### What this means for builders
28+
29+
Plans that hit `/autoplan` with five or more deliverables now get a PM pass before the architecture is locked. That means cuts are surfaced while they're still cheap (before eng commits to data models and test plans), user segments are named explicitly, and every item has a testable done condition. For smaller plans, Phase 1.5 skips automatically.
30+
31+
To run the PM review standalone: `/plan-pm-review`. To get it inline with the full pipeline: `/autoplan` (Phase 1.5 triggers automatically when warranted).
32+
33+
### Itemized changes
34+
35+
#### Added
36+
37+
- **`plan-pm-review/SKILL.md.tmpl`**: New skill template. Three modes: PRIORITIZE (RICE scorecard + cut list + ranked roadmap + risk-adjusted confidence table), SHARPEN (acceptance criteria format + sharpness audit), SEGMENT (JTBD framework blocks + segment coverage matrix + misalignment flags). Requires explicit scope challenge (five forcing questions) before any mode runs. All modes produce "NOT in scope" and "What already exists" sections. JSONL task emission via `{{TASKS_SECTION_EMIT:pm-review}}` feeds into `/autoplan` aggregation.
38+
- **`plan-pm-review/SKILL.md`**: Generated from the template above.
39+
40+
#### Changed
41+
42+
- **`scripts/resolvers/tasks-section.ts`**: Added `'pm-review'` to `VALID_PHASES` so `{{TASKS_SECTION_EMIT:pm-review}}` resolves without throwing.
43+
- **`autoplan/SKILL.md.tmpl`**: Phase 1.5 (PM Review) inserted between Phase 1 (CEO) and Phase 2 (Design). Skip conditions: plan <= 3 deliverables AND segment already named AND no TODOS conflicts. Run conditions: >5 work items OR multiple user segments OR borderline scope OR TODOS conflicts. Auto-selects mode (PRIORITIZE by default, SEGMENT if personas unclear, SHARPEN if items vague). Updated Pre-Gate Verification checklist, Review Scores summary, and Completion review log section.
44+
- **`autoplan/SKILL.md`**: Regenerated.
45+
- **`AGENTS.md`**: Added `/plan-pm-review` entry.
46+
- **`docs/skills.md`**: Added `/plan-pm-review` table row and full section.
47+
348
## [1.43.3.0] - 2026-05-21
449

550
## **Headed Chromium embedded by external supervisors stops auto-shutting-down after 30 minutes of HTTP idle.**

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
1.43.3.0
1+
1.44.0.0

autoplan/SKILL.md

Lines changed: 59 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1208,18 +1208,60 @@ Sections 1-10 — for EACH section, run the evaluation criteria from the loaded
12081208
> Consensus: [X/6 confirmed, Y disagreements → surfaced at gate].
12091209
> Passing to Phase 2.
12101210
1211-
Do NOT begin Phase 2 until all Phase 1 outputs are written to the plan file
1211+
Do NOT begin Phase 1.5 until all Phase 1 outputs are written to the plan file
12121212
and the premise gate has been passed.
12131213

12141214
---
12151215

1216-
**Pre-Phase 2 checklist (verify before starting):**
1216+
**Pre-Phase 1.5 checklist (verify before starting):**
12171217
- [ ] CEO completion summary written to plan file
12181218
- [ ] CEO dual voices ran (Codex + Claude subagent, or noted unavailable)
12191219
- [ ] CEO consensus table produced
12201220
- [ ] Premise gate passed (user confirmed)
12211221
- [ ] Phase-transition summary emitted
12221222

1223+
## Phase 1.5: PM Review (conditional — run when prioritization or user-segment clarity is needed)
1224+
1225+
**Skip condition:** Skip Phase 1.5 if ALL of the following are true:
1226+
- The plan has 3 or fewer distinct deliverables (no prioritization needed)
1227+
- The target user segment is already explicitly named in the CEO review
1228+
- No TODOS.md items compete with this plan's scope
1229+
1230+
If skipping, log: "Phase 1.5 skipped — plan scope is small and segment is already
1231+
defined."
1232+
1233+
**Run condition:** Run Phase 1.5 if ANY of the following is true:
1234+
- The CEO review produced more than 5 distinct work items
1235+
- The plan touches multiple user segments or personas
1236+
- Any CEO review item was classified as "borderline scope"
1237+
- TODOS.md exists with items that may conflict or overlap
1238+
1239+
Follow plan-pm-review/SKILL.md in **PRIORITIZE** mode by default. Switch to
1240+
**SEGMENT** mode if the CEO review surfaced user-segment ambiguity, or **SHARPEN**
1241+
mode if the CEO review produced vague scope items without acceptance criteria.
1242+
1243+
**Override rules:**
1244+
- Mode selection: auto-select based on what the CEO review revealed (PRIORITIZE
1245+
by default; SEGMENT if personas are unclear; SHARPEN if items are vague)
1246+
- RICE scoring: use CC+gstack effort estimates, not human-team estimates
1247+
- Cut list: P3 items → TODOS.md automatically (P3)
1248+
- AskUserQuestion: suppress all except items with Confidence < 50% or where both
1249+
CEO and PM scoring conflict — surface those at the Final Gate
1250+
1251+
**PHASE 1.5 COMPLETE.** Emit phase-transition summary:
1252+
> **Phase 1.5 complete.** PM mode: [PRIORITIZE/SEGMENT/SHARPEN]. Items scored: N.
1253+
> P1 items: N. P2 items: N. P3 items deferred to TODOS: N.
1254+
> Passing to Phase 2.
1255+
1256+
---
1257+
1258+
**Pre-Phase 2 checklist (verify before starting):**
1259+
- [ ] CEO completion summary written to plan file
1260+
- [ ] CEO dual voices ran (Codex + Claude subagent, or noted unavailable)
1261+
- [ ] CEO consensus table produced
1262+
- [ ] Premise gate passed (user confirmed)
1263+
- [ ] Phase 1.5 ran (or skipped with reason logged)
1264+
12231265
## Phase 2: Design Review (conditional — skip if no UI scope)
12241266

12251267
Follow plan-design-review/SKILL.md — all 7 dimensions, full depth.
@@ -1556,6 +1598,15 @@ produced. Check the plan file and conversation for each item.
15561598
- [ ] Dual voices ran (Codex + Claude subagent, or noted unavailable)
15571599
- [ ] CEO consensus table produced
15581600

1601+
**Phase 1.5 (PM) outputs — only if ran (not skipped):**
1602+
- [ ] Mode selected (PRIORITIZE / SHARPEN / SEGMENT) and logged
1603+
- [ ] Scope challenge: primary user named, riskiest assumption identified
1604+
- [ ] Mode-specific output produced (RICE table OR acceptance criteria OR JTBD blocks)
1605+
- [ ] "NOT in scope" section written
1606+
- [ ] "What already exists" section written
1607+
- [ ] TODOS cross-reference ran
1608+
- [ ] Phase 1.5 ran (or explicitly skipped with reason logged)
1609+
15591610
**Phase 2 (Design) outputs — only if UI scope detected:**
15601611
- [ ] All 7 dimensions evaluated with scores
15611612
- [ ] Issues identified and auto-decided
@@ -1708,6 +1759,7 @@ I recommend [X] — [principle]. But [Y] is also viable:
17081759
### Review Scores
17091760
- CEO: [summary]
17101761
- CEO Voices: Codex [summary], Claude subagent [summary], Consensus [X/6 confirmed]
1762+
- PM: [mode run + key finding, or "skipped, plan ≤3 deliverables + segment already named"]
17111763
- Design: [summary or "skipped, no UI scope"]
17121764
- Design Voices: Codex [summary], Claude subagent [summary], Consensus [X/7 confirmed] (or "skipped")
17131765
- Eng: [summary]
@@ -1766,6 +1818,11 @@ TIMESTAMP=$(date -u +%Y-%m-%dT%H:%M:%SZ)
17661818
~/.claude/skills/gstack/bin/gstack-review-log '{"skill":"plan-eng-review","timestamp":"'"$TIMESTAMP"'","status":"STATUS","unresolved":N,"critical_gaps":N,"issues_found":N,"mode":"FULL_REVIEW","via":"autoplan","commit":"'"$COMMIT"'"}'
17671819
```
17681820

1821+
If Phase 1.5 ran (PM scope):
1822+
```bash
1823+
~/.claude/skills/gstack/bin/gstack-review-log '{"skill":"plan-pm-review","timestamp":"'"$TIMESTAMP"'","status":"STATUS","unresolved":N,"critical_gaps":0,"mode":"MODE","via":"autoplan","commit":"'"$COMMIT"'"}'
1824+
```
1825+
17691826
If Phase 2 ran (UI scope):
17701827
```bash
17711828
~/.claude/skills/gstack/bin/gstack-review-log '{"skill":"plan-design-review","timestamp":"'"$TIMESTAMP"'","status":"STATUS","unresolved":N,"via":"autoplan","commit":"'"$COMMIT"'"}'

autoplan/SKILL.md.tmpl

Lines changed: 59 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -380,18 +380,60 @@ Sections 1-10 — for EACH section, run the evaluation criteria from the loaded
380380
> Consensus: [X/6 confirmed, Y disagreements → surfaced at gate].
381381
> Passing to Phase 2.
382382

383-
Do NOT begin Phase 2 until all Phase 1 outputs are written to the plan file
383+
Do NOT begin Phase 1.5 until all Phase 1 outputs are written to the plan file
384384
and the premise gate has been passed.
385385

386386
---
387387

388-
**Pre-Phase 2 checklist (verify before starting):**
388+
**Pre-Phase 1.5 checklist (verify before starting):**
389389
- [ ] CEO completion summary written to plan file
390390
- [ ] CEO dual voices ran (Codex + Claude subagent, or noted unavailable)
391391
- [ ] CEO consensus table produced
392392
- [ ] Premise gate passed (user confirmed)
393393
- [ ] Phase-transition summary emitted
394394

395+
## Phase 1.5: PM Review (conditional — run when prioritization or user-segment clarity is needed)
396+
397+
**Skip condition:** Skip Phase 1.5 if ALL of the following are true:
398+
- The plan has 3 or fewer distinct deliverables (no prioritization needed)
399+
- The target user segment is already explicitly named in the CEO review
400+
- No TODOS.md items compete with this plan's scope
401+
402+
If skipping, log: "Phase 1.5 skipped — plan scope is small and segment is already
403+
defined."
404+
405+
**Run condition:** Run Phase 1.5 if ANY of the following is true:
406+
- The CEO review produced more than 5 distinct work items
407+
- The plan touches multiple user segments or personas
408+
- Any CEO review item was classified as "borderline scope"
409+
- TODOS.md exists with items that may conflict or overlap
410+
411+
Follow plan-pm-review/SKILL.md in **PRIORITIZE** mode by default. Switch to
412+
**SEGMENT** mode if the CEO review surfaced user-segment ambiguity, or **SHARPEN**
413+
mode if the CEO review produced vague scope items without acceptance criteria.
414+
415+
**Override rules:**
416+
- Mode selection: auto-select based on what the CEO review revealed (PRIORITIZE
417+
by default; SEGMENT if personas are unclear; SHARPEN if items are vague)
418+
- RICE scoring: use CC+gstack effort estimates, not human-team estimates
419+
- Cut list: P3 items → TODOS.md automatically (P3)
420+
- AskUserQuestion: suppress all except items with Confidence < 50% or where both
421+
CEO and PM scoring conflict — surface those at the Final Gate
422+
423+
**PHASE 1.5 COMPLETE.** Emit phase-transition summary:
424+
> **Phase 1.5 complete.** PM mode: [PRIORITIZE/SEGMENT/SHARPEN]. Items scored: N.
425+
> P1 items: N. P2 items: N. P3 items deferred to TODOS: N.
426+
> Passing to Phase 2.
427+
428+
---
429+
430+
**Pre-Phase 2 checklist (verify before starting):**
431+
- [ ] CEO completion summary written to plan file
432+
- [ ] CEO dual voices ran (Codex + Claude subagent, or noted unavailable)
433+
- [ ] CEO consensus table produced
434+
- [ ] Premise gate passed (user confirmed)
435+
- [ ] Phase 1.5 ran (or skipped with reason logged)
436+
395437
## Phase 2: Design Review (conditional — skip if no UI scope)
396438

397439
Follow plan-design-review/SKILL.md — all 7 dimensions, full depth.
@@ -728,6 +770,15 @@ produced. Check the plan file and conversation for each item.
728770
- [ ] Dual voices ran (Codex + Claude subagent, or noted unavailable)
729771
- [ ] CEO consensus table produced
730772

773+
**Phase 1.5 (PM) outputs — only if ran (not skipped):**
774+
- [ ] Mode selected (PRIORITIZE / SHARPEN / SEGMENT) and logged
775+
- [ ] Scope challenge: primary user named, riskiest assumption identified
776+
- [ ] Mode-specific output produced (RICE table OR acceptance criteria OR JTBD blocks)
777+
- [ ] "NOT in scope" section written
778+
- [ ] "What already exists" section written
779+
- [ ] TODOS cross-reference ran
780+
- [ ] Phase 1.5 ran (or explicitly skipped with reason logged)
781+
731782
**Phase 2 (Design) outputs — only if UI scope detected:**
732783
- [ ] All 7 dimensions evaluated with scores
733784
- [ ] Issues identified and auto-decided
@@ -807,6 +858,7 @@ I recommend [X] — [principle]. But [Y] is also viable:
807858
### Review Scores
808859
- CEO: [summary]
809860
- CEO Voices: Codex [summary], Claude subagent [summary], Consensus [X/6 confirmed]
861+
- PM: [mode run + key finding, or "skipped, plan ≤3 deliverables + segment already named"]
810862
- Design: [summary or "skipped, no UI scope"]
811863
- Design Voices: Codex [summary], Claude subagent [summary], Consensus [X/7 confirmed] (or "skipped")
812864
- Eng: [summary]
@@ -865,6 +917,11 @@ TIMESTAMP=$(date -u +%Y-%m-%dT%H:%M:%SZ)
865917
~/.claude/skills/gstack/bin/gstack-review-log '{"skill":"plan-eng-review","timestamp":"'"$TIMESTAMP"'","status":"STATUS","unresolved":N,"critical_gaps":N,"issues_found":N,"mode":"FULL_REVIEW","via":"autoplan","commit":"'"$COMMIT"'"}'
866918
```
867919

920+
If Phase 1.5 ran (PM scope):
921+
```bash
922+
~/.claude/skills/gstack/bin/gstack-review-log '{"skill":"plan-pm-review","timestamp":"'"$TIMESTAMP"'","status":"STATUS","unresolved":N,"critical_gaps":0,"mode":"MODE","via":"autoplan","commit":"'"$COMMIT"'"}'
923+
```
924+
868925
If Phase 2 ran (UI scope):
869926
```bash
870927
~/.claude/skills/gstack/bin/gstack-review-log '{"skill":"plan-design-review","timestamp":"'"$TIMESTAMP"'","status":"STATUS","unresolved":N,"via":"autoplan","commit":"'"$COMMIT"'"}'

docs/skills.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ Detailed guides for every gstack skill — philosophy, workflow, and examples.
66
|-------|----------------|--------------|
77
| [`/office-hours`](#office-hours) | **YC Office Hours** | Start here. Six forcing questions that reframe your product before you write code. Pushes back on your framing, challenges premises, generates implementation alternatives. Design doc feeds into every downstream skill. |
88
| [`/plan-ceo-review`](#plan-ceo-review) | **CEO / Founder** | Rethink the problem. Find the 10-star product hiding inside the request. Four modes: Expansion, Selective Expansion, Hold Scope, Reduction. |
9+
| [`/plan-pm-review`](#plan-pm-review) | **Product Manager** | RICE/ICE prioritization, JTBD segmentation, acceptance criteria. Three modes: PRIORITIZE (cut list + ranked roadmap), SHARPEN (testable done conditions), SEGMENT (who is this for and what job does it do). |
910
| [`/plan-eng-review`](#plan-eng-review) | **Eng Manager** | Lock in architecture, data flow, diagrams, edge cases, and tests. Forces hidden assumptions into the open. |
1011
| [`/plan-design-review`](#plan-design-review) | **Senior Designer** | Interactive plan-mode design review. Rates each dimension 0-10, explains what a 10 looks like, fixes the plan. Works in plan mode. |
1112
| [`/design-consultation`](#design-consultation) | **Design Partner** | Build a complete design system from scratch. Knows the landscape, proposes creative risks, generates realistic product mockups. Design at the heart of all other phases. |
@@ -171,6 +172,26 @@ Visions and decisions are persisted to `~/.gstack/projects/` so they survive bey
171172

172173
---
173174

175+
## `/plan-pm-review`
176+
177+
This is my **product manager mode**.
178+
179+
After the CEO review has validated direction, I want the plan stress-tested through a PM lens before engineering locks in architecture. Three things tend to go wrong without this step: teams build the wrong thing perfectly, no one writes down what "done" means, and the user segments are never named — so everyone has a different mental model of who they're building for.
180+
181+
`/plan-pm-review` runs one of three modes:
182+
183+
**PRIORITIZE** — Apply RICE scoring (Reach × Impact × Confidence / Effort) to every item. The output is a ranked cut list: what ships, what defers, and what the model recommends cutting. For AI-assisted projects, effort is measured in CC+gstack time (not human-team time), so RICE scores look very different from traditional PM estimates.
184+
185+
**SHARPEN** — Turn vague plan items into acceptance criteria and done definitions. Every item leaves with a testable "done" condition and a user-facing outcome statement. A done condition is valid only if a QA engineer can verify it without asking the developer a question.
186+
187+
**SEGMENT** — JTBD (Jobs to Be Done) pass: who is this for, what job are they hiring it to do, what tool are they firing when they pick this, and whether the plan actually addresses the job or just the surface feature. Produces a segment-to-feature coverage matrix.
188+
189+
All three modes produce a "NOT in scope" section (explicit deferrals) and a "What already exists" section (existing product coverage that prevents feature duplication).
190+
191+
`/plan-pm-review` feeds into `/plan-eng-review` — RICE-scored P1 items make the architecture review much more focused. Vague plans produce vague arch reviews. The full pipeline is: `office-hours → plan-ceo-review → plan-pm-review → plan-eng-review → ship`.
192+
193+
---
194+
174195
## `/plan-eng-review`
175196

176197
This is my **eng manager mode**.

gstack/llms.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ Conventions:
5050
- [/plan-design-review](plan-design-review/SKILL.md): Designer's eye plan review — interactive, like CEO and Eng review.
5151
- [/plan-devex-review](plan-devex-review/SKILL.md): Interactive developer experience plan review.
5252
- [/plan-eng-review](plan-eng-review/SKILL.md): Eng manager-mode plan review.
53+
- [/plan-pm-review](plan-pm-review/SKILL.md): Product manager-mode plan review.
5354
- [/plan-tune](plan-tune/SKILL.md): Self-tuning question sensitivity + developer psychographic for gstack (v1: observational).
5455
- [/qa](qa/SKILL.md): Systematically QA test a web application and fix bugs found.
5556
- [/qa-only](qa-only/SKILL.md): Report-only QA testing.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "gstack",
3-
"version": "1.43.2.0",
3+
"version": "1.44.0.0",
44
"description": "Garry's Stack — Claude Code skills + fast headless browser. One repo, one install, entire AI engineering workflow.",
55
"license": "MIT",
66
"type": "module",

0 commit comments

Comments
 (0)