feat(ce-strategy): move strategy doc to root and add frontmatter#732
feat(ce-strategy): move strategy doc to root and add frontmatter#732
Conversation
Promote the strategy doc from `docs/strategy.md` to a root-level `STRATEGY.md` so it sits as a canonical, well-known file alongside `README.md` -- following the same convention as DESIGN.md and other emerging "spec at the root" patterns. Add minimal YAML frontmatter (`name`, `last_updated`) to the template, and drop the in-prose `_Last updated_` line so there's a single source of truth for the date. `ce-product-pulse` now prefers the frontmatter `name` for product-name extraction, falling back to the H1 title when frontmatter is absent. Update downstream skills that read the strategy doc as grounding -- `ce-plan`, `ce-brainstorm`, `ce-ideate`, `ce-product-pulse` -- to read the new root path. No migration logic for existing `docs/strategy.md` files: usage is small enough that state-tracking a one-time prompt isn't justified. Existing users will see a clean first-run on next `/ce-strategy`. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 6f0e829045
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| ~~~markdown | ||
| # {{product_name}} Strategy | ||
| --- | ||
| name: {{product_name}} |
There was a problem hiding this comment.
Quote the frontmatter
name value
Writing name: {{product_name}} as an unquoted YAML scalar can produce invalid frontmatter when the product name contains YAML-significant characters (for example : or #), which breaks the new “programmatic” consumption path introduced in this commit (e.g., ce-product-pulse seeding from frontmatter). This should be emitted as a quoted string in the template so common product names always parse reliably.
Useful? React with 👍 / 👎.
Summary
Strategy doc is now a canonical root-level file (
STRATEGY.md, peer ofREADME.md), with minimal YAML frontmatter so downstream skills consume the product name and last-updated date programmatically instead of scraping prose./ce-strategywrites the new path;ce-plan,ce-brainstorm,ce-ideate, andce-product-pulseread it as grounding.Why root
Strategy is the durable upstream anchor every downstream skill grounds against, the same role
README.md,LICENSE, and emerging conventions like DESIGN.md play. Burying it indocs/framed it as one of many project docs; promoting to root makes the intent obvious from a directory listing.Why frontmatter
ce-product-pulsealready parses the H1 to extract the product name and an italic prose line for the last-updated date. A two-key YAML block (name,last_updated) gives a stable surface without scaffolding. Kept deliberately minimal: noversion:, notype:, no$schema:. The filename declares identity for canonical files; version metadata earns its way in only when a consumer needs it.No migration logic
The skill has small enough usage that state-tracking a one-time prompt about moving old
docs/strategy.mdfiles isn't justified. Existing users see a clean first-run on next/ce-strategy; the old file stays untouched until they delete it manually. Reconsider if usage grows.Test plan
bun test(1025 pass) andbun run release:validate(clean).