kitfly 0.1.2 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (194) hide show
  1. package/CHANGELOG.md +34 -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/structure.md +166 -0
  25. package/dist/_raw/content/reference.md +19 -0
  26. package/dist/_raw/content/templates/crucible.md +192 -0
  27. package/dist/_raw/content/templates/handbook.md +83 -0
  28. package/dist/_raw/content/templates/minimal.md +138 -0
  29. package/dist/_raw/content/templates/overview.md +187 -0
  30. package/dist/_raw/content/templates/pipeline.md +151 -0
  31. package/dist/_raw/content/templates/productbook.md +187 -0
  32. package/dist/_raw/content/templates/runbook.md +193 -0
  33. package/dist/_raw/content/templates/servicebook.md +163 -0
  34. package/dist/_raw/docs/decisions/ADR-0001-minimalist-site-code.md +118 -0
  35. package/dist/_raw/docs/decisions/ADR-0002-ai-accessibility.md +153 -0
  36. package/dist/_raw/docs/decisions/ADR-0003-single-file-bundle.md +93 -0
  37. package/dist/_raw/docs/decisions/ADR-0004-bun-runtime.md +98 -0
  38. package/dist/_raw/docs/decisions/ADR-0005-plugin-contract-and-distribution.md +110 -0
  39. package/dist/_raw/docs/decisions/DDR-0001-viewport-locked-layout.md +111 -0
  40. package/dist/_raw/docs/decisions/DDR-0002-theme-system.md +131 -0
  41. package/dist/_raw/docs/decisions/DDR-0003-bounded-logo-slot.md +106 -0
  42. package/dist/_raw/docs/decisions/DDR-0004-slides-rendering-model.md +113 -0
  43. package/dist/_raw/docs/decisions/DDR-0005-deterministic-layout-boundary.md +107 -0
  44. package/dist/_raw/docs/userguide/cli/build.md +85 -0
  45. package/dist/_raw/docs/userguide/cli/bundle.md +81 -0
  46. package/dist/_raw/docs/userguide/cli/dev.md +92 -0
  47. package/dist/_raw/docs/userguide/cli/init.md +116 -0
  48. package/dist/_raw/docs/userguide/cli/servers.md +69 -0
  49. package/dist/_raw/docs/userguide/cli/stop.md +76 -0
  50. package/dist/_raw/docs/userguide/cli/update.md +78 -0
  51. package/dist/_raw/docs/userguide/cli/version.md +65 -0
  52. package/dist/_raw/docs/userguide/cli.md +34 -0
  53. package/dist/_raw/docs/userguide/sharing.md +94 -0
  54. package/dist/_raw/schemas/plugin-schemas-notes.md +71 -0
  55. package/dist/_raw/schemas.md +42 -0
  56. package/dist/assets/brand/kitfly-favicon-32.png +0 -0
  57. package/dist/assets/brand/kitfly-icon-64.png +0 -0
  58. package/dist/assets/brand/kitfly-logo-128.png +0 -0
  59. package/dist/assets/brand/kitfly-logo-512.png +0 -0
  60. package/dist/assets/brand/kitfly-logo.svg +12132 -0
  61. package/dist/assets/brand/kitfly-neon-128.png +0 -0
  62. package/dist/assets/brand/kitfly-neon-192.png +0 -0
  63. package/dist/assets/brand/kitfly-neon-256.png +0 -0
  64. package/dist/assets/brand/kitfly-neon.png +0 -0
  65. package/dist/assets/brand/palette.md +75 -0
  66. package/dist/content/deployment/index.html +11 -0
  67. package/dist/content/deployment/preflight.html +418 -0
  68. package/dist/content/deployment/recipes/aws-s3.html +421 -0
  69. package/dist/content/deployment/recipes/cloudflare-pages.html +372 -0
  70. package/dist/content/deployment/recipes/cloudflare-r2.html +443 -0
  71. package/dist/content/deployment/recipes/fly-io.html +356 -0
  72. package/dist/content/deployment/recipes/github-pages.html +414 -0
  73. package/dist/content/deployment/recipes/index.html +11 -0
  74. package/dist/content/deployment/recipes/netlify.html +394 -0
  75. package/dist/content/deployment/recipes/vercel.html +382 -0
  76. package/dist/content/deployment/secrets-and-env-vars.html +380 -0
  77. package/dist/content/deployment.html +426 -0
  78. package/dist/content/guide/approaches.html +501 -0
  79. package/dist/content/guide/features.html +436 -0
  80. package/dist/content/guide/getting-started.html +403 -0
  81. package/dist/content/guide/index.html +11 -0
  82. package/dist/content/guide/kitfly-overview.html +544 -0
  83. package/dist/content/index.html +11 -0
  84. package/dist/content/reference/configuration.html +580 -0
  85. package/dist/content/reference/design-catalog.html +449 -0
  86. package/dist/content/reference/environment-variables.html +367 -0
  87. package/dist/content/reference/glossary.html +368 -0
  88. package/dist/content/reference/index.html +11 -0
  89. package/dist/content/reference/key-concepts.html +399 -0
  90. package/dist/content/reference/plugins.html +491 -0
  91. package/dist/content/reference/structure.html +463 -0
  92. package/dist/content/reference.html +334 -0
  93. package/dist/content/templates/crucible.html +546 -0
  94. package/dist/content/templates/handbook.html +405 -0
  95. package/dist/content/templates/index.html +11 -0
  96. package/dist/content/templates/minimal.html +447 -0
  97. package/dist/content/templates/overview.html +558 -0
  98. package/dist/content/templates/pipeline.html +494 -0
  99. package/dist/content/templates/productbook.html +540 -0
  100. package/dist/content/templates/runbook.html +543 -0
  101. package/dist/content/templates/servicebook.html +523 -0
  102. package/dist/content-index.json +540 -0
  103. package/dist/docs/decisions/ADR-0001-minimalist-site-code.html +491 -0
  104. package/dist/docs/decisions/ADR-0002-ai-accessibility.html +434 -0
  105. package/dist/docs/decisions/ADR-0003-single-file-bundle.html +412 -0
  106. package/dist/docs/decisions/ADR-0004-bun-runtime.html +409 -0
  107. package/dist/docs/decisions/ADR-0005-plugin-contract-and-distribution.html +402 -0
  108. package/dist/docs/decisions/DDR-0001-viewport-locked-layout.html +459 -0
  109. package/dist/docs/decisions/DDR-0002-theme-system.html +452 -0
  110. package/dist/docs/decisions/DDR-0003-bounded-logo-slot.html +423 -0
  111. package/dist/docs/decisions/DDR-0004-slides-rendering-model.html +399 -0
  112. package/dist/docs/decisions/DDR-0005-deterministic-layout-boundary.html +422 -0
  113. package/dist/docs/decisions/index.html +11 -0
  114. package/dist/docs/userguide/cli/build.html +408 -0
  115. package/dist/docs/userguide/cli/bundle.html +419 -0
  116. package/dist/docs/userguide/cli/dev.html +428 -0
  117. package/dist/docs/userguide/cli/index.html +11 -0
  118. package/dist/docs/userguide/cli/init.html +436 -0
  119. package/dist/docs/userguide/cli/servers.html +393 -0
  120. package/dist/docs/userguide/cli/stop.html +408 -0
  121. package/dist/docs/userguide/cli/update.html +406 -0
  122. package/dist/docs/userguide/cli/version.html +406 -0
  123. package/dist/docs/userguide/cli.html +386 -0
  124. package/dist/docs/userguide/index.html +11 -0
  125. package/dist/docs/userguide/sharing.html +465 -0
  126. package/dist/index.html +387 -0
  127. package/dist/llms.txt +18 -0
  128. package/dist/provenance.json +7 -0
  129. package/dist/schemas/index.html +11 -0
  130. package/dist/schemas/plugin-registry.schema.html +327 -0
  131. package/dist/schemas/plugin-schemas-notes.html +364 -0
  132. package/dist/schemas/plugin.schema.html +327 -0
  133. package/dist/schemas/plugins.schema.html +327 -0
  134. package/dist/schemas/v0/common.schema.html +386 -0
  135. package/dist/schemas/v0/index.html +11 -0
  136. package/dist/schemas/v0/plugin-registry.schema.html +547 -0
  137. package/dist/schemas/v0/plugin.schema.html +497 -0
  138. package/dist/schemas/v0/plugins.schema.html +406 -0
  139. package/dist/schemas/v0/site.schema.html +541 -0
  140. package/dist/schemas/v0/theme.schema.html +615 -0
  141. package/dist/schemas.html +351 -0
  142. package/dist/styles.css +1262 -0
  143. package/package.json +4 -2
  144. package/plugins-dist/callouts.css +32 -0
  145. package/plugins-dist/callouts.js +46 -0
  146. package/plugins-dist/slides-visuals.css +224 -0
  147. package/plugins-dist/slides-visuals.js +598 -0
  148. package/registry/plugins.yaml +35 -0
  149. package/schemas/README.md +10 -0
  150. package/schemas/plugin-registry.schema.json +5 -0
  151. package/schemas/plugin-schemas-notes.md +71 -0
  152. package/schemas/plugin.schema.json +5 -0
  153. package/schemas/plugins.schema.json +5 -0
  154. package/schemas/v0/common.schema.json +64 -0
  155. package/schemas/v0/plugin-registry.schema.json +225 -0
  156. package/schemas/v0/plugin.schema.json +175 -0
  157. package/schemas/v0/plugins.schema.json +84 -0
  158. package/schemas/v0/site.schema.json +56 -9
  159. package/schemas/v0/theme.schema.json +105 -22
  160. package/scripts/build.ts +155 -3
  161. package/scripts/bundle.ts +258 -95
  162. package/scripts/dev.ts +203 -1
  163. package/src/__tests__/build.test.ts +158 -1
  164. package/src/__tests__/bundle.test.ts +31 -0
  165. package/src/__tests__/cli.test.ts +14 -3
  166. package/src/__tests__/fixtures/fences/slides-visuals/invalid/bad-list-indent.md +5 -0
  167. package/src/__tests__/fixtures/fences/slides-visuals/invalid/blank-line.md +5 -0
  168. package/src/__tests__/fixtures/fences/slides-visuals/invalid/compare-object-items.md +9 -0
  169. package/src/__tests__/fixtures/fences/slides-visuals/invalid/indented-fence.md +4 -0
  170. package/src/__tests__/fixtures/fences/slides-visuals/invalid/stat-grid-missing-fields.md +5 -0
  171. package/src/__tests__/fixtures/fences/slides-visuals/invalid/unknown-type.md +3 -0
  172. package/src/__tests__/fixtures/fences/slides-visuals/valid/compare.md +10 -0
  173. package/src/__tests__/fixtures/fences/slides-visuals/valid/comparison-table.md +14 -0
  174. package/src/__tests__/fixtures/fences/slides-visuals/valid/funnel.md +7 -0
  175. package/src/__tests__/fixtures/fences/slides-visuals/valid/kpi.md +5 -0
  176. package/src/__tests__/fixtures/fences/slides-visuals/valid/layer-cake.md +6 -0
  177. package/src/__tests__/fixtures/fences/slides-visuals/valid/pyramid.md +6 -0
  178. package/src/__tests__/fixtures/fences/slides-visuals/valid/quadrant-grid.md +8 -0
  179. package/src/__tests__/fixtures/fences/slides-visuals/valid/scorecard.md +13 -0
  180. package/src/__tests__/fixtures/fences/slides-visuals/valid/stat-grid.md +8 -0
  181. package/src/__tests__/init.test.ts +35 -0
  182. package/src/__tests__/plugin-loader.test.ts +221 -0
  183. package/src/__tests__/shared.test.ts +428 -0
  184. package/src/__tests__/slides-visuals-fence-contract.test.ts +28 -0
  185. package/src/__tests__/slides-visuals-runtime-regressions.bun.test.ts +114 -0
  186. package/src/__tests__/styles.test.ts +35 -0
  187. package/src/cli.ts +9 -4
  188. package/src/plugin-loader.ts +245 -0
  189. package/src/shared.ts +614 -7
  190. package/src/site/styles.css +331 -0
  191. package/src/site/template.html +66 -5
  192. package/src/templates/deck.ts +186 -0
  193. package/src/templates/driver.ts +11 -1
  194. package/src/templates/minimal.ts +1 -0
