@vpxa/aikit 0.1.364 → 0.1.366

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 (34) hide show
  1. package/package.json +1 -1
  2. package/packages/blocks-core/dist/index.mjs +245 -49
  3. package/packages/claude-desktop/dist/manifest.json +1 -1
  4. package/packages/cli/dist/index.js +3 -3
  5. package/packages/cli/dist/{init-BMx7YVOM.js → init-DVXEzLeU.js} +1 -1
  6. package/packages/cli/dist/{templates-3QxMwDt5.js → templates-CuLU6Y8S.js} +8 -8
  7. package/packages/present/dist/index.html +287 -91
  8. package/packages/server/dist/bin.js +1 -1
  9. package/packages/server/dist/index.js +1 -1
  10. package/packages/server/dist/prelude-D1oe3NL7.js +1 -0
  11. package/packages/server/dist/prelude-t71wRuOe.js +2 -0
  12. package/packages/server/dist/sampling-C19rdzVZ.js +2 -0
  13. package/packages/server/dist/sampling-CszJtgGl.js +1 -0
  14. package/packages/server/dist/{server-DUWF6mtP.js → server-BtvrfwNS.js} +16 -3
  15. package/packages/server/dist/{server-Bsceh-AT.js → server-T0MytK4x.js} +16 -3
  16. package/packages/server/dist/{server-http-Cx4tvbmK.js → server-http-BG_N2K2X.js} +1 -1
  17. package/packages/server/dist/{server-http-BGcKUn5y.js → server-http-DQpYfFMJ.js} +1 -1
  18. package/packages/server/dist/{server-stdio-BmGuXkkF.js → server-stdio-BntxVWEj.js} +1 -1
  19. package/packages/server/dist/{server-stdio-C66e05P_.js → server-stdio-D1K-fQAt.js} +1 -1
  20. package/packages/server/viewers/canvas.html +288 -92
  21. package/packages/server/viewers/report-template.html +258 -62
  22. package/packages/server/viewers/tour-viewer.html +260 -64
  23. package/scaffold/dist/adapters/claude-code.mjs +1 -1
  24. package/scaffold/dist/adapters/claude-desktop.mjs +1 -1
  25. package/scaffold/dist/definitions/exec-hooks.mjs +1 -1
  26. package/scaffold/dist/definitions/skills/c4-architecture.mjs +1 -1
  27. package/scaffold/dist/definitions/skills/docs.mjs +1 -1
  28. package/scaffold/dist/definitions/skills/present.mjs +4 -72
  29. package/scaffold/dist/generated/block-docs.mjs +5 -3
  30. package/scaffold/general/hooks/scripts/session-reminder.mjs +23 -28
  31. package/packages/server/dist/prelude-BgvW6Hp5.js +0 -2
  32. package/packages/server/dist/prelude-Di-ZDdDk.js +0 -1
  33. package/packages/server/dist/sampling-CFWUnzbA.js +0 -1
  34. package/packages/server/dist/sampling-lcC_v6KY.js +0 -2
