Architecture patterns
A "pattern" here is not a tech-stack recommendation. It is a shape a core loop
takes — the thing that determines which discovery questions matter, which
decisions are likely already made by the shape itself, and which failure modes
show up in production. Naming the shape early saves the frame and discover
stages from asking questions that do not apply, and saves decide from treating
an obvious default as an open decision.
This skill holds six shapes. Each has one reference file at
references/<shape>.md. Load the reference for the chosen shape; do not load
more than one unless the goal genuinely spans two loops (say so explicitly if
it does — most goals that feel like two shapes are one shape with an
under-specified boundary).
The six shapes
| shape |
fits when the core loop is |
retrieval-grounded-answering |
answering questions against a corpus the system does not own the truth of, with citations back to source |
decision-support |
producing a recommendation plus rationale for a human who keeps the authority to accept or override it |
document-extraction |
turning unstructured documents into structured, validated records at volume |
conversational-service |
holding a multi-turn conversation that helps a user complete a bounded set of tasks, with escalation to a human |
process-monitoring |
watching a stream of events over time and raising an alert or triggering a workflow when something drifts |
regulatory-checking |
checking a piece of work against a body of external rules and producing an audit trail of the check |
How to pick a shape
Ask these in order; stop at the first "yes."
- Is the system checking work against rules it did not write, and its output
is a pass/fail or flag against those rules? →
regulatory-checking
- Is the system watching a stream over time rather than responding to one
request? →
process-monitoring
- Does a human hold a multi-turn conversation with it to get something done,
with no single request/response pair capturing the interaction? →
conversational-service
- Is the primary output a structured record extracted from an unstructured
document, not prose? →
document-extraction
- Does the output carry an explicit recommendation and a human decides
whether to act on it? →
decision-support
- Otherwise, if the loop's job is answering a question from a corpus with
citations →
retrieval-grounded-answering
If the goal fails all six, the shape is not in this library yet — say so in
00-frame.md rather than forcing a fit; a wrong shape produces the wrong
discovery questions for the rest of the lifecycle.
What each reference file gives you
Every references/<shape>.md is one file organized as six sections, mapped
to what the ADLC stages consume:
- Problem it fits — one paragraph, feeds
00-frame.md's outcome
sentence and non-goals.
- The seven planes for this shape —
experience, observability,
evaluation, orchestration, tools, context, model; each with its
owns line and where its boundary typically sits for this shape. Feeds
SYSTEM.md's plane ownership table.
- The four decisions as they usually land —
model, loop, trust,
run; each with the verdict this shape tends toward, why, and the
evidence to check before trusting the tendency. Feeds decide — a
tendency is a starting hypothesis, not a verdict; the gate still requires
evidence before marking a decision MADE.
- Discovery questions — 8 to 12 questions, each with a
Purpose: line
explaining what answer changes the design. Feeds 01-discovery.md;
discovery-analyst should prefer these over generic questions once the
shape is named, because a generic question bank does not know which
answers are load-bearing for this shape.
- Bill of materials — capability roles this shape typically needs
(model gateway, vector store, durable runtime, object store, and similar
nouns), never a vendor name or a price. Feeds
04-roi.md and
prices.json — the economics-analyst still has to price each role for
the customer's actual vendor choice; this list only says what roles
exist.
- Failure modes and eval cases to include — feeds
05-trust-boundary.md and 06-evals/cases.jsonl. The eval-engineer
should treat the listed case categories as a floor, not a ceiling — the
ten-case minimum in gate.evals is the gate, not the target.
Planes are the same seven everywhere; boundaries move
The seven plane names — experience, observability, evaluation,
orchestration, tools (tool surface), context (context and retrieval),
model (model access) — do not change between shapes; what changes is
where the boundary sits and who owns it. A process-monitoring system has
almost no experience plane most of the time (nobody is watching) and a
very active one at alert time. A conversational-service system has an
experience plane doing work on every turn. Read the shape's plane table
for the boundary, not just the name.
Rewriting rule
Reference files describe tendencies, drawn from how this shape's loop
usually behaves — they are not a customer's actual answers. Never paste a
reference file's prose into a customer's docs/architecture/ output. Use it
to decide which questions to ask and what to check for; the customer's own
evidence fills in the artifact.
1---2name: architecture-patterns3description: Pick the shape a system's core loop is actually built from, then load the matching reference for its planes, decisions, discovery questions, bill of materials, failure modes, and eval cases. Use during frame and discover to name the shape before any design work starts, and again at decide to check the four decisions against how this shape usually resolves them.4---56# Architecture patterns78A "pattern" here is not a tech-stack recommendation. It is a shape a core loop9takes — the thing that determines which discovery questions matter, which10decisions are likely already made by the shape itself, and which failure modes11show up in production. Naming the shape early saves the frame and discover12stages from asking questions that do not apply, and saves decide from treating13an obvious default as an open decision.1415This skill holds six shapes. Each has one reference file at16`references/<shape>.md`. Load the reference for the chosen shape; do not load17more than one unless the goal genuinely spans two loops (say so explicitly if18it does — most goals that feel like two shapes are one shape with an19under-specified boundary).2021## The six shapes2223| shape | fits when the core loop is |24|---|---|25| `retrieval-grounded-answering` | answering questions against a corpus the system does not own the truth of, with citations back to source |26| `decision-support` | producing a recommendation plus rationale for a human who keeps the authority to accept or override it |27| `document-extraction` | turning unstructured documents into structured, validated records at volume |28| `conversational-service` | holding a multi-turn conversation that helps a user complete a bounded set of tasks, with escalation to a human |29| `process-monitoring` | watching a stream of events over time and raising an alert or triggering a workflow when something drifts |30| `regulatory-checking` | checking a piece of work against a body of external rules and producing an audit trail of the check |3132## How to pick a shape3334Ask these in order; stop at the first "yes."35361. Is the system checking work against rules it did not write, and its output37 is a pass/fail or flag against those rules? → `regulatory-checking`382. Is the system watching a stream over time rather than responding to one39 request? → `process-monitoring`403. Does a human hold a multi-turn conversation with it to get something done,41 with no single request/response pair capturing the interaction? →42 `conversational-service`434. Is the primary output a structured record extracted from an unstructured44 document, not prose? → `document-extraction`455. Does the output carry an explicit recommendation and a human decides46 whether to act on it? → `decision-support`476. Otherwise, if the loop's job is answering a question from a corpus with48 citations → `retrieval-grounded-answering`4950If the goal fails all six, the shape is not in this library yet — say so in51`00-frame.md` rather than forcing a fit; a wrong shape produces the wrong52discovery questions for the rest of the lifecycle.5354## What each reference file gives you5556Every `references/<shape>.md` is one file organized as six sections, mapped57to what the ADLC stages consume:58591. **Problem it fits** — one paragraph, feeds `00-frame.md`'s outcome60 sentence and non-goals.612. **The seven planes for this shape** — `experience`, `observability`,62 `evaluation`, `orchestration`, `tools`, `context`, `model`; each with its63 owns line and where its boundary typically sits for this shape. Feeds64 `SYSTEM.md`'s plane ownership table.653. **The four decisions as they usually land** — `model`, `loop`, `trust`,66 `run`; each with the verdict this shape tends toward, why, and the67 evidence to check before trusting the tendency. Feeds `decide` — a68 tendency is a starting hypothesis, not a verdict; the gate still requires69 evidence before marking a decision `MADE`.704. **Discovery questions** — 8 to 12 questions, each with a `Purpose:` line71 explaining what answer changes the design. Feeds `01-discovery.md`;72 `discovery-analyst` should prefer these over generic questions once the73 shape is named, because a generic question bank does not know which74 answers are load-bearing for this shape.755. **Bill of materials** — capability roles this shape typically needs76 (model gateway, vector store, durable runtime, object store, and similar77 nouns), never a vendor name or a price. Feeds `04-roi.md` and78 `prices.json` — the economics-analyst still has to price each role for79 the customer's actual vendor choice; this list only says what roles80 exist.816. **Failure modes** and **eval cases to include** — feeds82 `05-trust-boundary.md` and `06-evals/cases.jsonl`. The eval-engineer83 should treat the listed case categories as a floor, not a ceiling — the84 ten-case minimum in `gate.evals` is the gate, not the target.8586## Planes are the same seven everywhere; boundaries move8788The seven plane names — `experience`, `observability`, `evaluation`,89`orchestration`, `tools` (tool surface), `context` (context and retrieval),90`model` (model access) — do not change between shapes; what changes is91where the boundary sits and who owns it. A `process-monitoring` system has92almost no `experience` plane most of the time (nobody is watching) and a93very active one at alert time. A `conversational-service` system has an94`experience` plane doing work on every turn. Read the shape's plane table95for the boundary, not just the name.9697## Rewriting rule9899Reference files describe tendencies, drawn from how this shape's loop100usually behaves — they are not a customer's actual answers. Never paste a101reference file's prose into a customer's `docs/architecture/` output. Use it102to decide which questions to ask and what to check for; the customer's own103evidence fills in the artifact.