@@ -0,0 +1,193 @@
1
+ ---
2
+ title: Runbook Template
3
+ description: Operational procedures, troubleshooting, and incident response
4
+ ---
5
+
6
+ # Runbook Template
7
+
8
+ The `runbook` template creates a structured site for operational documentation. It extends `minimal` with sections designed for on-call engineers, SREs, and operations teams.
9
+
10
+ ## When to Use
11
+
12
+ - Operations documentation
13
+ - On-call runbooks
14
+ - Incident response procedures
15
+ - System administration guides
16
+ - Deployment and maintenance checklists
17
+ - Any docs that answer "what do I do when..."
18
+
19
+ ## What You Get
20
+
21
+ Everything from `minimal`, plus:
22
+
23
+ ```
24
+ my-runbook/
25
+ ├── site.yaml # Configured with ops sections
26
+ ├── index.md # Home page with quick links
27
+ ├── CUSTOMIZING.md # How to customize this site (AI + human friendly)
28
+ ├── content/
29
+ │ ├── procedures/
30
+ │ │ └── deployment.md # Step-by-step procedures
31
+ │ ├── troubleshooting/
32
+ │ │ └── common-issues.md # Problem → solution guides
33
+ │ ├── reference/
34
+ │ │ ├── interfaces/
35
+ │ │ │ └── api-template.md # Integration/API documentation
36
+ │ │ ├── contacts/
37
+ │ │ │ └── directory.md # Team and vendor contacts
38
+ │ │ ├── checklists/
39
+ │ │ │ └── pre-deploy.md # Verification checklists
40
+ │ │ └── analytics/
41
+ │ │ └── dashboards.md # Metrics and KPI definitions
42
+ │ └── incidents/
43
+ │ └── escalation.md # Incident response paths
44
+ └── ...
45
+ ```
46
+
47
+ ## Sections
48
+
49
+ | Section | Purpose | Typical Content |
50
+ | ------------------- | -------------------------------- | ---------------------------------------------------- |
51
+ | **Procedures** | How to perform operational tasks | Deployment steps, maintenance tasks, migrations |
52
+ | **Troubleshooting** | Diagnose and fix issues | Error codes, symptoms → causes, remediation |
53
+ | **Reference** | Look-up information | Interfaces, contacts, checklists, glossary |
54
+ | **Incidents** | Emergency response | Escalation paths, severity definitions, post-mortems |
55
+
56
+ The **Reference** section consolidates supporting materials:
57
+
58
+ | Subsection | Purpose |
59
+ | ----------------------- | ---------------------------------------------------- |
60
+ | `reference/interfaces/` | API specs, protocol docs, vendor integration details |
61
+ | `reference/contacts/` | Team directory, vendor contacts, escalation matrix |
62
+ | `reference/checklists/` | Pre/post deployment, audit, maintenance checklists |
63
+ | `reference/analytics/` | Dashboard links, KPIs, SLA definitions |
64
+
65
+ ## Usage
66
+
67
+ ```bash
68
+ kitfly init ops-docs --template runbook
69
+ kitfly init ops-docs --template runbook --brand "Platform Team"
70
+ ```
71
+
72
+ ## Design Principles
73
+
74
+ Runbooks differ from handbooks in key ways:
75
+
76
+ | Aspect | Handbook | Runbook |
77
+ | ---------------- | ------------- | -------------------------- |
78
+ | **Audience** | Learning | Doing (often urgently) |
79
+ | **Reading mode** | Sequential | Jump to specific procedure |
80
+ | **Goal** | Understanding | Task completion |
81
+ | **Tone** | Explanatory | Direct, imperative |
82
+
83
+ ## Procedure Document Format
84
+
85
+ Each procedure should follow a consistent structure:
86
+
87
+ ```markdown
88
+ # Procedure Name
89
+
90
+ ## Objective
91
+
92
+ What this procedure accomplishes and when to use it.
93
+
94
+ ## Prerequisites
95
+
96
+ - [ ] Required access or permissions
97
+ - [ ] Tools or systems that must be available
98
+ - [ ] Related procedures to complete first
99
+
100
+ ## Steps
101
+
102
+ 1. **First action**
103
+ - Expected output: `what you should see`
104
+
105
+ 2. **Second action**
106
+ - Verification: How to confirm success
107
+
108
+ ## Verification
109
+
110
+ How to confirm the procedure completed successfully.
111
+
112
+ ## Rollback
113
+
114
+ If something goes wrong, how to revert.
115
+
116
+ ## Related
117
+
118
+ - Link to related procedures
119
+ - Escalation path if this fails
120
+ ```
121
+
122
+ ## Growing Your Runbook
123
+
124
+ As your runbook matures, consider:
125
+
126
+ **Numbered sections** for ordering (enterprise pattern):
127
+
128
+ ```
129
+ content/
130
+ ├── 00-bootstrap/ # Initial setup, first-run procedures
131
+ ├── 01-operations/ # Day-to-day operational tasks
132
+ ├── 02-incidents/ # Emergency response
133
+ └── 99-reference/ # Templates, glossaries, checklists
134
+ ```
135
+
136
+ **Recipes** - reusable procedures organized by topic:
137
+
138
+ ```
139
+ content/procedures/
140
+ ├── security/
141
+ │ ├── rotate-credentials.md
142
+ │ └── access-review.md
143
+ ├── database/
144
+ │ ├── backup.md
145
+ │ └── restore.md
146
+ └── deployment/
147
+ ├── standard-deploy.md
148
+ └── hotfix-deploy.md
149
+ ```
150
+
151
+ ## The Customizing Guide
152
+
153
+ Every runbook includes `CUSTOMIZING.md` - a commissioning guide for both humans and AI assistants:
154
+
155
+ **What it covers:**
156
+
157
+ - How to add content to each section
158
+ - Adding new sections to `site.yaml`
159
+ - Conventions used in this runbook
160
+ - File linking and cross-references
161
+
162
+ **Important limitations:**
163
+
164
+ - Content must live within the site folder (kitfly cannot include files from outside)
165
+ - External resources should be linked via URL, not copied
166
+ - Binary files (PDFs, images) go in `assets/` and are linked, not rendered
167
+
168
+ This guide helps onboard team members and ensures AI coding assistants understand the structure when helping maintain the runbook.
169
+
170
+ ## Example Use Cases
171
+
172
+ **Integration Runbook** (like Blossman/Cargas)
173
+
174
+ - Procedures: Data sync, batch processing, error recovery
175
+ - Troubleshooting: Connection failures, data format errors, timeout issues
176
+ - Reference/Interfaces: ERP API specs (extracted from vendor PDF), protocol details
177
+ - Reference/Contacts: Vendor support, internal integration team
178
+ - Incidents: Sync failure response, data reconciliation
179
+
180
+ **Platform Runbook**
181
+
182
+ - Procedures: Deploy service, rotate secrets, scale cluster
183
+ - Troubleshooting: High CPU, memory leaks, connection timeouts
184
+ - Reference/Checklists: Production deploy, database migration
185
+ - Reference/Analytics: SLA dashboard links, key metrics
186
+ - Incidents: P1 response, rollback procedure
187
+
188
+ **Security Operations**
189
+
190
+ - Procedures: Credential rotation, access reviews, patch deployment
191
+ - Troubleshooting: Auth failures, certificate expiry, firewall issues
192
+ - Reference/Contacts: Security team, vendor security contacts
193
+ - Incidents: Breach response, compromised credentials
@@ -0,0 +1,163 @@
1
+ ---
2
+ title: Servicebook Template
3
+ description: Professional services catalog with offerings, methodology, and delivery documentation
4
+ ---
5
+
6
+ # Servicebook Template
7
+
8
+ The `servicebook` template creates a documentation site for **professional services practices** — what you sell, how you deliver, and proof of capability. It extends `minimal` with six sections organized around service offerings, delivery methodology, and engagement operations.
9
+
10
+ ## When to Use
11
+
12
+ - Consulting practices documenting their service portfolio
13
+ - Professional services teams standardizing delivery methodology
14
+ - Technical assessment or advisory services needing consistent scoping
15
+ - Organizations building a body of case studies and industry expertise
16
+ - Any situation where the deliverable is expertise, not a product
17
+
18
+ ## What You Get
19
+
20
+ Everything from `minimal`, plus:
21
+
22
+ ```
23
+ my-servicebook/
24
+ ├── site.yaml # Configured with 6 sections
25
+ ├── index.md # Home page with service catalog summary
26
+ ├── CUSTOMIZING.md # How to customize (AI + human friendly)
27
+ ├── content/
28
+ │ ├── offerings/
29
+ │ │ ├── overview.md # Service tiers, engagement models
30
+ │ │ └── assess/
31
+ │ │ ├── overview.md # Example: assessment service
32
+ │ │ ├── deliverables.md # What the client receives
33
+ │ │ └── scoping.md # How we scope an engagement
34
+ │ ├── methodology/
35
+ │ │ ├── phases.md # Explore → Analyze → Synthesize → Deliver
36
+ │ │ ├── tools.md # Tools used in delivery
37
+ │ │ ├── frameworks.md # Assessment frameworks, scoring models
38
+ │ │ └── decisions/
39
+ │ │ ├── index.md # Methodology decision log
40
+ │ │ └── mdr-template.md # Decision record template
41
+ │ ├── delivery/
42
+ │ │ ├── engagement-lifecycle.md # End-to-end engagement flow
43
+ │ │ ├── client-onboarding.md # Prerequisites, setup, kickoff
44
+ │ │ ├── quality-gates.md # Checkpoints throughout delivery
45
+ │ │ └── templates/
46
+ │ │ └── index.md # Deliverable templates and report shells
47
+ │ ├── verticals/
48
+ │ │ └── overview.md # How to document industry context
49
+ │ ├── case-studies/
50
+ │ │ └── index.md # Case study catalog with template
51
+ │ └── reference/
52
+ │ ├── team-expertise.md # Capabilities, specializations
53
+ │ ├── pricing-models.md # Engagement pricing structures
54
+ │ └── contacts/
55
+ │ └── directory.md # Team contacts, escalation
56
+ └── ...
57
+ ```
58
+
59
+ ## Sections
60
+
61
+ | Section | Purpose | Typical Content |
62
+ | ---------------- | --------------------- | -------------------------------------------------------- |
63
+ | **Offerings** | What we deliver | Service tiers, engagement models, deliverables, scoping |
64
+ | **Methodology** | How we do it | Phases, tools, frameworks, methodology decisions |
65
+ | **Delivery** | Engagement operations | Lifecycle, onboarding, quality gates, templates |
66
+ | **Verticals** | Industry context | Regulations, terminology, common challenges per vertical |
67
+ | **Case Studies** | Proof of capability | Past engagements (anonymized), outcomes, lessons learned |
68
+ | **Reference** | Look-up material | Team expertise, pricing models, contacts |
69
+
70
+ ## The Methodology Section
71
+
72
+ This is what makes servicebook different. It captures **how your practice delivers value** — not just what you sell.
73
+
74
+ For a technical assessment practice, this might hold:
75
+
76
+ - **Phases**: Explore (stakeholder interviews) → Analyze (gap analysis) → Synthesize (recommendations) → Deliver (presentation)
77
+ - **Tools**: Interview frameworks, scoring rubrics, analysis templates
78
+ - **Frameworks**: Maturity models, SWOT analysis, weighted scoring for vendor evaluation
79
+ - **Decisions**: Why we switched from 3-phase to 4-phase methodology (MDR-001)
80
+
81
+ For a management consulting practice:
82
+
83
+ - **Phases**: Current State → Target State → Gap Analysis → Roadmap
84
+ - **Tools**: Workshop facilitation tools, benchmarking databases, financial modeling
85
+ - **Frameworks**: Operating model canvas, capability mapping, value stream analysis
86
+ - **Decisions**: Why we standardized on a specific assessment framework
87
+
88
+ The methodology section turns "how we work" from oral tradition into documented, repeatable process.
89
+
90
+ ## Usage
91
+
92
+ ```bash
93
+ kitfly init consulting-docs --template servicebook
94
+ kitfly init consulting-docs --template servicebook --brand "Apex Advisory"
95
+
96
+ # With AI assistance instrumentation
97
+ kitfly init consulting-docs --template servicebook --standalone --ai-assist
98
+ ```
99
+
100
+ ## Servicebook vs. Other Templates
101
+
102
+ | Aspect | Productbook | Servicebook | Handbook |
103
+ | --------------- | --------------------------- | -------------------------- | ----------------- |
104
+ | **Orientation** | What we build | What we sell & deliver | How we work |
105
+ | **Assumes** | One product, iterated | Multiple service offerings | Team exists |
106
+ | **Key section** | Domain | Methodology | Guides |
107
+ | **Audience** | Product team + stakeholders | Delivery team + clients | Team members |
108
+ | **Tone** | Analytical | Professional, prescriptive | Explanatory |
109
+ | **Lifecycle** | Product releases | Engagement lifecycle | Knowledge updates |
110
+
111
+ ## Growing Your Servicebook
112
+
113
+ As the practice matures, the sections grow naturally:
114
+
115
+ **Offerings expand as services are defined** — each service gets its own folder with overview, deliverables, and scoping:
116
+
117
+ ```
118
+ content/offerings/
119
+ ├── overview.md
120
+ ├── assess/
121
+ │ ├── overview.md
122
+ │ ├── deliverables.md
123
+ │ └── scoping.md
124
+ ├── advisory/
125
+ │ ├── overview.md
126
+ │ └── engagement-models.md
127
+ └── implement/
128
+ ├── overview.md
129
+ ├── deliverables.md
130
+ └── scoping.md
131
+ ```
132
+
133
+ **Verticals deepen with experience** — each industry vertical captures specialized knowledge:
134
+
135
+ ```
136
+ content/verticals/
137
+ ├── overview.md
138
+ ├── healthcare.md
139
+ ├── financial-services.md
140
+ └── manufacturing.md
141
+ ```
142
+
143
+ **Case studies accumulate** — the portfolio of evidence grows with each completed engagement.
144
+
145
+ **Methodology evolves through decisions** — the MDR log tracks why the practice changed its approach.
146
+
147
+ ## Example Use Cases
148
+
149
+ **Technical Assessment Practice**
150
+
151
+ - Offerings: Security assessment, architecture review, cloud readiness evaluation
152
+ - Methodology: Discovery interviews, tooling analysis, gap scoring, recommendations
153
+ - Delivery: 2-4 week fixed-scope engagements with standardized quality gates
154
+ - Verticals: Healthcare (HIPAA), finance (SOC 2), government (FedRAMP)
155
+ - Case Studies: Anonymized assessment outcomes with measurable improvements
156
+
157
+ **Management Consulting Practice**
158
+
159
+ - Offerings: Strategy advisory, operating model design, transformation planning
160
+ - Methodology: Current-state analysis, target operating model, roadmap development
161
+ - Delivery: Retainer-based advisory with milestone-based transformation work
162
+ - Verticals: Retail, energy, telecommunications
163
+ - Case Studies: Transformation outcomes, efficiency gains, capability maturation
@@ -0,0 +1,118 @@
1
+ ---
2
+ title: "ADR-0001: Minimalist Site Code"
3
+ description: "Defines thresholds for the site code that kitfly copies to user projects"
4
+ author: "devlead"
5
+ supervised_by: "@3leapsdave"
6
+ date: "2026-02-04"
7
+ status: "accepted"
8
+ tags: ["adr", "architecture", "minimalism", "site-code"]
9
+ ---
10
+
11
+ # ADR-0001: Minimalist Site Code
12
+
13
+ ## Status
14
+
15
+ Accepted
16
+
17
+ ## Context
18
+
19
+ When users run `kitfly init`, they receive a complete, standalone site with rendering code. This code becomes **theirs** — they can modify it, version it, and maintain it.
20
+
21
+ The site code must be:
22
+
23
+ - **Small**: Understandable in an afternoon
24
+ - **Reviewable**: A security-conscious user can audit it
25
+ - **Modifiable**: Users can customize without fear
26
+ - **Maintainable**: One dependency, no churn
27
+
28
+ This ADR defines what belongs in site code vs. what stays in the kitfly CLI.
29
+
30
+ ## Decision
31
+
32
+ ### Site Code Thresholds
33
+
34
+ The site code that `kitfly init` copies should stay within these bounds:
35
+
36
+ | Metric | Target | Hard Limit |
37
+ | ---------------------- | ---------- | ---------- |
38
+ | Total lines (scripts/) | ~500 | 800 |
39
+ | Dependencies | 1 (marked) | 2 |
40
+ | Files copied | ~10 | 15 |
41
+
42
+ ### What Belongs in Site Code
43
+
44
+ | Component | Purpose | Approximate Size |
45
+ | ------------------------ | -------------------------------- | ---------------- |
46
+ | `scripts/dev.ts` | Dev server with hot reload | ~400 lines |
47
+ | `scripts/build.ts` | Static site generation | ~350 lines |
48
+ | `scripts/bundle.ts` | Single-file HTML output | ~250 lines |
49
+ | `src/theme.ts` | Theme loading and CSS generation | ~150 lines |
50
+ | `src/engine.ts` | Path utilities | ~20 lines |
51
+ | `src/site/template.html` | HTML template | ~150 lines |
52
+ | `src/site/styles.css` | Default styles | ~400 lines |
53
+
54
+ **Rule of thumb**: If it can be done with CSS, vanilla JS under 50 lines, or a marked plugin, it belongs in site code.
55
+
56
+ ### What Stays in Kitfly CLI
57
+
58
+ | Component | Purpose | Reason |
59
+ | ------------------------ | ------------------- | --------------------- |
60
+ | `src/cli.ts` | CLI entry point | Users don't need this |
61
+ | `src/commands/init.ts` | Project scaffolding | Meta-tooling |
62
+ | `src/commands/update.ts` | Site code updates | Meta-tooling |
63
+ | `content/` | Kitfly's own docs | Not user content |
64
+ | `assets/brand/` | Kitfly branding | Users have their own |
65
+
66
+ ### Feature Evaluation
67
+
68
+ Before adding any feature to site code:
69
+
70
+ 1. **Check the line budget** — Will this exceed 800 lines?
71
+ 2. **Check the dependency count** — Does this require a new dependency?
72
+ 3. **Check the complexity** — Can a user understand this in an afternoon?
73
+ 4. **Check the necessity** — Is this core rendering, or CLI convenience?
74
+
75
+ Features that fail these checks should:
76
+
77
+ - Stay in the kitfly CLI (not copied to user sites)
78
+ - Be implemented as optional user customization
79
+ - Trigger a discussion about whether we're solving the right problem
80
+
81
+ ### Migration Path
82
+
83
+ If site code grows beyond thresholds:
84
+
85
+ 1. **Refactor first** — Can we simplify?
86
+ 2. **Extract to CLI** — Move non-essential features to kitfly CLI
87
+ 3. **Document the tradeoff** — If complexity is unavoidable, explain why
88
+
89
+ Users who need more should migrate to Astro, VitePress, or similar. Their content is just markdown — migration is straightforward.
90
+
91
+ ## Consequences
92
+
93
+ ### Positive
94
+
95
+ - Users receive code they can actually understand
96
+ - Security review is feasible (small surface area)
97
+ - Modifications don't require framework knowledge
98
+ - One `bun install` and they're running
99
+
100
+ ### Negative
101
+
102
+ - Some features require discipline to implement minimally
103
+ - Visual sophistication bounded by CSS capabilities
104
+ - Power users may want more than we provide
105
+
106
+ ### Neutral
107
+
108
+ - Feature requests require threshold evaluation
109
+ - "Can we add X?" becomes a structured conversation
110
+
111
+ ## Compliance
112
+
113
+ All changes to files under `scripts/`, `src/site/`, `src/engine.ts`, or `src/theme.ts` must consider this ADR. These files are copied to user projects.
114
+
115
+ ## References
116
+
117
+ - [Kitfly Overview](../../content/guide/kitfly-overview.md) — Product philosophy
118
+ - Handbook ADR-0001 — Original minimalist thresholds
@@ -0,0 +1,153 @@
1
+ ---
2
+ title: "ADR-0002: AI Accessibility for Published Sites"
3
+ description: "Standard for making kitfly sites consumable by AI agents"
4
+ author: "devlead"
5
+ supervised_by: "@3leapsdave"
6
+ date: "2026-02-04"
7
+ status: "accepted"
8
+ tags: ["adr", "architecture", "ai", "accessibility", "llms"]
9
+ ---
10
+
11
+ # ADR-0002: AI Accessibility for Published Sites
12
+
13
+ ## Status
14
+
15
+ Accepted
16
+
17
+ ## Context
18
+
19
+ Kitfly sites are primarily viewed by humans in browsers. However, AI agents increasingly need to consume documentation:
20
+
21
+ - Agents browsing deployed sites on cloud storage or intranets
22
+ - LLMs researching documentation during coding tasks
23
+ - Automated documentation indexing and search
24
+
25
+ HTML parsing is inefficient for AI agents. They prefer:
26
+
27
+ - Structured metadata for discovery
28
+ - Raw markdown for content consumption
29
+ - Predictable paths for programmatic access
30
+
31
+ ## Decision
32
+
33
+ ### Standard Files Generated
34
+
35
+ Every `kitfly build` generates these AI accessibility files:
36
+
37
+ #### 1. `content-index.json`
38
+
39
+ Machine-readable index of all pages:
40
+
41
+ ```json
42
+ {
43
+ "version": "0.1.0",
44
+ "generated": "2026-02-04T12:00:00Z",
45
+ "title": "Site Title",
46
+ "baseUrl": "/",
47
+ "rawMarkdownPath": "/_raw",
48
+ "pages": [
49
+ {
50
+ "path": "/guide/getting-started",
51
+ "htmlPath": "/guide/getting-started.html",
52
+ "rawPath": "/_raw/guide/getting-started.md",
53
+ "title": "Getting Started",
54
+ "section": "Guide",
55
+ "source": "content/guide/getting-started.md",
56
+ "description": "Optional description from frontmatter"
57
+ }
58
+ ]
59
+ }
60
+ ```
61
+
62
+ #### 2. `llms.txt`
63
+
64
+ Following the emerging [llms.txt convention](https://llmstxt.org/):
65
+
66
+ ```
67
+ # llms.txt - AI agent guidance for Site Title
68
+ name: Site Title
69
+ version: 0.1.0
70
+ generated: 2026-02-04T12:00:00Z
71
+
72
+ content-index: /content-index.json
73
+ raw-markdown: /_raw/{path}.md
74
+ preferred-format: markdown
75
+
76
+ sections: Guide, Reference
77
+ total-pages: 10
78
+ ```
79
+
80
+ #### 3. `_raw/` Directory
81
+
82
+ Raw markdown files mirroring the site structure:
83
+
84
+ ```
85
+ _raw/
86
+ ├── guide/
87
+ │ ├── getting-started.md
88
+ │ └── features.md
89
+ └── reference/
90
+ └── configuration.md
91
+ ```
92
+
93
+ ### Bundle Format
94
+
95
+ Single-file bundles embed accessibility data as hidden JSON:
96
+
97
+ ```html
98
+ <script type="application/json" id="kitfly-content-index">
99
+ { ... content index ... }
100
+ </script>
101
+ <script type="application/json" id="kitfly-raw-markdown">
102
+ { "guide/getting-started": "# Getting Started\n...", ... }
103
+ </script>
104
+ ```
105
+
106
+ ### Opt-Out for Size-Sensitive Use Cases
107
+
108
+ The `--no-raw` flag disables raw markdown for smaller output:
109
+
110
+ ```bash
111
+ kitfly build --no-raw # No _raw/ directory
112
+ kitfly bundle --no-raw # No embedded raw markdown
113
+ ```
114
+
115
+ Content index and llms.txt are always generated (minimal overhead).
116
+
117
+ ## Agent Consumption Pattern
118
+
119
+ An AI agent discovering a kitfly site:
120
+
121
+ 1. Fetch `/llms.txt` to understand the site
122
+ 2. Fetch `/content-index.json` for full page inventory
123
+ 3. Fetch raw markdown from `/_raw/{path}.md` for content
124
+ 4. Fall back to HTML parsing only if raw unavailable
125
+
126
+ ## Consequences
127
+
128
+ ### Positive
129
+
130
+ - Agents can efficiently consume kitfly sites
131
+ - Raw markdown preserves frontmatter and original formatting
132
+ - Structured index enables smart navigation
133
+ - Standard paths work across all kitfly sites
134
+ - Minimal size overhead (JSON index + optional raw copies)
135
+
136
+ ### Negative
137
+
138
+ - Slightly larger build output (mitigated by `--no-raw`)
139
+ - Raw markdown exposes source (acceptable for docs)
140
+
141
+ ### Neutral
142
+
143
+ - Agents may still parse HTML for sites without llms.txt
144
+ - Convention is emerging, not yet universal
145
+
146
+ ## Compliance
147
+
148
+ All kitfly builds must generate `content-index.json` and `llms.txt`. Raw markdown is on by default but can be disabled.
149
+
150
+ ## References
151
+
152
+ - [llms.txt specification](https://llmstxt.org/)
153
+ - [ADR-0001: Minimalist Site Code](ADR-0001-minimalist-site-code.md)