@@ -1,4 +1,4 @@
1
- function e(){return[{file:`SKILL.md`,content:`---
1
+ import{BLOCK_CATALOG as e}from"../../generated/block-docs.mjs";function t(){return[{file:`SKILL.md`,content:`---
2
2
  name: present
3
3
  description: "Use the AI Kit present tool for rich dashboards, charts, timelines, status boards, data tables, reviews, approvals, and interactive MCP App surfaces. Load before calling present so output uses the right block/template/action contract and stays readable."
4
4
  metadata:
@@ -18,7 +18,7 @@ Use present for complex user-facing output: reports, dashboards, evidence maps,
18
18
  ## Authoring Model
19
19
 
20
20
  Choose one:
21
- - blocks: direct markdown/heading/table/chart/cards/metrics/checklist/timeline/status-board/etc.
21
+ - blocks: direct markdown/heading/table/chart/cards/metrics/checklist/timeline/status-board/stat-group/alert/etc.
22
22
  - template + data: report, task-plan, review, dashboard, diff, checklist, picker, form.
23
23
  - raw JSON: complex surfaces where hand-authored object is clearer.
24
24
 
@@ -99,75 +99,7 @@ If validation fails, fix schema shape first. Use schema/preset/template resource
99
99
  Load on demand:
100
100
  - references/block-catalog.md — Complete 32-block type catalog with value shapes, best block for each data type, and rules.
101
101
  - references/presets-templates.md — Preset contracts (8 presets), viewer templates (7), MCP App templates (14), diagram renderers (5), and error recovery patterns.
102
- `},{file:`references/block-catalog.md`,content:`# Block Catalog 32 Content Blocks
103
-
104
- Pass content as blocks array of { type, title?, value } objects.
105
-
106
- ## Content Blocks
107
-
108
- | Type | Value shape | Use for |
109
- |------|-------------|---------|
110
- | prompt | string | Prompt or callout text |
111
- | text | string | Plain text without markdown parsing |
112
- | heading | string | Standalone section headings |
113
- | paragraph | string | Standalone paragraph copy |
114
- | markdown | string | Prose, headings, code snippets |
115
- | code | string | Code or diff excerpts |
116
- | list | string[] | Bullet list items |
117
- | separator | none | Visual divider |
118
- | diff | { files: [{ path, hunks }] } | File diffs with +/- highlights |
119
- | finding | { label, description?, severity? } | Finding with severity pill |
120
-
121
- ## Data Blocks
122
-
123
- | Type | Value shape | Use for |
124
- |------|-------------|---------|
125
- | table | Record[] or { headers, rows } | Tabular data |
126
- | metrics | [{ label, value, trend?, status? }] | KPI cards |
127
- | kv | Record<string, string> | Key-value pairs |
128
- | tags | string[] | Tag pills |
129
- | data-table-schema | { fields: [{ name, type, required? }] } | Schema table |
130
- | chart | { chartType, data, xKey?, yKeys? } | line/area/bar/horizontal-bar/pie/donut/sparkline/heatmap |
131
-
132
- ## Visualization Blocks
133
-
134
- | Type | Value shape | Use for |
135
- |------|-------------|---------|
136
- | cards | [{ title, body?, badge?, status? }] | Summary cards |
137
- | tree | { name, children? } | Hierarchies |
138
- | timeline | [{ title, description?, timestamp?, status? }] | Event sequences |
139
- | mermaid | string | Diagrams |
140
- | graph | { nodes, edges } | Network graphs |
141
- | comparison | [{title, items}] or {columns} | Side-by-side comparisons |
142
- | lifecycle-flow | { nodes, edges } | SVG flow diagram |
143
- | component-detail | { name, type?, description? } | Component detail view |
144
-
145
- ## Interactive / Layout
146
-
147
- | Type | Value shape | Use for |
148
- |------|-------------|---------|
149
- | checklist | [{ label, checked }] | Task lists |
150
- | status-board | [{category, items}] | Service health |
151
- | progress | {label, value, max?} | Progress bars |
152
- | docs-browser | { files } | Documentation indexes |
153
- | annotation | { items } | Annotation groups |
154
- | approval | { options, comment? } | Approval with options/textarea |
155
- | docs-hub | { title, items } | Doc hub card grid |
156
- | actions | [{ type, id, label }] | Inline action group |
157
-
158
- ## Data-to-Block Quick Reference
159
-
160
- | Your data looks like... | Use this block type |
161
- |---|---|
162
- | Array of strings | list or markdown |
163
- | Key-value pairs | kv or table (2 columns) |
164
- | Rows x columns | table |
165
- | Done/not-done state | checklist |
166
- | Hierarchical items | tree |
167
- | Numeric KPIs | metrics |
168
- | Before/after or A vs B | comparison |
169
- | Findings with severity | finding |
170
- `},{file:`references/presets-templates.md`,content:`# Presets, Templates, and Error Recovery
102
+ `},{file:`references/block-catalog.md`,content:e},{file:`references/presets-templates.md`,content:`# Presets, Templates, and Error Recovery
171
103
 
172
104
  ## 8 Named Presets
173
105
 
@@ -508,4 +440,4 @@ For RENDER_FAILED errors: data is valid but rendering failed. Simplify surface o
508
440
  Use raw JSON string field for complex payloads — auto-repair handles unescaped newlines and trailing commas.
509
441
 
510
442
  A Feedback text-submit action is automatically appended to every actions array.
511
- `}]}export{e as default};
443
+ `}]}export{t as default};
@@ -1,4 +1,4 @@
1
- const e="| Type | Description | Value Shape |\n|------|-------------|-------------|\n| `markdown` | Markdown content rendered with the marked parser. | `string` |\n| `code` | Formatted code block rendered inside pre/code tags. | `string` |\n| `mermaid` | Mermaid diagram source rendered in a mermaid pre block. | `string` |\n| `architecture-diagram` | Architecture diagram with positioned components, connections, and boundary groups. Produces SVG with mermaid rendering. | `object ({ components, connections, boundaries? })` |\n| `workflow-diagram` | Workflow/pipeline diagram with lane-based columns, typed nodes, and edges. Produces SVG with mermaid rendering. | `object ({ lanes, nodes, edges })` |\n| `sequence-diagram` | Sequence diagram with participants and time-ordered messages. Produces SVG with mermaid rendering. | `object ({ participants, messages })` |\n| `dataflow-diagram` | Data flow diagram with stage-based columns, nodes, and classification-colored edges. Produces SVG with mermaid rendering. | `object ({ stages, nodes, flows })` |\n| `lifecycle-diagram` | Lifecycle state machine with lanes, states, and transitions. Produces SVG with mermaid rendering. | `object ({ lanes, states, transitions })` |\n| `table` | Tabular data rendered from records or explicit headers and rows. | `Record<string, unknown>[] | { headers: string[]; rows: unknown[][] }` |\n| `metrics` | Metric cards showing label/value pairs with optional trend and status. | `Array<{ label: string; value: string | number; trend?: string | number; status?: string }>` |\n| `cards` | Card grid for titled items with optional body, badge, and status. | `Array<{ title: string; body?: string; badge?: string; status?: string; description?: string }>` |\n| `tree` | Hierarchical object or name/children tree rendered recursively. | `{ name: string; children?: unknown[] } | Record<string, unknown>` |\n| `graph` | Node and edge graph rendered as a Mermaid flow graph in HTML mode. | `{ nodes: Array<{ id: string; label?: string }>; edges: Array<{ from: string; to: string; label?: string }> }` |\n| `chart` | Structured chart definition rendered as SVG. | `{ chartType: string; data: Record<string, unknown>[]; xKey: string; yKeys: string[] }` |\n| `timeline` | Timeline entries rendered as a vertical sequence of events. | `Array<{ title: string; description?: string; timestamp?: string; status?: string }>` |\n| `checklist` | Checklist items with boolean checked state. | `Array<{label, checked}> | {items: Array<{label, checked}>}` |\n| `comparison` | Side-by-side comparison columns with titled item lists. | `Array<{title, items}> | {columns: Array<{title, items}>}` |\n| `status-board` | Status categories containing labeled status items. | `Array<{category, items}> | {items: Array<{category, items}>}` |\n| `prompt` | Prompt payload rendered through the prompt display helper. | `unknown` |\n| `progress` | Progress bar with current value and optional maximum. | `{label, value, max?} | {items: Array<{label, value, max?, color?}>}` |\n| `docs-browser` | Documentation file list with inline content previews for chat-safe rendering. | `{ files: Array<{ path: string; title?: string; content?: string; status?: \"current\" | \"stale\" | \"missing\" }>; title?: string }` |\n| `text` | Plain text content rendered through the markdown parser. | `string` |\n| `heading` | Single heading with configurable level from h1 to h6. | `string` |\n| `paragraph` | Single paragraph rendered inside a p tag. | `string` |\n| `separator` | Horizontal rule used to separate adjacent blocks. | `undefined` |\n| `actions` | Action bar containing button and select action definitions. | `Array<{ type: string; id: string; label: string; variant?: string; options?: Array<string | { label: string; value: string }> }>` |\n| `diff` | Diff view with +/- lines for showing changes between text. | `string | { content: string } | { before: string; after: string }` |\n| `finding` | Finding with severity pill showing title, severity, and detail. | `{ title?: string; severity?: string; detail?: unknown }` |\n| `kv` | Key-value pairs rendered as labeled entries. | `Array<{ key: string; value: unknown }> | Record<string, unknown>` |\n| `tags` | Tag pills rendered with optional tone/color. | `Array<string | { text?: string; label?: string; status?: string; tone?: string; color?: string }> | { items: Array<...> }` |\n| `list` | Bullet list items rendered as an unordered list. | `string[]` |\n| `lifecycle-flow` | SVG flow diagram with labeled steps, edges, and status colors. | `{ title?: string; steps: Array<{ id: string; label: string; type?: string; status?: string; description?: string }>; edges?: Array<{ from: string; to: string; label?: string }> }` |\n| `component-detail` | Component detail view with name, type, technology, responsibilities, interfaces, dependencies, metrics, and code links. | `{ name: string; description?: string; type?: string; technology?: string; responsibilities?: string[]; interfaces?: Array<{ name: string; type: string; description?: string }>; dependencies?: Array<{ name: string; relationship?: string }>; metrics?: Record<string, string | number>; codeLinks?: Array<{ href: string; label: string }> }` |\n| `data-table-schema` | Schema table with field names, types, constraints, and indexes. | `{ name: string; description?: string; fields: Array<{ name: string; type: string; required?: boolean; default?: unknown; constraints?: string[]; description?: string }>; indexes?: Array<{ name: string; columns: string[]; unique?: boolean }> }` |\n| `annotation` | Annotation groups with COMMENT, DELETION, and GLOBAL_COMMENT types. | `Array<{ id: string; type: \"COMMENT\" | \"DELETION\" | \"GLOBAL_COMMENT\"; body: string; author?: string; createdAt?: string }>` |\n| `approval` | Approval widget with radio options and optional comment textarea. | `{ prompt: string; options: Array<{ id: string; label: string; description?: string }>; requireComment?: boolean }` |\n| `docs-hub` | Doc hub card grid with titled pages, descriptions, categories, and statuses. | `{ title?: string; description?: string; pages?: Array<{ title: string; description?: string; href?: string; icon?: string; category?: string; status?: \"draft\" | \"published\" | \"deprecated\" }> }` |\n\n### Usage Examples\n\n#### `architecture-diagram`\n\n```typescript\n{\n type: 'architecture-diagram',\n value: {\n components: [\n { id: 'api', label: 'API Server', type: 'backend' },\n { id: 'web', label: 'Web App', type: 'frontend' }\n ],\n connections: [\n { from: 'web', to: 'api', label: 'HTTPS' }\n ]\n }\n}\n```\n\n#### `docs-browser`\n\n```typescript\n{\n type: 'docs-browser',\n value: {\n title: 'Project Docs',\n files: [\n { path: 'docs/README.md', title: 'Overview', status: 'current' },\n { path: 'docs/api.md', title: 'API Reference', status: 'stale' },\n ],\n },\n}\n```",t=` - type:"markdown" → value: string
1
+ const e="| Type | Description | Value Shape |\n|------|-------------|-------------|\n| `markdown` | Markdown content rendered with the marked parser. | `string` |\n| `code` | Formatted code block rendered inside pre/code tags. | `string` |\n| `mermaid` | Mermaid diagram source rendered in a mermaid pre block. | `string` |\n| `architecture-diagram` | Architecture diagram with positioned components, connections, and boundary groups. Produces SVG with mermaid rendering. | `object ({ components, connections, boundaries? })` |\n| `workflow-diagram` | Workflow/pipeline diagram with lane-based columns, typed nodes, and edges. Produces SVG with mermaid rendering. | `object ({ lanes, nodes, edges })` |\n| `sequence-diagram` | Sequence diagram with participants and time-ordered messages. Produces SVG with mermaid rendering. | `object ({ participants, messages })` |\n| `dataflow-diagram` | Data flow diagram with stage-based columns, nodes, and classification-colored edges. Produces SVG with mermaid rendering. | `object ({ stages, nodes, flows })` |\n| `lifecycle-diagram` | Lifecycle state machine with lanes, states, and transitions. Produces SVG with mermaid rendering. | `object ({ lanes, states, transitions })` |\n| `table` | Tabular data rendered from records or explicit headers and rows. | `Record<string, unknown>[] | { headers: string[]; rows: unknown[][] }` |\n| `metrics` | Metric cards showing label/value pairs with optional trend and status. | `Array<{ label: string; value: string | number; trend?: string | number; status?: string }>` |\n| `cards` | Card grid for titled items with optional body, badge, and status. | `Array<{ title: string; body?: string; badge?: string; status?: string; description?: string }>` |\n| `tree` | Hierarchical object or name/children tree rendered recursively. | `{ name: string; children?: unknown[] } | Record<string, unknown>` |\n| `graph` | Node and edge graph rendered as a Mermaid flow graph in HTML mode. | `{ nodes: Array<{ id: string; label?: string }>; edges: Array<{ from: string; to: string; label?: string }> }` |\n| `chart` | Structured chart definition rendered as SVG. | `{ chartType: string; data: Record<string, unknown>[]; xKey: string; yKeys: string[] }` |\n| `timeline` | Timeline entries rendered as a vertical sequence of events. | `Array<{ title: string; description?: string; timestamp?: string; status?: string }>` |\n| `checklist` | Checklist items with boolean checked state. | `Array<{label, checked}> | {items: Array<{label, checked}>}` |\n| `comparison` | Side-by-side comparison columns with titled item lists. | `Array<{title, items}> | {columns: Array<{title, items}>}` |\n| `status-board` | Status categories containing labeled status items. | `Array<{category, items}> | {items: Array<{category, items}>}` |\n| `stat-group` | Colored stat/gauge cards with label, value, and tone. Ideal for summary counts, KPI dashboards, and status overviews. | `Array<{ label: string; value: string | number; color?: string }>` |\n| `alert` | Alert/callout box with icon, title, and body text. Tone supports: info (default), success, warning, danger, accent. | `string | { title?: string; value?: string; tone?: string; severity?: string }` |\n| `prompt` | Prompt payload rendered through the prompt display helper. | `unknown` |\n| `progress` | Progress bar with current value and optional maximum. | `{label, value, max?} | {items: Array<{label, value, max?, color?}>}` |\n| `docs-browser` | Documentation file list with inline content previews for chat-safe rendering. | `{ files: Array<{ path: string; title?: string; content?: string; status?: \"current\" | \"stale\" | \"missing\" }>; title?: string }` |\n| `text` | Plain text content rendered through the markdown parser. | `string` |\n| `heading` | Single heading with configurable level from h1 to h6. | `string` |\n| `paragraph` | Single paragraph rendered inside a p tag. | `string` |\n| `separator` | Horizontal rule used to separate adjacent blocks. | `undefined` |\n| `actions` | Action bar containing button and select action definitions. | `Array<{ type: string; id: string; label: string; variant?: string; options?: Array<string | { label: string; value: string }> }>` |\n| `diff` | Diff view with +/- lines for showing changes between text. | `string | { content: string } | { before: string; after: string }` |\n| `finding` | Finding with severity pill showing title, severity, and detail. | `{ title?: string; severity?: string; detail?: unknown }` |\n| `kv` | Key-value pairs rendered as labeled entries. | `Array<{ key: string; value: unknown }> | Record<string, unknown>` |\n| `tags` | Tag pills rendered with optional tone/color. | `Array<string | { text?: string; label?: string; status?: string; tone?: string; color?: string }> | { items: Array<...> }` |\n| `list` | Bullet list items rendered as an unordered list. | `string[]` |\n| `lifecycle-flow` | SVG flow diagram with labeled steps, edges, and status colors. | `{ title?: string; steps: Array<{ id: string; label: string; type?: string; status?: string; description?: string }>; edges?: Array<{ from: string; to: string; label?: string }> }` |\n| `component-detail` | Component detail view with name, type, technology, responsibilities, interfaces, dependencies, metrics, and code links. | `{ name: string; description?: string; type?: string; technology?: string; responsibilities?: string[]; interfaces?: Array<{ name: string; type: string; description?: string }>; dependencies?: Array<{ name: string; relationship?: string }>; metrics?: Record<string, string | number>; codeLinks?: Array<{ href: string; label: string }> }` |\n| `data-table-schema` | Schema table with field names, types, constraints, and indexes. | `{ name: string; description?: string; fields: Array<{ name: string; type: string; required?: boolean; default?: unknown; constraints?: string[]; description?: string }>; indexes?: Array<{ name: string; columns: string[]; unique?: boolean }> }` |\n| `annotation` | Annotation groups with COMMENT, DELETION, and GLOBAL_COMMENT types. | `Array<{ id: string; type: \"COMMENT\" | \"DELETION\" | \"GLOBAL_COMMENT\"; body: string; author?: string; createdAt?: string }>` |\n| `approval` | Approval widget with radio options and optional comment textarea. | `{ prompt: string; options: Array<{ id: string; label: string; description?: string }>; requireComment?: boolean }` |\n| `docs-hub` | Doc hub card grid with titled pages, descriptions, categories, and statuses. | `{ title?: string; description?: string; pages?: Array<{ title: string; description?: string; href?: string; icon?: string; category?: string; status?: \"draft\" | \"published\" | \"deprecated\" }> }` |\n\n### Usage Examples\n\n#### `architecture-diagram`\n\n```typescript\n{\n type: 'architecture-diagram',\n value: {\n components: [\n { id: 'api', label: 'API Server', type: 'backend' },\n { id: 'web', label: 'Web App', type: 'frontend' }\n ],\n connections: [\n { from: 'web', to: 'api', label: 'HTTPS' }\n ]\n }\n}\n```\n\n#### `stat-group`\n\n```typescript\n{\n type: 'stat-group',\n title: 'Status Overview',\n value: [\n { label: 'Passed', value: '42', color: 'green' },\n { label: 'Failed', value: '3', color: 'red' },\n { label: 'Pending', value: '7', color: 'yellow' },\n ],\n}\n```\n\n#### `alert`\n\n```typescript\n{\n type: 'alert',\n title: 'Critical Path — Complete',\n value: 'All delivery stages are wired end-to-end.',\n tone: 'success',\n}\n```\n\n#### `docs-browser`\n\n```typescript\n{\n type: 'docs-browser',\n value: {\n title: 'Project Docs',\n files: [\n { path: 'docs/README.md', title: 'Overview', status: 'current' },\n { path: 'docs/api.md', title: 'API Reference', status: 'stale' },\n ],\n },\n}\n```",t=` - type:"markdown" → value: string
2
2
  - type:"code" → value: string
3
3
  - type:"mermaid" → value: string
4
4
  - type:"architecture-diagram" → value: object ({ components, connections, boundaries? })
@@ -16,6 +16,8 @@ const e="| Type | Description | Value Shape |\n|------|-------------|-----------
16
16
  - type:"checklist" → value: Array<{label, checked}> | {items: Array<{label, checked}>}
17
17
  - type:"comparison" → value: Array<{title, items}> | {columns: Array<{title, items}>}
18
18
  - type:"status-board" → value: Array<{category, items}> | {items: Array<{category, items}>}
19
+ - type:"stat-group" → value: Array<{ label: string; value: string | number; color?: string }>
20
+ - type:"alert" → value: string | { title?: string; value?: string; tone?: string; severity?: string }
19
21
  - type:"prompt" → value: unknown
20
22
  - type:"progress" → value: {label, value, max?} | {items: Array<{label, value, max?, color?}>}
21
23
  - type:"docs-browser" → value: { files: Array<{ path: string; title?: string; content?: string; status?: "current" | "stale" | "missing" }>; title?: string }
@@ -34,7 +36,7 @@ const e="| Type | Description | Value Shape |\n|------|-------------|-----------
34
36
  - type:"data-table-schema" → value: { name: string; description?: string; fields: Array<{ name: string; type: string; required?: boolean; default?: unknown; constraints?: string[]; description?: string }>; indexes?: Array<{ name: string; columns: string[]; unique?: boolean }> }
35
37
  - type:"annotation" → value: Array<{ id: string; type: "COMMENT" | "DELETION" | "GLOBAL_COMMENT"; body: string; author?: string; createdAt?: string }>
36
38
  - type:"approval" → value: { prompt: string; options: Array<{ id: string; label: string; description?: string }>; requireComment?: boolean }
37
- - type:"docs-hub" → value: { title?: string; description?: string; pages?: Array<{ title: string; description?: string; href?: string; icon?: string; category?: string; status?: "draft" | "published" | "deprecated" }> }`,n={present:"| Type | Description | Value Shape |\n|------|-------------|-------------|\n| `markdown` | Markdown content rendered with the marked parser. | `string` |\n| `code` | Formatted code block rendered inside pre/code tags. | `string` |\n| `mermaid` | Mermaid diagram source rendered in a mermaid pre block. | `string` |\n| `architecture-diagram` | Architecture diagram with positioned components, connections, and boundary groups. Produces SVG with mermaid rendering. | `object ({ components, connections, boundaries? })` |\n| `workflow-diagram` | Workflow/pipeline diagram with lane-based columns, typed nodes, and edges. Produces SVG with mermaid rendering. | `object ({ lanes, nodes, edges })` |\n| `sequence-diagram` | Sequence diagram with participants and time-ordered messages. Produces SVG with mermaid rendering. | `object ({ participants, messages })` |\n| `dataflow-diagram` | Data flow diagram with stage-based columns, nodes, and classification-colored edges. Produces SVG with mermaid rendering. | `object ({ stages, nodes, flows })` |\n| `lifecycle-diagram` | Lifecycle state machine with lanes, states, and transitions. Produces SVG with mermaid rendering. | `object ({ lanes, states, transitions })` |\n| `table` | Tabular data rendered from records or explicit headers and rows. | `Record<string, unknown>[] | { headers: string[]; rows: unknown[][] }` |\n| `metrics` | Metric cards showing label/value pairs with optional trend and status. | `Array<{ label: string; value: string | number; trend?: string | number; status?: string }>` |\n| `cards` | Card grid for titled items with optional body, badge, and status. | `Array<{ title: string; body?: string; badge?: string; status?: string; description?: string }>` |\n| `tree` | Hierarchical object or name/children tree rendered recursively. | `{ name: string; children?: unknown[] } | Record<string, unknown>` |\n| `graph` | Node and edge graph rendered as a Mermaid flow graph in HTML mode. | `{ nodes: Array<{ id: string; label?: string }>; edges: Array<{ from: string; to: string; label?: string }> }` |\n| `chart` | Structured chart definition rendered as SVG. | `{ chartType: string; data: Record<string, unknown>[]; xKey: string; yKeys: string[] }` |\n| `timeline` | Timeline entries rendered as a vertical sequence of events. | `Array<{ title: string; description?: string; timestamp?: string; status?: string }>` |\n| `checklist` | Checklist items with boolean checked state. | `Array<{label, checked}> | {items: Array<{label, checked}>}` |\n| `comparison` | Side-by-side comparison columns with titled item lists. | `Array<{title, items}> | {columns: Array<{title, items}>}` |\n| `status-board` | Status categories containing labeled status items. | `Array<{category, items}> | {items: Array<{category, items}>}` |\n| `prompt` | Prompt payload rendered through the prompt display helper. | `unknown` |\n| `progress` | Progress bar with current value and optional maximum. | `{label, value, max?} | {items: Array<{label, value, max?, color?}>}` |\n| `docs-browser` | Documentation file list with inline content previews for chat-safe rendering. | `{ files: Array<{ path: string; title?: string; content?: string; status?: \"current\" | \"stale\" | \"missing\" }>; title?: string }` |\n\n### Usage Examples\n\n#### `architecture-diagram`\n\n```typescript\n{\n type: 'architecture-diagram',\n value: {\n components: [\n { id: 'api', label: 'API Server', type: 'backend' },\n { id: 'web', label: 'Web App', type: 'frontend' }\n ],\n connections: [\n { from: 'web', to: 'api', label: 'HTTPS' }\n ]\n }\n}\n```\n\n#### `docs-browser`\n\n```typescript\n{\n type: 'docs-browser',\n value: {\n title: 'Project Docs',\n files: [\n { path: 'docs/README.md', title: 'Overview', status: 'current' },\n { path: 'docs/api.md', title: 'API Reference', status: 'stale' },\n ],\n },\n}\n```",docs:"| Type | Description | Value Shape |\n|------|-------------|-------------|\n| `markdown` | Markdown content rendered with the marked parser. | `string` |\n| `code` | Formatted code block rendered inside pre/code tags. | `string` |\n| `mermaid` | Mermaid diagram source rendered in a mermaid pre block. | `string` |\n| `workflow-diagram` | Workflow/pipeline diagram with lane-based columns, typed nodes, and edges. Produces SVG with mermaid rendering. | `object ({ lanes, nodes, edges })` |\n| `sequence-diagram` | Sequence diagram with participants and time-ordered messages. Produces SVG with mermaid rendering. | `object ({ participants, messages })` |\n| `lifecycle-diagram` | Lifecycle state machine with lanes, states, and transitions. Produces SVG with mermaid rendering. | `object ({ lanes, states, transitions })` |\n| `table` | Tabular data rendered from records or explicit headers and rows. | `Record<string, unknown>[] | { headers: string[]; rows: unknown[][] }` |\n| `cards` | Card grid for titled items with optional body, badge, and status. | `Array<{ title: string; body?: string; badge?: string; status?: string; description?: string }>` |\n| `docs-browser` | Documentation file list with inline content previews for chat-safe rendering. | `{ files: Array<{ path: string; title?: string; content?: string; status?: \"current\" | \"stale\" | \"missing\" }>; title?: string }` |\n\n### Usage Examples\n\n#### `docs-browser`\n\n```typescript\n{\n type: 'docs-browser',\n value: {\n title: 'Project Docs',\n files: [\n { path: 'docs/README.md', title: 'Overview', status: 'current' },\n { path: 'docs/api.md', title: 'API Reference', status: 'stale' },\n ],\n },\n}\n```","c4-architecture":`| Type | Description | Value Shape |
39
+ - type:"docs-hub" → value: { title?: string; description?: string; pages?: Array<{ title: string; description?: string; href?: string; icon?: string; category?: string; status?: "draft" | "published" | "deprecated" }> }`,n='# Block Catalog — 39 Content Blocks\n\nPass content as blocks array of { type, title?, value } objects.\n\n## Content Blocks\n\n| Type | Value shape | Use for |\n|------|-------------|---------|\n| markdown | `string` | Markdown content rendered with the marked parser. |\n| code | `string` | Formatted code block rendered inside pre/code tags. |\n| alert | `string | { title?: string; value?: string; tone?: string; severity?: string }` | Alert/callout box with icon, title, and body text. Tone supports: info (default), success, warning, danger, accent. |\n| text | `string` | Plain text content rendered through the markdown parser. |\n| heading | `string` | Single heading with configurable level from h1 to h6. |\n| paragraph | `string` | Single paragraph rendered inside a p tag. |\n| diff | `string | { content: string } | { before: string; after: string }` | Diff view with +/- lines for showing changes between text. |\n| finding | `{ title?: string; severity?: string; detail?: unknown }` | Finding with severity pill showing title, severity, and detail. |\n| list | `string[]` | Bullet list items rendered as an unordered list. |\n| docs-hub | `{ title?: string; description?: string; pages?: Array<{ title: string; description?: string; href?: string; icon?: string; category?: string; status?: "draft" | "published" | "deprecated" }> }` | Doc hub card grid with titled pages, descriptions, categories, and statuses. |\n\n## Data Blocks\n\n| Type | Value shape | Use for |\n|------|-------------|---------|\n| table | `Record<string, unknown>[] | { headers: string[]; rows: unknown[][] }` | Tabular data rendered from records or explicit headers and rows. |\n| metrics | `Array<{ label: string; value: string | number; trend?: string | number; status?: string }>` | Metric cards showing label/value pairs with optional trend and status. |\n| chart | `{ chartType: string; data: Record<string, unknown>[]; xKey: string; yKeys: string[] }` | Structured chart definition rendered as SVG. |\n| stat-group | `Array<{ label: string; value: string | number; color?: string }>` | Colored stat/gauge cards with label, value, and tone. Ideal for summary counts, KPI dashboards, and status overviews. |\n| kv | `Array<{ key: string; value: unknown }> | Record<string, unknown>` | Key-value pairs rendered as labeled entries. |\n| tags | `Array<string | { text?: string; label?: string; status?: string; tone?: string; color?: string }> | { items: Array<...> }` | Tag pills rendered with optional tone/color. |\n| data-table-schema | `{ name: string; description?: string; fields: Array<{ name: string; type: string; required?: boolean; default?: unknown; constraints?: string[]; description?: string }>; indexes?: Array<{ name: string; columns: string[]; unique?: boolean }> }` | Schema table with field names, types, constraints, and indexes. |\n\n## Visualization Blocks\n\n| Type | Value shape | Use for |\n|------|-------------|---------|\n| mermaid | `string` | Mermaid diagram source rendered in a mermaid pre block. |\n| architecture-diagram | `object ({ components, connections, boundaries? })` | Architecture diagram with positioned components, connections, and boundary groups. Produces SVG with mermaid rendering. |\n| workflow-diagram | `object ({ lanes, nodes, edges })` | Workflow/pipeline diagram with lane-based columns, typed nodes, and edges. Produces SVG with mermaid rendering. |\n| sequence-diagram | `object ({ participants, messages })` | Sequence diagram with participants and time-ordered messages. Produces SVG with mermaid rendering. |\n| dataflow-diagram | `object ({ stages, nodes, flows })` | Data flow diagram with stage-based columns, nodes, and classification-colored edges. Produces SVG with mermaid rendering. |\n| lifecycle-diagram | `object ({ lanes, states, transitions })` | Lifecycle state machine with lanes, states, and transitions. Produces SVG with mermaid rendering. |\n| cards | `Array<{ title: string; body?: string; badge?: string; status?: string; description?: string }>` | Card grid for titled items with optional body, badge, and status. |\n| tree | `{ name: string; children?: unknown[] } | Record<string, unknown>` | Hierarchical object or name/children tree rendered recursively. |\n| graph | `{ nodes: Array<{ id: string; label?: string }>; edges: Array<{ from: string; to: string; label?: string }> }` | Node and edge graph rendered as a Mermaid flow graph in HTML mode. |\n| lifecycle-flow | `{ title?: string; steps: Array<{ id: string; label: string; type?: string; status?: string; description?: string }>; edges?: Array<{ from: string; to: string; label?: string }> }` | SVG flow diagram with labeled steps, edges, and status colors. |\n| component-detail | `{ name: string; description?: string; type?: string; technology?: string; responsibilities?: string[]; interfaces?: Array<{ name: string; type: string; description?: string }>; dependencies?: Array<{ name: string; relationship?: string }>; metrics?: Record<string, string | number>; codeLinks?: Array<{ href: string; label: string }> }` | Component detail view with name, type, technology, responsibilities, interfaces, dependencies, metrics, and code links. |\n\n## Interactive / Layout\n\n| Type | Value shape | Use for |\n|------|-------------|---------|\n| timeline | `Array<{ title: string; description?: string; timestamp?: string; status?: string }>` | Timeline entries rendered as a vertical sequence of events. |\n| checklist | `Array<{label, checked}> | {items: Array<{label, checked}>}` | Checklist items with boolean checked state. |\n| comparison | `Array<{title, items}> | {columns: Array<{title, items}>}` | Side-by-side comparison columns with titled item lists. |\n| status-board | `Array<{category, items}> | {items: Array<{category, items}>}` | Status categories containing labeled status items. |\n| prompt | `unknown` | Prompt payload rendered through the prompt display helper. |\n| progress | `{label, value, max?} | {items: Array<{label, value, max?, color?}>}` | Progress bar with current value and optional maximum. |\n| docs-browser | `{ files: Array<{ path: string; title?: string; content?: string; status?: "current" | "stale" | "missing" }>; title?: string }` | Documentation file list with inline content previews for chat-safe rendering. |\n| separator | `undefined` | Horizontal rule used to separate adjacent blocks. |\n| actions | `Array<{ type: string; id: string; label: string; variant?: string; options?: Array<string | { label: string; value: string }> }>` | Action bar containing button and select action definitions. |\n| annotation | `Array<{ id: string; type: "COMMENT" | "DELETION" | "GLOBAL_COMMENT"; body: string; author?: string; createdAt?: string }>` | Annotation groups with COMMENT, DELETION, and GLOBAL_COMMENT types. |\n| approval | `{ prompt: string; options: Array<{ id: string; label: string; description?: string }>; requireComment?: boolean }` | Approval widget with radio options and optional comment textarea. |\n\n## Data-to-Block Quick Reference\n\n| Your data looks like... | Use this block type |\n|-------------------------|---------------------|\n| Array of strings | list or markdown |\n| Key-value pairs | kv or table (2 columns) |\n| Rows x columns | table |\n| Colored status counts / KPIs with labels | stat-group or metrics |\n| Status update / callout message | alert |\n| Done/not-done state | checklist |\n| Hierarchical items | tree |\n| Numeric KPIs | metrics |\n| Before/after or A vs B | comparison |\n| Findings with severity | finding |\n',r={present:"| Type | Description | Value Shape |\n|------|-------------|-------------|\n| `markdown` | Markdown content rendered with the marked parser. | `string` |\n| `code` | Formatted code block rendered inside pre/code tags. | `string` |\n| `mermaid` | Mermaid diagram source rendered in a mermaid pre block. | `string` |\n| `architecture-diagram` | Architecture diagram with positioned components, connections, and boundary groups. Produces SVG with mermaid rendering. | `object ({ components, connections, boundaries? })` |\n| `workflow-diagram` | Workflow/pipeline diagram with lane-based columns, typed nodes, and edges. Produces SVG with mermaid rendering. | `object ({ lanes, nodes, edges })` |\n| `sequence-diagram` | Sequence diagram with participants and time-ordered messages. Produces SVG with mermaid rendering. | `object ({ participants, messages })` |\n| `dataflow-diagram` | Data flow diagram with stage-based columns, nodes, and classification-colored edges. Produces SVG with mermaid rendering. | `object ({ stages, nodes, flows })` |\n| `lifecycle-diagram` | Lifecycle state machine with lanes, states, and transitions. Produces SVG with mermaid rendering. | `object ({ lanes, states, transitions })` |\n| `table` | Tabular data rendered from records or explicit headers and rows. | `Record<string, unknown>[] | { headers: string[]; rows: unknown[][] }` |\n| `metrics` | Metric cards showing label/value pairs with optional trend and status. | `Array<{ label: string; value: string | number; trend?: string | number; status?: string }>` |\n| `cards` | Card grid for titled items with optional body, badge, and status. | `Array<{ title: string; body?: string; badge?: string; status?: string; description?: string }>` |\n| `tree` | Hierarchical object or name/children tree rendered recursively. | `{ name: string; children?: unknown[] } | Record<string, unknown>` |\n| `graph` | Node and edge graph rendered as a Mermaid flow graph in HTML mode. | `{ nodes: Array<{ id: string; label?: string }>; edges: Array<{ from: string; to: string; label?: string }> }` |\n| `chart` | Structured chart definition rendered as SVG. | `{ chartType: string; data: Record<string, unknown>[]; xKey: string; yKeys: string[] }` |\n| `timeline` | Timeline entries rendered as a vertical sequence of events. | `Array<{ title: string; description?: string; timestamp?: string; status?: string }>` |\n| `checklist` | Checklist items with boolean checked state. | `Array<{label, checked}> | {items: Array<{label, checked}>}` |\n| `comparison` | Side-by-side comparison columns with titled item lists. | `Array<{title, items}> | {columns: Array<{title, items}>}` |\n| `status-board` | Status categories containing labeled status items. | `Array<{category, items}> | {items: Array<{category, items}>}` |\n| `stat-group` | Colored stat/gauge cards with label, value, and tone. Ideal for summary counts, KPI dashboards, and status overviews. | `Array<{ label: string; value: string | number; color?: string }>` |\n| `alert` | Alert/callout box with icon, title, and body text. Tone supports: info (default), success, warning, danger, accent. | `string | { title?: string; value?: string; tone?: string; severity?: string }` |\n| `prompt` | Prompt payload rendered through the prompt display helper. | `unknown` |\n| `progress` | Progress bar with current value and optional maximum. | `{label, value, max?} | {items: Array<{label, value, max?, color?}>}` |\n| `docs-browser` | Documentation file list with inline content previews for chat-safe rendering. | `{ files: Array<{ path: string; title?: string; content?: string; status?: \"current\" | \"stale\" | \"missing\" }>; title?: string }` |\n\n### Usage Examples\n\n#### `architecture-diagram`\n\n```typescript\n{\n type: 'architecture-diagram',\n value: {\n components: [\n { id: 'api', label: 'API Server', type: 'backend' },\n { id: 'web', label: 'Web App', type: 'frontend' }\n ],\n connections: [\n { from: 'web', to: 'api', label: 'HTTPS' }\n ]\n }\n}\n```\n\n#### `stat-group`\n\n```typescript\n{\n type: 'stat-group',\n title: 'Status Overview',\n value: [\n { label: 'Passed', value: '42', color: 'green' },\n { label: 'Failed', value: '3', color: 'red' },\n { label: 'Pending', value: '7', color: 'yellow' },\n ],\n}\n```\n\n#### `alert`\n\n```typescript\n{\n type: 'alert',\n title: 'Critical Path — Complete',\n value: 'All delivery stages are wired end-to-end.',\n tone: 'success',\n}\n```\n\n#### `docs-browser`\n\n```typescript\n{\n type: 'docs-browser',\n value: {\n title: 'Project Docs',\n files: [\n { path: 'docs/README.md', title: 'Overview', status: 'current' },\n { path: 'docs/api.md', title: 'API Reference', status: 'stale' },\n ],\n },\n}\n```",docs:"| Type | Description | Value Shape |\n|------|-------------|-------------|\n| `markdown` | Markdown content rendered with the marked parser. | `string` |\n| `code` | Formatted code block rendered inside pre/code tags. | `string` |\n| `mermaid` | Mermaid diagram source rendered in a mermaid pre block. | `string` |\n| `workflow-diagram` | Workflow/pipeline diagram with lane-based columns, typed nodes, and edges. Produces SVG with mermaid rendering. | `object ({ lanes, nodes, edges })` |\n| `sequence-diagram` | Sequence diagram with participants and time-ordered messages. Produces SVG with mermaid rendering. | `object ({ participants, messages })` |\n| `lifecycle-diagram` | Lifecycle state machine with lanes, states, and transitions. Produces SVG with mermaid rendering. | `object ({ lanes, states, transitions })` |\n| `table` | Tabular data rendered from records or explicit headers and rows. | `Record<string, unknown>[] | { headers: string[]; rows: unknown[][] }` |\n| `cards` | Card grid for titled items with optional body, badge, and status. | `Array<{ title: string; body?: string; badge?: string; status?: string; description?: string }>` |\n| `docs-browser` | Documentation file list with inline content previews for chat-safe rendering. | `{ files: Array<{ path: string; title?: string; content?: string; status?: \"current\" | \"stale\" | \"missing\" }>; title?: string }` |\n\n### Usage Examples\n\n#### `docs-browser`\n\n```typescript\n{\n type: 'docs-browser',\n value: {\n title: 'Project Docs',\n files: [\n { path: 'docs/README.md', title: 'Overview', status: 'current' },\n { path: 'docs/api.md', title: 'API Reference', status: 'stale' },\n ],\n },\n}\n```","c4-architecture":`| Type | Description | Value Shape |
38
40
  |------|-------------|-------------|
39
41
  | \`mermaid\` | Mermaid diagram source rendered in a mermaid pre block. | \`string\` |
40
42
  | \`architecture-diagram\` | Architecture diagram with positioned components, connections, and boundary groups. Produces SVG with mermaid rendering. | \`object ({ components, connections, boundaries? })\` |
@@ -79,4 +81,4 @@ const e="| Type | Description | Value Shape |\n|------|-------------|-----------
79
81
  ]
80
82
  }
81
83
  }
82
- \`\`\``};export{e as ALL_BLOCK_DOCS,n as BLOCK_DOCS_BY_SKILL,t as BLOCK_TYPE_LIST};
84
+ \`\`\``};export{e as ALL_BLOCK_DOCS,n as BLOCK_CATALOG,r as BLOCK_DOCS_BY_SKILL,t as BLOCK_TYPE_LIST};
@@ -1,15 +1,15 @@
1
1
  #!/usr/bin/env node
2
2
  /**
3
- * session-reminder — SessionStart hook that injects AI Kit protocol
4
- * essentials at every session start.
3
+ * session-reminder — SessionStart hook that injects the orchestrator
4
+ * skill protocol at every session start.
5
5
  *
6
- * Reads the aikit skill SKILL.md and strips YAML frontmatter to extract
7
- * actionable tool judgment and session protocol instructions.
6
+ * Reads ~/.claude/skills/orchestrator/SKILL.md, strips YAML frontmatter,
7
+ * and injects the "Delegate, never implement" protocol as additionalContext.
8
8
  * Falls back to inline essentials if skill file is unavailable.
9
9
  *
10
- * Unlike CLAUDE.md (which the model can downrank for being too long),
11
- * this hook's additionalContext is injected fresh into every session
12
- * right before the first user message — harder for the model to skip.
10
+ * The orchestrator agent file already references the aikit skill this
11
+ * hook reinforces the orchestrator-specific delegation protocol that the
12
+ * model is most likely to skip.
13
13
  *
14
14
  * @category signal
15
15
  * @event SessionStart
@@ -22,7 +22,7 @@ import { createHook } from './_runtime.mjs';
22
22
 
23
23
  createHook(
24
24
  () => {
25
- const skillPath = resolve(homedir(), '.claude', 'skills', 'aikit', 'SKILL.md');
25
+ const skillPath = resolve(homedir(), '.claude', 'skills', 'orchestrator', 'SKILL.md');
26
26
  let extracted = '';
27
27
 
28
28
  try {
@@ -37,32 +37,27 @@ createHook(
37
37
  const content =
38
38
  extracted ||
39
39
  [
40
- '## AI Kit Protocol',
40
+ '# Orchestrator Protocol — MANDATORY',
41
41
  '',
42
- '**Tool rules:**',
43
- '- `mcp__aikit__search/find` over Bash grep',
44
- '- `mcp__aikit__file_summary({ tier: "T1" })` over Read for understanding',
45
- '- `mcp__aikit__check` over Bash for tsc/lint',
46
- '- `mcp__aikit__test_run` over Bash for tests',
47
- '- `mcp__aikit__symbol/trace` over manual code tracing',
48
- '- `mcp__aikit__knowledge` for cross-session memory',
49
- '- `mcp__aikit__digest` over multiple Reads',
50
- 'Raw Read only for exact lines before Edit.',
42
+ 'YOU MUST FOLLOW THIS PROTOCOL ON EVERY TASK. You are an orchestrator, not an implementer.',
51
43
  '',
52
- '**Session start:**',
53
- '- `flow({ action: "status" })` — check active flow first',
54
- '- `status({ includePrelude: true })` → onboard if missing',
55
- '- `search({ query: "SESSION CHECKPOINT" })` before planning',
44
+ '**RULE 1 — Decompose everything.** Every task gets a TODO list in your first response. Break it into independent, parallelizable subtasks.',
56
45
  '',
57
- '**Session end:**',
58
- '- `mcp__aikit__reindex` → `mcp__aikit__produce_knowledge`',
59
- '- `mcp__aikit__knowledge({ action: "remember", category: "session" })`',
46
+ '**RULE 2 — Delegate, never implement.** For every subtask, spawn a sub-agent. If you catch yourself about to edit a file directly, STOP. Spawn a sub-agent.',
60
47
  '',
61
- '**Default agent:** orchestrator (set in ~/.claude/settings.json)',
62
- '**Agents at:** ~/.claude/agents/',
48
+ '**RULE 3 Wait and synthesize.** After all sub-agents complete, consolidate their outputs. Only then deliver the final result to the user.',
49
+ '',
50
+ '**RULE 4 — No direct coding.** You NEVER write, edit, or create files yourself. That is sub-agent work.',
51
+ '',
52
+ '**RULE 5 — Parallel fan-out.** Subtasks without data dependencies MUST run in parallel.',
53
+ '',
54
+ '**RULE 6 — Full cycle per phase.** Each phase (Plan → Implement → Review → Verify) gets its own delegation cycle.',
55
+ '',
56
+ '**Exceptions (ONLY these):** ≤5 lines trivial, fixing sub-agent output, no sub-agent available.',
57
+ 'When in doubt, delegate. When unsure, spawn an extra sub-agent.',
63
58
  ].join('\n');
64
59
 
65
- return { additionalContext: `── AI Kit Protocol ──\n${content}` };
60
+ return { additionalContext: `── Orchestrator Protocol ──\n${content}` };
66
61
  },
67
62
  { event: 'SessionStart' },
68
63
  );
@@ -1,2 +0,0 @@
1
- #!/usr/bin/env node
2
- import{n as e,t}from"./server-DUWF6mtP.js";export{t as buildPreludeInjection,e as generatePrelude};
@@ -1 +0,0 @@
1
- import{n as e,t}from"./server-Bsceh-AT.js";export{t as buildPreludeInjection,e as generatePrelude};
@@ -1 +0,0 @@
1
- import{r as e}from"./server-Bsceh-AT.js";export{e as createSamplingClient};
@@ -1,2 +0,0 @@
1
- #!/usr/bin/env node
2
- import{r as e}from"./server-DUWF6mtP.js";export{e as createSamplingClient};