kitfly 0.1.2 → 0.2.1

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 (209) hide show
  1. package/CHANGELOG.md +46 -0
  2. package/README.md +63 -16
  3. package/VERSION +1 -1
  4. package/dist/_raw/content/deployment/preflight.md +134 -0
  5. package/dist/_raw/content/deployment/recipes/aws-s3.md +128 -0
  6. package/dist/_raw/content/deployment/recipes/cloudflare-pages.md +73 -0
  7. package/dist/_raw/content/deployment/recipes/cloudflare-r2.md +156 -0
  8. package/dist/_raw/content/deployment/recipes/fly-io.md +57 -0
  9. package/dist/_raw/content/deployment/recipes/github-pages.md +112 -0
  10. package/dist/_raw/content/deployment/recipes/netlify.md +99 -0
  11. package/dist/_raw/content/deployment/recipes/vercel.md +88 -0
  12. package/dist/_raw/content/deployment/secrets-and-env-vars.md +75 -0
  13. package/dist/_raw/content/deployment.md +128 -0
  14. package/dist/_raw/content/guide/approaches.md +182 -0
  15. package/dist/_raw/content/guide/features.md +121 -0
  16. package/dist/_raw/content/guide/getting-started.md +112 -0
  17. package/dist/_raw/content/guide/kitfly-overview.md +209 -0
  18. package/dist/_raw/content/reference/configuration.md +259 -0
  19. package/dist/_raw/content/reference/design-catalog.md +167 -0
  20. package/dist/_raw/content/reference/environment-variables.md +66 -0
  21. package/dist/_raw/content/reference/glossary.md +92 -0
  22. package/dist/_raw/content/reference/key-concepts.md +118 -0
  23. package/dist/_raw/content/reference/plugins.md +220 -0
  24. package/dist/_raw/content/reference/slides-authoring-guidelines.md +129 -0
  25. package/dist/_raw/content/reference/structure.md +166 -0
  26. package/dist/_raw/content/reference.md +20 -0
  27. package/dist/_raw/content/templates/crucible.md +192 -0
  28. package/dist/_raw/content/templates/handbook.md +83 -0
  29. package/dist/_raw/content/templates/minimal.md +138 -0
  30. package/dist/_raw/content/templates/overview.md +187 -0
  31. package/dist/_raw/content/templates/pipeline.md +151 -0
  32. package/dist/_raw/content/templates/productbook.md +187 -0
  33. package/dist/_raw/content/templates/runbook.md +193 -0
  34. package/dist/_raw/content/templates/servicebook.md +163 -0
  35. package/dist/_raw/docs/decisions/ADR-0001-minimalist-site-code.md +118 -0
  36. package/dist/_raw/docs/decisions/ADR-0002-ai-accessibility.md +153 -0
  37. package/dist/_raw/docs/decisions/ADR-0003-single-file-bundle.md +93 -0
  38. package/dist/_raw/docs/decisions/ADR-0004-bun-runtime.md +98 -0
  39. package/dist/_raw/docs/decisions/ADR-0005-plugin-contract-and-distribution.md +110 -0
  40. package/dist/_raw/docs/decisions/DDR-0001-viewport-locked-layout.md +111 -0
  41. package/dist/_raw/docs/decisions/DDR-0002-theme-system.md +131 -0
  42. package/dist/_raw/docs/decisions/DDR-0003-bounded-logo-slot.md +106 -0
  43. package/dist/_raw/docs/decisions/DDR-0004-slides-rendering-model.md +113 -0
  44. package/dist/_raw/docs/decisions/DDR-0005-deterministic-layout-boundary.md +107 -0
  45. package/dist/_raw/docs/userguide/cli/build.md +85 -0
  46. package/dist/_raw/docs/userguide/cli/bundle.md +81 -0
  47. package/dist/_raw/docs/userguide/cli/dev.md +92 -0
  48. package/dist/_raw/docs/userguide/cli/init.md +116 -0
  49. package/dist/_raw/docs/userguide/cli/servers.md +69 -0
  50. package/dist/_raw/docs/userguide/cli/stop.md +76 -0
  51. package/dist/_raw/docs/userguide/cli/update.md +78 -0
  52. package/dist/_raw/docs/userguide/cli/version.md +65 -0
  53. package/dist/_raw/docs/userguide/cli.md +34 -0
  54. package/dist/_raw/docs/userguide/sharing.md +94 -0
  55. package/dist/_raw/schemas/plugin-schemas-notes.md +71 -0
  56. package/dist/_raw/schemas.md +42 -0
  57. package/dist/assets/brand/kitfly-favicon-32.png +0 -0
  58. package/dist/assets/brand/kitfly-icon-64.png +0 -0
  59. package/dist/assets/brand/kitfly-logo-128.png +0 -0
  60. package/dist/assets/brand/kitfly-logo-512.png +0 -0
  61. package/dist/assets/brand/kitfly-logo.svg +12132 -0
  62. package/dist/assets/brand/kitfly-neon-128.png +0 -0
  63. package/dist/assets/brand/kitfly-neon-192.png +0 -0
  64. package/dist/assets/brand/kitfly-neon-256.png +0 -0
  65. package/dist/assets/brand/kitfly-neon.png +0 -0
  66. package/dist/assets/brand/palette.md +75 -0
  67. package/dist/content/deployment/index.html +11 -0
  68. package/dist/content/deployment/preflight.html +418 -0
  69. package/dist/content/deployment/recipes/aws-s3.html +421 -0
  70. package/dist/content/deployment/recipes/cloudflare-pages.html +372 -0
  71. package/dist/content/deployment/recipes/cloudflare-r2.html +443 -0
  72. package/dist/content/deployment/recipes/fly-io.html +356 -0
  73. package/dist/content/deployment/recipes/github-pages.html +414 -0
  74. package/dist/content/deployment/recipes/index.html +11 -0
  75. package/dist/content/deployment/recipes/netlify.html +394 -0
  76. package/dist/content/deployment/recipes/vercel.html +382 -0
  77. package/dist/content/deployment/secrets-and-env-vars.html +380 -0
  78. package/dist/content/deployment.html +426 -0
  79. package/dist/content/guide/approaches.html +501 -0
  80. package/dist/content/guide/features.html +436 -0
  81. package/dist/content/guide/getting-started.html +403 -0
  82. package/dist/content/guide/index.html +11 -0
  83. package/dist/content/guide/kitfly-overview.html +544 -0
  84. package/dist/content/index.html +11 -0
  85. package/dist/content/reference/configuration.html +580 -0
  86. package/dist/content/reference/design-catalog.html +449 -0
  87. package/dist/content/reference/environment-variables.html +367 -0
  88. package/dist/content/reference/glossary.html +368 -0
  89. package/dist/content/reference/index.html +11 -0
  90. package/dist/content/reference/key-concepts.html +399 -0
  91. package/dist/content/reference/plugins.html +491 -0
  92. package/dist/content/reference/slides-authoring-guidelines.html +418 -0
  93. package/dist/content/reference/structure.html +463 -0
  94. package/dist/content/reference.html +335 -0
  95. package/dist/content/templates/crucible.html +546 -0
  96. package/dist/content/templates/handbook.html +405 -0
  97. package/dist/content/templates/index.html +11 -0
  98. package/dist/content/templates/minimal.html +447 -0
  99. package/dist/content/templates/overview.html +558 -0
  100. package/dist/content/templates/pipeline.html +494 -0
  101. package/dist/content/templates/productbook.html +540 -0
  102. package/dist/content/templates/runbook.html +543 -0
  103. package/dist/content/templates/servicebook.html +523 -0
  104. package/dist/content-index.json +549 -0
  105. package/dist/docs/decisions/ADR-0001-minimalist-site-code.html +491 -0
  106. package/dist/docs/decisions/ADR-0002-ai-accessibility.html +434 -0
  107. package/dist/docs/decisions/ADR-0003-single-file-bundle.html +412 -0
  108. package/dist/docs/decisions/ADR-0004-bun-runtime.html +409 -0
  109. package/dist/docs/decisions/ADR-0005-plugin-contract-and-distribution.html +402 -0
  110. package/dist/docs/decisions/DDR-0001-viewport-locked-layout.html +459 -0
  111. package/dist/docs/decisions/DDR-0002-theme-system.html +452 -0
  112. package/dist/docs/decisions/DDR-0003-bounded-logo-slot.html +423 -0
  113. package/dist/docs/decisions/DDR-0004-slides-rendering-model.html +399 -0
  114. package/dist/docs/decisions/DDR-0005-deterministic-layout-boundary.html +422 -0
  115. package/dist/docs/decisions/index.html +11 -0
  116. package/dist/docs/userguide/cli/build.html +408 -0
  117. package/dist/docs/userguide/cli/bundle.html +419 -0
  118. package/dist/docs/userguide/cli/dev.html +428 -0
  119. package/dist/docs/userguide/cli/index.html +11 -0
  120. package/dist/docs/userguide/cli/init.html +436 -0
  121. package/dist/docs/userguide/cli/servers.html +393 -0
  122. package/dist/docs/userguide/cli/stop.html +408 -0
  123. package/dist/docs/userguide/cli/update.html +406 -0
  124. package/dist/docs/userguide/cli/version.html +406 -0
  125. package/dist/docs/userguide/cli.html +386 -0
  126. package/dist/docs/userguide/index.html +11 -0
  127. package/dist/docs/userguide/sharing.html +465 -0
  128. package/dist/index.html +387 -0
  129. package/dist/llms.txt +18 -0
  130. package/dist/provenance.json +7 -0
  131. package/dist/schemas/index.html +11 -0
  132. package/dist/schemas/plugin-registry.schema.html +327 -0
  133. package/dist/schemas/plugin-schemas-notes.html +364 -0
  134. package/dist/schemas/plugin.schema.html +327 -0
  135. package/dist/schemas/plugins.schema.html +327 -0
  136. package/dist/schemas/v0/common.schema.html +386 -0
  137. package/dist/schemas/v0/index.html +11 -0
  138. package/dist/schemas/v0/plugin-registry.schema.html +547 -0
  139. package/dist/schemas/v0/plugin.schema.html +497 -0
  140. package/dist/schemas/v0/plugins.schema.html +406 -0
  141. package/dist/schemas/v0/site.schema.html +541 -0
  142. package/dist/schemas/v0/theme.schema.html +615 -0
  143. package/dist/schemas.html +351 -0
  144. package/dist/styles.css +1262 -0
  145. package/package.json +4 -2
  146. package/plugins-dist/callouts.css +32 -0
  147. package/plugins-dist/callouts.js +46 -0
  148. package/plugins-dist/slides-visuals.css +390 -0
  149. package/plugins-dist/slides-visuals.js +689 -0
  150. package/registry/plugins.yaml +35 -0
  151. package/schemas/README.md +10 -0
  152. package/schemas/plugin-registry.schema.json +5 -0
  153. package/schemas/plugin-schemas-notes.md +71 -0
  154. package/schemas/plugin.schema.json +5 -0
  155. package/schemas/plugins.schema.json +5 -0
  156. package/schemas/v0/common.schema.json +64 -0
  157. package/schemas/v0/plugin-registry.schema.json +225 -0
  158. package/schemas/v0/plugin.schema.json +175 -0
  159. package/schemas/v0/plugins.schema.json +84 -0
  160. package/schemas/v0/site.schema.json +56 -9
  161. package/schemas/v0/theme.schema.json +105 -22
  162. package/scripts/build.ts +158 -3
  163. package/scripts/bundle.ts +261 -95
  164. package/scripts/dev.ts +301 -11
  165. package/src/__tests__/build.test.ts +220 -1
  166. package/src/__tests__/bundle.test.ts +31 -0
  167. package/src/__tests__/cli.test.ts +14 -3
  168. package/src/__tests__/dev-plugin-errors.test.ts +20 -0
  169. package/src/__tests__/fixtures/fences/slides-visuals/invalid/bad-list-indent.md +5 -0
  170. package/src/__tests__/fixtures/fences/slides-visuals/invalid/blank-line.md +5 -0
  171. package/src/__tests__/fixtures/fences/slides-visuals/invalid/compare-object-items.md +9 -0
  172. package/src/__tests__/fixtures/fences/slides-visuals/invalid/flow-branching-no-source.md +5 -0
  173. package/src/__tests__/fixtures/fences/slides-visuals/invalid/flow-converging-no-target.md +6 -0
  174. package/src/__tests__/fixtures/fences/slides-visuals/invalid/indented-fence.md +4 -0
  175. package/src/__tests__/fixtures/fences/slides-visuals/invalid/staircase-empty-steps.md +3 -0
  176. package/src/__tests__/fixtures/fences/slides-visuals/invalid/stat-grid-missing-fields.md +5 -0
  177. package/src/__tests__/fixtures/fences/slides-visuals/invalid/timeline-horizontal-no-events.md +2 -0
  178. package/src/__tests__/fixtures/fences/slides-visuals/invalid/unknown-type.md +3 -0
  179. package/src/__tests__/fixtures/fences/slides-visuals/valid/compare.md +10 -0
  180. package/src/__tests__/fixtures/fences/slides-visuals/valid/comparison-table.md +14 -0
  181. package/src/__tests__/fixtures/fences/slides-visuals/valid/flow-branching-no-split.md +7 -0
  182. package/src/__tests__/fixtures/fences/slides-visuals/valid/flow-branching.md +8 -0
  183. package/src/__tests__/fixtures/fences/slides-visuals/valid/flow-converging-no-merge.md +7 -0
  184. package/src/__tests__/fixtures/fences/slides-visuals/valid/flow-converging.md +8 -0
  185. package/src/__tests__/fixtures/fences/slides-visuals/valid/funnel.md +7 -0
  186. package/src/__tests__/fixtures/fences/slides-visuals/valid/kpi.md +5 -0
  187. package/src/__tests__/fixtures/fences/slides-visuals/valid/layer-cake.md +6 -0
  188. package/src/__tests__/fixtures/fences/slides-visuals/valid/pyramid.md +6 -0
  189. package/src/__tests__/fixtures/fences/slides-visuals/valid/quadrant-grid.md +8 -0
  190. package/src/__tests__/fixtures/fences/slides-visuals/valid/scorecard.md +13 -0
  191. package/src/__tests__/fixtures/fences/slides-visuals/valid/staircase-down.md +7 -0
  192. package/src/__tests__/fixtures/fences/slides-visuals/valid/staircase.md +8 -0
  193. package/src/__tests__/fixtures/fences/slides-visuals/valid/stat-grid.md +8 -0
  194. package/src/__tests__/fixtures/fences/slides-visuals/valid/timeline-horizontal.md +9 -0
  195. package/src/__tests__/fixtures/fences/slides-visuals/valid/timeline-vertical.md +10 -0
  196. package/src/__tests__/init.test.ts +35 -0
  197. package/src/__tests__/plugin-loader.test.ts +221 -0
  198. package/src/__tests__/shared.test.ts +451 -0
  199. package/src/__tests__/slides-visuals-fence-contract.test.ts +28 -0
  200. package/src/__tests__/slides-visuals-runtime-regressions.bun.test.ts +147 -0
  201. package/src/__tests__/styles.test.ts +35 -0
  202. package/src/cli.ts +9 -4
  203. package/src/plugin-loader.ts +245 -0
  204. package/src/shared.ts +650 -7
  205. package/src/site/styles.css +331 -0
  206. package/src/site/template.html +66 -5
  207. package/src/templates/deck.ts +186 -0
  208. package/src/templates/driver.ts +11 -1
  209. package/src/templates/minimal.ts +1 -0
