Skip to content

Commit 8c3df11

Browse files
committed
feat(ce-strategy,ce-product-pulse): add PM skills for upstream anchor and outcome pulse
Adds two new skills to the compound-engineering plugin: one upstream of the core engineering loop (strategy), one downstream (pulse). Both follow the existing skill conventions and integrate with ce-ideate, ce-brainstorm, and ce-plan. ce-strategy - Interview-driven creator and maintainer of docs/strategy.md. - Captures a Rumeltian problem statement, approach, persona(s), key metrics, and 2-4 work tracks. - Re-runnable: subsequent runs target a single section without clobbering the rest. - Anti-pattern pushback codified in references/interview.md so the agent challenges weak strategy answers (vanity metrics, fluff approaches, feature lists in place of guiding choices). ce-product-pulse - Time-windowed pulse report on usage, performance, errors, and followups. Saves to docs/pulse-reports/ as a browseable timeline. - First-time setup interviews the user to define metrics and wire data sources. MCP-preferred. Read-only DB access only -- write credentials are explicitly refused. - Configuration lives as flat pulse_* keys in the unified .compound-engineering/config.local.yaml alongside work_delegate_*, matching the existing convention for plugin-local settings. Schema defined in ce-setup's config-template.yaml and the rendered example. - pulse_metric_sources gives per-strategy-metric source overrides for multi-source setups; metrics not listed fall back to pulse_analytics_source with a (default source) marker. - pulse_pending_metrics and pulse_excluded_metrics give explicit dispositions for un-instrumented strategy metrics. - Phase 0 uses the worktree-aware bash pre-resolution pattern (matches ce-work-beta) to read config at skill load time. Phase 2 re-reads config after first-run interviews to pick up edits. Integration touches - ce-brainstorm Constraint Check, ce-ideate quick-context sub-agent, and ce-plan planning context summary all read docs/strategy.md as grounding when present. - Cross-platform Interaction Method blocks in both new skills follow the AGENTS.md convention: ToolSearch with select:AskUserQuestion is tried first in Claude Code before falling back to numbered chat options. Schema-not-loaded is not a valid fallback trigger. README updates - Workflow diagram and Core Workflow tables surface both new skills with the upstream/downstream framing. - Skill count 36 -> 37. Tested locally with /ce-strategy and /ce-product-pulse first-run and subsequent-run flows. release:validate passes; frontmatter tests pass.
1 parent 8f80466 commit 8c3df11

14 files changed

Lines changed: 909 additions & 6 deletions

File tree

.compound-engineering/config.local.example.yaml

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,3 +10,22 @@
1010
# work_delegate_decision: auto # auto | ask (default: auto)
1111
# work_delegate_model: gpt-5.4 # any valid codex model (omit to use ~/.codex/config.toml default)
1212
# work_delegate_effort: high # minimal | low | medium | high | xhigh (omit to use ~/.codex/config.toml default)
13+
14+
# --- Product pulse ---
15+
# Settings written by /ce-product-pulse first-run interview. Re-run the skill with
16+
# argument `setup` or `reconfigure` to edit interactively.
17+
18+
# pulse_product_name: "Spiral" # used in report titles (no default)
19+
# pulse_lookback_default: 24h # 1h | 24h | 7d | 30d (default: 24h)
20+
# pulse_primary_event: "session_started" # the event that means "user showed up"
21+
# pulse_value_event: "task_completed" # the event that means "user got value"
22+
# pulse_completion_events: "onboarded,first_purchase" # comma-separated, 0-3 events
23+
# pulse_quality_scoring: false # true | false (default: false; AI products only)
24+
# pulse_quality_dimension: "answer accuracy" # dimension scored 1-5 when pulse_quality_scoring is true
25+
# pulse_analytics_source: posthog # posthog | mixpanel | custom (no default)
26+
# pulse_tracing_source: sentry # sentry | datadog | custom (no default)
27+
# pulse_payments_source: stripe # stripe | custom (no default)
28+
# pulse_db_enabled: false # true | false (default: false; read-only DB if true)
29+
# pulse_metric_sources: "retention_d7=posthog,nps=delighted" # strategy-metric -> source overrides; comma-separated 'metric=source' pairs; unlisted metrics fall back to pulse_analytics_source
30+
# pulse_pending_metrics: "retention_d7,nps" # comma-separated strategy metrics awaiting instrumentation; render as 'no data'
31+
# pulse_excluded_metrics: "north_star" # comma-separated strategy metrics intentionally not in pulse

