The patterns catalog
The catalog lives in two forms that describe the same set of patterns: a human document and a machine-readable index. Both are read from patterns/README.md.
The five-section entry shape
Every pattern doc - service-scaffold.md, api-endpoint.md, caching.md, and the rest listed in the README's catalog table - has the same five sections, in this order:
| Section | What it tells you |
|---|---|
| Problem | When you reach for this pattern. |
| The Cogitave way | The one canonical solution, concretely. |
| Governing standard(s) | The authority - the rules live there, not here. |
| Reusable artifact | The template, primitive, or snippet to start from. |
| Anti-pattern | What agents most often wrongly generate instead. |
Read service-scaffold.md end to end and you can feel the shape: the Problem names the temptation to git init an empty repo; the Cogitave way says scaffold from templates/base plus a language template instead; the governing standards are product-architecture, product-core-baseline, technology-radar, and ci-cd-pipelines; the reusable artifact names templates/base composed with templates/service, templates/go-service, or templates/rust; the anti-pattern is hand-rolling a repo from a blank directory and re-picking a toolchain ad hoc.
The machine-readable index
catalog.yaml is the authoritative, MCP-consumable projection of the same catalog. Each entry carries uid, problem, governing_standard (a list of uid + path), reusable_artifact (kind + path), and anti_pattern - the same five ideas, structured for a query instead of a read. An entry may also carry an optional canonical_pattern field pointing back at a five-section doc: new-repo, new-service-rust, new-service-go, and new-library are four different task-level intents that all set canonical_pattern to service-scaffold.md, because they are variations on one canonical write-up, not four separate policies. When an entry has no canonical_pattern, its catalog.yaml fields are the pattern - there is no separate prose doc to open.
NOTE
Both forms are the same projection of Cogitave Core, queried the same way a human or an agent would: docs_search or query_graph over the query layer and the MCP interface. There is no second, private index - see ADR-0022 part D.
Whichever form you open, read the same way: get the Problem and the Cogitave way for orientation, then treat the Governing standard and the Reusable artifact as the two links that matter - everything else is a pointer to one of those two.