kitfly 0.2.1 → 0.2.4
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 +79 -0
- package/README.md +38 -21
- package/VERSION +1 -1
- package/dist/_raw/content/guide/branding.md +146 -0
- package/dist/_raw/content/guide/data-driven-content.md +204 -0
- package/dist/_raw/content/reference/configuration.md +145 -7
- package/dist/_raw/content/reference/environment-variables.md +26 -1
- package/dist/_raw/content/reference/gantt-widget.md +468 -0
- package/dist/_raw/content/reference/glossary.md +25 -1
- package/dist/_raw/content/reference/key-concepts.md +30 -2
- package/dist/_raw/content/reference/plugins.md +170 -1
- package/dist/_raw/docs/decisions/ADR-0006-data-driven-content.md +350 -0
- package/dist/content/deployment/preflight.html +11 -8
- package/dist/content/deployment/recipes/aws-s3.html +11 -8
- package/dist/content/deployment/recipes/cloudflare-pages.html +11 -8
- package/dist/content/deployment/recipes/cloudflare-r2.html +11 -8
- package/dist/content/deployment/recipes/fly-io.html +11 -8
- package/dist/content/deployment/recipes/github-pages.html +11 -8
- package/dist/content/deployment/recipes/netlify.html +11 -8
- package/dist/content/deployment/recipes/vercel.html +11 -8
- package/dist/content/deployment/secrets-and-env-vars.html +11 -8
- package/dist/content/deployment.html +11 -8
- package/dist/content/guide/approaches.html +11 -8
- package/dist/content/guide/branding.html +509 -0
- package/dist/content/guide/data-driven-content.html +542 -0
- package/dist/content/guide/features.html +11 -8
- package/dist/content/guide/getting-started.html +11 -8
- package/dist/content/guide/kitfly-overview.html +11 -8
- package/dist/content/reference/configuration.html +136 -11
- package/dist/content/reference/design-catalog.html +11 -8
- package/dist/content/reference/environment-variables.html +51 -10
- package/dist/content/reference/gantt-widget.html +899 -0
- package/dist/content/reference/glossary.html +25 -10
- package/dist/content/reference/key-concepts.html +34 -11
- package/dist/content/reference/plugins.html +261 -10
- package/dist/content/reference/slides-authoring-guidelines.html +11 -8
- package/dist/content/reference/structure.html +11 -8
- package/dist/content/reference.html +11 -8
- package/dist/content/templates/crucible.html +11 -8
- package/dist/content/templates/handbook.html +11 -8
- package/dist/content/templates/minimal.html +11 -8
- package/dist/content/templates/overview.html +11 -8
- package/dist/content/templates/pipeline.html +11 -8
- package/dist/content/templates/productbook.html +11 -8
- package/dist/content/templates/runbook.html +11 -8
- package/dist/content/templates/servicebook.html +11 -8
- package/dist/content-index.json +37 -2
- package/dist/docs/decisions/ADR-0001-minimalist-site-code.html +11 -8
- package/dist/docs/decisions/ADR-0002-ai-accessibility.html +11 -8
- package/dist/docs/decisions/ADR-0003-single-file-bundle.html +11 -8
- package/dist/docs/decisions/ADR-0004-bun-runtime.html +11 -8
- package/dist/docs/decisions/ADR-0005-plugin-contract-and-distribution.html +11 -8
- package/dist/docs/decisions/ADR-0006-data-driven-content.html +751 -0
- package/dist/docs/decisions/DDR-0001-viewport-locked-layout.html +11 -8
- package/dist/docs/decisions/DDR-0002-theme-system.html +11 -8
- package/dist/docs/decisions/DDR-0003-bounded-logo-slot.html +11 -8
- package/dist/docs/decisions/DDR-0004-slides-rendering-model.html +11 -8
- package/dist/docs/decisions/DDR-0005-deterministic-layout-boundary.html +11 -8
- package/dist/docs/userguide/cli/build.html +11 -8
- package/dist/docs/userguide/cli/bundle.html +11 -8
- package/dist/docs/userguide/cli/dev.html +11 -8
- package/dist/docs/userguide/cli/init.html +11 -8
- package/dist/docs/userguide/cli/servers.html +11 -8
- package/dist/docs/userguide/cli/stop.html +11 -8
- package/dist/docs/userguide/cli/update.html +11 -8
- package/dist/docs/userguide/cli/version.html +11 -8
- package/dist/docs/userguide/cli.html +11 -8
- package/dist/docs/userguide/sharing.html +11 -8
- package/dist/index.html +11 -8
- package/dist/llms.txt +3 -3
- package/dist/provenance.json +4 -5
- package/dist/reports/license-inventory.csv +199 -0
- package/dist/schemas/plugin-registry.schema.html +11 -8
- package/dist/schemas/plugin-schemas-notes.html +11 -8
- package/dist/schemas/plugin.schema.html +11 -8
- package/dist/schemas/plugins.schema.html +11 -8
- package/dist/schemas/v0/common.schema.html +15 -12
- package/dist/schemas/v0/plugin-registry.schema.html +14 -11
- package/dist/schemas/v0/plugin.schema.html +14 -11
- package/dist/schemas/v0/plugins.schema.html +14 -11
- package/dist/schemas/v0/site.schema.html +68 -9
- package/dist/schemas/v0/theme.schema.html +22 -19
- package/dist/schemas.html +11 -8
- package/dist/styles.css +39 -4
- package/package.json +1 -1
- package/plugins-dist/latex-runtime.js +140 -0
- package/plugins-dist/latex.js +178 -0
- package/plugins-dist/planning-visuals.css +261 -0
- package/plugins-dist/planning-visuals.js +669 -0
- package/plugins-dist/slides-charts-lite-runtime.js +179 -0
- package/plugins-dist/slides-charts-lite.js +198 -0
- package/registry/plugins.yaml +40 -1
- package/schemas/v0/site.schema.json +56 -0
- package/scripts/build-all.ts +5 -0
- package/scripts/build.ts +264 -80
- package/scripts/bundle.ts +188 -17
- package/scripts/dev.ts +294 -171
- package/scripts/embed-docs.ts +119 -0
- package/src/__tests__/brief.test.ts +151 -0
- package/src/__tests__/build.test.ts +293 -1
- package/src/__tests__/bundle.test.ts +195 -0
- package/src/__tests__/docs.test.ts +117 -0
- package/src/__tests__/fixtures/fences/planning-visuals/invalid/bad-month-format.md +10 -0
- package/src/__tests__/fixtures/fences/planning-visuals/invalid/marker-format-mismatch.md +13 -0
- package/src/__tests__/fixtures/fences/planning-visuals/invalid/milestone-format-mismatch.md +13 -0
- package/src/__tests__/fixtures/fences/planning-visuals/invalid/missing-tracks.md +5 -0
- package/src/__tests__/fixtures/fences/planning-visuals/invalid/track-reversed.md +10 -0
- package/src/__tests__/fixtures/fences/planning-visuals/valid/markers-basic.md +15 -0
- package/src/__tests__/fixtures/fences/planning-visuals/valid/markers-no-milestones.md +13 -0
- package/src/__tests__/fixtures/fences/planning-visuals/valid/month-basic.md +16 -0
- package/src/__tests__/fixtures/fences/planning-visuals/valid/no-milestones.md +10 -0
- package/src/__tests__/fixtures/fences/planning-visuals/valid/week-basic.md +20 -0
- package/src/__tests__/init.test.ts +51 -2
- package/src/__tests__/latex-runtime.bun.test.ts +35 -0
- package/src/__tests__/planning-visuals-fence-contract.test.ts +28 -0
- package/src/__tests__/planning-visuals-runtime-regressions.bun.test.ts +68 -0
- package/src/__tests__/planning-visuals-runtime.bun.test.ts +192 -0
- package/src/__tests__/shared.test.ts +719 -1
- package/src/__tests__/slides-charts-lite-runtime.bun.test.ts +45 -0
- package/src/cli.ts +124 -22
- package/src/commands/docs.ts +71 -0
- package/src/commands/init.ts +1 -1
- package/src/generated/embedded-docs.ts +2384 -0
- package/src/server-registry.ts +50 -10
- package/src/shared.ts +1174 -43
- package/src/site/styles.css +39 -4
- package/src/site/template.html +5 -2
- package/src/templates/brief.ts +486 -0
- package/src/templates/deck.ts +59 -0
- package/src/templates/driver.ts +46 -13
- package/src/templates/handbook.ts +32 -0
- package/src/templates/runbook.ts +32 -0
package/src/templates/driver.ts
CHANGED
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
import { mkdir, readFile, writeFile } from "node:fs/promises";
|
|
12
12
|
import { dirname, join } from "node:path";
|
|
13
13
|
import { fileURLToPath } from "node:url";
|
|
14
|
+
import { brief } from "./brief.ts";
|
|
14
15
|
import { crucible } from "./crucible.ts";
|
|
15
16
|
import { deck } from "./deck.ts";
|
|
16
17
|
import { handbook } from "./handbook.ts";
|
|
@@ -56,6 +57,7 @@ export function listTemplates(): TemplateDef[] {
|
|
|
56
57
|
registerTemplate(minimal);
|
|
57
58
|
registerTemplate(deck);
|
|
58
59
|
registerTemplate(handbook);
|
|
60
|
+
registerTemplate(brief);
|
|
59
61
|
registerTemplate(pipeline);
|
|
60
62
|
registerTemplate(productbook);
|
|
61
63
|
registerTemplate(runbook);
|
|
@@ -499,6 +501,7 @@ function generateAgentsMd(ctx: TemplateContext): string {
|
|
|
499
501
|
const isProductbook = templateType === "productbook";
|
|
500
502
|
const isServicebook = templateType === "servicebook";
|
|
501
503
|
const isCrucible = templateType === "crucible";
|
|
504
|
+
const isBrief = templateType === "brief";
|
|
502
505
|
|
|
503
506
|
const typeLabel = isCrucible
|
|
504
507
|
? "information architecture SSOT"
|
|
@@ -506,11 +509,13 @@ function generateAgentsMd(ctx: TemplateContext): string {
|
|
|
506
509
|
? "professional services catalog"
|
|
507
510
|
: isProductbook
|
|
508
511
|
? "product and domain documentation site"
|
|
509
|
-
:
|
|
510
|
-
? "
|
|
511
|
-
:
|
|
512
|
-
? "
|
|
513
|
-
:
|
|
512
|
+
: isBrief
|
|
513
|
+
? "external audience brief"
|
|
514
|
+
: isPipeline
|
|
515
|
+
? "pipeline operations site"
|
|
516
|
+
: templateType === "runbook"
|
|
517
|
+
? "runbook"
|
|
518
|
+
: "documentation site";
|
|
514
519
|
|
|
515
520
|
return `# ${ctx.branding.siteName} - AI Agent Guide
|
|
516
521
|
|
|
@@ -596,8 +601,28 @@ ${
|
|
|
596
601
|
### Guides
|
|
597
602
|
- Write for the audience (team member vs end user)
|
|
598
603
|
- Start with what they need to know first`
|
|
599
|
-
:
|
|
600
|
-
? `###
|
|
604
|
+
: isBrief
|
|
605
|
+
? `### Audience and Tone
|
|
606
|
+
- Write for external readers evaluating or onboarding
|
|
607
|
+
- Keep tone **informational and professional**
|
|
608
|
+
- Avoid internal jargon and sales-heavy language
|
|
609
|
+
|
|
610
|
+
### Product and Capabilities
|
|
611
|
+
- Explain what it is, who it serves, and why it matters
|
|
612
|
+
- Focus on customer outcomes before implementation details
|
|
613
|
+
- Use concise tables for capabilities and differentiators
|
|
614
|
+
|
|
615
|
+
### Use Cases
|
|
616
|
+
- Structure each use case as **problem -> solution -> outcome**
|
|
617
|
+
- Include before/after metrics where possible
|
|
618
|
+
- Keep customer profile language specific and clear
|
|
619
|
+
|
|
620
|
+
### Getting Started and Reference
|
|
621
|
+
- Document prerequisites and integration requirements as checklists
|
|
622
|
+
- Provide realistic onboarding timelines and phase definitions
|
|
623
|
+
- Keep architecture, FAQ, and contacts current and easy to scan`
|
|
624
|
+
: isPipeline
|
|
625
|
+
? `### Pipeline Stages
|
|
601
626
|
- Start with **Objective** (what this stage accomplishes)
|
|
602
627
|
- List **Prerequisites** as checkboxes
|
|
603
628
|
- Number **Steps** explicitly with verification
|
|
@@ -618,8 +643,8 @@ ${
|
|
|
618
643
|
- Use checkbox format: \`- [ ] Item\`
|
|
619
644
|
- Group by phase or category
|
|
620
645
|
- Include Go/No-Go decision point`
|
|
621
|
-
|
|
622
|
-
|
|
646
|
+
: isOperational
|
|
647
|
+
? `### Procedures
|
|
623
648
|
- Start with **Objective** (what this accomplishes)
|
|
624
649
|
- List **Prerequisites** as checkboxes
|
|
625
650
|
- Number **Steps** explicitly with verification
|
|
@@ -636,7 +661,7 @@ ${
|
|
|
636
661
|
- Use checkbox format: \`- [ ] Item\`
|
|
637
662
|
- Group by phase or category
|
|
638
663
|
- Include Go/No-Go decision point`
|
|
639
|
-
|
|
664
|
+
: `### General Guidelines
|
|
640
665
|
- Use clear, descriptive headings
|
|
641
666
|
- Include code examples where helpful
|
|
642
667
|
- Link related content using relative paths
|
|
@@ -677,12 +702,18 @@ ${
|
|
|
677
702
|
- \`analyst\` - Research, data modeling, business process analysis
|
|
678
703
|
- \`devlead\` - Architecture, operations, implementation
|
|
679
704
|
- \`infoarch\` - Documentation structure, consistency`
|
|
680
|
-
:
|
|
681
|
-
? `Recommended roles for
|
|
705
|
+
: isBrief
|
|
706
|
+
? `Recommended roles for brief maintenance:
|
|
707
|
+
- \`infoarch\` - Information architecture, narrative clarity, external readability
|
|
708
|
+
- \`devlead\` - Technical accuracy for architecture, integrations, requirements
|
|
709
|
+
- \`advisor\` - Client-facing framing and stakeholder alignment
|
|
710
|
+
- \`prodstrat\` - Value proposition, audience fit, use-case quality`
|
|
711
|
+
: isOperational
|
|
712
|
+
? `Recommended roles for ${isPipeline ? "pipeline operations" : "runbook"} maintenance:
|
|
682
713
|
- \`devlead\` - Implementation, fixing procedures
|
|
683
714
|
- \`infoarch\` - Documentation structure, organization
|
|
684
715
|
- \`qa\` - Testing, validation, checklists`
|
|
685
|
-
|
|
716
|
+
: `Recommended roles for documentation:
|
|
686
717
|
- \`devlead\` - Technical content, code examples
|
|
687
718
|
- \`infoarch\` - Structure, navigation, organization
|
|
688
719
|
- \`prodmktg\` - Messaging, user-facing content`
|
|
@@ -727,6 +758,8 @@ async function addAiAssistInstrumentation(root: string, ctx: TemplateContext): P
|
|
|
727
758
|
relevantRoles.push("advisor.yaml", "analyst.yaml");
|
|
728
759
|
} else if (ctx.template.id === "productbook" || ctx.template.id === "servicebook") {
|
|
729
760
|
relevantRoles.push("prodstrat.yaml", "advisor.yaml", "analyst.yaml");
|
|
761
|
+
} else if (ctx.template.id === "brief") {
|
|
762
|
+
relevantRoles.push("prodstrat.yaml", "advisor.yaml");
|
|
730
763
|
} else if (ctx.template.id !== "runbook" && ctx.template.id !== "pipeline") {
|
|
731
764
|
relevantRoles.push("prodmktg.yaml");
|
|
732
765
|
}
|
|
@@ -326,8 +326,40 @@ Place images in \`assets/\` and reference them:
|
|
|
326
326
|
| Asset | Location | Recommended Size |
|
|
327
327
|
|-------|----------|------------------|
|
|
328
328
|
| Logo | \`assets/brand/logo.png\` | 200x50px (or SVG) |
|
|
329
|
+
| Logo (dark) | \`assets/brand/logo-dark.png\` | Same as logo, for dark backgrounds |
|
|
329
330
|
| Favicon | \`assets/brand/favicon.ico\` | 32x32px |
|
|
330
331
|
| Social image | \`assets/brand/social.png\` | 1200x630px |
|
|
332
|
+
| Footer logo | \`assets/brand/footer-logo.png\` | Max height 20px |
|
|
333
|
+
|
|
334
|
+
### Header Logo
|
|
335
|
+
|
|
336
|
+
Single logo — kitfly auto-adjusts brightness in dark mode:
|
|
337
|
+
|
|
338
|
+
\`\`\`yaml
|
|
339
|
+
brand:
|
|
340
|
+
logo: "assets/brand/logo.png"
|
|
341
|
+
\`\`\`
|
|
342
|
+
|
|
343
|
+
Light + dark variants — no automatic filters applied:
|
|
344
|
+
|
|
345
|
+
\`\`\`yaml
|
|
346
|
+
brand:
|
|
347
|
+
logo: "assets/brand/logo.png"
|
|
348
|
+
logoDark: "assets/brand/logo-dark.png"
|
|
349
|
+
\`\`\`
|
|
350
|
+
|
|
351
|
+
### Footer Logo
|
|
352
|
+
|
|
353
|
+
Add a separate logo to the footer ribbon (e.g. a parent company or client logo):
|
|
354
|
+
|
|
355
|
+
\`\`\`yaml
|
|
356
|
+
footer:
|
|
357
|
+
logo: "assets/brand/footer-logo.png"
|
|
358
|
+
logoUrl: "https://example.com" # optional link
|
|
359
|
+
logoAlt: "Company Name" # optional alt text
|
|
360
|
+
logoHeight: 20 # optional max height in px
|
|
361
|
+
logoDark: "assets/brand/footer-logo-dark.png" # optional dark variant
|
|
362
|
+
\`\`\`
|
|
331
363
|
|
|
332
364
|
## Getting Help
|
|
333
365
|
|
package/src/templates/runbook.ts
CHANGED
|
@@ -714,7 +714,39 @@ footer:
|
|
|
714
714
|
| Asset | Location | Recommended Size |
|
|
715
715
|
|-------|----------|------------------|
|
|
716
716
|
| Logo | \`assets/brand/logo.png\` | 200x50px (or SVG) |
|
|
717
|
+
| Logo (dark) | \`assets/brand/logo-dark.png\` | Same as logo, for dark backgrounds |
|
|
717
718
|
| Favicon | \`assets/brand/favicon.ico\` | 32x32px |
|
|
719
|
+
| Footer logo | \`assets/brand/footer-logo.png\` | Max height 20px |
|
|
720
|
+
|
|
721
|
+
### Header Logo
|
|
722
|
+
|
|
723
|
+
Single logo — kitfly auto-adjusts brightness in dark mode:
|
|
724
|
+
|
|
725
|
+
\`\`\`yaml
|
|
726
|
+
brand:
|
|
727
|
+
logo: "assets/brand/logo.png"
|
|
728
|
+
\`\`\`
|
|
729
|
+
|
|
730
|
+
Light + dark variants — no automatic filters applied:
|
|
731
|
+
|
|
732
|
+
\`\`\`yaml
|
|
733
|
+
brand:
|
|
734
|
+
logo: "assets/brand/logo.png"
|
|
735
|
+
logoDark: "assets/brand/logo-dark.png"
|
|
736
|
+
\`\`\`
|
|
737
|
+
|
|
738
|
+
### Footer Logo
|
|
739
|
+
|
|
740
|
+
Add a separate logo to the footer ribbon (e.g. a parent company or client logo):
|
|
741
|
+
|
|
742
|
+
\`\`\`yaml
|
|
743
|
+
footer:
|
|
744
|
+
logo: "assets/brand/footer-logo.png"
|
|
745
|
+
logoUrl: "https://example.com" # optional link
|
|
746
|
+
logoAlt: "Company Name" # optional alt text
|
|
747
|
+
logoHeight: 20 # optional max height in px
|
|
748
|
+
logoDark: "assets/brand/footer-logo-dark.png" # optional dark variant
|
|
749
|
+
\`\`\`
|
|
718
750
|
|
|
719
751
|
## Adding Content
|
|
720
752
|
|