README.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,19 +28,25 @@ The point is not ceremony. The point is leverage. A good brainstorm makes the pl
2828

2929
## Workflow
3030

31+
`/ce-strategy` is upstream of the loop -- it captures the product's target problem, approach, persona, metrics, and tracks as a short durable anchor at `docs/strategy.md`. Ideate, brainstorm, and plan read it as grounding when present, so strategy choices flow into feature conception, prioritization, and spec.
32+
3133
The core loop is: brainstorm the requirements, plan the implementation, work through the plan, review the result, compound the learning, then repeat with better context.
3234

3335
Use `/ce-ideate` before the loop when you want the agent to generate and critique bigger ideas before choosing one to brainstorm. It produces a ranked ideation artifact, not requirements, plans, or code.
3436

3537
| Skill | Purpose |
3638
|-------|---------|
39+
| `/ce-strategy` | Create or maintain `docs/strategy.md` -- the product's target problem, approach, persona, key metrics, and tracks. Read as grounding by ideate, brainstorm, and plan |
3740
| `/ce-ideate` | Optional big-picture ideation: generate and critically evaluate grounded ideas, then route the strongest one into brainstorming |
3841
| `/ce-brainstorm` | Interactive Q&A to think through a feature or problem and write a right-sized requirements doc before planning |
3942
| `/ce-plan` | Turn feature ideas into detailed implementation plans |
4043
| `/ce-work` | Execute plans with worktrees and task tracking |
4144
| `/ce-debug` | Systematically reproduce failures, trace root cause, and implement fixes |
4245
| `/ce-code-review` | Multi-agent code review before merging |
4346
| `/ce-compound` | Document learnings to make future work easier |
47+
| `/ce-product-pulse` | Generate a single-page, time-windowed pulse report on usage, performance, errors, and followups. Saves to `docs/pulse-reports/` |
48+
49+
`/ce-product-pulse` is the read-side companion -- a time-windowed report on what users actually experienced and how the product performed over a given window (24h, 7d, etc.), saved to `docs/pulse-reports/` so past pulses form a browseable timeline of user outcomes. The next strategy update and the next brainstorm get real signal to anchor to.
4450

4551
Each cycle compounds: brainstorms sharpen plans, plans inform future plans, reviews catch more issues, patterns get documented.
4652

@@ -68,7 +74,7 @@ For a focused bug investigation:
6874

6975
After installing, run `/ce-setup` in any project. It checks your environment, installs missing tools, and bootstraps project config.
7076

71-
The `compound-engineering` plugin currently ships 36 skills and 51 agents. See the [full component reference](plugins/compound-engineering/README.md) for the complete inventory.
77+
The `compound-engineering` plugin currently ships 37 skills and 51 agents. See the [full component reference](plugins/compound-engineering/README.md) for the complete inventory.
7278

7379
---
7480

bun.lock

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

plugins/compound-engineering/README.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,16 +11,17 @@ After installing, run `/ce-setup` in any project. It diagnoses your environment,
1111
| Component | Count |
1212
|-----------|-------|
1313
| Agents | 50+ |
14-
| Skills | 35+ |
14+
| Skills | 37+ |
1515

1616
## Skills
1717

1818
### Core Workflow
1919

20-
The primary entry points for engineering work are skills invoked with slash syntax:
20+
The primary entry points for engineering work, invoked as slash commands. `ce-strategy` skill anchors the loop upstream; `ce-product-pulse` skill closes it with a read on user outcomes.
2121

2222
| Skill | Description |
2323
|-------|-------------|
24+
| `/ce-strategy` | Create or maintain `docs/strategy.md` — the product's target problem, approach, persona, key metrics, and tracks. Re-runnable to update. Read as grounding by `/ce-ideate`, `/ce-brainstorm`, and `/ce-plan` when present |
2425
| `/ce-ideate` | Optional big-picture ideation: generate and critically evaluate grounded ideas, then route the strongest one into brainstorming |
2526
| `/ce-brainstorm` | Interactive Q&A to think through a feature or problem and write a right-sized requirements doc before planning |
2627
| `/ce-plan` | Create structured plans for any multi-step task -- software features, research workflows, events, study plans -- with automatic confidence checking |
@@ -30,6 +31,7 @@ The primary entry points for engineering work are skills invoked with slash synt
3031
| `/ce-compound` | Document solved problems to compound team knowledge |
3132
| `/ce-compound-refresh` | Refresh stale or drifting learnings and decide whether to keep, update, replace, or archive them |
3233
| `/ce-optimize` | Run iterative optimization loops with parallel experiments, measurement gates, and LLM-as-judge quality scoring |
34+
| `/ce-product-pulse` | Generate a single-page, time-windowed report on usage, performance, errors, and followups. Saves reports to `docs/pulse-reports/` as a browseable timeline of what users experienced |
3335

