{
  "uid": "cogitave.learn.navigate-the-patterns-catalog.discover-before-you-build",
  "kind": "moduleUnit",
  "href": "/modules/navigate-the-patterns-catalog/discover-before-you-build/",
  "title": "Discover before you build",
  "summary": "",
  "type": null,
  "products": [],
  "roles": [],
  "levels": [],
  "subjects": [],
  "headings": [
    "The four-step loop",
    "Patterns stop here, once chosen",
    "Day-0 honesty"
  ],
  "source": "Knowing the entry shape is only useful if you actually reach for it before\nwriting code. [patterns/README.md](../../../../standards/docs/patterns/README.md)\nstates the loop as four steps.\n\n## The four-step loop\n\n1. **Query before you generate.** Every pattern is a Doc node projected into\n   Core and reachable over MCP. Ask `docs_search` for the task - \"add an HTTP\n   endpoint\", \"emit a domain event\" - or `query_graph` for `Pattern` nodes and\n   their `governedBy` edges, before writing any code.\n2. **Read the entry, follow the two links.** Read *The Cogitave way* for\n   orientation, then open the **governing standard** (the rules you must obey)\n   and the **reusable artifact** (the code you start from). The entry itself is\n   deliberately short - it is not where the authority lives.\n3. **Start from the artifact, not a blank file.** Scaffold from the named\n   template, extend the named primitive, or copy the named snippet. A repo\n   scaffolded from `templates/base` already inherits the floor, the standards,\n   the lifecycle, and the identity - the next module in this path,\n   @cogitave.learn.inherit-the-project-baseline, walks through exactly what that\n   inheritance covers.\n4. **If you must go off-road, own it.** Deviating from a golden path is allowed,\n   but it is a decision with a cost: you record the rationale (an ADR or a\n   lifecycle `evaluate` note), you own the resulting maintenance, and you still\n   have to satisfy the\n   [Definition of Done](../../../../agents/lifecycle/definition-of-done.md) -\n   going off-road does not exempt you from it.\n\n> [!TIP]\n> The rule of thumb for anything new: query the catalog, compose from the named\n> artifact, and only author new after a recorded \"no fit\" - then contribute the\n> new pattern back, so the next project finds it. An industrial-standard\n> solution that stops at the catalog becomes *our* standard.\n\n## Patterns stop here, once chosen\n\n[ADR-0022](../../../../standards/docs/decisions/0022-patterns-catalog-and-project-inheritance.md)\n(part A3) makes this explicit: once a golden path is chosen, the industry\npractice it ports **becomes** the Cogitave standard, and the estate does not\nre-shop the same decision on the next task. New patterns enter at a `trial` or\n`assess` maturity and are promoted to `adopt`, per the same vocabulary as the\n[technology-radar](../../../../standards/docs/standards/technology-radar.md); a\nretired path is marked `supersededBy`, never deleted, symmetric with how a\nsuperseded ADR is handled. That is what makes the catalog a reference you can\nbuild a habit on: entries do not vanish out from under a decision you made\nagainst them last quarter.\n\n## Day-0 honesty\n\nThe catalog and the MCP query surface it is built on are the design this module\nteaches you to use; per ADR-0022's own consequences, the catalog seeds from the\ntemplates and standards already authored and grows as more patterns are proven\nin real use - it is not a promise that every conceivable task already has a\npolished entry. Where it is silent, step 4 is exactly what you do next.\n",
  "partOf": "cogitave.learn.navigate-the-patterns-catalog",
  "durationInMinutes": 8,
  "quiz": null
}