Invoke:
/product-context · Side effects: writes one doc · Writes: product.md onlyproduct.md, the durable “what is always true here” doc: domain glossary, architecture
boundaries, house-rule conventions, non-negotiables (graded by feature-verify as implicit
acceptance criteria), and a baseline definition of done.
Bootstrap vs. update
- Doesn’t exist yet → bootstraps from
templates/product.md, grounded in evidence (READMEs, package metadata, the repos in your config, conventions already dominant in your code) — never invented. Genuine unknowns get a “confirm with the team” placeholder instead of a guess. - Already exists → an update: changes only what’s asked or clearly stale, bumps the version/last-amended footer, leaves everything still-true untouched.
Always presented for ratification
product.md encodes team commitments, so this skill never silently finalizes it — it presents the
draft (or the diff, on update) and asks you to ratify, especially the non-negotiables, before
setting the version footer.
Boundaries
Writes onlyproduct.md and its footer. No branch, no feature code, no PR, and it never touches
.shipflow/{id}/ per-work-item files — that’s the phase skills’ domain.