3436
For `/ce-optimize`, see [`skills/ce-optimize/README.md`](./skills/ce-optimize/README.md) for usage guidance, example specs, and links to the schema and workflow docs.
3537

plugins/compound-engineering/skills/ce-brainstorm/SKILL.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ Scan the repo before substantive brainstorming. Match depth to scope:
110110

111111
**Standard and Deep** — Two passes:
112112

113-
*Constraint Check* — Check project instruction files (`AGENTS.md`, and `CLAUDE.md` only if retained as compatibility context) for workflow, product, or scope constraints that affect the brainstorm. If these add nothing, move on.
113+
*Constraint Check* — Check project instruction files (`AGENTS.md`, and `CLAUDE.md` only if retained as compatibility context) for workflow, product, or scope constraints that affect the brainstorm. Also read `docs/strategy.md` if it exists — the product's target problem, approach, persona, and active tracks are direct input to what this brainstorm should deliver and should shape scope, success criteria, and which approaches are aligned vs out-of-scope. If these add nothing, move on.
114114

115115
*Topic Scan* — Search for relevant terms. Read the most relevant existing artifact if one exists (brainstorm, plan, spec, skill, feature doc). Skim adjacent examples covering similar behavior.
116116

plugins/compound-engineering/skills/ce-ideate/SKILL.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -234,13 +234,14 @@ Run grounding agents in parallel in the **foreground** (do not background — re
234234

235235
1. **Quick context scan** — dispatch a general-purpose sub-agent using the platform's cheapest capable model (e.g., `model: "haiku"` in Claude Code) with this prompt:
236236

237-
> Read the project's AGENTS.md (or CLAUDE.md only as compatibility fallback, then README.md if neither exists), then discover the top-level directory layout using the native file-search/glob tool (e.g., `Glob` with pattern `*` or `*/*` in Claude Code). Return a concise summary (under 30 lines) covering:
237+
> Read the project's AGENTS.md (or CLAUDE.md only as compatibility fallback, then README.md if neither exists), then discover the top-level directory layout using the native file-search/glob tool (e.g., `Glob` with pattern `*` or `*/*` in Claude Code). Also read `docs/strategy.md` if it exists — it captures the product's target problem, approach, persona, metrics, and tracks. Return a concise summary (under 30 lines) covering:
238238
> - project shape (language, framework, top-level directory layout)
239239
> - notable patterns or conventions
240240
> - obvious pain points or gaps
241241
> - likely leverage points for improvement
242+
> - product strategy summary, if `docs/strategy.md` was present — include the approach and active tracks verbatim so ideation can weight toward strategy-aligned directions
242243
>
243-
> Keep the scan shallow — read only top-level documentation and directory structure. Do not analyze GitHub issues, templates, or contribution guidelines. Do not do deep code search.
244+
> Keep the scan shallow — read only top-level documentation, `docs/strategy.md` if present, and directory structure. Do not analyze GitHub issues, templates, or contribution guidelines. Do not do deep code search.
244245
>
245246
> Focus hint: {focus_hint}
246247

plugins/compound-engineering/skills/ce-plan/SKILL.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -194,6 +194,7 @@ Fires **only in solo invocation** — when Phase 0.2 found no upstream brainstor
194194
Prepare a concise planning context summary (a paragraph or two) to pass as input to the research agents:
195195
- If an origin document exists, summarize the problem frame, requirements, and key decisions from that document
196196
- Otherwise use the feature description directly
197+
- If `docs/strategy.md` exists, read it and include the relevant pieces (target problem, approach, active tracks) in the summary so downstream research and planning decisions are anchored to product strategy
197198

198199
Run these agents in parallel:
199200

@@ -205,6 +206,7 @@ Collect:
205206
- Implementation patterns, relevant files, modules, and tests
206207
- AGENTS.md guidance that materially affects the plan, with CLAUDE.md used only as compatibility fallback when present
207208
- Institutional learnings from `docs/solutions/`
209+
- Product strategy context when `docs/strategy.md` is present — flag any plan decisions that pull away from the active tracks or the stated approach
208210

209211
**Slack context** (opt-in) — never auto-dispatch. Route by condition:
210212

0 commit comments

Comments
 (0)