chiltepin 0.47.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +249 -0
  3. package/dist/bin.js +3582 -0
  4. package/dist/bin.js.map +1 -0
  5. package/package.json +93 -0
  6. package/templates/chiltepin.config.json +5 -0
  7. package/templates/demo.md +2161 -0
  8. package/templates/docs/getting-started.md +155 -0
  9. package/templates/docs/tutorial.md +559 -0
  10. package/templates/skill/SKILL.md +172 -0
  11. package/templates/skill/reference/blocks/INDEX.md +141 -0
  12. package/templates/skill/reference/blocks/agentic.md +63 -0
  13. package/templates/skill/reference/blocks/algorithms.md +49 -0
  14. package/templates/skill/reference/blocks/api.md +40 -0
  15. package/templates/skill/reference/blocks/architecture.md +94 -0
  16. package/templates/skill/reference/blocks/business.md +70 -0
  17. package/templates/skill/reference/blocks/charts-overviews.md +74 -0
  18. package/templates/skill/reference/blocks/data-model.md +34 -0
  19. package/templates/skill/reference/blocks/design-system.md +50 -0
  20. package/templates/skill/reference/blocks/flows.md +74 -0
  21. package/templates/skill/reference/blocks/narrative.md +65 -0
  22. package/templates/skill/reference/blocks/planning.md +74 -0
  23. package/templates/skill/reference/blocks/quality.md +43 -0
  24. package/templates/skill/reference/blocks/tables-data.md +55 -0
  25. package/templates/skill/reference/check.md +62 -0
  26. package/templates/skill/reference/decks.md +198 -0
  27. package/templates/skill/reference/exemplars/adr.md +87 -0
  28. package/templates/skill/reference/exemplars/agent-system.md +113 -0
  29. package/templates/skill/reference/exemplars/api-reference.md +110 -0
  30. package/templates/skill/reference/exemplars/backend-arch.md +117 -0
  31. package/templates/skill/reference/exemplars/data-pipeline.md +107 -0
  32. package/templates/skill/reference/exemplars/frontend-arch.md +93 -0
  33. package/templates/skill/reference/exemplars/incident-postmortem.md +93 -0
  34. package/templates/skill/reference/exemplars/migration-plan.md +95 -0
  35. package/templates/skill/reference/exemplars/onboarding.md +78 -0
  36. package/templates/skill/reference/exemplars/product-spec.md +81 -0
  37. package/templates/skill/reference/intake.md +140 -0
  38. package/templates/skill/reference/mermaid.md +216 -0
  39. package/templates/skill/reference/organizing.md +118 -0
  40. package/templates/skill/reference/patterns-design.md +59 -0
  41. package/templates/skill/reference/patterns.md +167 -0
  42. package/templates/skill/reference/recipes.md +153 -0
  43. package/templates/skill/reference/style-ste.md +119 -0
  44. package/templates/skill/reference/system-design.md +161 -0
  45. package/templates/skill/reference/writing.md +132 -0