@@ -0,0 +1,192 @@
1
+ ---
2
+ title: Crucible Template
3
+ description: Information architecture SSOT with specs, schemas, config, and governance
4
+ ---
5
+
6
+ # Crucible Template
7
+
8
+ The `crucible` template creates a **layer-0 information architecture site** — the single source of truth (SSOT) for an ecosystem's specifications, schemas, configuration, and governance. It extends `minimal` with six sections and a four-zone layout that separates rendered documentation from machine-consumable artifacts.
9
+
10
+ ## When to Use
11
+
12
+ - Establishing the foundational standards for a new ecosystem or platform
13
+ - Centralizing specs, schemas, and config that multiple projects depend on
14
+ - Governing an organization's technical standards, policies, and decision records
15
+ - Creating a reference architecture that AI agents and humans consume together
16
+ - Any situation where you need a "layer 0" that everything else builds on
17
+
18
+ ## What You Get
19
+
20
+ Everything from `minimal`, plus:
21
+
22
+ ```
23
+ my-crucible/
24
+ ├── site.yaml # Configured with 6 sections
25
+ ├── index.md # Home page with standards status and zone overview
26
+ ├── CUSTOMIZING.md # Four-zone layout guide (AI + human friendly)
27
+ ├── content/
28
+ │ ├── specs/
29
+ │ │ ├── overview.md # Standards catalog with status table
30
+ │ │ └── spec-template.md # Specification template (RFC 2119)
31
+ │ ├── schemas/
32
+ │ │ ├── index.md # Schema catalog linking to raw files
33
+ │ │ └── versioning.md # Schema versioning policy
34
+ │ ├── config/
35
+ │ │ ├── overview.md # Config catalog overview
36
+ │ │ ├── roles.md # Role definitions documentation
37
+ │ │ └── prompts.md # Prompt templates documentation
38
+ │ ├── policies/
39
+ │ │ ├── security-model.md # Security baseline
40
+ │ │ ├── dependency-policy.md # Dependency governance
41
+ │ │ └── change-procedure.md # How changes are approved
42
+ │ ├── guides/
43
+ │ │ ├── getting-started.md # Consuming the crucible
44
+ │ │ └── contributing.md # Adding specs, schemas, config
45
+ │ └── reference/
46
+ │ ├── decisions/
47
+ │ │ ├── index.md # Decision log (ADR pattern)
48
+ │ │ └── adr-template.md # ADR template
49
+ │ ├── changelog/
50
+ │ │ └── index.md # Release log
51
+ │ └── glossary.md # Terminology
52
+ ├── internal/
53
+ │ └── ops/
54
+ │ └── README.md # Explains the internal zone
55
+ └── ...
56
+ ```
57
+
58
+ ## Sections
59
+
60
+ | Section | Purpose | Typical Content |
61
+ | ------------- | ---------------------- | --------------------------------------------------------------- |
62
+ | **Specs** | What the standards are | Specifications, technical definitions, RFC 2119 requirements |
63
+ | **Schemas** | The contracts | Schema catalog, versioning policy, field documentation |
64
+ | **Config** | The data | Configuration catalogs, taxonomies, role and prompt definitions |
65
+ | **Policies** | The rules | Security model, dependency governance, change procedures |
66
+ | **Guides** | How to use it | Getting started, contributing, integration guides |
67
+ | **Reference** | Look-up material | Decision records, changelog, glossary |
68
+
69
+ ## The Four-Zone Model
70
+
71
+ This is what makes crucible different from every other template. Crucibles serve two audiences simultaneously — **humans reading documentation** and **machines consuming schemas and config**. The four-zone layout makes this explicit:
72
+
73
+ ```
74
+ my-crucible/
75
+ ├── content/ ← RENDERED: kitfly documentation sections
76
+ ├── schemas/ ← MACHINE: JSON Schema files (consumed by code)
77
+ ├── config/ ← MACHINE: YAML catalogs, roles, prompts
78
+ ├── internal/ ← PROJECT: repo ops, project code, automation
79
+ ├── src/ ← KITFLY: site engine (standalone only)
80
+ └── scripts/ ← KITFLY: build scripts (standalone only)
81
+ ```
82
+
83
+ **Zone rules:**
84
+
85
+ - `content/` documents the artifacts in other zones (e.g., `content/schemas/` documents `schemas/`)
86
+ - `schemas/` and `config/` are machine-consumable — other projects `$ref` or import from these paths
87
+ - `internal/` holds repo housekeeping, project code (lang wrappers, code generators), and automation
88
+ - `src/` and `scripts/` are kitfly's territory (standalone mode only)
89
+
90
+ For a WASM skill platform, this might look like:
91
+
92
+ - **Machine zone**: `schemas/ipc/v0/control.schema.json`, `config/agentic/roles/devlead.yaml`
93
+ - **Content zone**: `content/schemas/ipc-protocol.md` documenting those schemas
94
+ - **Internal zone**: `internal/src/` for language-specific SDK generators
95
+
96
+ ## The Config Section
97
+
98
+ Crucibles define the **agentic catalog** — roles and prompts that AI agents use across the ecosystem:
99
+
100
+ ```
101
+ config/agentic/
102
+ ├── roles/ # WHO — role definitions (scope, mindset, anti-patterns)
103
+ ├── prompts/ # HOW — reusable prompt templates for specific tasks
104
+ └── README.md
105
+ ```
106
+
107
+ Roles define identity ("I am a devlead"). Prompts define approach ("Write a spec following this template"). The `content/config/` section documents these for human consumption.
108
+
109
+ ## Usage
110
+
111
+ ```bash
112
+ kitfly init my-crucible --template crucible
113
+ kitfly init my-crucible --template crucible --brand "Lanyte Standards"
114
+
115
+ # With AI assistance instrumentation
116
+ kitfly init my-crucible --template crucible --standalone --ai-assist
117
+ ```
118
+
119
+ ## Crucible vs. Other Templates
120
+
121
+ | Aspect | Handbook | Productbook | Crucible |
122
+ | --------------------- | ------------ | -------------- | ------------------------------- |
123
+ | **Orientation** | How we work | What we build | What everything is built on |
124
+ | **Assumes** | Team exists | Product exists | Ecosystem starting |
125
+ | **Key section** | Guides | Domain | Specs |
126
+ | **Audience** | Team members | Product team | All consumers + machines |
127
+ | **Tone** | Explanatory | Analytical | Prescriptive (RFC 2119) |
128
+ | **Machine artifacts** | None | None | Schemas + config alongside docs |
129
+
130
+ ## Growing Your Crucible
131
+
132
+ As the ecosystem matures, the sections grow naturally:
133
+
134
+ **Specs accumulate as standards are defined** — each standard gets its own page:
135
+
136
+ ```
137
+ content/specs/
138
+ ├── overview.md
139
+ ├── spec-template.md
140
+ ├── skill-abi-v1.md
141
+ ├── ipc-protocol.md
142
+ ├── autonomy-model.md
143
+ └── capability-model.md
144
+ ```
145
+
146
+ **Schemas grow with the type system** — organized by domain and version:
147
+
148
+ ```
149
+ schemas/
150
+ ├── ipc/v0/
151
+ │ ├── control.schema.json
152
+ │ ├── command.schema.json
153
+ │ └── telemetry.schema.json
154
+ ├── skill/v0/
155
+ │ ├── manifest.schema.json
156
+ │ └── capability.schema.json
157
+ └── config/v0/
158
+ └── autonomy-gates.schema.json
159
+ ```
160
+
161
+ **Policies solidify through experience** — security model, dependency rules, and change procedures evolve.
162
+
163
+ **Decisions capture the "why"** — the ADR log becomes the institutional memory.
164
+
165
+ ## Example Use Cases
166
+
167
+ **WASM Skill Platform (Lanyte)**
168
+
169
+ - Specs: Skill ABI, IPC protocol, autonomy model, capability taxonomy
170
+ - Schemas: IPC message schemas, skill manifest, assessment pipeline
171
+ - Config: Autonomy gates, delegation rules, proxy policies
172
+ - Policies: Security model, dependency policy, skill assessment criteria
173
+ - Guides: Writing skills, deployment, skill assessment process
174
+ - Reference: ADRs for architecture choices, CalVer changelog
175
+
176
+ **Enterprise Ecosystem (FulmenHQ-style)**
177
+
178
+ - Specs: Coding standards, repository category standards, testing standards
179
+ - Schemas: Logging schemas, config schemas, error handling schemas
180
+ - Config: Repository taxonomy, fixture catalog, branding ecosystem
181
+ - Policies: Stream output policy, dependency governance, publishing standards
182
+ - Guides: Bootstrap guide, integration patterns, consuming assets
183
+ - Reference: Two-tier ADR system, release notes, glossary
184
+
185
+ **Open Source Foundation**
186
+
187
+ - Specs: API standards, data format specifications, interop requirements
188
+ - Schemas: API schemas, event schemas, config schemas
189
+ - Config: Project taxonomy, maintainer roles
190
+ - Policies: Contribution policy, security disclosure, licensing
191
+ - Guides: Getting started, SDK integration, migration guides
192
+ - Reference: Governance decisions, release history, terminology
@@ -0,0 +1,83 @@
1
+ ---
2
+ title: Handbook Template
3
+ description: Team documentation with overview, guides, and reference sections
4
+ ---
5
+
6
+ # Handbook Template
7
+
8
+ The `handbook` template creates a structured documentation site for teams. It extends `minimal` with three predefined sections.
9
+
10
+ ## When to Use
11
+
12
+ - Team onboarding documentation
13
+ - Internal knowledge bases
14
+ - Product documentation
15
+ - Developer handbooks
16
+ - Any docs that explain "what" and "how"
17
+
18
+ ## What You Get
19
+
20
+ Everything from `minimal`, plus:
21
+
22
+ ```
23
+ my-handbook/
24
+ ├── site.yaml # Configured with sections
25
+ ├── index.md # Home page linking to sections
26
+ ├── CUSTOMIZING.md # How to customize this site (AI + human friendly)
27
+ ├── content/
28
+ │ ├── overview/
29
+ │ │ └── introduction.md # High-level concepts
30
+ │ ├── guides/
31
+ │ │ └── getting-started.md # Step-by-step tutorials
32
+ │ └── reference/
33
+ │ └── glossary.md # Terminology and definitions
34
+ └── ...
35
+ ```
36
+
37
+ ## Sections
38
+
39
+ | Section | Purpose | Typical Content |
40
+ | ------------- | --------------------- | --------------------------------------- |
41
+ | **Overview** | Big picture, concepts | Architecture, key decisions, principles |
42
+ | **Guides** | How to do things | Tutorials, walkthroughs, recipes |
43
+ | **Reference** | Look-up information | API docs, glossaries, specifications |
44
+
45
+ This follows the [Diátaxis](https://diataxis.fr/) documentation framework's distinction between explanation (Overview), how-to guides (Guides), and reference material (Reference).
46
+
47
+ ## Usage
48
+
49
+ ```bash
50
+ kitfly init team-docs --template handbook
51
+ kitfly init team-docs --template handbook --brand "Engineering"
52
+ ```
53
+
54
+ ## Customization
55
+
56
+ After creation, you can:
57
+
58
+ - **Add sections**: Edit `site.yaml` to add more sections
59
+ - **Rename sections**: Change the `name` field in `site.yaml`
60
+ - **Restructure**: Move folders and update paths in `site.yaml`
61
+ - **Add files**: Create new `.md` files in any section folder
62
+
63
+ The starter files are placeholders with `<!-- ← CUSTOMIZE -->` comments showing where to add your content.
64
+
65
+ ## Example Use Cases
66
+
67
+ **Engineering Handbook**
68
+
69
+ - Overview: Team principles, tech stack decisions
70
+ - Guides: Development setup, deployment process, code review
71
+ - Reference: API contracts, environment variables, tooling
72
+
73
+ **Product Documentation**
74
+
75
+ - Overview: Product vision, target users
76
+ - Guides: Getting started, common workflows
77
+ - Reference: Feature specs, integration docs
78
+
79
+ **Onboarding Docs**
80
+
81
+ - Overview: Company culture, team structure
82
+ - Guides: First week checklist, tool setup
83
+ - Reference: Glossary, org chart, contacts
@@ -0,0 +1,138 @@
1
+ ---
2
+ title: Minimal Template
3
+ description: The base template that all others extend
4
+ ---
5
+
6
+ # Minimal Template
7
+
8
+ The `minimal` template is the foundation. Every other template extends it, inheriting these core files. Use it when you want complete control over your site's structure.
9
+
10
+ ## When to Use
11
+
12
+ - You want to define your own sections from scratch
13
+ - Your documentation doesn't fit the patterns of handbook, runbook, pipeline, or productbook
14
+ - You're prototyping or experimenting with kitfly
15
+ - You plan to build a custom structure for a specific domain
16
+
17
+ ## What You Get
18
+
19
+ ```
20
+ my-site/
21
+ ├── site.yaml # Basic configuration (no sections)
22
+ ├── index.md # Simple welcome page
23
+ ├── .gitignore # Standard ignores
24
+ ├── README.md # Project documentation
25
+ ├── content/ # Empty, ready for your structure
26
+ │ └── .gitkeep
27
+ └── assets/brand/ # Placeholder for logo, favicon
28
+ └── .gitkeep
29
+ ```
30
+
31
+ ## Usage
32
+
33
+ ```bash
34
+ kitfly init my-site
35
+ # or explicitly:
36
+ kitfly init my-site --template minimal
37
+ ```
38
+
39
+ ## Building Your Own Structure
40
+
41
+ Creating a custom site from minimal takes three steps:
42
+
43
+ ### 1. Create content folders
44
+
45
+ Organize your markdown files under `content/` however makes sense for your domain:
46
+
47
+ ```
48
+ content/
49
+ ├── concepts/
50
+ │ ├── overview.md
51
+ │ └── architecture.md
52
+ ├── workflows/
53
+ │ ├── onboarding.md
54
+ │ ├── review-process.md
55
+ │ └── advanced/
56
+ │ ├── index.md
57
+ │ └── custom-pipelines.md
58
+ └── api/
59
+ ├── authentication.md
60
+ └── endpoints/
61
+ ├── users.md
62
+ └── projects.md
63
+ ```
64
+
65
+ ### 2. Define sections in `site.yaml`
66
+
67
+ Each section maps to a folder. The sidebar builds automatically from your files:
68
+
69
+ ```yaml
70
+ title: "My Platform Docs"
71
+
72
+ brand:
73
+ name: "Platform"
74
+ url: "/"
75
+
76
+ sections:
77
+ - name: "Concepts"
78
+ path: "content/concepts"
79
+ - name: "Workflows"
80
+ path: "content/workflows"
81
+ - name: "API"
82
+ path: "content/api"
83
+ ```
84
+
85
+ ### 3. Add markdown files
86
+
87
+ Write your content. Each `.md` file appears in the sidebar under its section. That's it — no registration step, no config per file.
88
+
89
+ ## Hierarchical Navigation
90
+
91
+ Kitfly automatically organizes deeper folder structures into collapsible navigation groups. If you nest files inside subdirectories, the sidebar reflects that hierarchy:
92
+
93
+ ```
94
+ WORKFLOWS
95
+ onboarding
96
+ review-process
97
+ ▸ advanced ← click to expand
98
+ custom-pipelines
99
+ ```
100
+
101
+ - Subdirectories appear as collapsible groups with expand/collapse indicators
102
+ - An `index.md` inside a subdirectory becomes the clickable link on the group label
103
+ - Flat sections (no subdirectories) render as simple lists — no extra overhead
104
+ - No JavaScript required — this uses native HTML `<details>` elements
105
+
106
+ This means you can start flat and add depth later without changing any configuration. Just create subdirectories and the sidebar adapts.
107
+
108
+ ## Configuration
109
+
110
+ The generated `site.yaml` includes commented examples to get you started:
111
+
112
+ ```yaml
113
+ title: "My Site"
114
+
115
+ brand:
116
+ name: "My Brand"
117
+ url: "/"
118
+
119
+ # Uncomment and customize:
120
+ # sections:
121
+ # - name: "Guide"
122
+ # path: "content/guide"
123
+ # - name: "Reference"
124
+ # path: "content/reference"
125
+ ```
126
+
127
+ ## When to Use a Specialized Template Instead
128
+
129
+ If your site fits one of these patterns, start with a specialized template — you'll get curated sections, starter content, and a `CUSTOMIZING.md` guide:
130
+
131
+ | Pattern | Template | Why |
132
+ | ------------------------- | ------------- | ------------------------------------------ |
133
+ | Team knowledge base | `handbook` | Overview / Guides / Reference structure |
134
+ | Service operations | `runbook` | Procedures, troubleshooting, incidents |
135
+ | Data pipeline ops | `pipeline` | Stages, sources, destinations, manifests |
136
+ | Product + business domain | `productbook` | Features, domain processes, planning, ADRs |
137
+
138
+ You can always restructure later — templates are starting points, not constraints.
@@ -0,0 +1,187 @@
1
+ ---
2
+ title: Templates Overview
3
+ description: How kitfly templates work and the layering model
4
+ ---
5
+
6
+ # Templates
7
+
8
+ Templates provide starting points for new kitfly sites. Each template creates a folder structure, configuration, and starter content appropriate for a specific use case.
9
+
10
+ ## The Layering Model
11
+
12
+ Templates follow a simple inheritance pattern:
13
+
14
+ ```
15
+ minimal (base)
16
+ ├── handbook (team documentation)
17
+ ├── runbook (operational procedures)
18
+ ├── pipeline (data pipeline operations)
19
+ ├── productbook (product & domain knowledge)
20
+ ├── servicebook (professional services catalog)
21
+ └── crucible (information architecture SSOT)
22
+ ```
23
+
24
+ Every template **extends `minimal`**, which provides the essential files every site needs. Specialized templates add sections and starter content on top.
25
+
26
+ ## What Templates Create
27
+
28
+ When you run `kitfly init`, the template generates:
29
+
30
+ | Component | Source | Purpose |
31
+ | ---------------- | --------------------- | ------------------------------------------- |
32
+ | `site.yaml` | Template | Site configuration with sections defined |
33
+ | `index.md` | Template | Home page with navigation to sections |
34
+ | `content/` | Template | Folder structure with starter files |
35
+ | `.gitignore` | `minimal` | Standard ignores for builds, deps, OS files |
36
+ | `README.md` | `minimal` | Project readme with dev commands |
37
+ | `CUSTOMIZING.md` | Specialized templates | How to customize (AI + human friendly) |
38
+ | `assets/brand/` | `minimal` | Placeholder for logo, favicon |
39
+
40
+ ### The Customizing Guide
41
+
42
+ Specialized templates include `CUSTOMIZING.md` — an onboarding document that helps both humans and AI assistants understand:
43
+
44
+ - **Structure**: What each section is for, naming conventions
45
+ - **Adding content**: Where to put new files, how to create sections
46
+ - **Linking**: How to cross-reference within the site
47
+ - **Limitations**: Content must live in the site folder; external files linked via URL
48
+
49
+ ### Provenance Record
50
+
51
+ Every generated site includes provenance metadata (in `CUSTOMIZING.md` header):
52
+
53
+ ```yaml
54
+ ---
55
+ template: runbook
56
+ template_version: 1
57
+ created: 2026-02-04
58
+ kitfly_version: 0.1.0
59
+ ---
60
+ ```
61
+
62
+ This tracks:
63
+
64
+ - **template**: Which template was used
65
+ - **template_version**: Version of that template's structure
66
+ - **created**: When the site was initialized
67
+ - **kitfly_version**: Kitfly version at creation time
68
+
69
+ Provenance helps when upgrading sites or understanding what conventions were in place at creation time.
70
+
71
+ ## The `.kitfly/` Metadata Folder
72
+
73
+ Sites can have a `.kitfly/` folder for kitfly-specific metadata (gitignored by default).
74
+
75
+ ### All Sites: `manifest.json`
76
+
77
+ Every site gets a manifest tracking creation metadata:
78
+
79
+ ```json
80
+ {
81
+ "template": "runbook",
82
+ "templateVersion": 1,
83
+ "created": "2026-02-04T14:30:00Z",
84
+ "kitflyVersion": "0.1.0",
85
+ "standalone": false
86
+ }
87
+ ```
88
+
89
+ ### Standalone Sites: `provenance.json`
90
+
91
+ Standalone sites additionally track copied files with SHA256 hashes:
92
+
93
+ ```json
94
+ {
95
+ "kitflyVersion": "0.1.0",
96
+ "createdAt": "2026-02-04T14:30:00Z",
97
+ "template": "runbook",
98
+ "files": [
99
+ { "path": "scripts/dev.ts", "sourceHash": "a1b2c3..." },
100
+ { "path": "src/engine.ts", "sourceHash": "d4e5f6..." }
101
+ ]
102
+ }
103
+ ```
104
+
105
+ **Why hashes?** For future `kitfly update` support:
106
+
107
+ - Compare hashes to detect user modifications
108
+ - Safely update unmodified files
109
+ - Warn before overwriting customized code
110
+ - Track version gaps that need bridging
111
+
112
+ ### Future: `updates.json`
113
+
114
+ When `kitfly update` ships (v0.2.x), we'll track update history:
115
+
116
+ ```json
117
+ {
118
+ "updates": [
119
+ {
120
+ "date": "2026-03-15T10:00:00Z",
121
+ "fromVersion": "0.1.0",
122
+ "toVersion": "0.2.0",
123
+ "filesUpdated": ["scripts/dev.ts", "src/theme.ts"],
124
+ "filesSkipped": ["scripts/build.ts"]
125
+ }
126
+ ]
127
+ }
128
+ ```
129
+
130
+ This enables rollback awareness and audit trails for managed sites.
131
+
132
+ ## Choosing a Template
133
+
134
+ | Template | Best For | Sections |
135
+ | ------------- | -------------------------------------------------- | ----------------------------------------------------------------------- |
136
+ | `minimal` | Custom structures, experimentation | None predefined — you define your own |
137
+ | `handbook` | Team docs, onboarding, knowledge bases | Overview, Guides, Reference |
138
+ | `runbook` | Operations, procedures, incidents | Procedures, Troubleshooting, Reference, Incidents |
139
+ | `pipeline` | Data pipeline operations | Pipeline, Sources, Destinations, Operations, Troubleshooting, Reference |
140
+ | `productbook` | Product + domain docs for complex engagements | Product, Domain, Planning, Operations, Guides, Reference |
141
+ | `servicebook` | Professional services, consulting catalogs | Offerings, Methodology, Delivery, Verticals, Case Studies, Reference |
142
+ | `crucible` | Information architecture SSOT, ecosystem standards | Specs, Schemas, Config, Policies, Guides, Reference |
143
+
144
+ ## Usage
145
+
146
+ ```bash
147
+ # Create with default template (minimal)
148
+ kitfly init my-site
149
+
150
+ # Create with specific template
151
+ kitfly init my-docs --template handbook
152
+
153
+ # Add branding
154
+ kitfly init my-docs --template handbook --brand "Acme Corp"
155
+
156
+ # Create standalone (includes kitfly site code)
157
+ kitfly init my-docs --template handbook --standalone
158
+
159
+ # Add AI assistance instrumentation
160
+ kitfly init my-docs --template runbook --ai-assist
161
+
162
+ # Skip git initialization
163
+ kitfly init my-docs --template handbook --no-git
164
+ ```
165
+
166
+ ## Lifecycle Operations
167
+
168
+ Kitfly focuses on **creation** only:
169
+
170
+ | Operation | Support | Notes |
171
+ | --------- | --------------- | ------------------------------------- |
172
+ | Create | `kitfly init` | Full template system |
173
+ | Read | `kitfly dev` | Preview any markdown folder |
174
+ | Update | `kitfly update` | Planned for v0.2.x |
175
+ | Delete | Not supported | Use `rm -rf` - sites are just folders |
176
+
177
+ **Why no delete?** Sites are self-contained folders with no external references. Deleting is simply removing the folder. There's no registry or metadata outside the site to clean up.
178
+
179
+ ## Template Details
180
+
181
+ - [Minimal](minimal) — The base layer every site inherits
182
+ - [Handbook](handbook) — Team documentation structure
183
+ - [Runbook](runbook) — Operational procedures and checklists
184
+ - [Pipeline](pipeline) — Data pipeline stages, sources, and destinations
185
+ - [Productbook](productbook) — Product and domain knowledge for greenfield engagements
186
+ - [Servicebook](servicebook) — Professional services catalog with methodology and delivery
187
+ - [Crucible](crucible) — Information architecture SSOT with specs, schemas, and governance