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.
- package/CHANGELOG.md +34 -0
- package/README.md +63 -16
- package/VERSION +1 -1
- package/dist/_raw/content/deployment/preflight.md +134 -0
- package/dist/_raw/content/deployment/recipes/aws-s3.md +128 -0
- package/dist/_raw/content/deployment/recipes/cloudflare-pages.md +73 -0
- package/dist/_raw/content/deployment/recipes/cloudflare-r2.md +156 -0
- package/dist/_raw/content/deployment/recipes/fly-io.md +57 -0
- package/dist/_raw/content/deployment/recipes/github-pages.md +112 -0
- package/dist/_raw/content/deployment/recipes/netlify.md +99 -0
- package/dist/_raw/content/deployment/recipes/vercel.md +88 -0
- package/dist/_raw/content/deployment/secrets-and-env-vars.md +75 -0
- package/dist/_raw/content/deployment.md +128 -0
- package/dist/_raw/content/guide/approaches.md +182 -0
- package/dist/_raw/content/guide/features.md +121 -0
- package/dist/_raw/content/guide/getting-started.md +112 -0
- package/dist/_raw/content/guide/kitfly-overview.md +209 -0
- package/dist/_raw/content/reference/configuration.md +259 -0
- package/dist/_raw/content/reference/design-catalog.md +167 -0
- package/dist/_raw/content/reference/environment-variables.md +66 -0
- package/dist/_raw/content/reference/glossary.md +92 -0
- package/dist/_raw/content/reference/key-concepts.md +118 -0
- package/dist/_raw/content/reference/plugins.md +220 -0
- package/dist/_raw/content/reference/structure.md +166 -0
- package/dist/_raw/content/reference.md +19 -0
- package/dist/_raw/content/templates/crucible.md +192 -0
- package/dist/_raw/content/templates/handbook.md +83 -0
- package/dist/_raw/content/templates/minimal.md +138 -0
- package/dist/_raw/content/templates/overview.md +187 -0
- package/dist/_raw/content/templates/pipeline.md +151 -0
- package/dist/_raw/content/templates/productbook.md +187 -0
- package/dist/_raw/content/templates/runbook.md +193 -0
- package/dist/_raw/content/templates/servicebook.md +163 -0
- package/dist/_raw/docs/decisions/ADR-0001-minimalist-site-code.md +118 -0
- package/dist/_raw/docs/decisions/ADR-0002-ai-accessibility.md +153 -0
- package/dist/_raw/docs/decisions/ADR-0003-single-file-bundle.md +93 -0
- package/dist/_raw/docs/decisions/ADR-0004-bun-runtime.md +98 -0
- package/dist/_raw/docs/decisions/ADR-0005-plugin-contract-and-distribution.md +110 -0
- package/dist/_raw/docs/decisions/DDR-0001-viewport-locked-layout.md +111 -0
- package/dist/_raw/docs/decisions/DDR-0002-theme-system.md +131 -0
- package/dist/_raw/docs/decisions/DDR-0003-bounded-logo-slot.md +106 -0
- package/dist/_raw/docs/decisions/DDR-0004-slides-rendering-model.md +113 -0
- package/dist/_raw/docs/decisions/DDR-0005-deterministic-layout-boundary.md +107 -0
- package/dist/_raw/docs/userguide/cli/build.md +85 -0
- package/dist/_raw/docs/userguide/cli/bundle.md +81 -0
- package/dist/_raw/docs/userguide/cli/dev.md +92 -0
- package/dist/_raw/docs/userguide/cli/init.md +116 -0
- package/dist/_raw/docs/userguide/cli/servers.md +69 -0
- package/dist/_raw/docs/userguide/cli/stop.md +76 -0
- package/dist/_raw/docs/userguide/cli/update.md +78 -0
- package/dist/_raw/docs/userguide/cli/version.md +65 -0
- package/dist/_raw/docs/userguide/cli.md +34 -0
- package/dist/_raw/docs/userguide/sharing.md +94 -0
- package/dist/_raw/schemas/plugin-schemas-notes.md +71 -0
- package/dist/_raw/schemas.md +42 -0
- package/dist/assets/brand/kitfly-favicon-32.png +0 -0
- package/dist/assets/brand/kitfly-icon-64.png +0 -0
- package/dist/assets/brand/kitfly-logo-128.png +0 -0
- package/dist/assets/brand/kitfly-logo-512.png +0 -0
- package/dist/assets/brand/kitfly-logo.svg +12132 -0
- package/dist/assets/brand/kitfly-neon-128.png +0 -0
- package/dist/assets/brand/kitfly-neon-192.png +0 -0
- package/dist/assets/brand/kitfly-neon-256.png +0 -0
- package/dist/assets/brand/kitfly-neon.png +0 -0
- package/dist/assets/brand/palette.md +75 -0
- package/dist/content/deployment/index.html +11 -0
- package/dist/content/deployment/preflight.html +418 -0
- package/dist/content/deployment/recipes/aws-s3.html +421 -0
- package/dist/content/deployment/recipes/cloudflare-pages.html +372 -0
- package/dist/content/deployment/recipes/cloudflare-r2.html +443 -0
- package/dist/content/deployment/recipes/fly-io.html +356 -0
- package/dist/content/deployment/recipes/github-pages.html +414 -0
- package/dist/content/deployment/recipes/index.html +11 -0
- package/dist/content/deployment/recipes/netlify.html +394 -0
- package/dist/content/deployment/recipes/vercel.html +382 -0
- package/dist/content/deployment/secrets-and-env-vars.html +380 -0
- package/dist/content/deployment.html +426 -0
- package/dist/content/guide/approaches.html +501 -0
- package/dist/content/guide/features.html +436 -0
- package/dist/content/guide/getting-started.html +403 -0
- package/dist/content/guide/index.html +11 -0
- package/dist/content/guide/kitfly-overview.html +544 -0
- package/dist/content/index.html +11 -0
- package/dist/content/reference/configuration.html +580 -0
- package/dist/content/reference/design-catalog.html +449 -0
- package/dist/content/reference/environment-variables.html +367 -0
- package/dist/content/reference/glossary.html +368 -0
- package/dist/content/reference/index.html +11 -0
- package/dist/content/reference/key-concepts.html +399 -0
- package/dist/content/reference/plugins.html +491 -0
- package/dist/content/reference/structure.html +463 -0
- package/dist/content/reference.html +334 -0
- package/dist/content/templates/crucible.html +546 -0
- package/dist/content/templates/handbook.html +405 -0
- package/dist/content/templates/index.html +11 -0
- package/dist/content/templates/minimal.html +447 -0
- package/dist/content/templates/overview.html +558 -0
- package/dist/content/templates/pipeline.html +494 -0
- package/dist/content/templates/productbook.html +540 -0
- package/dist/content/templates/runbook.html +543 -0
- package/dist/content/templates/servicebook.html +523 -0
- package/dist/content-index.json +540 -0
- package/dist/docs/decisions/ADR-0001-minimalist-site-code.html +491 -0
- package/dist/docs/decisions/ADR-0002-ai-accessibility.html +434 -0
- package/dist/docs/decisions/ADR-0003-single-file-bundle.html +412 -0
- package/dist/docs/decisions/ADR-0004-bun-runtime.html +409 -0
- package/dist/docs/decisions/ADR-0005-plugin-contract-and-distribution.html +402 -0
- package/dist/docs/decisions/DDR-0001-viewport-locked-layout.html +459 -0
- package/dist/docs/decisions/DDR-0002-theme-system.html +452 -0
- package/dist/docs/decisions/DDR-0003-bounded-logo-slot.html +423 -0
- package/dist/docs/decisions/DDR-0004-slides-rendering-model.html +399 -0
- package/dist/docs/decisions/DDR-0005-deterministic-layout-boundary.html +422 -0
- package/dist/docs/decisions/index.html +11 -0
- package/dist/docs/userguide/cli/build.html +408 -0
- package/dist/docs/userguide/cli/bundle.html +419 -0
- package/dist/docs/userguide/cli/dev.html +428 -0
- package/dist/docs/userguide/cli/index.html +11 -0
- package/dist/docs/userguide/cli/init.html +436 -0
- package/dist/docs/userguide/cli/servers.html +393 -0
- package/dist/docs/userguide/cli/stop.html +408 -0
- package/dist/docs/userguide/cli/update.html +406 -0
- package/dist/docs/userguide/cli/version.html +406 -0
- package/dist/docs/userguide/cli.html +386 -0
- package/dist/docs/userguide/index.html +11 -0
- package/dist/docs/userguide/sharing.html +465 -0
- package/dist/index.html +387 -0
- package/dist/llms.txt +18 -0
- package/dist/provenance.json +7 -0
- package/dist/schemas/index.html +11 -0
- package/dist/schemas/plugin-registry.schema.html +327 -0
- package/dist/schemas/plugin-schemas-notes.html +364 -0
- package/dist/schemas/plugin.schema.html +327 -0
- package/dist/schemas/plugins.schema.html +327 -0
- package/dist/schemas/v0/common.schema.html +386 -0
- package/dist/schemas/v0/index.html +11 -0
- package/dist/schemas/v0/plugin-registry.schema.html +547 -0
- package/dist/schemas/v0/plugin.schema.html +497 -0
- package/dist/schemas/v0/plugins.schema.html +406 -0
- package/dist/schemas/v0/site.schema.html +541 -0
- package/dist/schemas/v0/theme.schema.html +615 -0
- package/dist/schemas.html +351 -0
- package/dist/styles.css +1262 -0
- package/package.json +4 -2
- package/plugins-dist/callouts.css +32 -0
- package/plugins-dist/callouts.js +46 -0
- package/plugins-dist/slides-visuals.css +224 -0
- package/plugins-dist/slides-visuals.js +598 -0
- package/registry/plugins.yaml +35 -0
- package/schemas/README.md +10 -0
- package/schemas/plugin-registry.schema.json +5 -0
- package/schemas/plugin-schemas-notes.md +71 -0
- package/schemas/plugin.schema.json +5 -0
- package/schemas/plugins.schema.json +5 -0
- package/schemas/v0/common.schema.json +64 -0
- package/schemas/v0/plugin-registry.schema.json +225 -0
- package/schemas/v0/plugin.schema.json +175 -0
- package/schemas/v0/plugins.schema.json +84 -0
- package/schemas/v0/site.schema.json +56 -9
- package/schemas/v0/theme.schema.json +105 -22
- package/scripts/build.ts +155 -3
- package/scripts/bundle.ts +258 -95
- package/scripts/dev.ts +203 -1
- package/src/__tests__/build.test.ts +158 -1
- package/src/__tests__/bundle.test.ts +31 -0
- package/src/__tests__/cli.test.ts +14 -3
- package/src/__tests__/fixtures/fences/slides-visuals/invalid/bad-list-indent.md +5 -0
- package/src/__tests__/fixtures/fences/slides-visuals/invalid/blank-line.md +5 -0
- package/src/__tests__/fixtures/fences/slides-visuals/invalid/compare-object-items.md +9 -0
- package/src/__tests__/fixtures/fences/slides-visuals/invalid/indented-fence.md +4 -0
- package/src/__tests__/fixtures/fences/slides-visuals/invalid/stat-grid-missing-fields.md +5 -0
- package/src/__tests__/fixtures/fences/slides-visuals/invalid/unknown-type.md +3 -0
- package/src/__tests__/fixtures/fences/slides-visuals/valid/compare.md +10 -0
- package/src/__tests__/fixtures/fences/slides-visuals/valid/comparison-table.md +14 -0
- package/src/__tests__/fixtures/fences/slides-visuals/valid/funnel.md +7 -0
- package/src/__tests__/fixtures/fences/slides-visuals/valid/kpi.md +5 -0
- package/src/__tests__/fixtures/fences/slides-visuals/valid/layer-cake.md +6 -0
- package/src/__tests__/fixtures/fences/slides-visuals/valid/pyramid.md +6 -0
- package/src/__tests__/fixtures/fences/slides-visuals/valid/quadrant-grid.md +8 -0
- package/src/__tests__/fixtures/fences/slides-visuals/valid/scorecard.md +13 -0
- package/src/__tests__/fixtures/fences/slides-visuals/valid/stat-grid.md +8 -0
- package/src/__tests__/init.test.ts +35 -0
- package/src/__tests__/plugin-loader.test.ts +221 -0
- package/src/__tests__/shared.test.ts +428 -0
- package/src/__tests__/slides-visuals-fence-contract.test.ts +28 -0
- package/src/__tests__/slides-visuals-runtime-regressions.bun.test.ts +114 -0
- package/src/__tests__/styles.test.ts +35 -0
- package/src/cli.ts +9 -4
- package/src/plugin-loader.ts +245 -0
- package/src/shared.ts +614 -7
- package/src/site/styles.css +331 -0
- package/src/site/template.html +66 -5
- package/src/templates/deck.ts +186 -0
- package/src/templates/driver.ts +11 -1
- 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)
|