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.
- package/LICENSE +21 -0
- package/README.md +249 -0
- package/dist/bin.js +3582 -0
- package/dist/bin.js.map +1 -0
- package/package.json +93 -0
- package/templates/chiltepin.config.json +5 -0
- package/templates/demo.md +2161 -0
- package/templates/docs/getting-started.md +155 -0
- package/templates/docs/tutorial.md +559 -0
- package/templates/skill/SKILL.md +172 -0
- package/templates/skill/reference/blocks/INDEX.md +141 -0
- package/templates/skill/reference/blocks/agentic.md +63 -0
- package/templates/skill/reference/blocks/algorithms.md +49 -0
- package/templates/skill/reference/blocks/api.md +40 -0
- package/templates/skill/reference/blocks/architecture.md +94 -0
- package/templates/skill/reference/blocks/business.md +70 -0
- package/templates/skill/reference/blocks/charts-overviews.md +74 -0
- package/templates/skill/reference/blocks/data-model.md +34 -0
- package/templates/skill/reference/blocks/design-system.md +50 -0
- package/templates/skill/reference/blocks/flows.md +74 -0
- package/templates/skill/reference/blocks/narrative.md +65 -0
- package/templates/skill/reference/blocks/planning.md +74 -0
- package/templates/skill/reference/blocks/quality.md +43 -0
- package/templates/skill/reference/blocks/tables-data.md +55 -0
- package/templates/skill/reference/check.md +62 -0
- package/templates/skill/reference/decks.md +198 -0
- package/templates/skill/reference/exemplars/adr.md +87 -0
- package/templates/skill/reference/exemplars/agent-system.md +113 -0
- package/templates/skill/reference/exemplars/api-reference.md +110 -0
- package/templates/skill/reference/exemplars/backend-arch.md +117 -0
- package/templates/skill/reference/exemplars/data-pipeline.md +107 -0
- package/templates/skill/reference/exemplars/frontend-arch.md +93 -0
- package/templates/skill/reference/exemplars/incident-postmortem.md +93 -0
- package/templates/skill/reference/exemplars/migration-plan.md +95 -0
- package/templates/skill/reference/exemplars/onboarding.md +78 -0
- package/templates/skill/reference/exemplars/product-spec.md +81 -0
- package/templates/skill/reference/intake.md +140 -0
- package/templates/skill/reference/mermaid.md +216 -0
- package/templates/skill/reference/organizing.md +118 -0
- package/templates/skill/reference/patterns-design.md +59 -0
- package/templates/skill/reference/patterns.md +167 -0
- package/templates/skill/reference/recipes.md +153 -0
- package/templates/skill/reference/style-ste.md +119 -0
- package/templates/skill/reference/system-design.md +161 -0
- package/templates/skill/reference/writing.md +132 -0
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
# Chiltepin blocks — Charts & overviews
|
|
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**: the widest family. Time (`chart`, `gantt`, `journey`, `slopegraph`);
|
|
8
|
+
Grid (`heatmap`, `quadrant`); Flow (`sankey`); Containment (`treemap`, `venn`);
|
|
9
|
+
Network (`graph`, `mindmap`); hierarchy and proportion (`tree`, `pyramid`,
|
|
10
|
+
`chart` kinds); causes behind one outcome (`fishbone`).
|
|
11
|
+
**Answers**: What changes over time? How does the whole split? Where does the
|
|
12
|
+
volume go? Where do items sit on two axes? What causes this?
|
|
13
|
+
**Not this family**: one headline number → `bignumber`; a few KPIs with
|
|
14
|
+
trends → `stats`; exact values → `table`; boundaries → architecture.md.
|
|
15
|
+
|
|
16
|
+
#### `graph` — node-link graph
|
|
17
|
+
Nodes and edges on a grid, no nesting; `weight` renders on the edge pill.
|
|
18
|
+
Answers: what connects to what? For BFS / DFS / Dijkstra walkthroughs set node
|
|
19
|
+
`state` (visited, current, frontier, target). `graph`, not `flow`, with no start or end.
|
|
20
|
+
#### `tree` — indented hierarchy (HTML, not SVG)
|
|
21
|
+
Nodes by `parent`. Plain: an indented outline. `variant: issue`: a MECE issue
|
|
22
|
+
tree, left to right. `variant: org`: a top-down org chart with `role` under each
|
|
23
|
+
name; more than 6 reports stack in two columns. `value` on nodes makes a driver
|
|
24
|
+
tree: each node shows its number and its share of its parent. Answers: how does
|
|
25
|
+
this break down? `tree`, not `bintree`, for hierarchies; `fishbone` for causes.
|
|
26
|
+
#### `mindmap` — radial idea map
|
|
27
|
+
One `center`, branches right and left, children on each, `accent` per branch.
|
|
28
|
+
Answers: what belongs to this topic? `tree` for a directed hierarchy; `fishbone` for causes.
|
|
29
|
+
#### `gantt` — schedule bars
|
|
30
|
+
Task bars across named periods, tinted by `kind`. Answers: what runs when?
|
|
31
|
+
`gantt`, not `timeline`, when bars span periods.
|
|
32
|
+
#### `chart` — a data chart (bar / stacked / line / area / scatter / donut / pie / gauge / radar / waterfall / funnel / pareto / histogram / bell / boxplot / bullet)
|
|
33
|
+
`labels` + `series` drive bar, stacked, line, area, radar, and category
|
|
34
|
+
scatter; `items` drive donut, pie, gauge, waterfall, funnel, pareto; `points` drive a
|
|
35
|
+
numeric scatter with `guides`; `values` drive histogram and bell (or give
|
|
36
|
+
`mean` + `sd` and `markers`); `boxes` drive boxplot; `bullets` drive bullet. Answers: how does the number move or split?
|
|
37
|
+
Pick the kind by the question: stacked when the total matters as much as the
|
|
38
|
+
split; gauge for one number against a ceiling; donut for a whole that sums;
|
|
39
|
+
waterfall for parts against a `budget`; funnel for drop-off between ordered
|
|
40
|
+
stages; radar needs 3+ labels; pareto for the few causes behind most of the
|
|
41
|
+
effect (80% rule drawn); histogram for how raw values spread; bell for a normal
|
|
42
|
+
curve with named points; boxplot to compare spreads; bullet for a measure vs a target.
|
|
43
|
+
#### `sankey` — how much moves between stages
|
|
44
|
+
Node height and ribbon width share one scale; nodes are inferred from the links.
|
|
45
|
+
Answers: where does the volume go? Declare `nodes` only for a label, an accent, or
|
|
46
|
+
a pinned `col`. `sankey` for volumes; `flow` for the path; funnel `chart` for drop-off.
|
|
47
|
+
#### `treemap` — proportional composition
|
|
48
|
+
Squarified tiles, area = value, biggest first. Answers: what dominates the whole? `treemap`, not donut, past six slices.
|
|
49
|
+
#### `venn` — two or three overlapping sets
|
|
50
|
+
Fixed circles; `shared.sets` names set labels and puts a label in that lens.
|
|
51
|
+
Answers: what do two groups share? A Venn names regions; it never measures.
|
|
52
|
+
#### `fishbone` — cause & effect (Ishikawa)
|
|
53
|
+
One effect at the head, cause categories as bones, specific causes along each
|
|
54
|
+
bone. Keep 1–8 bones and up to 8 short items per bone. Answers: what causes
|
|
55
|
+
this? `fishbone`, not `tree`, for suspected causes behind one outcome.
|
|
56
|
+
#### `slopegraph` — ranked before / after
|
|
57
|
+
One line per item between two value columns on a shared linear scale; crossings
|
|
58
|
+
are the story. Quote `left` / `right` years. Give `accent` to the one or two lines
|
|
59
|
+
that matter. Answers: what rose, what fell, what held? `slopegraph` for many items
|
|
60
|
+
at two points; `chart` line for a few series over many points.
|
|
61
|
+
#### `heatmap` — a numeric grid with an intensity ramp
|
|
62
|
+
Cells tinted light-to-deep on one ramp, normalised to the data (or `min` /
|
|
63
|
+
`max`). Answers: where is it hot? `heatmap` for a dense value grid; `matrix`
|
|
64
|
+
for categorical cells; `table` when the reader needs exact rows.
|
|
65
|
+
#### `pyramid` — stacked hierarchy (top → bottom widening)
|
|
66
|
+
Levels that widen downward, each with a description. Answers: what rests on
|
|
67
|
+
what? `pyramid`, not `layers`, when the widening shape is the message.
|
|
68
|
+
#### `quadrant` — 2×2 matrix
|
|
69
|
+
Items plotted at `x` / `y` (0–1) on two labelled axes. Answers: where does each
|
|
70
|
+
item sit? `quadrant` for placement by judgement; scatter `chart` with `points` for data.
|
|
71
|
+
#### `journey` — user journey map with optional emotion curve
|
|
72
|
+
Stages across the top, rows of cells beneath, an optional emotion curve (0–1 per
|
|
73
|
+
stage). Answers: what does the user experience at each stage? `journey` for
|
|
74
|
+
experience; funnel `chart` for drop-off numbers; `storymap` for scope per activity.
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# Chiltepin blocks — Data model
|
|
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**: Network — entities joined by cardinality edges, no nesting
|
|
8
|
+
(`erd`).
|
|
9
|
+
**Answers**: What shape is the data at rest, and how do the entities relate?
|
|
10
|
+
**Not this family**: data in motion → `dfd` (flows.md) or `sankey`
|
|
11
|
+
(charts-overviews.md); classes with behavior → `uml` (architecture.md);
|
|
12
|
+
example rows the reader should scan → `table` (tables-data.md).
|
|
13
|
+
|
|
14
|
+
### Data model
|
|
15
|
+
|
|
16
|
+
#### `erd` — entities and relations
|
|
17
|
+
Entity cards with columns and key markers, joined by crow's-foot edges. The
|
|
18
|
+
renderer centres the aggregate root (the "one" side of most relations), fans
|
|
19
|
+
neighbours out by relation depth, and never truncates a card.
|
|
20
|
+
Answers: what shape is the data at rest, and how do the entities relate?
|
|
21
|
+
Write columns and relations in the terse forms. Use `fromCol` / `toCol` only
|
|
22
|
+
when the FK cannot be inferred from `ref` or the column name. `schema` on an
|
|
23
|
+
entity, or `groups`, draws a panel around the entities that share it.
|
|
24
|
+
Budget: 20 entities or 60 columns per block; `chiltepin check` warns past that.
|
|
25
|
+
Split the model by domain.
|
|
26
|
+
`erd`, not `uml`, for data at rest; `uml` for classes with behaviour; `dfd`
|
|
27
|
+
for data in motion.
|
|
28
|
+
|
|
29
|
+
### Other ways to write it
|
|
30
|
+
|
|
31
|
+
A ` ```dbml ` or ` ```prisma ` fence, or a ` ```mermaid ` fence with
|
|
32
|
+
`erDiagram`, parses into an `erd`. `chiltepin sync sql schema.sql --out
|
|
33
|
+
docs/data-model.md` (or `sync dbml` / `sync prisma`) converts a schema file.
|
|
34
|
+
The dialect subsets are in `reference/mermaid.md` (Input dialects).
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# Chiltepin blocks — Design system & UI mockups
|
|
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 — token specimens, usage rules, and low-fi
|
|
8
|
+
screens (`palette`, `typescale`, `dodont`, `inventory`, `wireframe`).
|
|
9
|
+
**Answers**: What does the UI look like before it exists? What tokens and
|
|
10
|
+
styles exist, and what does correct use look like?
|
|
11
|
+
**Not this family**: a real screenshot → `figure` (narrative.md); the
|
|
12
|
+
component tree → `frontend` (architecture.md); component code → `code`
|
|
13
|
+
(tables-data.md); shipped history → `changelog` (planning.md).
|
|
14
|
+
|
|
15
|
+
### Design system
|
|
16
|
+
|
|
17
|
+
#### `palette` — color-token swatches
|
|
18
|
+
A card grid of swatches: the hex in mono, the token name, its usage. Text
|
|
19
|
+
contrast on each swatch is automatic. Answers: which colour tokens exist,
|
|
20
|
+
and what is each for? Always quote hex values (`"#0E54A1"`): an unquoted
|
|
21
|
+
`#` starts a YAML comment. An invalid colour falls back to gray.
|
|
22
|
+
`palette` for colour tokens; `stats` for numbers.
|
|
23
|
+
|
|
24
|
+
#### `typescale` — a live type specimen
|
|
25
|
+
One row per style; the sample text renders live at that size, weight, and
|
|
26
|
+
font. Answers: what does each text style look like?
|
|
27
|
+
Sizes over 64px render clamped at 64 but keep the true label.
|
|
28
|
+
`typescale` when the visual matters; `table` for a token list with no visual
|
|
29
|
+
payoff.
|
|
30
|
+
|
|
31
|
+
#### `dodont` — do / don't guideline cards
|
|
32
|
+
Two cards side by side, DO green and DON'T red; both lists are required.
|
|
33
|
+
Answers: what does correct use look like? An item's `example` renders
|
|
34
|
+
beneath it as a mono chip, good for label copy.
|
|
35
|
+
`dodont` for usage rules; `proscons` to weigh a decision; `callout` for one
|
|
36
|
+
warning.
|
|
37
|
+
|
|
38
|
+
#### `inventory` — component / feature status board
|
|
39
|
+
Hairline rows, each with a name, a tag chip, an optional note, and a
|
|
40
|
+
colour-coded maturity chip. Answers: how mature is each component?
|
|
41
|
+
`inventory` for maturity; `statustable` for task work; `changelog` for
|
|
42
|
+
shipped history.
|
|
43
|
+
|
|
44
|
+
#### `wireframe` — low-fi screen mockups (desktop / browser / phone)
|
|
45
|
+
Device frames left to right, each a top-to-bottom stack of gray elements.
|
|
46
|
+
Answers: what does the UI look like before it exists?
|
|
47
|
+
`nav` and `tabs` read their items from a comma-separated `label`; quote it.
|
|
48
|
+
`rows` repeats a list or card and sizes text or a spacer.
|
|
49
|
+
Keep it low fidelity: a wireframe, not a comp. `figure` for a real
|
|
50
|
+
screenshot; `frontend` for the component tree.
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
# Chiltepin blocks — Flows, sequences & state
|
|
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**: Exchange — actors trading messages over time (`sequence`) and one
|
|
8
|
+
request's time split across services (`spans`); Flow — steps and branches
|
|
9
|
+
through a graph (`flow`, `dfd`, `swimlane`, `cycle`, `gitgraph`, `saga`);
|
|
10
|
+
Modes — one object, discrete states (`state`); plus one Structure block for
|
|
11
|
+
linear procedures (`steps`).
|
|
12
|
+
**Answers**: What calls what, in what order? What happens when this fails?
|
|
13
|
+
What states can it be in? What are the exact steps?
|
|
14
|
+
**Not this family**: topology at rest → `c4` / `block` (architecture.md) or
|
|
15
|
+
`graph` (charts-overviews.md); how much moves → `sankey` (charts-overviews.md);
|
|
16
|
+
tasks with owner and status → `statustable` (planning.md).
|
|
17
|
+
|
|
18
|
+
#### `sequence` — interaction over time (rich SVG + step list + footer)
|
|
19
|
+
Lifelines, numbered arrows, frames, activation bars, a step list under the SVG.
|
|
20
|
+
Answers: who calls whom, in what order? `sequence`, not `flow`, when the question
|
|
21
|
+
is message order between actors. Short `label` on the arrow; detail in `summary`.
|
|
22
|
+
`kind: note` is a box, not a message. Close every frame with `end` (`W_SEQ_FRAME`).
|
|
23
|
+
Activation: `-> +B` opens a bar on B; `--> -A` closes the SENDER's bar. Only the
|
|
24
|
+
first `-` closes, so inside an `alt` put the sign on the LAST branch's reply.
|
|
25
|
+
#### `spans` — distributed-trace waterfall (where did the time go?)
|
|
26
|
+
One lane per service, one bar per span on a shared time axis, nested by `parent`;
|
|
27
|
+
the critical path takes the accent. Bars sit exactly where the span ran. Answers:
|
|
28
|
+
how long did each call take, and which one did the response wait on? One request
|
|
29
|
+
per block; the density check warns past 40 spans. `sequence` for order, not duration.
|
|
30
|
+
#### `state` — state machine (+ transition table)
|
|
31
|
+
States on a grid joined by event arrows, plus a transition table. Answers: what
|
|
32
|
+
states can it be in, and what moves it? Give it one `kind: start` state and mark
|
|
33
|
+
`terminal` states. `state`, not `flow`, for one object's discrete modes.
|
|
34
|
+
#### `flow` — flowchart with decisions
|
|
35
|
+
Start, process, decision, and end nodes with labelled edges; `variant: dag`
|
|
36
|
+
frames it as a pipeline. Answers: what happens next, and what if the check
|
|
37
|
+
fails? Flows run across, not down: the main path on `col` 1, 2, 3, branches
|
|
38
|
+
on `row: 2`. Omit `col`/`row` for auto-layout (`dir: TB` works only there).
|
|
39
|
+
A label that starts with no / fail / error / reject renders red. `groups`
|
|
40
|
+
draw dashed zones over cell ranges. `flow`, not `sequence`, for branching.
|
|
41
|
+
#### `dfd` — data-flow diagram
|
|
42
|
+
External entities, numbered processes, and stores joined by labelled data
|
|
43
|
+
flows. Answers: where does the data come from, and where does it land?
|
|
44
|
+
`dfd`, not `flow`, when the arrows carry data rather than control.
|
|
45
|
+
#### `gitgraph` — the branching and release model
|
|
46
|
+
Commit dots on branch lanes, in the order the history happened. The first
|
|
47
|
+
commit on a branch opens its lane; `merge: <branch>` closes that branch into
|
|
48
|
+
the commit's branch; `tag` marks a release. Answers: how do branches fork,
|
|
49
|
+
merge, and ship? `gitgraph` for branches; `timeline` for phases.
|
|
50
|
+
#### `swimlane` — who does which step, in what order
|
|
51
|
+
One lane per owner; a step names its lane by label (`lane: Sales`) and takes its
|
|
52
|
+
column from the links (`col` only to pin one). `phases` bands the columns; `accent:
|
|
53
|
+
true` marks the focal step. `flow` for one object's decisions; `sequence` for messages.
|
|
54
|
+
#### `saga` — a distributed transaction and what runs backwards
|
|
55
|
+
Forward steps left to right, the compensation under each, and the compensating
|
|
56
|
+
flow drawn back from the failing step. Answers: what happens when step 3 fails?
|
|
57
|
+
`failAt` derives every status (failed, compensated, skipped); set `status` only to
|
|
58
|
+
override. Without `failAt` it draws the happy path. Keep it to 12 steps.
|
|
59
|
+
`saga` for the transaction as a whole; `sequence` for the messages of one step.
|
|
60
|
+
#### `steps` — a numbered how-to / runbook stepper
|
|
61
|
+
A vertical stepper: title, body, an optional command on the dark surface, a note.
|
|
62
|
+
Answers: what are the exact steps, in order? `steps` for a linear procedure a person
|
|
63
|
+
runs; `flow` / `swimlane` when it branches; `statustable` when items carry status.
|
|
64
|
+
#### `cycle` — a closed loop of stages arranged in a circle
|
|
65
|
+
Stages clockwise from 12 o'clock, numbered, the last feeding the first; `center`
|
|
66
|
+
labels the hub. 2–8 stages. Answers: what repeats? `cycle` when the process loops;
|
|
67
|
+
`flow` when it branches and ends; `steps` for a one-shot procedure.
|
|
68
|
+
#### `timing` — UML timing diagram
|
|
69
|
+
One lane per lifeline stepping through `states` over a shared time axis
|
|
70
|
+
(`from` … `to` in `unit`), `events` as instants, `constraints` as duration
|
|
71
|
+
brackets. Answers: what state is each part in at time t, and how long does
|
|
72
|
+
a phase last? `timing` when durations and overlaps are the point (a circuit
|
|
73
|
+
breaker, a lease, a handshake); `state` for the transitions without time;
|
|
74
|
+
`sequence` for message order; `spans` for measured traces.
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# Chiltepin blocks — Narrative & prose
|
|
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 — text that must stand out from the page
|
|
8
|
+
(`callout`, `pullquote`, `bignumber`, `takeaways`), plus the document frame
|
|
9
|
+
(`meta`, `divider`, `prose`, `figure`) and one Containment block (`layers`)
|
|
10
|
+
for ordered conceptual tiers.
|
|
11
|
+
**Answers**: What must the reader notice or remember? What does this term
|
|
12
|
+
mean (`glossary`, `faq`)?
|
|
13
|
+
**Not this family**: a row of KPIs → `stats` (tables-data.md); a procedure →
|
|
14
|
+
`steps` (flows.md); weighing a choice → `options` (business.md) or
|
|
15
|
+
`proscons` (planning.md); an ordinary bullet list → `list` (planning.md).
|
|
16
|
+
|
|
17
|
+
### Narrative & prose
|
|
18
|
+
|
|
19
|
+
#### `meta` — document cover (first block only)
|
|
20
|
+
Title, subtitle, tag pill, and an optional logo (absolute https URL).
|
|
21
|
+
Answers: what is this document? One `meta` per doc, always first; `divider`
|
|
22
|
+
for a cover inside the doc.
|
|
23
|
+
#### `prose` — structured prose (heading / paragraph / list / quote)
|
|
24
|
+
Headings, paragraphs, lists, and quotes carried as data. Answers: what is
|
|
25
|
+
the context? Plain Markdown outside blocks does the same job; use `prose`
|
|
26
|
+
when the text must live inside a block, such as a `gallery` cell.
|
|
27
|
+
#### `callout` — note / tip / warning / danger
|
|
28
|
+
One aside with a tone band. Bare text with no `field:` lines is the body.
|
|
29
|
+
Answers: what must the reader notice here? `callout` for one aside;
|
|
30
|
+
`takeaways` for the closing list; `faq` for several questions.
|
|
31
|
+
#### `glossary` — term / definition rows
|
|
32
|
+
Term → definition rows. Answers: what does this word mean in this doc?
|
|
33
|
+
The object form adds `avoid`, the words the doc must not use instead;
|
|
34
|
+
`chiltepin check` flags an avoided word anywhere in the doc's prose
|
|
35
|
+
(`W_PROSE_TERM_DRIFT`). This makes the glossary the approved term list.
|
|
36
|
+
#### `figure` — an image with a caption
|
|
37
|
+
A real image with alt text and a caption. Answers: what did it look like?
|
|
38
|
+
`figure` only for screenshots, photos, and exports from other tools.
|
|
39
|
+
Anything the renderer can draw belongs in a typed diagram block.
|
|
40
|
+
#### `faq` — Q&A accordions (native details, no JS)
|
|
41
|
+
One accordion per question; `open: true` starts one expanded. Blank lines in
|
|
42
|
+
an answer become paragraphs. Answers: what do readers ask?
|
|
43
|
+
`faq`, not `glossary`, for questions; `callout` for a single aside.
|
|
44
|
+
#### `divider` — a full-width section break ("PART 2")
|
|
45
|
+
A band with a mono kicker, a title, and a subtitle. Answers: where does the
|
|
46
|
+
next part start? In a deck, put a `divider` alone under its own `##`
|
|
47
|
+
heading and it becomes an interstitial slide.
|
|
48
|
+
#### `bignumber` — one hero metric that carries the slide
|
|
49
|
+
One value with a label, context, and a delta. Quote numeric-looking values
|
|
50
|
+
(`"-75%"`). Answers: what is the one number? The trend arrow is neutral
|
|
51
|
+
gray on purpose: "down" is often good. `bignumber` for ONE number; `stats`
|
|
52
|
+
for a row of KPIs.
|
|
53
|
+
#### `takeaways` — the 2-6 things to remember
|
|
54
|
+
Numbered bold one-liners, each with an optional detail line. Answers: what
|
|
55
|
+
should the reader remember? The natural closing slide of a deck.
|
|
56
|
+
`takeaways` to close; `list` for ordinary bullets inside a document.
|
|
57
|
+
#### `pullquote` — a standout quote
|
|
58
|
+
Bare text is the quote; lead with `text:` / `attribution:` for fields.
|
|
59
|
+
Answers: whose words frame this section? `pullquote` for a quote; `callout`
|
|
60
|
+
for an aside.
|
|
61
|
+
#### `layers` — a layered explanation (N numbered layers)
|
|
62
|
+
Numbered tiers, each with a kicker, a source, a question, and a body.
|
|
63
|
+
Answers: which tier answers which question? `layers`, not `table`, when the
|
|
64
|
+
content reads as ordered tiers (an L1 / L2 / L3 model); `block` with
|
|
65
|
+
`layers:` when arrows join the tiers.
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
# Chiltepin blocks — Planning, lists & backlogs
|
|
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**: Time — what happened or is planned (`timeline`, `changelog`,
|
|
8
|
+
`rollout`, `roadmap`, `chevrons`); Grid — one option weighed (`proscons`);
|
|
9
|
+
work items and cards (`userstory`, `stories`, `kanban`, `storymap`,
|
|
10
|
+
`statustable`, `risk`, `list`, `cvt`, `agenda`, `pattern`, `gallery`).
|
|
11
|
+
**Answers**: What work exists, in what state, owned by whom? What shipped when?
|
|
12
|
+
**Not this family**: bars against dates → `gantt`; verdicts → `options`; targets → `slo`.
|
|
13
|
+
|
|
14
|
+
#### `userstory` — agile story + acceptance criteria + links
|
|
15
|
+
One story as its own section: role / want / soThat, criteria, links. Use a short
|
|
16
|
+
stable `id` (`US-142`); other docs reference it. `links[].ref` (`doc#id`) is a real
|
|
17
|
+
cross-reference that `chiltepin check` verifies. Answers: what does done mean? `stories` for many.
|
|
18
|
+
#### `timeline` — phases / roadmap
|
|
19
|
+
Phases in order with a status dot each. Answers: what happens in which phase?
|
|
20
|
+
`timeline` for plans ahead; `changelog` for history; `gantt` for bars.
|
|
21
|
+
#### `changelog` — release history
|
|
22
|
+
A rail with a dot per release (red for `tag: breaking`), a version pill, a date,
|
|
23
|
+
and typed items. Newest first. Answers: what shipped when?
|
|
24
|
+
#### `kanban` — flexible columns
|
|
25
|
+
Named columns of cards (Now / Next / Later). Answers: what is in flight?
|
|
26
|
+
`kanban` for work in flight; `storymap` for scope; `statustable` for status.
|
|
27
|
+
#### `storymap` — user story mapping (backbone + release slices)
|
|
28
|
+
Activities across the top; each release slice is a band of cards under the step
|
|
29
|
+
they belong to. Each slice's `cells` carries exactly one entry per backbone step,
|
|
30
|
+
in order; write `[]` for an empty step. Answers: what do we build, in what order?
|
|
31
|
+
#### `rollout` — how a change ships, and what stops it
|
|
32
|
+
Stages left to right with traffic share, hold time, and the gate that must pass
|
|
33
|
+
before the next stage; the gate belongs to the stage it closes. `rollback` is the
|
|
34
|
+
footer: the move, not the wish. Answers: what condition starts the next stage?
|
|
35
|
+
#### `statustable` — task table with an update column + colored status pills
|
|
36
|
+
Free cells under `columns`, then a Status pill per row; one level of `subtasks`.
|
|
37
|
+
`statuses` is your label → colour vocabulary; built-in defaults are in progress,
|
|
38
|
+
blocked, completed, todo, done. Any other status fails `chiltepin check`. A parent's status
|
|
39
|
+
never rolls up. Answers: what state is each task in? `list` when items carry no status.
|
|
40
|
+
#### `risk` — a risk register
|
|
41
|
+
One row-card per risk; severity derives from likelihood × impact. Answers: what
|
|
42
|
+
could go wrong, and who owns it? `swot` for strategic position.
|
|
43
|
+
#### `cvt` — current vs target (before / after)
|
|
44
|
+
Two side-by-side panels of items, today and target, with a note. Answers: what
|
|
45
|
+
changes between now and the target? `options` when several targets compete.
|
|
46
|
+
#### `proscons` — pros vs cons (two columns)
|
|
47
|
+
Two columns weighing ONE option. Answers: is this one option worth it?
|
|
48
|
+
`options` for several candidates with verdicts; `gallery` for side by side.
|
|
49
|
+
#### `agenda` — meeting agenda
|
|
50
|
+
Timed rows with duration, title, owner, and description. Answers: what happens
|
|
51
|
+
when in this meeting? `agenda`, not `timeline`, for one meeting.
|
|
52
|
+
#### `list` — a fancy bullet list (four marker styles)
|
|
53
|
+
A bold lead plus text per item; `style` picks accent, check, icon, or number markers.
|
|
54
|
+
Answers: what are the points? `statustable` when items carry status; `takeaways` to close.
|
|
55
|
+
#### `stories` — a collapsible user-story backlog
|
|
56
|
+
Every story as an accordion in one section; `open: true` expands one.
|
|
57
|
+
Answers: what is in the backlog? `userstory` for one with its own section.
|
|
58
|
+
#### `pattern` — a design-pattern reference card
|
|
59
|
+
A GoF-style card: intent, forces, participants, consequences; only `name` is required.
|
|
60
|
+
Answers: what does this pattern do and cost? Start from the pattern library in
|
|
61
|
+
`reference/system-design.md`; pair with `felogic` (structure) and `sequence` (runtime).
|
|
62
|
+
#### `gallery` — a responsive grid of cells
|
|
63
|
+
A real grid (2 columns by default, `cols` up to 4). A cell is a note, a `code`
|
|
64
|
+
snippet, or a nested `block`: a whole diagram checked against its own schema.
|
|
65
|
+
Answers: how do these compare side by side? When the user says "compare X vs Y",
|
|
66
|
+
put each side in a cell as a nested block (a `pattern` card or a diagram), not
|
|
67
|
+
prose or a table. `gallery`, not `code` with `blocks[]`, for a grid.
|
|
68
|
+
#### `chevrons` — process chevron strip
|
|
69
|
+
2–8 chevrons left to right, `current` highlighted, a `desc` under each. Answers:
|
|
70
|
+
what are the phases, and where are we? `steps` to execute them; `cycle` when it loops.
|
|
71
|
+
#### `roadmap` — themes × periods
|
|
72
|
+
`themes` as rows, `periods` as columns, items as status chips spanning
|
|
73
|
+
`from` … `to`, `now` as a rule. Answers: what ships when, by theme? Coarser
|
|
74
|
+
than `gantt` (no days, no dependencies); `kanban` when nothing is dated.
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# Chiltepin blocks — Quality & audits
|
|
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**: Verdicts with evidence. What is wrong now (`audit`), what passes
|
|
8
|
+
and fails a standard (`checklist`), what is over budget (`perfbudget`), how
|
|
9
|
+
long the tail is (`percentiles`), and what an attacker can do (`threatmodel`).
|
|
10
|
+
**Answers**: What did the review find? Are we ready? Are we within budget?
|
|
11
|
+
How slow is the slow path? Where can this be attacked, and what stops it?
|
|
12
|
+
**Not this family**: what MIGHT go wrong → `risk` (planning.md); service
|
|
13
|
+
targets over time → `slo` (tables-data.md); measured results side by side →
|
|
14
|
+
`benchmark` (tables-data.md); where the time goes in one request → `spans`.
|
|
15
|
+
|
|
16
|
+
#### `audit` — findings register
|
|
17
|
+
Severity-ranked rows with evidence, fix, owner, status, and a count strip per
|
|
18
|
+
severity. Answers: what did the review find, and how bad is it? One finding
|
|
19
|
+
per row; `evidence` is what was observed (a path, a query, a log line), `fix`
|
|
20
|
+
the change. `audit`, not `risk`, for defects found; `risk` for possibilities.
|
|
21
|
+
`audit`, not `table`: the severity order and the counts are derived.
|
|
22
|
+
#### `checklist` — pass / fail with evidence
|
|
23
|
+
Items, or `groups` of items, each with a verdict and the evidence behind it;
|
|
24
|
+
the footer derives the pass rate. Terse: `"[pass] item — evidence"` (quote
|
|
25
|
+
it: the bracket is YAML flow syntax). Answers: are we ready, and what is
|
|
26
|
+
missing? `checklist` for a standard applied once; `statustable` for work in
|
|
27
|
+
flight; `list` with `check` markers when nothing is being verified.
|
|
28
|
+
#### `perfbudget` — budgets vs measured
|
|
29
|
+
One bar per metric against its budget mark; over / near / ok derived
|
|
30
|
+
(`lowerIsBetter: false` for scores and throughput). Answers: are we within
|
|
31
|
+
budget, and by how much? `perfbudget` for targets with a pass line;
|
|
32
|
+
`benchmark` for candidates against each other; `stats` for KPIs with trends.
|
|
33
|
+
#### `percentiles` — latency distribution per row
|
|
34
|
+
p50 · p90 · p95 · p99 · max per endpoint on one axis, the SLO as a rule;
|
|
35
|
+
`scale: log` for a long tail. Answers: how slow is the slow path? A p99 past
|
|
36
|
+
the SLO is marked. `percentiles` for the tail; `chart` line for latency over
|
|
37
|
+
time; `spans` for where the time goes inside one request.
|
|
38
|
+
#### `threatmodel` — STRIDE on a data flow
|
|
39
|
+
The dfd shapes inside dashed trust `boundaries`, `channel: plain` hops marked,
|
|
40
|
+
and a `threats` table keyed to nodes or edges with the STRIDE letter.
|
|
41
|
+
Answers: where can this be attacked, and what stops it? One trust boundary
|
|
42
|
+
per block; put the mitigations in the table, not in prose. `threatmodel`,
|
|
43
|
+
not `dfd`, when threats are the question; `audit` for what a review found.
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# Chiltepin blocks — Tables, metrics & code
|
|
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 — two axes of exact values (`table`, `benchmark`) — plus
|
|
8
|
+
Structure & emphasis for headline numbers, targets, and code as evidence
|
|
9
|
+
(`stats`, `slo`, `code`).
|
|
10
|
+
**Answers**: What are the exact values? How big, fast, or reliable is it,
|
|
11
|
+
as measured?
|
|
12
|
+
**Not this family**:
|
|
13
|
+
|
|
14
|
+
- cells are permission levels → `matrix` (business.md)
|
|
15
|
+
- a value grid read by intensity → `heatmap` (charts-overviews.md)
|
|
16
|
+
- the numbers move over time → `chart` (charts-overviews.md)
|
|
17
|
+
- scores you invented rather than measured → `scorecard` or `harvey`
|
|
18
|
+
(business.md)
|
|
19
|
+
|
|
20
|
+
### Tables & metrics
|
|
21
|
+
|
|
22
|
+
#### `table` — comparison table
|
|
23
|
+
Rows × columns of exact values; a cell can carry a tone and emphasis.
|
|
24
|
+
Answers: what are the exact values?
|
|
25
|
+
`table`, not `matrix`, when cells are data rather than permissions; not
|
|
26
|
+
`heatmap` when the reader needs the numbers rather than the pattern.
|
|
27
|
+
|
|
28
|
+
#### `stats` — KPI / metric cards
|
|
29
|
+
A row of cards: value, label, delta, and a trend arrow.
|
|
30
|
+
Answers: how big is it right now?
|
|
31
|
+
`stats` for a few KPIs with trends; `bignumber` for one hero number; `chart`
|
|
32
|
+
when the numbers move over time; `envelope` for an estimate.
|
|
33
|
+
|
|
34
|
+
#### `slo` — service-level objectives with error budgets
|
|
35
|
+
One row-card per objective: SLI, target, current, window, and a burn bar.
|
|
36
|
+
Answers: are we inside the error budget?
|
|
37
|
+
`budget` is the fraction consumed (0–1): the bar turns amber past 0.5, red
|
|
38
|
+
past 0.8, "exhausted" at 1. Omit it to skip the bar.
|
|
39
|
+
`slo` for reliability targets; `okr` for goals; `stats` for plain KPIs.
|
|
40
|
+
|
|
41
|
+
#### `benchmark` — measured results, side by side
|
|
42
|
+
Subject columns × metric rows; the best cell per row is derived from the
|
|
43
|
+
numbers and highlighted. Never bold a winner yourself. `better: low` flips a
|
|
44
|
+
row (latency, cost); `better: none` turns the highlight off; `best: true`
|
|
45
|
+
forces it for a tie. `variants` on a row stacks one value per condition and
|
|
46
|
+
compares each condition on its own line. Answers: what did we measure?
|
|
47
|
+
`benchmark` for measured numbers; `scorecard` or `harvey` for scores you gave.
|
|
48
|
+
|
|
49
|
+
#### `code` — code the reader will copy or diff
|
|
50
|
+
When the reader will copy or diff it, it is a `code` block, not prose or a
|
|
51
|
+
table; when the change is the point, `kind: compare` or `kind: diff`.
|
|
52
|
+
`highlight: "3-5, 8"` bands the lines that matter; `lines: true` numbers
|
|
53
|
+
them; `cols: 2` sets snippets side by side (request / response); `kind:
|
|
54
|
+
compare` is before / after under eyebrows; `kind: terminal` is a `session`.
|
|
55
|
+
`steps` for a runbook with prose between commands; `gallery` for a card grid.
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# Check and fix — step 7 of the procedure
|
|
2
|
+
|
|
3
|
+
After you create or edit any doc, run the CLI and fix everything it reports.
|
|
4
|
+
**A change is not done until `chiltepin check` passes.**
|
|
5
|
+
|
|
6
|
+
```
|
|
7
|
+
chiltepin check # validate all docs: schema + dangling refs + dup ids
|
|
8
|
+
chiltepin check docs/orders-api.md # validate one file
|
|
9
|
+
chiltepin check --json # machine-readable: every diagnostic with its code, file, line, value
|
|
10
|
+
chiltepin check --strict-prose # prose warnings become errors
|
|
11
|
+
chiltepin block <type> # the fields, enums, terse forms, and example for one block
|
|
12
|
+
chiltepin html docs/orders-api.md -p # render and open it (slides … -p for a deck)
|
|
13
|
+
chiltepin new <name> # scaffold a whole doc (adr, runbook, …) or one block
|
|
14
|
+
chiltepin build # static site (index + nav + cross-doc links) → dist/
|
|
15
|
+
chiltepin sync openapi spec.yaml --out docs/api.md # doc from an OpenAPI spec
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
Prefix every command with `npx -y chiltepin` when `chiltepin` is not on PATH.
|
|
19
|
+
|
|
20
|
+
`chiltepin check` exits non-zero on any error and names the file, line, and
|
|
21
|
+
offending value. Warnings never fail the check, but read each one: most name a
|
|
22
|
+
real problem.
|
|
23
|
+
|
|
24
|
+
## Error codes
|
|
25
|
+
|
|
26
|
+
Every diagnostic carries a stable code. Apply the matching fix:
|
|
27
|
+
|
|
28
|
+
| Code | Meaning | First check |
|
|
29
|
+
|---|---|---|
|
|
30
|
+
| `E_PARSE_YAML` | YAML body failed to parse. | Re-read *YAML pitfalls* in `writing.md`. Unquoted `,`/`:`/`#` in a `desc` is the usual cause. |
|
|
31
|
+
| `E_PARSE_MERMAID` | A ` ```mermaid ` body has a line outside the supported subset; the message names the line. | Compare against `mermaid.md`. Fix the line, or write the block as typed YAML. |
|
|
32
|
+
| `E_PARSE_DBML` / `E_PARSE_PRISMA` | A ` ```dbml ` / ` ```prisma ` body has a line outside the supported subset; the message names the line. | Compare against `mermaid.md` (Input dialects). Fix the line, or write the block as an `erd` in YAML. |
|
|
33
|
+
| `E_SCHEMA` | A field is missing, wrong-typed, or unknown; the message contains the path. | Compare against `chiltepin block <type>`. Do not add undocumented fields — the schema is strict. |
|
|
34
|
+
| `E_DANGLING_REF` | A `ref` points at an id that exists nowhere. | Fix the ref string, or add the missing `id:` to the target block. |
|
|
35
|
+
| `E_SWIMLANE_LANE` | A `swimlane` step's `lane` matches no lane label, id, or index. | Use one of the lane labels the hint lists, exactly as written (case does not matter). |
|
|
36
|
+
| `E_DUP_ID` | The same `id:` in two blocks; the message names both. | Ids are repo-global. Rename one. |
|
|
37
|
+
| `E_BAD_REF_FORMAT` | A `ref:` is not `doc#id` or `#id` shape. | Match the format; the id slug is `[\w-]+`. |
|
|
38
|
+
| `E_UNKNOWN_BLOCK` | A segment claims an unknown block type (rare — unknown fences normally fall through to plain code). | Use exactly one of the types `chiltepin block` lists. |
|
|
39
|
+
|
|
40
|
+
Common `E_SCHEMA` shapes: `Expected string, received number` → quote the
|
|
41
|
+
value (`tech: "16"`). `Invalid enum value` → use the documented enum only.
|
|
42
|
+
`Unrecognized key(s)` → you added an undocumented field, or an unquoted comma
|
|
43
|
+
in a flow-style mapping split a phrase into keys. `meta` fails → it must be
|
|
44
|
+
the first block in the file.
|
|
45
|
+
|
|
46
|
+
## Warning codes
|
|
47
|
+
|
|
48
|
+
| Code | Meaning | What to do |
|
|
49
|
+
|---|---|---|
|
|
50
|
+
| `W_EMPTY_BLOCK` | A typed block had an empty body. | Add fields or remove the block. |
|
|
51
|
+
| `W_SUSPECT_BLOCK` | A fence tag is within typo distance of a real type (e.g. ` ```sequnce `); it rendered as plain text. | Rename the fence to the suggested type. |
|
|
52
|
+
| `W_ALIAS_TYPE` | The fence uses one of the 12 old merged names. It parsed and rendered fine. | Nothing — both spellings work forever. Use the canonical name in new blocks; do not churn existing fences. |
|
|
53
|
+
| `W_DENSE_BLOCK` | A diagram is past its density budget. | Split it into two focused blocks. A diagram past its budget reads worse than two. |
|
|
54
|
+
| `W_EDGE_LABEL` | A `c4` relationship has no `label`. | Add the verb phrase that crosses the line; at container level add `tech` (the protocol). |
|
|
55
|
+
| `W_LENS_REPEAT` | A third `callout`, or a fourth block of any other structural type, in one doc. | Merge them, or answer the third question with a different lens — the hint names the usual one. |
|
|
56
|
+
| `W_PROSE_*` | A prose rule broke: a paragraph too long, a banned opener, a sentence that restates the block. | Apply the prose rules in `SKILL.md` and `style-ste.md`. Block text fields are exempt from the length cap. |
|
|
57
|
+
| `W_DOC_CONVENTION` | The file path breaks the on-disk convention. | See `organizing.md`. Never rename a file only to silence this. |
|
|
58
|
+
|
|
59
|
+
## The final read
|
|
60
|
+
|
|
61
|
+
After the check passes, reread only the headings and block titles. The skim
|
|
62
|
+
must still tell the story from step 1. Cut any section that reads as filler.
|