From 7a60e57f46dcc65ee30674916d4885b939a11626 Mon Sep 17 00:00:00 2001 From: Julien Calixte Date: Thu, 2 Jul 2026 23:37:16 +0200 Subject: [PATCH] style(skills): align SKILL.md table separators --- .claude/skills/illustrate-blueprint/SKILL.md | 50 ++++++++++---------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/.claude/skills/illustrate-blueprint/SKILL.md b/.claude/skills/illustrate-blueprint/SKILL.md index c0cb5a0..5447f46 100644 --- a/.claude/skills/illustrate-blueprint/SKILL.md +++ b/.claude/skills/illustrate-blueprint/SKILL.md @@ -25,11 +25,11 @@ part — title block, legend, function tabs, the full-view Readout, the composit map, and the state machine — from a blueprint's **typed data**. You author two things per blueprint and register them: -| File | What it is | -| --- | --- | -| `src/data/Blueprint.ts` | the `Blueprint` object — the contract as typed data (see the `Blueprint` type in `src/data/blueprint.ts`) | -| `src/specimens/Specimen.vue` | the **bespoke** static visual mock (left pane), with per-function highlighting | -| `src/data/blueprints.ts` | one line registering the `{ blueprint, specimen }` pair under its slug | +| File | What it is | +| ------------------------------------ | --------------------------------------------------------------------------------------------------------- | +| `src/data/Blueprint.ts` | the `Blueprint` object — the contract as typed data (see the `Blueprint` type in `src/data/blueprint.ts`) | +| `src/specimens/Specimen.vue` | the **bespoke** static visual mock (left pane), with per-function highlighting | +| `src/data/blueprints.ts` | one line registering the `{ blueprint, specimen }` pair under its slug | Registering in `blueprints.ts` is all that's needed — the Gallery (`/`) and the route `/b/` both derive from the registry automatically. Do **not** hand-edit @@ -44,12 +44,12 @@ the router or the Gallery. Study the closest existing pair before you start — copy its shape, don't reinvent: -| Kind | Data module | Specimen | Notes | -| --- | --- | --- | --- | -| **Feature** (set) | `src/data/listBlueprint.ts` | `src/specimens/ListSpecimen.vue` | reuses the shared `LOADSTATE_MACHINE` (`src/data/loadStateMachine.ts`) | -| **Feature** (set) | `src/data/gridBlueprint.ts` | `src/specimens/GridSpecimen.vue` | 2D tile layout | -| **Feature** (temporal) | `src/data/calendarBlueprint.ts` | `src/specimens/CalendarSpecimen.vue` | annotates one surface per function | -| **Capability** | `src/data/rememberMeBlueprint.ts` | `src/specimens/RememberMeSpecimen.vue` | defines a **bespoke** state machine + new `SmKind`s | +| Kind | Data module | Specimen | Notes | +| ---------------------- | --------------------------------- | -------------------------------------- | ---------------------------------------------------------------------- | +| **Feature** (set) | `src/data/listBlueprint.ts` | `src/specimens/ListSpecimen.vue` | reuses the shared `LOADSTATE_MACHINE` (`src/data/loadStateMachine.ts`) | +| **Feature** (set) | `src/data/gridBlueprint.ts` | `src/specimens/GridSpecimen.vue` | 2D tile layout | +| **Feature** (temporal) | `src/data/calendarBlueprint.ts` | `src/specimens/CalendarSpecimen.vue` | annotates one surface per function | +| **Capability** | `src/data/rememberMeBlueprint.ts` | `src/specimens/RememberMeSpecimen.vue` | defines a **bespoke** state machine + new `SmKind`s | ## Workflow @@ -67,20 +67,20 @@ The README anatomy is fixed: **Signature → UI snapshot → State machine → B → Invariants → Functional analysis → Critical performance → Failure modes → Formal model**. Map it to the `Blueprint` type like this: -| README section | `Blueprint` field | -| --- | --- | -| `# Name` + intro one-liner | `name`, `tagline` | -| Signature / Standard composition | `sig` (`header`, `fields`, `types`), `role`, `extendsName`, `composesCount` | -| Relations | `related[]` (`{ name, relation }`) | -| UI snapshot (ASCII sketch) | informs the **Specimen** — not a data field | -| State machine | `stateMachine` — reuse `LOADSTATE_MACHINE` or author a bespoke one (see step 2) | -| Behaviors | distributed into `functions[].behaviors[]` (`{ sig, pre, eff }`) | -| Invariants → Core | top-level `coreInvariants[]` | -| Invariants → per-behavior | the owning `functions[].invariants[]` | -| Functional analysis (the table) | **`functions[]`** — one row = one `BlueprintFunction` | -| Critical performance | distributed into `functions[].perf[]` | -| Failure modes | distributed into `functions[].failures[]` | -| Formal model | rendered automatically from `slug` in the footer | +| README section | `Blueprint` field | +| -------------------------------- | ------------------------------------------------------------------------------- | +| `# Name` + intro one-liner | `name`, `tagline` | +| Signature / Standard composition | `sig` (`header`, `fields`, `types`), `role`, `extendsName`, `composesCount` | +| Relations | `related[]` (`{ name, relation }`) | +| UI snapshot (ASCII sketch) | informs the **Specimen** — not a data field | +| State machine | `stateMachine` — reuse `LOADSTATE_MACHINE` or author a bespoke one (see step 2) | +| Behaviors | distributed into `functions[].behaviors[]` (`{ sig, pre, eff }`) | +| Invariants → Core | top-level `coreInvariants[]` | +| Invariants → per-behavior | the owning `functions[].invariants[]` | +| Functional analysis (the table) | **`functions[]`** — one row = one `BlueprintFunction` | +| Critical performance | distributed into `functions[].perf[]` | +| Failure modes | distributed into `functions[].failures[]` | +| Formal model | rendered automatically from `slug` in the footer | ### 1 · Decide role and state-machine strategy