{
  "uid": "cogitave.learn.use-the-decision-guides.walk-a-decision-guide",
  "kind": "moduleUnit",
  "href": "/modules/use-the-decision-guides/walk-a-decision-guide/",
  "title": "Walk a decision guide",
  "summary": "",
  "type": null,
  "products": [],
  "roles": [],
  "levels": [],
  "subjects": [],
  "headings": [
    "Walkthrough 1 - database selection: &quot;we need full-text search&quot;",
    "Walkthrough 2 - infrastructure selection: &quot;we need a long-running API service&quot;",
    "Walkthrough 3 - model selection: &quot;a new, correctness-critical compliance summary&quot;",
    "The pattern behind all three walkthroughs"
  ],
  "source": "Reading about a decision tree is not the same as walking one. Here are three\nshort walkthroughs, one per guide, each ending at the guide's own prescribed\nanswer with the reasoning that got there.\n\n## Walkthrough 1 - database selection: \"we need full-text search\"\n\nA product team needs to add full-text search over a document corpus. Open\n[database selection](../../../../standards/docs/standards/database-selection.md)\nand walk its five-step decision tree:\n\n1. **Access pattern** - full-text / semantic / graph traversal. That is the\n   first branch, and it does not fall through to the relational default.\n2. The [Cogitave override](../../../../standards/docs/standards/database-selection.md)\n   applies: the default for full-text, vector similarity, and relationship\n   traversal is **Cogitave Core's query layer** - fused BM25, in-process\n   HNSW, and property-graph traversal - **not** a standalone Elasticsearch,\n   pgvector deployment, or Neo4j.\n3. **Answer: Core's query layer.** Standing up Elasticsearch instead would be\n   a deviation requiring a **measured recall or memory ceiling** and an ADR.\n\nNotice what did *not* happen: nobody asked \"Postgres or Mongo?\" The access\npattern short-circuited the tree before the Postgres-first default was even\nrelevant.\n\n## Walkthrough 2 - infrastructure selection: \"we need a long-running API service\"\n\nA team is shipping a long-running Go service that serves live product\ntraffic. Open\n[infrastructure selection](../../../../standards/docs/standards/infrastructure-selection.md)\nand walk its compute decision tree (section 1, \"Compute\"):\n\n1. Is it global, per-request, tiny stateless logic? No.\n2. Is it event-driven, spiky, low-baseline glue between managed services? No -\n   it is long-running and stateful.\n3. Is it a long-running / stateful / latency-critical service? **Yes.**\n4. **Answer: a container image, distroless, on managed Kubernetes** - the\n   Cogitave default for exactly this shape.\n\nA **VM autoscaling group** instead would be an ADR-gated deviation requiring a\nmeasured reason - OS control, a GPU, or cold-start economics containers\ncannot meet.\n\n## Walkthrough 3 - model selection: \"a new, correctness-critical compliance summary\"\n\nA team is building a new agent flow that drafts a compliance summary - high\nstakes, no prior eval evidence. Open\n[model selection](../../../../standards/docs/standards/model-selection.md):\n\n1. Is the task **new or correctness-critical**? Yes - there is no golden\n   output set yet and being wrong is costly.\n2. The guide's default fires directly: **start at the most capable Claude\n   tier** (Tier 1) to establish the correctness bar and a golden output set.\n   Do not start cheap and hope.\n3. Only later, once that golden set exists, does the confidence-gated cascade\n   apply: route the confirmed-simple slice of the work to a cheaper tier,\n   gated by an **eval** showing it holds the quality bar, escalating hard\n   cases back up on low confidence.\n\nMoving this task to a cheaper tier without that eval would be an unrecorded,\nunjustified deviation - exactly what the guide's deviation rule forbids.\n\n## The pattern behind all three walkthroughs\n\n1. **Open the guide, not your memory.** Defaults and model IDs can be\n   superseded; the guide is the source of truth, not a recollection of it.\n2. **Walk the tree in order and stop at the first forcing step.** The tree\n   exists so the *shape of the workload*, not preference, decides.\n3. **If you land on the default, nothing to record.** If you deviate, you now\n   know what the ADR (or the eval, for model selection) must state: the\n   workload/task, the measured ceiling or eval delta, the chosen option's\n   trade-offs, and a migration or escalation path.\n\n> [!TIP]\n> When in doubt whether something is a \"measured need,\" ask whether you have\n> a benchmark or a production signal - not a hunch - tied to a stated\n> [reliability](../../../../standards/docs/standards/reliability.md) SLO or\n> error budget. That is the bar every deviation rule uses.\n",
  "partOf": "cogitave.learn.use-the-decision-guides",
  "durationInMinutes": 8,
  "quiz": null
}