feat(ce-strategy,ce-product-pulse): add PM skills for upstream anchor and outcome pulse#614
feat(ce-strategy,ce-product-pulse): add PM skills for upstream anchor and outcome pulse#614
Conversation
|
|
||
| # Product Pulse | ||
|
|
||
| `ce-product-pulse` queries the product's data sources for a given time window and produces a compact, single-page report covering usage, performance, errors, and followups. The report is saved to `~/pulse-reports/` and the key points are surfaced in chat. |
There was a problem hiding this comment.
@imwm wondering justification to have this in home directory vs in repo and checked in for benefit ongoing? Or do you expect users to use this when not having the repo?
|
|
||
| `ce-product-pulse` queries the product's data sources for a given time window and produces a compact, single-page report covering usage, performance, errors, and followups. The report is saved to `~/pulse-reports/` and the key points are surfaced in chat. | ||
|
|
||
| This is a read-only skill. It reports on what happened; it does not fix anything, ship anything, or change the product. |
There was a problem hiding this comment.
I think you can skip this and enforce with tools in front matter instead? that not only guarantees it but will also reduce context window usage by eliminating extraenous tools
|
|
||
| **Note: The current year is 2026.** Use this when dating the strategy document. | ||
|
|
||
| `ce-strategy` produces and maintains `docs/strategy.md` - a short, durable anchor document that captures what the product is, who it serves, how it succeeds, and where the team is investing. Downstream skills (`ce:ideate`, `ce:brainstorm`, `ce:plan`) read it as grounding when it exists. |
There was a problem hiding this comment.
@imwm wondering if for important docs like this, which are more durable, we should center on a convention of uppercase filenames. so in this case docs/STRATEGY.md?
|
|
||
| ## Core Principles | ||
|
|
||
| 1. **Anchor, not plan.** Strategy is what the product is and why. Features belong in `ce:brainstorm`; schedules belong in the issue tracker. Do not let either creep into the doc. |
There was a problem hiding this comment.
change all the skill references across your SKILL.md and reference files to use the hyphenated versions, so ce-brainstorm in this case.
|
|
||
| ### Phase 3: Downstream Handoff | ||
|
|
||
| After writing, note in one line where the file lives and that `ce:ideate`, `ce:brainstorm`, and `ce:plan` will pick it up as grounding on their next run. |
There was a problem hiding this comment.
outdates skill names, use hyphenated versions
|
|
||
| After writing, note in one line where the file lives and that `ce:ideate`, `ce:brainstorm`, and `ce:plan` will pick it up as grounding on their next run. | ||
|
|
||
| If no downstream skill has run yet on this repo, suggest `/ce:ideate` or `/ce:brainstorm` as a next step. |
There was a problem hiding this comment.
remove the / prefix due to codex using $. suggested rewrite
If no downstream skill has run yet on this repo, suggest `ce:ideate` or `ce:brainstorm` skills as a next step.
| ### Core Workflow | ||
|
|
||
| The primary entry points for engineering work, invoked as slash commands: | ||
| The primary entry points for engineering work, invoked as slash commands. `/ce-strategy` anchors the loop upstream; `/ce-product-pulse` closes it with a read on user outcomes. |
There was a problem hiding this comment.
change to:
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.
tmchow
left a comment
There was a problem hiding this comment.
One other comment right now is whether we should be adding a new ce-strategy-alignment-reviewer agent that is used to essentially test: “Does this conflict with the project’s written strategy?” could be used in various skills where it makes sense. This then allows us to get ongoing mileage and value from the strategy doc.
|
|
||
| Write the captured config to `docs/product-pulse.md` using the structure defined in `references/interview.md` under "Config file shape". Show the file to the user and offer one round of edits. | ||
|
|
||
| After the config is written, run the **scheduling recommendation** from `references/interview.md` section 9: offer to set up a recurring run (via `schedule` skill or a cron-like routine) so the user gets the pulse on a cadence instead of having to remember to run it. Accept yes/no/later. If yes, hand off to the `schedule` skill; do not schedule inline. Then proceed to Phase 2. |
There was a problem hiding this comment.
we may need to think about cross harness compat here.
Summary
Adds PM skills
ce-strategyandce-product-pulse:/ce-strategy— Interviews the user to producedocs/strategy.md: a Rumeltian problem/approach statement, persona(s), key metrics, and work tracks. Short and structured on purpose; re-runnable to update individual sections.ce:ideate,ce:brainstorm, andce:planread it as grounding when present./ce-product-pulse— Generates a single-page, time-windowed report (usage, performance, errors, followups) saved to~/pulse-reports/as a browseable timeline. First-time run interviews the user to define metrics and wire data sources (MCP-preferred, read-only DB only). Adapted from Spiral's "pulse" command.Both skills use the dash-form
ce-*naming convention going forward; existingce:*skills can be renamed in a separate sweep.Upstream/downstream wiring
The two skills bookend the existing loop — strategy anchors it, pulse closes it:
Three existing skills now read
docs/strategy.mdwhen present:ce:brainstorm— Constraint Check pulls in strategy alongsideAGENTS.md.ce:ideate— quick-context sub-agent summarizes strategy and returns approach + active tracks so ideation weights toward strategy-aligned directions.ce:plan— planning context summary includes target problem/approach/tracks; research flags plan decisions that pull away from active tracks.ce-product-pulsealso seeds from strategy when available: product name and key metrics are carried into data-source setup so the interview wires up connections to actually measure the metrics strategy defined.What this does not do
scheduleskill with explicit confirmation).ce:brainstorm, schedules in the tracker.Files changed
plugins/compound-engineering/skills/ce-strategy/(new) —SKILL.md+references/interview.md+references/strategy-template.mdplugins/compound-engineering/skills/ce-product-pulse/(new) —SKILL.md+references/interview.md+references/report-template.mdplugins/compound-engineering/skills/ce-{brainstorm,ideate,plan}/SKILL.md— strategy-as-grounding integrationREADME.md,plugins/compound-engineering/README.md— workflow diagram, command tables, skill count 42→44Test plan
bun run release:validatepasses (45 skills, 50 agents)bun testpasses/ce-strategyfirst-run flow produces a validdocs/strategy.mdand re-runs update a single section without clobbering the rest/ce-product-pulsefirst-run interview writesdocs/product-pulse.mdand refuses read-write DB creds; subsequent run produces a 30-40-line report at~/pulse-reports/YYYY-MM-DD_HH-MM.md/ce:brainstorm,/ce:ideate,/ce:planall readdocs/strategy.mdwhen present and run cleanly when it is absentbun run convertfor opencode/codex targets with a test plugin including both skills