@@ -0,0 +1,172 @@
1
+ ---
2
+ name: chiltepin
3
+ description: >-
4
+ Write, edit, validate, and render Chiltepin docs: Markdown with typed YAML
5
+ blocks for diagrams, API references, ADRs, runbooks, and slides. Use when
6
+ the user requests Chiltepin or the chiltepin CLI, or edits typed-block docs in a
7
+ Chiltepin project (chiltepin.config.*). Preserve an explicitly requested format;
8
+ installing this skill alone does not make every Markdown task a Chiltepin task.
9
+ ---
10
+
11
+ # Chiltepin — docs as Markdown with typed YAML blocks
12
+
13
+ A doc is plain Markdown. Anything structured — a diagram, a table, a plan — is
14
+ a fenced block whose info-string is the block type and whose body is YAML.
15
+ The `.md` file is the only source of truth. Never paste HTML or SVG. Never
16
+ place pixels: the renderer owns layout, you own content.
17
+
18
+ ````
19
+ ## Request flow
20
+
21
+ ```sequence
22
+ actors:
23
+ - { id: Client, name: Client }
24
+ - { id: API, name: Orders API }
25
+ messages:
26
+ - Client -> API: POST /orders
27
+ - API --> Client: 201 Created
28
+ ```
29
+ ````
30
+
31
+ ## Fast path
32
+
33
+ Use the project's installed CLI (`pnpm exec chiltepin` or `npx --no-install chiltepin`)
34
+ to match its dependency version. Otherwise, `npx -y chiltepin …` downloads and
35
+ runs the published CLI. In the Chiltepin source repo, use the built
36
+ `node packages/cli/dist/bin.js`. The commands below show the fallback form.
37
+
38
+ Detailed references live beside this file — read them on demand; the table
39
+ at the end explains which reference each task needs.
40
+
41
+ 1. **Pick the blocks from the reader's question**, not from the words in the
42
+ request. Use the table below. For a full doc, two to five structural blocks
43
+ often suffice. A single diagram request needs only that diagram. Use prose
44
+ when a small list communicates the same information more clearly.
45
+ Unsure which block exists: `npx -y chiltepin block` lists all 107 block types.
46
+ 2. **Look up each block you will write**: `npx -y chiltepin block <type>`.
47
+ It prints the fields, enums, terse one-line forms, and a validating
48
+ example. Read a family selection sheet only when the choice remains unclear.
49
+ 3. **Write the doc.** For a full doc, put `meta` first (title, subtitle, tag). A `##` heading
50
+ above a block is its title. Prose carries why and consequence, never a
51
+ description of the block below it. Rules in the two sections after the
52
+ table.
53
+ 4. **Check**: `npx -y chiltepin check <file> --json`. Every diagnostic carries
54
+ a stable code and the failing value; `reference/check.md` maps each code
55
+ to its fix. Fix errors and rerun while you make progress. Stop and report
56
+ the blocker if a diagnostic repeats without a new fix or needs missing facts.
57
+ Warnings do not fail the check by default; review them and report relevant ones.
58
+ A non-zero exit is never "done". If the CLI is unavailable, report validation
59
+ as unverified. Never invent a successful check.
60
+ 5. **Render when asked**: `npx -y chiltepin html <file> -p` (page) or
61
+ `slides <file> -p` (deck).
62
+
63
+ Handoff: the file path, actual check result, and any unresolved diagnostics.
64
+ Explain block selection only when the user asks or a tradeoff needs explanation.
65
+
66
+ Editing an existing doc: read it whole first. Change the one block, and
67
+ carry the fact into related blocks within the requested scope. Preserve unrelated
68
+ content. Rewrite the whole document only when the user requests a rewrite.
69
+
70
+ ## Pick the block by the reader's question
71
+
72
+ | Reader question | Blocks | Choose by |
73
+ |---|---|---|
74
+ | What calls what? | `sequence` · `graph` · `c4` | ordered messages → sequence; topology at rest → graph or c4 |
75
+ | What path does a request take through the infrastructure? | `block` · `c4` · `cluster` | tiers and hops → block; system context for a stakeholder → c4; namespaces and replicas → cluster |
76
+ | What happens when this fails? | `flow` · `saga` · `state` · `sequence` | branching decisions → flow; multi-service undo → saga; one object's lifecycle → state |
77
+ | Where did the time go? | `spans` · `sequence` | measured durations → spans; call order only → sequence |
78
+ | What does the event carry, who emits and consumes it? | `eventcontract` · `table` | one event → eventcontract; a catalog → table |
79
+ | Who publishes, who subscribes, how does work fan out? | `block` (`preset: event`) · `dfd` · `sequence` | topology of producers, topics, queues, consumers → block; the hop order with the failure branch → sequence; `reference/patterns.md` names the stack per pattern |
80
+ | How does this ship, and what stops it? | `rollout` · `steps` · `timeline` | staged traffic with gates → rollout; manual procedure → steps; dated milestones → timeline |
81
+ | What lives inside what? | `c4` · `cluster` · `block` · `layers` · `archmap` · `tree` · `composition` · `treemap` | runtime boundaries → c4/cluster/block; conceptual tiers → layers; capability landscape → archmap; part-of → tree/composition; area budget → treemap |
82
+ | What changes over time? | `timeline` · `gantt` · `changelog` · `chart` · `slopegraph` · `state` | events → timeline; scheduled work → gantt; released work → changelog; a measured quantity → chart; two snapshots → slopegraph |
83
+ | How do these options compare? | `options` · `proscons` · `matrix` · `scorecard` · `benchmark` · `quadrant` · `harvey` | criteria × candidates → options; one option → proscons; numbers → benchmark; two axes → quadrant |
84
+ | Where does data go? | `dfd` · `sankey` · `erd` | processes and stores → dfd; volumes → sankey; shape at rest → erd |
85
+ | Who does what, when? | `swimlane` · `journey` · `agenda` · `team` · `kanban` | ownership across steps → swimlane; experience over stages → journey; work in flight → kanban |
86
+ | What are the exact steps? | `steps` · `flow` | linear → steps; branches or retries → flow |
87
+ | What do we build, in what order? | `storymap` · `timeline` · `gantt` | scope per journey step by release → storymap |
88
+ | How big, how fast, how much? | `bignumber` · `stats` · `chart` · `envelope` · `benchmark` | one headline → bignumber; a set → stats; napkin math → envelope |
89
+ | What is this made of? | `anatomy` · `composition` · `erd` · `layers` | labeled parts of a string → anatomy; proportions → composition |
90
+ | What causes this? | `fishbone` · `matrix` | one effect, branching causes → fishbone |
91
+ | Why did we decide this? | `options` · `proscons` · `scqa` · `takeaways` · `callout` | the ADR shape → `reference/recipes.md`; the decision alone → callout |
92
+ | What does the API accept and return? | `endpoint` · `code` · `packet` · `table` | HTTP surface → endpoint; wire format → packet; error codes → table |
93
+ | How does the agent behave? | `agentloop` · `trace` · `prompt` · `context` | the loop → agentloop; one real run → trace; the contract → prompt; window contents → context |
94
+ | What did the review find, and are we ready? | `audit` · `checklist` · `risk` | defects found with evidence → audit; a standard applied once → checklist; what might go wrong → risk |
95
+ | Are we within budget, and how slow is the tail? | `perfbudget` · `percentiles` · `slo` · `benchmark` | targets with a pass line → perfbudget; p50…p99 per endpoint → percentiles; targets over time → slo |
96
+ | Where can this be attacked? | `threatmodel` · `dfd` · `audit` | STRIDE on a data flow with trust boundaries → threatmodel; the flow alone → dfd |
97
+ | Who uses the system for what, and which module may depend on which? | `usecase` · `pkg` · `uml` · `timing` | actors and cases → usecase; module dependencies → pkg; classes → uml; states over time with durations → timing; `reference/patterns-design.md` maps the GoF and distributed patterns to blocks |
98
+ | What is the model's shape, and what may it be used for? | `neuralnet` · `modelcard` · `chart` | layers → neuralnet; the card → modelcard; loss curves → chart line |
99
+ | What ships when, by theme, and where are we in the process? | `roadmap` · `chevrons` · `gantt` · `mindmap` | quarters × themes → roadmap; phases with the current one → chevrons; dated tasks → gantt; unordered ideas around a topic → mindmap |
100
+ | What must always hold? | `spec` · `slo` · `glossary` · `callout` | invariants → spec; service targets → slo; terms → glossary |
101
+ | What does the user see? | `wireframe` · `frontend` · `felogic` | screens → wireframe; component tree → frontend; module graph with edges → felogic |
102
+ | How does the algorithm move through the data? | `array` · `linkedlist` · `bintree` · `hashmap` · `graph` · `code` | pointers, a window, or binary search over cells → array; pointer rewiring → linkedlist; a tree shape → bintree (never `tree`, that is a file hierarchy); hashing → hashmap; visit order → graph with node `state`; the reference implementation → code. A `flow` or `table` is the keyword trap here. |
103
+
104
+ The type name is a hint, not a cage: a `quadrant` is any two-axis 2×2, a
105
+ `journey` any staged progression, a `cvt` any before → after. Relabel every
106
+ axis, column, and unit in the user's own nouns.
107
+
108
+ Twelve old names still work as aliases (`infra` `event` `ddd` `network` →
109
+ `block`, `belogic` → `felogic`, `dag` → `flow`, `waterfall` `funnel` →
110
+ `chart`, `diff` `terminal` → `code`, `mece` → `tree`, `tracker` →
111
+ `statustable`). Write the canonical name in new blocks; never rewrite an
112
+ existing fence only to silence the `W_ALIAS_TYPE` warning.
113
+
114
+ ## Writing rules
115
+
116
+ - Use only the fields `chiltepin block <type>` prints. Schemas are strict: an
117
+ unknown field is an error.
118
+ - **Quote any YAML value that contains `,` `:` `#` `{` `}` or starts with a
119
+ special character.** Inside `{ a: b, c: d }` an unquoted comma splits a
120
+ phrase into keys. Numbers that must be strings (`version: "1.0"`, `delta:
121
+ "0"`) get quotes. Prose fields (`desc`, `note`, `summary`, `description`)
122
+ are always quoted. When unsure, write the body as JSON — it is valid YAML.
123
+ - Prefer the terse one-line item forms the contract prints (`a -> b: label`,
124
+ `Term — definition`). Switch to the object form only for a field the
125
+ grammar cannot say.
126
+ - Give a block an `id:` when another block references it; reference it as
127
+ `doc#id`, or `#id` inside the same doc. A ref to a missing id fails the
128
+ check.
129
+ - Use the user's nouns verbatim, and the same name for the same thing in
130
+ every block. Headings say what the reader sees, never the block type.
131
+ - **Vary the lens.** One `callout` per doc (the assumptions), never a row of
132
+ them: several points are a `list`, a `spec`, a `faq`, or `takeaways`. A
133
+ third block of the same type is a warning (`W_LENS_REPEAT`). Reach past
134
+ the habitual four (`callout`, `table`, `sequence`, `flow`): ownership
135
+ across steps is a `swimlane`; code the reader will copy or diff is a
136
+ `code` block (`kind: compare` for before / after); terms are a
137
+ `glossary`; questions a reader will ask are a `faq`; a runbook is
138
+ `steps`; side-by-side snippets or nested diagrams are a `gallery`.
139
+ - Diagram data (node names, messages, labels, values) is never trimmed to
140
+ fit. Split a dense diagram into two; `chiltepin check` warns at the caps.
141
+ - Every arrow says what crosses it, as a verb phrase, never "uses". A `c4`
142
+ edge without a label is a warning; at container level add `tech` too.
143
+ Solid is a call, dashed is async or optional. Flow runs left to right or
144
+ top to bottom, one direction per diagram.
145
+ - `sequence`, `flow`, `erd`, `state`, and pie `chart` also accept a
146
+ ```mermaid fence; `erd` accepts ```dbml and ```prisma. Subsets are in
147
+ `reference/mermaid.md`.
148
+
149
+ ## Prose rules
150
+
151
+ `reference/style-ste.md` is the authority. Between blocks: three sentences
152
+ per paragraph by default, five at most. Every sentence carries a fact, a
153
+ decision, or a consequence. Banned openers: "In this section", "This diagram
154
+ shows", "It's important to note", "At a high level". Block text fields keep
155
+ every fact in short active sentences. Diagram data is untouchable.
156
+
157
+ ## Read more only when the task needs it
158
+
159
+ | File | When |
160
+ |---|---|
161
+ | `reference/blocks/INDEX.md` | Scanning every block with a one-line description (same as `chiltepin block`). |
162
+ | `reference/blocks/<family>.md` | Choosing between neighbours in one family — discriminators and hard rules the schema cannot express. |
163
+ | `reference/writing.md` | The full terse-form table, every YAML trap, `doc#id`, naming. |
164
+ | `reference/check.md` | A diagnostic code you do not recognise. |
165
+ | `reference/recipes.md` | Composing a whole document: architecture, ADR, API reference, incident, pipeline, agent system. |
166
+ | `reference/patterns.md` | Anything with events, queues, streams, fan-out, outbox, CQRS, sagas, retries: which blocks draw each pattern and the trap. |
167
+ | `reference/patterns-design.md` | A GoF or architectural design pattern (Strategy, Observer, CQRS, Circuit breaker …): the block stack that documents it. |
168
+ | `reference/system-design.md` | Any "design an X" ask — the eight-step method. |
169
+ | `reference/intake.md` | A new document with an unclear reader or scope — the questions to ask back. |
170
+ | `reference/decks.md` | Any slides or deck ask. |
171
+ | `reference/organizing.md` | Multi-doc work — file naming, splitting, index docs. |
172
+ | `reference/exemplars/*.md` | Ten finished documents to model on. |
@@ -0,0 +1,141 @@
1
+ # The 107 block types — by family
2
+
3
+ Part of the **chiltepin** skill (the hub is `SKILL.md`, two folders up). One
4
+ line per block, mapped to the family file that holds its selection guidance.
5
+ For a block's fields and a validating example, run `npx -y chiltepin block
6
+ <type>`; bare `chiltepin block` prints this same list. Twelve old block names
7
+ remain valid as permanent aliases — see the table at the bottom.
8
+
9
+ | Block | Family file | What it represents |
10
+ |---|---|---|
11
+ | `meta` | `narrative.md` | Document header — title, subtitle, tag pill. Always the first block. |
12
+ | `callout` | `narrative.md` | A single aside: note / tip / warn / danger. |
13
+ | `table` | `tables-data.md` | Genuinely tabular data (rows × columns of values); cells can carry tone. |
14
+ | `sequence` | `flows.md` | Messages between actors **over time** (lifelines, returns); optional step list + endpoint pill. |
15
+ | `erd` | `data-model.md` | Entity-relationship diagram — tables, views, enums, columns with key markers, schema groups, crow's-foot cardinality; also written as ```dbml / ```prisma. |
16
+ | `userstory` | `planning.md` | An agile story: role / want / soThat + acceptance criteria + links. |
17
+ | `timeline` | `planning.md` | Phases in order with status dots (done / current / next / future). |
18
+ | `kanban` | `planning.md` | Flexible named columns (e.g. Now / Next / Later) of cards. |
19
+ | `prose` | `narrative.md` | Structured prose (headings, paragraphs, lists, quotes) carried as data. |
20
+ | `glossary` | `narrative.md` | Term → definition rows. |
21
+ | `proscons` | `planning.md` | Two columns weighed against each other: pros vs cons. |
22
+ | `cvt` | `planning.md` | Current → target (before / after) as two side-by-side panels. |
23
+ | `stats` | `tables-data.md` | KPI cards — a value with a delta and an up/down/flat trend. |
24
+ | `code` | `tables-data.md` | Code the reader will copy or diff — `highlight` line bands, `lines`, a `cols` grid; `kind: compare` before / after, `kind: diff` a unified diff, `kind: terminal` a shell session. |
25
+ | `agenda` | `planning.md` | Meeting agenda — time, duration, owner, topic per row. |
26
+ | `tree` | `charts-overviews.md` | An indented file/folder hierarchy (HTML, not SVG); `variant: issue` draws a MECE issue tree. |
27
+ | `pyramid` | `charts-overviews.md` | A layered pyramid (strategy / hierarchy), widening top → bottom. |
28
+ | `flow` | `flows.md` | A decision flowchart — start / process / decision / end nodes, with `error` exits; `variant: dag` frames it as a pipeline / DAG. |
29
+ | `state` | `flows.md` | A state machine — states + event transitions (+ a transition table). |
30
+ | `dfd` | `flows.md` | Data-flow — processes, external entities, and datastores. |
31
+ | `journey` | `charts-overviews.md` | A user journey across stages, with an optional emotion curve. |
32
+ | `gantt` | `charts-overviews.md` | A schedule — tasks as bars across date columns. |
33
+ | `graph` | `charts-overviews.md` | A generic node-link graph with colour-cycled groups. |
34
+ | `quadrant` | `charts-overviews.md` | A 2×2 matrix (e.g. effort vs impact) with plotted items. |
35
+ | `swimlane` | `flows.md` | A cross-functional process with one horizontal lane per role. |
36
+ | `c4` | `architecture.md` | C4 model (context / container / component) — people, systems, containers, stores. |
37
+ | `uml` | `architecture.md` | A class diagram — attributes, methods, UML relationships. |
38
+ | `frontend` | `architecture.md` | A top-down component tree — root / layout / page / component / provider / hook / store. |
39
+ | `cluster` | `architecture.md` | Kubernetes-style namespaces holding services, with replica counts. |
40
+ | `block` | `architecture.md` | Generic boxes-and-arrows architecture — grid **or** horizontal `layers`, `groups` zones that nest by `parent`, node `replicas`; `preset: infra \| event \| ddd \| network \| k8s` re-frames it for cloud, pub/sub, DDD, security-zone, or Kubernetes maps. |
41
+ | `felogic` | `architecture.md` | Frontend module/logic graph — components, hooks, interfaces, strategies; group zones + egress edges; `variant: be` re-frames it for the backend (controller / service / repository / adapter). |
42
+ | `wireframe` | `design-system.md` | Low-fi UI mockups inside device frames — desktop / browser / phone screens. |
43
+ | `endpoint` | `api.md` | A Swagger-style API endpoint card — method, path, params, request body, responses, examples. |
44
+ | `pullquote` | `narrative.md` | A standout pull-quote with optional attribution. |
45
+ | `layers` | `narrative.md` | A layered explanation — N numbered layers, each a kicker / title / source / question + body. |
46
+ | `matrix` | `business.md` | A role × resource capability grid; cells tint by permission level. |
47
+ | `anatomy` | `business.md` | The labelled parts of a structured string (e.g. `app:feature:action`). |
48
+ | `composition` | `business.md` | Effective access as intersected gates — `gate₁ ∩ gate₂ ∩ … = result`. |
49
+ | `drivers` | `business.md` | A grid of factor/driver cards — icon + title + body + tag, the forces that shaped a design. |
50
+ | `options` | `business.md` | Approaches explored — cards with pros / cons / verdict; the chosen one is highlighted. |
51
+ | `spec` | `business.md` | A labelled spec sheet — `label → value` rows (a value can be an inline step-flow). |
52
+ | `list` | `planning.md` | A fancy bullet list — bold lead + supporting line per row, in one of four marker styles (accent bar / check / icon / number). |
53
+ | `stories` | `planning.md` | A collapsible backlog of user stories — many stories as `<details>` accordions in one section. |
54
+ | `pattern` | `planning.md` | A design-pattern reference card — intent · forces · participants · consequences. |
55
+ | `gallery` | `planning.md` | A responsive grid of cards — code snippets or notes (a bug gallery, a comparison grid). |
56
+ | `chart` | `charts-overviews.md` | A data chart in pure SVG — `kind:` bar / line / area / donut / radar, plus `waterfall` (budget cascade) and `funnel` (conversion bands). |
57
+ | `figure` | `narrative.md` | An image with a caption in a bordered card (optional pixel width cap). |
58
+ | `steps` | `flows.md` | A numbered how-to / runbook stepper — title + body + optional command + note per step. |
59
+ | `cycle` | `flows.md` | A closed loop of stages arranged in a circle — the last step feeds the first; descriptions become a numbered legend. |
60
+ | `faq` | `narrative.md` | Q&A accordions — native `<details>`, question in the summary, answer expands. |
61
+ | `envelope` | `business.md` | Back-of-envelope capacity math — assumptions, derivation rows, a highlighted bottom line. |
62
+ | `slo` | `tables-data.md` | Service-level objectives — SLI, target vs current, and an error-budget burn bar. |
63
+ | `benchmark` | `tables-data.md` | Measured results side by side — subject columns × metric rows, the best number in each row derived and highlighted; one column can be outlined as the focus. |
64
+ | `swot` | `business.md` | A classic SWOT 2×2 — strengths / weaknesses / opportunities / threats as tinted quadrant cards. |
65
+ | `okr` | `business.md` | Objectives + key results — one card per objective, a status-coloured progress bar per KR. |
66
+ | `persona` | `business.md` | User persona cards — avatar, role, quote, goals, frustrations, tools. |
67
+ | `changelog` | `planning.md` | Release history on a vertical rail — version pills, dates, and typed change chips. |
68
+ | `team` | `business.md` | Compact people cards — initials avatar, name, role, focus area. |
69
+ | `heatmap` | `charts-overviews.md` | A numeric grid with an intensity ramp — rows × columns of tiles tinted by value. |
70
+ | `sankey` | `charts-overviews.md` | Flow volumes between stages — node height and ribbon thickness are the value, so the widest ribbon is where the volume goes. |
71
+ | `gitgraph` | `flows.md` | A branching and release model — lanes for branches, dots for commits, curves where one forks and merges back; tags mark releases. |
72
+ | `treemap` | `charts-overviews.md` | Proportional composition as nested tiles — area is the value, so thirty items stay readable where a donut gives up at six. |
73
+ | `packet` | `api.md` | A wire format laid out bit by bit — fields wrap across rows of `width` bits, the way an RFC header diagram reads. |
74
+ | `venn` | `charts-overviews.md` | Two or three overlapping sets with the shared regions labelled — scope, ownership, responsibility. |
75
+ | `wardley` | `business.md` | A Wardley map — components placed by visibility to the user and by evolution (genesis → commodity), joined into a value chain. |
76
+ | `harvey` | `business.md` | A rated comparison — options across the top, criteria down the side, a Harvey ball per judgement, and the recommended column marked. |
77
+ | `scqa` | `business.md` | An executive summary in Minto order — situation, complication, question, and the answer the deck exists to deliver. |
78
+ | `scenarios` | `business.md` | Base, upside and downside against the same drivers — assumptions in columns, the outcome each produces on its own row. |
79
+ | `scorecard` | `business.md` | A weighted decision matrix — criteria rows × option columns, weighted totals, winner highlighted. |
80
+ | `risk` | `planning.md` | A risk register — severity derived from likelihood × impact, with mitigation, owner, status. |
81
+ | `palette` | `design-system.md` | Color-token swatches — name, hex value, and usage per color, on a card grid. |
82
+ | `typescale` | `design-system.md` | A live type specimen — each row renders the sample text at its real size / weight / font. |
83
+ | `dodont` | `design-system.md` | Do / don't guideline cards — what to do (green ✓) vs what to avoid (red ✕), with optional mono examples. |
84
+ | `inventory` | `design-system.md` | A component / feature status board — name + color-coded status chip (stable · beta · experimental · deprecated · planned) per row. |
85
+ | `array` | `algorithms.md` | Array cells for algorithm walkthroughs — tones, pointer labels below cells, a dashed index-window highlight. |
86
+ | `linkedlist` | `algorithms.md` | A pointer-chain diagram (singly or doubly) — boxed nodes with next/prev arrows, markers like `head`/`curr`, a ∅ terminator. |
87
+ | `bintree` | `algorithms.md` | A binary tree — nodes placed by `parent` + `side`, tinted to show search paths, traversals, heap shapes. |
88
+ | `hashmap` | `algorithms.md` | Hash buckets with chained entries — collision chains read left → right as key/value pills. |
89
+ | `agentloop` | `agentic.md` | The canonical LLM agent loop — environment → agent (model chip) → tools column, memory cylinder, numbered loop arrows, stop condition. |
90
+ | `trace` | `agentic.md` | An agent / session execution transcript — user / assistant / tool / system turns, with `thinking` and tool `args` → `result`. |
91
+ | `prompt` | `agentic.md` | Prompt anatomy — stacked role segments (system / user / assistant / tool) with `{{variable}}` chips and a variable legend. |
92
+ | `context` | `agentic.md` | A context-window token budget — one stacked bar sized against the window, with free space and over-budget overflow. |
93
+ | `archmap` | `architecture.md` | A target-architecture capability map — a mosaic of tinted domain areas packed with small status-coded capability tiles (current · target · new · gap · deprecated). |
94
+ | `divider` | `narrative.md` | A full-width section break — kicker ("PART 2"), display title, optional subtitle on an accent-washed band; a clean interstitial slide in decks. |
95
+ | `bignumber` | `narrative.md` | One hero metric at presentation scale — a display-size value with an optional delta + neutral trend arrow, a one-line claim, and a context line. |
96
+ | `takeaways` | `narrative.md` | The 2-6 things to remember — numbered rows at presentation scale, each a bold one-liner with an optional detail; a deck's closing slide. |
97
+ | `statustable` | `planning.md` | A task table — free columns (task / update) plus a colored status pill per row, from a user-defined label → color vocabulary; rows can nest one level of subtasks. |
98
+ | `fishbone` | `charts-overviews.md` | Cause & effect (Ishikawa) — one effect at the head, cause categories as bones off the spine, specific causes along each bone. |
99
+ | `storymap` | `planning.md` | User story map — the ordered backbone of activities across the top, release slices as rows of cards under each step. |
100
+ | `eventcontract` | `api.md` | An async event contract card — name, version, channel, producers → consumers, delivery / ordering / retention, payload fields with the partition key marked; the twin of `endpoint`. |
101
+ | `saga` | `flows.md` | A distributed transaction — forward steps left to right, the compensation under each, and the compensating flow drawn back from the step that fails (`failAt`). |
102
+ | `slopegraph` | `charts-overviews.md` | Ranked before / after — one line per item between two labeled columns; the slopes show what rose, fell, or held. |
103
+ | `spans` | `flows.md` | A distributed-trace waterfall — one lane per service, each span a bar on a shared time axis, nested by parent; the critical path is marked. |
104
+ | `rollout` | `planning.md` | A progressive-delivery plan — stages left to right with their traffic share, hold time, and the gate each must pass; the rollback move as the footer. |
105
+ | `neuralnet` | `agentic.md` | A layered neural network — one column per layer with unit counts, kinds, activations; dense mesh between layers. |
106
+ | `modelcard` | `agentic.md` | An ML model card — identity, intended use, training data, metrics per split, limitations. |
107
+ | `mindmap` | `charts-overviews.md` | A radial mind map — one centre, branches left and right, sub-branches per branch. |
108
+ | `audit` | `quality.md` | An audit findings register — severity-ranked rows with evidence, fix, owner, status; counts per severity. |
109
+ | `checklist` | `quality.md` | A pass / fail checklist with evidence per item; pass rate derived. `"[pass] item — evidence"`. |
110
+ | `perfbudget` | `quality.md` | Performance budgets vs measured — one bar per metric with the budget mark; over / near / ok derived. |
111
+ | `percentiles` | `quality.md` | Latency percentiles per row — p50 … p99 · max on one axis with the SLO rule. |
112
+ | `threatmodel` | `quality.md` | A STRIDE threat model — data-flow shapes inside trust boundaries plus a threats table. |
113
+ | `usecase` | `architecture.md` | A UML use-case diagram — actors, system boundary, use cases, include / extend / generalize. |
114
+ | `pkg` | `architecture.md` | A UML package diagram — tabbed folders with members, dashed import / use dependencies. |
115
+ | `timing` | `flows.md` | A UML timing diagram — lifelines stepping through states over time, with events and constraints. |
116
+ | `chevrons` | `planning.md` | A process chevron strip — phases left to right, the current one highlighted. |
117
+ | `roadmap` | `planning.md` | A roadmap — themes × periods with status chips spanning their periods and a "now" rule. |
118
+
119
+ ## Old names → canonical — the permanent aliases
120
+
121
+ These 12 former block types merged into a canonical block. **The old spelling
122
+ keeps working forever.** An alias fence parses to the canonical type with the
123
+ listed fields injected (only for keys the body doesn't set). It renders
124
+ exactly as it always did, and `chiltepin check` notes the mapping as a
125
+ `W_ALIAS_TYPE` warning (warnings never fail a check). Write the canonical spelling in new
126
+ blocks; don't rewrite existing fences just to silence the warning.
127
+
128
+ | Alias | Canonical | Injected fields |
129
+ |---|---|---|
130
+ | `infra` | `block` | `preset: infra` |
131
+ | `event` | `block` | `preset: event` |
132
+ | `ddd` | `block` | `preset: ddd` |
133
+ | `network` | `block` | `preset: network` |
134
+ | `belogic` | `felogic` | `variant: be` |
135
+ | `dag` | `flow` | `variant: dag` |
136
+ | `waterfall` | `chart` | `kind: waterfall` |
137
+ | `funnel` | `chart` | `kind: funnel` |
138
+ | `diff` | `code` | `kind: diff` |
139
+ | `terminal` | `code` | `kind: terminal` |
140
+ | `mece` | `tree` | `variant: issue` |
141
+ | `tracker` | `statustable` | `variant: tracker` |
@@ -0,0 +1,63 @@
1
+ # Chiltepin blocks — AI & agents
2
+
3
+ Part of the **chiltepin** skill (the hub is `SKILL.md`, two folders up).
4
+ Run `chiltepin block <type>` for the fields and an example; block → family map:
5
+ `INDEX.md`. Schemas reject unknown fields.
6
+
7
+ **Shape**: Structure & emphasis — four fixed frames for one LLM agent: the
8
+ loop (`agentloop`), one real episode (`trace`), the contract (`prompt`), and
9
+ the window budget (`context`).
10
+ **Answers**: What does the loop do? What can it call? What is the model
11
+ told? What fills the window? What did a real run look like?
12
+ They compose — the AI / agent recipe in `reference/recipes.md` stacks all
13
+ four.
14
+ **Not this family**: the architecture around the agent (services, queues,
15
+ vector stores) → `block` (architecture.md; `kind: llm` / `agent` gets the
16
+ violet card); one turn's message timing between services → `sequence`
17
+ (flows.md).
18
+
19
+ ### AI & agents
20
+
21
+ #### `agentloop` — the canonical agent-loop diagram
22
+ Environment left, agent card centre, tools stacked right, a memory cylinder
23
+ below. Answers: what does one loop turn do, and what can the agent call?
24
+ The four numbered arrows are fixed (prompt → tool call → result → response).
25
+ List only tools the agent can call; the render shows 5 and folds the rest.
26
+ The memory cylinder draws only when `memory:` is present.
27
+ `agentloop` for the loop itself; `block` for the deployment around it.
28
+
29
+ #### `trace` — an agent / session execution transcript
30
+ A vertical transcript: one card per turn with a role chip (user, assistant,
31
+ tool, system). Answers: what did one real episode do, step by step?
32
+ Quote `args` and `result`: JSON braces and colons are YAML syntax. Block
33
+ scalars (`|`) keep line breaks.
34
+ `trace`, not `sequence`, to follow one conversation; `sequence` for the
35
+ timing between services.
36
+
37
+ #### `prompt` — prompt anatomy with variable highlighting
38
+ Stacked segment cards with role kickers; every `{{variable}}` highlights as
39
+ a chip. Answers: what is the model told, and where does each value come from?
40
+ Quote any `text` that contains `{{ }}`: bare braces are YAML flow syntax.
41
+ List each variable in `vars` so the legend explains it.
42
+ `prompt`, not `code`, for templates and system prompts; `code` for programs.
43
+
44
+ #### `context` — context-window token budget
45
+ One horizontal bar sized against `window`, segments left to right, free space
46
+ dim. Answers: what fills the window, and how much is left?
47
+ A sum past `window` draws red past a dashed boundary with an "over budget"
48
+ chip. Use it to show the failure case on purpose.
49
+ `context` for token budgets; a waterfall `chart` for latency and cost.
50
+
51
+ #### `neuralnet` — layered network
52
+ One column per layer with `units`, `kind` (input / conv / pool / dense /
53
+ attention / output …) and `activation`; dense mesh between layers, an
54
+ ellipsis when a layer is wider than `maxUnits`. Answers: what is the model's
55
+ shape? List the layers a reader would name, not every repeated block: fold
56
+ "12 × transformer block" into one `attention` layer with a `note`.
57
+ `neuralnet` for the architecture; `flow` (`variant: dag`) for the training
58
+ pipeline; `chart` line for loss curves.
59
+ #### `modelcard` — model card
60
+ Identity, intended use and out-of-scope, training data, metrics per split,
61
+ limitations, ethics. Answers: what is this model, and what may it be used
62
+ for? The endpoint card for a model: one per deployed model version.
63
+ `modelcard`, not `spec`, for a model; `benchmark` to compare candidates.
@@ -0,0 +1,49 @@
1
+ # Chiltepin blocks — Algorithms & data structures
2
+
3
+ Part of the **chiltepin** skill (the hub is `SKILL.md`, two folders up).
4
+ Run `chiltepin block <type>` for the fields and an example; block → family map:
5
+ `INDEX.md`. Schemas reject unknown fields.
6
+
7
+ **Shape**: Structure & emphasis — one data structure frozen at one step
8
+ (`array`, `linkedlist`, `bintree`, `hashmap`). One step per block; freeze a
9
+ moment, don't animate.
10
+ **Answers**: What does the structure hold at this step, and where do the
11
+ pointers stand?
12
+ **Not this family**: graph algorithms (BFS / DFS / Dijkstra) → `graph` with
13
+ node `state` + edge `weight` (charts-overviews.md); a file hierarchy →
14
+ `tree` (charts-overviews.md); control flow → `flow` (flows.md).
15
+
16
+ ### Algorithms & data structures
17
+
18
+ All four blocks share one `tone` enum: `active` is the element under
19
+ examination, `visited` is processed, `target` is the goal, `muted` is out of
20
+ play. Quote numeric values (`value: "19"`); they are strings.
21
+
22
+ #### `array` — array cells for algorithm walkthroughs
23
+ A row of square cells, indices above, pointer labels (`lo`, `mid`) below.
24
+ Answers: where do the pointers stand at this step?
25
+ `window` outlines a 0-based inclusive index range.
26
+ `array`, not `table`, for binary search, two pointers, and sliding windows;
27
+ `table` for tabular data.
28
+
29
+ #### `linkedlist` — pointer-chain diagram
30
+ Boxed nodes joined by arrows; the chain ends in a ground symbol.
31
+ Answers: which node does each pointer hold during a reversal or insertion?
32
+ `kind: doubly` adds a back-arrow per link. Pointer labels render above.
33
+ `linkedlist`, not `flow`, for pointer manipulation; `flow` for control flow.
34
+
35
+ #### `bintree` — binary tree
36
+ Nodes placed by parent and side; a parent centres over its children, so an
37
+ unbalanced chain slants. Answers: which path does a search or traversal take?
38
+ Every node with a `parent` must set `side`. Two children on one side is a
39
+ schema error. Several parentless nodes draw as side-by-side roots (rotations).
40
+ `bintree`, not `tree`, for BSTs, heaps, and traversals; `tree` for file
41
+ hierarchies.
42
+
43
+ #### `hashmap` — buckets + chained entries
44
+ A column of bucket slots; entries in one bucket chain rightward in entry
45
+ order. Answers: where does each key land, and which keys collide?
46
+ An entry whose `bucket` is outside `0..buckets-1` is skipped, not clamped.
47
+ The render caps at 12 buckets; keep the count readable.
48
+ `hashmap`, not `table`, for hashing and collision walkthroughs; `table` for a
49
+ plain key-value listing.
@@ -0,0 +1,40 @@
1
+ # Chiltepin blocks — API reference
2
+
3
+ Part of the **chiltepin** skill (the hub is `SKILL.md`, two folders up).
4
+ Run `chiltepin block <type>` for the fields and an example; block → family map:
5
+ `INDEX.md`. Schemas reject unknown fields.
6
+
7
+ **Shape**: Structure & emphasis — one contract card per operation
8
+ (`endpoint`) or per event (`eventcontract`) — plus Exchange at the byte
9
+ level (`packet`).
10
+ **Answers**: What can I call, with what, and what comes back? Who emits this
11
+ event, who consumes it, and what does the payload guarantee? What does the
12
+ wire carry, bit by bit?
13
+ **Not this family**: how calls compose over time → `sequence` (flows.md);
14
+ an error-code listing → `table` (tables-data.md); the API already has an
15
+ OpenAPI spec → generate the cards with `chiltepin sync openapi`.
16
+
17
+ ### API reference
18
+
19
+ #### `endpoint` — a Swagger-style API endpoint card
20
+ One card per operation: method pill, path, parameters, body, responses, and
21
+ example request and response. Answers: what can I call, with what, and what
22
+ comes back? Only `method` and `path` are required.
23
+ For a whole spec, run `chiltepin sync openapi` instead of writing cards by hand.
24
+ `endpoint`, not `sequence`, for the contract of one call; `sequence` for how
25
+ calls compose over time.
26
+
27
+ #### `eventcontract` — an async event contract, the twin of endpoint
28
+ One card per event: a producers → consumers strip, delivery facts as chips,
29
+ and the payload table with the partition key marked. Answers: who emits
30
+ this, who consumes it, and what does the payload guarantee?
31
+ Only `name` is required. The card needs no title.
32
+ `eventcontract`, not `endpoint`, when the channel is a topic or queue and the
33
+ caller never waits for a reply.
34
+
35
+ #### `packet` — a wire format, bit by bit
36
+ A bit ruler across the top, then fields whose cell width is their bit count.
37
+ A field that overflows its row wraps and is marked `(cont.)`. The footer
38
+ totals bits and bytes. Answers: what does the wire carry, bit by bit?
39
+ `packet`, not `table`, when position and width on the wire are the point;
40
+ `table` for a field listing.
@@ -0,0 +1,94 @@
1
+ # Chiltepin blocks — Architecture
2
+
3
+ Part of the **chiltepin** skill (the hub is `SKILL.md`, two folders up).
4
+ Run `chiltepin block <type>` for the fields and an example; block → family map:
5
+ `INDEX.md`. Schemas reject unknown fields.
6
+
7
+ **Shape**: Containment — boundaries and what lives inside them (`c4`,
8
+ `block` + presets, `cluster`, `archmap`) — and Network for module, class,
9
+ and actor graphs (`felogic`, `frontend`, `uml`, `usecase`, `pkg`).
10
+ **Answers**: What lives inside which boundary? What depends on what, at rest?
11
+ **Not this family**: the order of calls → `sequence` (flows.md); branching or
12
+ a lifecycle → `flow` / `state` (flows.md); data shape → `erd` (data-model.md);
13
+ tiers with no arrows → `layers`; area by number → `treemap`; a CI/CD pipeline
14
+ → `flow` with `variant: dag`.
15
+
16
+ #### `c4` — context / container / component
17
+ Boxes with kind chips inside dashed boundaries; the frame tag shows the
18
+ level. Answers one question per level. `c4`, not `block`, when C4 levels and
19
+ system boundaries carry the message; `sequence` for the order of calls.
20
+ - `level` is required, and one diagram holds one level. Never mix levels.
21
+ - Context: who uses it and what does it talk to. `person`, `system` (usually
22
+ one), and `external` only. 4–8 nodes.
23
+ - Container: the deployable pieces. One `boundary` (or `boundaries[]`) is the
24
+ system; every container carries `tech`; persons and externals sit outside.
25
+ 5–9 nodes; past that, split the diagram.
26
+ - Component: inside ONE container, named in the title; `family` codes the layer.
27
+ - Every edge is a sentence: `label` an active verb phrase, `tech` the protocol.
28
+ One arrow from the caller; the reply is implied. Async edges are `dashed`.
29
+ - Externals are things you do not deploy. If your team owns it, it is a container.
30
+ - Omit `col`/`row` on every node for auto-layout; `dir: TB` flips it.
31
+
32
+ #### `block` — grid architecture with optional groups
33
+ Boxes and arrows on a grid. Known `kind`s (db, queue, cache, gateway, cdn,
34
+ and vendor names like postgres, s3, kafka, redis) get a glyph and a shape;
35
+ an unknown kind draws a plain box. Answers: what talks to what, at rest?
36
+ `block`, not `c4`, for free kinds, nested zones, and presets.
37
+ - `gateway`, `lb`, `proxy`, and `ingress` draw as the tall vertical bar of
38
+ system-design diagrams. It spans the rows of the services it fans out to
39
+ on its own; set `h` to choose the span. Put the bar in its own column.
40
+ - `preset` (infra, event, ddd, network, k8s) changes only the framing: the tag,
41
+ the eyebrow, and which kind is the accent entry. The YAML is the same.
42
+ - Omit `col`/`row` on every node for auto-layout. Use coordinates for a
43
+ deliberate shape, and always with `groups`.
44
+ - `layers:` switches to horizontal bands; nodes then use `layer`, not
45
+ `col`/`row`. Do not mix the two modes.
46
+ - `groups` nest by overlap (the larger paints first) or by `parent`. A child's
47
+ cells must lie inside its parent's range (`W_GROUP_NESTING`).
48
+ - `replicas: N` (2 or more) draws a stacked card. For a database replica set
49
+ use two nodes and a dashed `replicates` edge.
50
+ - `preset: k8s`: a namespace is a group and `ingress` is the entry; nest
51
+ namespaces inside a cluster with `parent`.
52
+ ```block
53
+ groups:
54
+ - { id: vpc, col: 1, row: 1, cols: 2, rows: 2, label: VPC }
55
+ - { id: pub, parent: vpc, col: 1, row: 1, cols: 2, rows: 1, label: Public subnet }
56
+ - { id: priv, parent: vpc, col: 1, row: 2, cols: 2, rows: 1, label: Private subnet }
57
+ nodes:
58
+ - { id: alb, col: 1, row: 1, kind: gateway, name: ALB }
59
+ - { id: api, col: 1, row: 2, kind: service, name: orders-api, replicas: 3 }
60
+ edges:
61
+ - alb -> api
62
+ ```
63
+
64
+ #### `cluster` — k8s-style nested boxes with services
65
+ Namespace boxes holding service cards with replica bars; a single `gateway`
66
+ service takes the accent. Answers: which services run in which namespace?
67
+ `block` with `preset: k8s` for nested namespaces or a mixed cloud + cluster map.
68
+
69
+ #### `archmap` — target-architecture capability map
70
+ A mosaic of tinted domain areas packed with capability tiles. A plain string
71
+ is a current capability; `status` marks target, new, gap, or deprecated.
72
+ Answers: what lives in each domain? `block` when the arrows between systems matter.
73
+
74
+ #### `felogic` — frontend / backend module graph
75
+ Module boxes with UML stereotype banners (interface, controller, service,
76
+ repository) and typed edges. `variant: be` changes only the framing.
77
+ Answers: which module uses or implements which? Omit `col`/`row` and
78
+ `groups` for auto-layout. `felogic`, not `uml`, for a module graph.
79
+
80
+ #### `frontend` — top-down component tree
81
+ Parents above children with link paths, one `root`. Answers: how do the
82
+ components nest? `frontend`, not `tree`, for a UI component tree with kinds
83
+ (layout, page, hook, store).
84
+
85
+ #### `uml` — class diagram
86
+ Class boxes with attributes and methods; the relation `kind` drives the
87
+ arrow marker. Answers: which classes inherit, implement, or depend on which?
88
+ `uml`, not `erd`, for classes with behaviour; `erd` for tables and cardinality.
89
+ #### `usecase` — UML use-case diagram
90
+ Actors outside the `system` boundary, cases (verb phrases, ≤ 12) inside,
91
+ `links` as `actor -> case`, `relations` `kind: include | extend | generalize`. Answers: who uses it for what?
92
+ #### `pkg` — UML package diagram
93
+ Tabbed folders with `contains` members, `parent` to nest, `deps` dashed with
94
+ `kind: import | use | access | merge`. Answers: which module may depend on which?
@@ -0,0 +1,70 @@
1
+ # Chiltepin blocks — Business, decisions & access
2
+
3
+ Part of the **chiltepin** skill (the hub is `SKILL.md`, two folders up).
4
+ Run `chiltepin block <type>` for the fields and an example; block → family map:
5
+ `INDEX.md`. Schemas reject unknown fields.
6
+
7
+ **Shape**: Grid — compare, score, locate (`matrix`, `scorecard`, `harvey`,
8
+ `swot`, `scenarios`); cards for decisions, strategy, and access (the rest).
9
+ **Answers**: How do the options compare, and which won? Who may do what?
10
+ What forces shaped this design? Do the numbers pencil out?
11
+ **Not this family**: measured numbers → `benchmark` (tables-data.md); one
12
+ option's tradeoffs → `proscons` (planning.md); the decision in one line →
13
+ `callout` (narrative.md); day-to-day task state → `statustable` (planning.md).
14
+
15
+ #### `matrix` — a role × resource capability grid
16
+ Rows are roles, columns resources, each cell a permission level tinted by meaning.
17
+ Answers: who may do what? `matrix`, not `table`, when every cell is a permission.
18
+ #### `anatomy` — the parts of a structured string (e.g. a permission)
19
+ The full string with each segment coloured, then one card per segment.
20
+ Answers: what does each part of this identifier mean? One string per block.
21
+ #### `composition` — effective access as intersected gates
22
+ Renders gate ∩ gate ∩ gate = result. Answers: which independent checks must
23
+ all pass? `composition`, not `flow`, when access is an AND of checks rather
24
+ than an ordered sequence.
25
+ #### `drivers` — the forces that shaped a design
26
+ A card grid, one card per driver with an icon and a tag; each is a real requirement
27
+ with its consequence. Answers: why is the design like this? `list` for plain points.
28
+ #### `team` — people cards (who owns what)
29
+ Compact cards: initials avatar, name, role, one-line focus; set `initials` for a group.
30
+ Answers: who owns what? `team` for real people; `persona` for user archetypes.
31
+ #### `options` — approaches explored, with a verdict
32
+ One card per option: how, pros, cons, verdict; `tone: chosen` marks the
33
+ winner. Answers: which approaches did we weigh, and which won?
34
+ `options`, not `proscons`, for several candidates; `proscons` weighs one.
35
+ #### `scorecard` — a weighted decision matrix
36
+ Criteria as rows, options as columns, a weighted TOTAL row; the winner is
37
+ derived. Answers: which option scores highest? `scorecard` when the decision
38
+ was scored; `options` for qualitative verdicts; `harvey` for judgements.
39
+ #### `spec` — a labelled spec sheet
40
+ A fact sheet for one approach or component; a row with `steps` draws a pill flow.
41
+ Answers: what are the facts of this one thing? `spec`, not `table`, for one subject.
42
+ #### `envelope` — back-of-envelope capacity math
43
+ Givens, one derivation row per step, then a highlighted bottom line. Every
44
+ value is a string; write units and `≈` freely. Answers: do the numbers pencil
45
+ out? `envelope` for the estimate that justifies a design; `stats` for KPIs.
46
+ #### `swot` — strengths / weaknesses / opportunities / threats
47
+ The 2×2 draws itself from four string lists; an empty quadrant still draws.
48
+ Answers: where do we stand? `swot` for a position; `quadrant` to plot items.
49
+ #### `okr` — objectives + key results
50
+ One card per objective, a progress bar per key result coloured by status.
51
+ Answers: how far are we on each goal? `slo` for reliability; `statustable` for tasks.
52
+ #### `persona` — user persona cards
53
+ Cards with an avatar, role, quote, goals, frustrations, and tool chips.
54
+ Answers: who do we build for? `persona` for archetypes; `team` for people.
55
+ #### `wardley` — value chain against evolution
56
+ Components plotted by user visibility (up) and evolution (right), both 0–1;
57
+ `movement` draws where one is heading. Answers: what do we build, and what
58
+ do we buy? A position on the map replaces an opinion.
59
+ #### `harvey` — the rated comparison
60
+ Options across, criteria down, a filled ball per judgement (0–4), a weighted
61
+ footer. A short `ratings` row means "not assessed", not zero. Answers: which
62
+ option fits best? `harvey` for judgements; `benchmark` for measured numbers.
63
+ #### `scqa` — the executive summary, in Minto order
64
+ Situation, complication, question as a ladder; the answer as the filled
65
+ card with its support. Answers: what is the recommendation, and why?
66
+ The order is fixed; keeping it is the block's job.
67
+ #### `scenarios` — base, upside and downside
68
+ Cases as columns, drivers as rows, the outcome in its own row; the base case
69
+ is badged. A missing value renders `·`, not zero. Answers: how much of the
70
+ outcome hangs on each assumption?