Skip to content

feat: add /cpo — product decision layer (kill criteria + outcome tracking)#343

Open
0x2kNJ wants to merge 2 commits intogarrytan:mainfrom
0x2kNJ:feat/add-cpo-skill
Open

feat: add /cpo — product decision layer (kill criteria + outcome tracking)#343
0x2kNJ wants to merge 2 commits intogarrytan:mainfrom
0x2kNJ:feat/add-cpo-skill

Conversation

@0x2kNJ
Copy link

@0x2kNJ 0x2kNJ commented Mar 23, 2026

Summary

  • Adds /cpo — the product decision layer. Structured product decisions with mechanical gates, kill criteria, and a persistent decision journal.
  • Same pattern as /cso — a named role that does one thing completely. /cso audits your attack surface. /cpo decides what to build, whether to build it, and tracks whether you were right.
  • Fills the gap between /office-hours (idea validation) and /plan-eng-review (architecture lock-in). The only skill in the stack that can say "don't build this."
  • Registered in proactive suggestions, generated for both Claude and Codex hosts.

Lifecycle position

THINKING              DECIDING              EXECUTING             FEEDBACK
─────────             ─────────             ─────────             ─────────
/office-hours    ──►  /cpo             ──►  /plan-eng-review  ──►  /retro
/plan-ceo-review ──►  (decides what    ──►  /build            ──►  /review
/retro           ──►   to build)       ──►  /ship             ──►  /qa
                                        ──►  /land-and-deploy  ──►  /canary

What it does

Three-phase gated flow: [FRAME][PATHS][VERDICT]

  • Frame: Classifies one-way vs two-way door, identifies dominant Truth (user/strategic/economic/regulatory/execution), runs live market scan for irreversible bets, four premise checks
  • Paths: Three structurally distinct options (never bold/balanced/conservative), recommendation first, pressure-test before committing
  • Verdict: Kill criteria (metric + threshold + timeframe), confidence level, Truth fingerprint

Gates are mechanical — AskUserQuestion enforced, not suggestive.

The journal

Every verdict logs to ~/.cpo/decisions/*.yaml. CPO scans prior decisions at session start and surfaces related entries. --outcome closes the loop: replays the decision, walks through kill criteria with current data, surfaces patterns across all closed decisions.

Signal bus

  • Reads: ~/.cpo/signals/{qa,review,retro,canary}-latest.yaml — surfaces red flags in [FRAME] before the decision is made
  • Writes: ~/.cpo/signals/cpo-latest.yaml after every verdict — /build and /review can verify a decision exists before committing

Integration with existing skills

From To How
/office-hours /cpo --decide handoff when a strategic fork emerges
/plan-ceo-review /cpo Routes scope-level decisions
/cpo /plan-eng-review K) Eng brief saves artifact, suggests next
/cpo /build, /ship L) Hand off routes to execution
/retro /cpo Surfaces recurring patterns as decision input

Flags

--go (all-in-one), --quick (≤300 words), --deep (10-section), --journal, --review, --outcome, --save-context, --decide

Test plan

  • bun run gen:skill-docs generates cpo/SKILL.md without errors
  • bun run gen:skill-docs --host codex generates .agents/skills/gstack-cpo/SKILL.md
  • bun test passes
  • Manual: /cpo should we add a free tier? runs full FRAME→PATHS→VERDICT flow
  • Manual: Decision journal entry written to ~/.cpo/decisions/
  • Manual: --outcome replays a past decision and writes outcome block
  • Manual: Proactive suggestion fires when user discusses a product decision

🤖 Generated with Claude Code

0x2kNJ and others added 2 commits March 22, 2026 20:29
…king)

Same pattern as /cso — a named role that does one thing completely.
/cso audits your attack surface. /cpo decides what to build, whether
to build it, and tracks whether you were right.

Three-phase gated flow: [FRAME] → [PATHS] → [VERDICT]
- Classifies one-way vs two-way doors, auto-calibrates depth
- Five Truths framework identifies the dominant decision dimension
- Kill criteria on every verdict (metric + threshold + timeframe)
- Persistent decision journal at ~/.cpo/decisions/
- --outcome closes the loop: replays decisions, tracks patterns
- Bidirectional signal bus with /qa, /review, /retro, /canary
- --decide inbound handoff from any skill

Fills the gap between /office-hours and /plan-eng-review — the only
skill in the stack that can say "don't build this."

Registered in proactive suggestions. Generated for Claude and Codex.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
/build is not part of gstack — removed from description, signal
consumers list, and handoff suggestions.

Co-Authored-By: Claude Opus 4.6 (1M context) <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