You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -28,15 +28,15 @@ The point is not ceremony. The point is leverage. A good brainstorm makes the pl
28
28
29
29
## Workflow
30
30
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.
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 `STRATEGY.md`. Ideate, brainstorm, and plan read it as grounding when present, so strategy choices flow into feature conception, prioritization, and spec.
32
32
33
33
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.
34
34
35
35
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.
36
36
37
37
| Skill | Purpose |
38
38
|-------|---------|
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 |
39
+
|`/ce-strategy`| Create or maintain `STRATEGY.md` -- the product's target problem, approach, persona, key metrics, and tracks. Read as grounding by ideate, brainstorm, and plan |
40
40
|`/ce-ideate`| Optional big-picture ideation: generate and critically evaluate grounded ideas, then route the strongest one into brainstorming |
41
41
|`/ce-brainstorm`| Interactive Q&A to think through a feature or problem and write a right-sized requirements doc before planning |
42
42
|`/ce-plan`| Turn feature ideas into detailed implementation plans |
Copy file name to clipboardExpand all lines: plugins/compound-engineering/README.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -21,7 +21,7 @@ The primary entry points for engineering work, invoked as slash commands. `ce-st
21
21
22
22
| Skill | Description |
23
23
|-------|-------------|
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 |
24
+
|`/ce-strategy`| Create or maintain `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 |
25
25
|`/ce-ideate`| Optional big-picture ideation: generate and critically evaluate grounded ideas, then route the strongest one into brainstorming |
26
26
|`/ce-brainstorm`| Interactive Q&A to think through a feature or problem and write a right-sized requirements doc before planning |
27
27
|`/ce-plan`| Create structured plans for any multi-step task -- software features, research workflows, events, study plans -- with automatic confidence checking |
Copy file name to clipboardExpand all lines: plugins/compound-engineering/skills/ce-brainstorm/SKILL.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -110,7 +110,7 @@ Scan the repo before substantive brainstorming. Match depth to scope:
110
110
111
111
**Standard and Deep** — Two passes:
112
112
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.
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 `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.
114
114
115
115
*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.
Copy file name to clipboardExpand all lines: plugins/compound-engineering/skills/ce-ideate/SKILL.md
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -234,14 +234,14 @@ Run grounding agents in parallel in the **foreground** (do not background — re
234
234
235
235
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:
236
236
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:
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 `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:
> - product strategy summary, if `docs/strategy.md` was present — include the approach and active tracks verbatim so ideation can weight toward strategy-aligned directions
242
+
> - product strategy summary, if `STRATEGY.md` was present — include the approach and active tracks verbatim so ideation can weight toward strategy-aligned directions
243
243
>
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.
244
+
> Keep the scan shallow — read only top-level documentation, `STRATEGY.md` if present, and directory structure. Do not analyze GitHub issues, templates, or contribution guidelines. Do not do deep code search.
Copy file name to clipboardExpand all lines: plugins/compound-engineering/skills/ce-plan/SKILL.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -194,7 +194,7 @@ Fires **only in solo invocation** — when Phase 0.2 found no upstream brainstor
194
194
Prepare a concise planning context summary (a paragraph or two) to pass as input to the research agents:
195
195
- If an origin document exists, summarize the problem frame, requirements, and key decisions from that document
196
196
- 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
197
+
- If `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
198
198
199
199
Run these agents in parallel:
200
200
@@ -206,7 +206,7 @@ Collect:
206
206
- Implementation patterns, relevant files, modules, and tests
207
207
- AGENTS.md guidance that materially affects the plan, with CLAUDE.md used only as compatibility fallback when present
208
208
- 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
209
+
- Product strategy context when `STRATEGY.md` is present — flag any plan decisions that pull away from the active tracks or the stated approach
210
210
211
211
**Slack context** (opt-in) — never auto-dispatch. Route by condition:
Copy file name to clipboardExpand all lines: plugins/compound-engineering/skills/ce-product-pulse/SKILL.md
+5-5Lines changed: 5 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -45,7 +45,7 @@ Apply a **15-minute trailing buffer** to the window's upper bound. Many analytic
45
45
4.**Parallel where safe, serial where it matters.** Analytics and tracing queries run in parallel. Database queries run serially to avoid load.
46
46
5.**Memory through saved reports.** Every run writes to `docs/pulse-reports/` so past pulses are browseable as a timeline.
47
47
6.**Read-only database access only.** If a database is used as a data source, the connection must be read-only. The interview refuses to accept read-write credentials. Database access is optional - many products complete the pulse with analytics and tracing alone.
48
-
7.**Strategy-seeded when available.** If `docs/strategy.md` exists, the interview reads it before asking questions and carries forward the product name and key metrics as seeds. The goal of data-source setup is to wire up whatever connections are needed to actually measure those metrics.
48
+
7.**Strategy-seeded when available.** If `STRATEGY.md` exists, the interview reads it before asking questions and carries forward the product name and key metrics as seeds. The goal of data-source setup is to wire up whatever connections are needed to actually measure those metrics.
49
49
50
50
## Execution Flow
51
51
@@ -72,7 +72,7 @@ If it shows an unresolved command string, read `.compound-engineering/config.loc
72
72
-`pulse_db_enabled` -- `true` or default `false`; when `true`, read-only DB access is part of the pulse
73
73
-`pulse_metric_sources` -- comma-separated `metric=source` pairs giving per-strategy-metric source overrides (e.g., `retention_d7=posthog,nps=delighted`). Strategy metrics not listed fall back to `pulse_analytics_source` and are rendered with a `(default source)` marker so the implicit routing is visible.
74
74
-`pulse_pending_metrics` -- comma-separated string of strategy-doc metric names awaiting instrumentation; rendered as `no data` in each pulse report until instrumentation lands
75
-
-`pulse_excluded_metrics` -- comma-separated string of strategy-doc metric names intentionally excluded from the pulse; the metric stays in `docs/strategy.md` but is not surfaced in pulse reports
75
+
-`pulse_excluded_metrics` -- comma-separated string of strategy-doc metric names intentionally excluded from the pulse; the metric stays in `STRATEGY.md` but is not surfaced in pulse reports
76
76
77
77
**Routing:**
78
78
@@ -85,14 +85,14 @@ If the argument was `setup`, `reconfigure`, or `edit config`, go to Phase 1 rega
85
85
86
86
#### 1.0 Seed from strategy (if available)
87
87
88
-
Before asking any questions, read `docs/strategy.md` using the native file-read tool. If the file exists, extract:
88
+
Before asking any questions, read `STRATEGY.md` using the native file-read tool. If the file exists, extract:
89
89
90
-
- The product name from the H1 title, stripping the trailing ` Strategy` suffix (e.g., `# Spiral Strategy` -> `Spiral`)
90
+
- The product name from the `name` key in the YAML frontmatter, falling back to the H1 title (stripping the trailing ` Strategy` suffix, e.g., `# Spiral Strategy` -> `Spiral`) if frontmatter is missing
91
91
- The list of key metrics from the `## Key metrics` section, one per line
92
92
93
93
Open the interview by surfacing what was extracted: announce that a strategy doc was found, show the seeded product name and the list of key metrics that will be carried into event/data setup, and invite the user to correct any of it before continuing.
94
94
95
-
If `docs/strategy.md` does not exist, note that explicitly in chat: no strategy doc on file, running setup from scratch, and mention that `ce-strategy` can seed pulse later if run first.
95
+
If `STRATEGY.md` does not exist, note that explicitly in chat: no strategy doc on file, running setup from scratch, and mention that `ce-strategy` can seed pulse later if run first.
Copy file name to clipboardExpand all lines: plugins/compound-engineering/skills/ce-product-pulse/references/interview.md
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,7 +9,7 @@ For each section: ask the opening question, evaluate the answer against the qual
9
9
1.**Push back, but don't spiral.** One round of pushback per section max. If the second answer still isn't usable, capture what the user gave, flag it in the config as `needs-review`, and move on.
10
10
2.**Name events in the user's own words.** The config will be readable by the whole team - use the terms they actually use, not a generic template.
11
11
3.**Ask about tools, not credentials.** The interview captures *which* tool and *what shape of query*. It does not collect API keys, tokens, or database passwords. Those stay in the user's environment.
12
-
4.**Honor strategy seeds.** If `SKILL.md` Phase 1.0 surfaced a product name or a list of key metrics from `docs/strategy.md`, start with those as defaults and let the user edit. Do not re-ask questions that the strategy doc already answered unambiguously.
12
+
4.**Honor strategy seeds.** If `SKILL.md` Phase 1.0 surfaced a product name or a list of key metrics from `STRATEGY.md`, start with those as defaults and let the user edit. Do not re-ask questions that the strategy doc already answered unambiguously.
13
13
5.**Evaluate metrics against the SMART bar.** Every event, metric, and signal the user proposes should be:
14
14
-**Specific** - a named event or a named metric, not a category. `message_sent` passes; "engagement" does not.
15
15
-**Measurable** - you can point to the tool and query that returns a number. "Users like it" does not pass; "NPS score from Delighted" does.
@@ -129,7 +129,7 @@ The answer produces (tool name, query shape). If multiple entries land in the sa
129
129
**If the user says "we don't have that instrumented yet"** (common for strategy-seeded metrics like retention or NPS): offer two off-ramps and let them pick.
130
130
131
131
-**Defer** - append the metric name to `pulse_pending_metrics` (CSV). The metric renders as `no data` in each pulse report until instrumentation lands. Right call when the metric matters and the team will instrument it.
132
-
-**Drop from pulse** - append the metric name to `pulse_excluded_metrics` (CSV). The metric stays in `docs/strategy.md` but the pulse skips it entirely. Right call when the metric is aspirational and won't have data any time soon.
132
+
-**Drop from pulse** - append the metric name to `pulse_excluded_metrics` (CSV). The metric stays in `STRATEGY.md` but the pulse skips it entirely. Right call when the metric is aspirational and won't have data any time soon.
133
133
134
134
Do not silently skip. Every un-instrumented strategy metric must land in exactly one of `pulse_pending_metrics` (visible as `no data`) or `pulse_excluded_metrics` (omitted from the report).
- **Strategy metrics carried forward**: surfaced in the report, not stored as config — they live in `docs/strategy.md` and are re-read each run from there.
254
+
- **Strategy metrics carried forward**: surfaced in the report, not stored as config — they live in `STRATEGY.md` and are re-read each run from there.
255
255
- **Per-source connection details** (URLs, API keys, query specifics): live with the user's MCP configuration, not in this config.
256
256
- **Hardcoded operational settings** (15-minute trailing buffer, top-N error count, p50/p95/p99 latencies, "no PII in reports", "parallel analytics + tracing, serial DB"): these are skill behavior, not user config; they live in `SKILL.md` and stay constant.
257
257
- **Schedule cadence**: handled by the `schedule` skill (or platform-native cron), not pulse config. The pulse skill only hands off; it does not own the cadence record.
Copy file name to clipboardExpand all lines: plugins/compound-engineering/skills/ce-product-pulse/references/report-template.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,7 +9,7 @@ Loaded by `SKILL.md` at Phase 2.3 after queries have returned. Fill the template
9
9
- No hardcoded thresholds. Do not label things "high" or "low" or color anything red unless the reader asked for threshold-based annotation at setup.
10
10
- No PII. No emails, no account IDs, no message content.
11
11
- Headlines are the top of the page. If a reader only reads the first 3 lines, they should know the most important thing that happened.
12
-
- If `docs/strategy.md` exists, re-read its `## Key metrics` section before assembling the report. For each strategy metric, decide what to render:
12
+
- If `STRATEGY.md` exists, re-read its `## Key metrics` section before assembling the report. For each strategy metric, decide what to render:
13
13
- If the metric name appears in `pulse_excluded_metrics`, omit it from the report.
14
14
- If the metric name appears in `pulse_pending_metrics`, include it in the Usage section marked `no data (instrumentation pending)`.
15
15
- Otherwise, resolve the source for this metric: look it up in `pulse_metric_sources` (CSV of `metric=source` pairs); if present, use that source. If absent, fall back to `pulse_analytics_source` and append `(default source)` to the metric line so the implicit routing is visible. Then query and render the metric with its current value and delta. If the query returns no value, include it anyway and mark it `no data`.
0 commit comments