@open-agent-toolkit/cli 0.2.4 → 0.2.6
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/assets/docs/cli-utilities/configuration.md +40 -0
- package/assets/docs/cli-utilities/tool-packs.md +31 -0
- package/assets/docs/workflows/projects/artifacts.md +27 -0
- package/assets/docs/workflows/projects/implementation-execution.md +30 -5
- package/assets/docs/workflows/skills/explainer-kit.md +125 -0
- package/assets/docs/workflows/skills/index.md +4 -0
- package/assets/migration/pjm-restructure.md +12 -0
- package/assets/public-package-versions.json +4 -4
- package/assets/skills/explainer-kit/SKILL.md +95 -0
- package/assets/skills/explainer-kit/examples/project-explainer/content.md +31 -0
- package/assets/skills/explainer-kit/examples/project-explainer/fact-base.md +22 -0
- package/assets/skills/explainer-kit/examples/project-recap/content.md +34 -0
- package/assets/skills/explainer-kit/examples/project-recap/fact-base.md +22 -0
- package/assets/skills/explainer-kit/examples/theme-bundle.json +87 -0
- package/assets/skills/explainer-kit/palettes/ember.json +37 -0
- package/assets/skills/explainer-kit/palettes/forest.json +37 -0
- package/assets/skills/explainer-kit/palettes/neutral.json +37 -0
- package/assets/skills/explainer-kit/palettes/ocean.json +37 -0
- package/assets/skills/explainer-kit/palettes/violet.json +37 -0
- package/assets/skills/explainer-kit/profiles/clean.json +42 -0
- package/assets/skills/explainer-kit/profiles/editorial.json +42 -0
- package/assets/skills/explainer-kit/profiles/technical.json +39 -0
- package/assets/skills/explainer-kit/recipes/engineer-tour.json +33 -0
- package/assets/skills/explainer-kit/recipes/program-recap.json +34 -0
- package/assets/skills/explainer-kit/recipes/project-explainer.json +33 -0
- package/assets/skills/explainer-kit/recipes/project-recap.json +34 -0
- package/assets/skills/explainer-kit/references/contracts.md +101 -0
- package/assets/skills/explainer-kit/references/destination-contract.md +94 -0
- package/assets/skills/explainer-kit/references/extension-contract.md +71 -0
- package/assets/skills/explainer-kit/references/fact-base-contract.md +119 -0
- package/assets/skills/explainer-kit/schemas/build-record.schema.json +92 -0
- package/assets/skills/explainer-kit/schemas/durability-evidence.schema.json +53 -0
- package/assets/skills/explainer-kit/schemas/fact-base.schema.json +129 -0
- package/assets/skills/explainer-kit/schemas/manifest.schema.json +193 -0
- package/assets/skills/explainer-kit/schemas/publish-receipt.schema.json +97 -0
- package/assets/skills/explainer-kit/schemas/publish-request.schema.json +32 -0
- package/assets/skills/explainer-kit/schemas/run-request.schema.json +132 -0
- package/assets/skills/explainer-kit/schemas/theme.schema.json +217 -0
- package/assets/skills/explainer-kit/scripts/lib/content-approval.mjs +180 -0
- package/assets/skills/explainer-kit/scripts/lib/contracts.mjs +680 -0
- package/assets/skills/explainer-kit/scripts/lib/durability.mjs +538 -0
- package/assets/skills/explainer-kit/scripts/lib/fact-base.mjs +494 -0
- package/assets/skills/explainer-kit/scripts/lib/fs-safe.mjs +218 -0
- package/assets/skills/explainer-kit/scripts/lib/qa.mjs +512 -0
- package/assets/skills/explainer-kit/scripts/lib/recipes.mjs +289 -0
- package/assets/skills/explainer-kit/scripts/lib/records.mjs +231 -0
- package/assets/skills/explainer-kit/scripts/lib/render.mjs +485 -0
- package/assets/skills/explainer-kit/scripts/lib/s3-static.mjs +587 -0
- package/assets/skills/explainer-kit/scripts/lib/safe-paths.mjs +96 -0
- package/assets/skills/explainer-kit/scripts/lib/theme.mjs +332 -0
- package/assets/skills/explainer-kit/scripts/publish.mjs +76 -0
- package/assets/skills/explainer-kit/scripts/record-durability.mjs +64 -0
- package/assets/skills/explainer-kit/scripts/render-qa.mjs +273 -0
- package/assets/skills/explainer-kit/scripts/run.mjs +778 -0
- package/assets/skills/explainer-kit/scripts/validate.mjs +59 -0
- package/assets/skills/explainer-kit/templates/deck-shell.html +233 -0
- package/assets/skills/explainer-kit/templates/diagram-shell.html +219 -0
- package/assets/skills/explainer-kit/templates/engineer-tour.html +273 -0
- package/assets/skills/explainer-kit/templates/house-style.html +218 -0
- package/assets/skills/oat-explainer-kit/SKILL.md +92 -0
- package/assets/skills/oat-explainer-kit/references/config-contract.md +67 -0
- package/assets/skills/oat-explainer-kit/references/lifecycle-contract.md +143 -0
- package/assets/skills/oat-explainer-kit/references/migration.md +143 -0
- package/assets/skills/oat-explainer-kit/scripts/bind-project-sources.mjs +103 -0
- package/assets/skills/oat-explainer-kit/scripts/check-core.mjs +127 -0
- package/assets/skills/oat-explainer-kit/scripts/finalize-tracked-run.mjs +392 -0
- package/assets/skills/oat-explainer-kit/scripts/persist-intent.mjs +130 -0
- package/assets/skills/oat-explainer-kit/scripts/resolve-config.mjs +293 -0
- package/assets/skills/oat-explainer-kit/scripts/resolve-intent.mjs +209 -0
- package/assets/skills/oat-explainer-kit/scripts/resolve-paths.mjs +166 -0
- package/assets/skills/oat-explainer-kit/scripts/run.mjs +284 -0
- package/assets/skills/oat-project-autonomous/SKILL.md +22 -1
- package/assets/skills/oat-project-autonomous/references/gate-inventory.md +5 -1
- package/assets/skills/oat-project-complete/SKILL.md +166 -28
- package/assets/skills/oat-project-document/references/docs/autonomy-contract.md +5 -1
- package/assets/skills/oat-project-implement/SKILL.md +1 -1
- package/assets/skills/oat-project-implement/references/completion-and-closeout.md +84 -9
- package/assets/skills/oat-project-implement/references/docs/autonomy-contract.md +5 -1
- package/assets/skills/oat-project-next/SKILL.md +31 -11
- package/assets/skills/oat-project-plan/SKILL.md +30 -1
- package/assets/skills/oat-project-pr-final/references/docs/autonomy-contract.md +5 -1
- package/assets/skills/oat-project-quick-start/references/docs/autonomy-contract.md +5 -1
- package/assets/skills/oat-project-summary/SKILL.md +20 -1
- package/assets/templates/state.md +4 -1
- package/dist/commands/config/index.d.ts.map +1 -1
- package/dist/commands/config/index.js +232 -1
- package/dist/commands/init/tools/shared/skill-manifest.d.ts +2 -2
- package/dist/commands/init/tools/shared/skill-manifest.d.ts.map +1 -1
- package/dist/commands/init/tools/shared/skill-manifest.js +2 -0
- package/dist/commands/project/archive/archive-utils.d.ts +12 -0
- package/dist/commands/project/archive/archive-utils.d.ts.map +1 -1
- package/dist/commands/project/archive/archive-utils.js +320 -8
- package/dist/commands/project/archive/index.d.ts.map +1 -1
- package/dist/commands/project/archive/index.js +1 -0
- package/dist/commands/project/archive/push-runner.d.ts +1 -0
- package/dist/commands/project/archive/push-runner.d.ts.map +1 -1
- package/dist/commands/project/archive/push-runner.js +9 -2
- package/dist/config/oat-config.d.ts +26 -0
- package/dist/config/oat-config.d.ts.map +1 -1
- package/dist/config/oat-config.js +88 -0
- package/dist/config/resolve.d.ts.map +1 -1
- package/dist/config/resolve.js +18 -0
- package/dist/validation/project-state.d.ts +3 -0
- package/dist/validation/project-state.d.ts.map +1 -1
- package/dist/validation/project-state.js +91 -0
- package/package.json +2 -2
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": "explainer-kit.theme/v1",
|
|
3
|
+
"name": "neutral-clean",
|
|
4
|
+
"defaultMode": "light",
|
|
5
|
+
"modes": {
|
|
6
|
+
"light": {
|
|
7
|
+
"surface": {
|
|
8
|
+
"canvas": "#ffffff",
|
|
9
|
+
"panel": "#f3f4f6",
|
|
10
|
+
"elevated": "#e5e7eb"
|
|
11
|
+
},
|
|
12
|
+
"ink": { "primary": "#111827", "muted": "#4b5563", "inverse": "#ffffff" },
|
|
13
|
+
"accent": { "primary": "#374151", "secondary": "#4b5563" },
|
|
14
|
+
"status": {
|
|
15
|
+
"success": "#166534",
|
|
16
|
+
"warning": "#854d0e",
|
|
17
|
+
"danger": "#991b1b",
|
|
18
|
+
"info": "#1e40af"
|
|
19
|
+
},
|
|
20
|
+
"diagramSeries": ["#374151", "#1e40af", "#166534", "#854d0e"]
|
|
21
|
+
},
|
|
22
|
+
"dark": {
|
|
23
|
+
"surface": {
|
|
24
|
+
"canvas": "#111827",
|
|
25
|
+
"panel": "#1f2937",
|
|
26
|
+
"elevated": "#374151"
|
|
27
|
+
},
|
|
28
|
+
"ink": { "primary": "#f9fafb", "muted": "#d1d5db", "inverse": "#111827" },
|
|
29
|
+
"accent": { "primary": "#d1d5db", "secondary": "#e5e7eb" },
|
|
30
|
+
"status": {
|
|
31
|
+
"success": "#86efac",
|
|
32
|
+
"warning": "#fde047",
|
|
33
|
+
"danger": "#fca5a5",
|
|
34
|
+
"info": "#93c5fd"
|
|
35
|
+
},
|
|
36
|
+
"diagramSeries": ["#d1d5db", "#93c5fd", "#86efac", "#fde047"]
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
"provenance": {
|
|
40
|
+
"palette": "neutral",
|
|
41
|
+
"visualProfile": "clean",
|
|
42
|
+
"derived": false
|
|
43
|
+
},
|
|
44
|
+
"typography": {
|
|
45
|
+
"sans": ["system-ui", "-apple-system", "BlinkMacSystemFont", "sans-serif"],
|
|
46
|
+
"serif": ["ui-serif", "Georgia", "serif"],
|
|
47
|
+
"mono": ["ui-monospace", "SFMono-Regular", "Consolas", "monospace"],
|
|
48
|
+
"scale": {
|
|
49
|
+
"caption": "0.875rem",
|
|
50
|
+
"body": "1rem",
|
|
51
|
+
"title": "1.5rem",
|
|
52
|
+
"display": "2.25rem"
|
|
53
|
+
},
|
|
54
|
+
"lineHeight": { "caption": 1.4, "body": 1.6, "title": 1.25, "display": 1.1 }
|
|
55
|
+
},
|
|
56
|
+
"spacing": {
|
|
57
|
+
"unit": 4,
|
|
58
|
+
"scale": { "xs": 4, "sm": 8, "md": 16, "lg": 24, "xl": 40 }
|
|
59
|
+
},
|
|
60
|
+
"geometry": {
|
|
61
|
+
"radius": { "sm": 4, "md": 8, "lg": 12 },
|
|
62
|
+
"borderWidth": 1
|
|
63
|
+
},
|
|
64
|
+
"elevation": {
|
|
65
|
+
"shadows": {
|
|
66
|
+
"low": "0 1px 2px rgb(0 0 0 / 0.08)",
|
|
67
|
+
"high": "0 12px 28px rgb(0 0 0 / 0.16)"
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
"density": "comfortable",
|
|
71
|
+
"motion": {
|
|
72
|
+
"enabled": true,
|
|
73
|
+
"durationMs": { "fast": 120, "normal": 200, "slow": 320 },
|
|
74
|
+
"easing": {
|
|
75
|
+
"standard": "ease",
|
|
76
|
+
"emphasized": "cubic-bezier(0.2, 0, 0, 1)"
|
|
77
|
+
},
|
|
78
|
+
"reducedMotion": "disable-nonessential"
|
|
79
|
+
},
|
|
80
|
+
"diagrams": {
|
|
81
|
+
"lineWidth": 2,
|
|
82
|
+
"nodeGap": 32,
|
|
83
|
+
"arrowStyle": "straight",
|
|
84
|
+
"labelTreatment": "boxed"
|
|
85
|
+
},
|
|
86
|
+
"bundleHash": "sha256:7e7b935c2a6d1603fe4e9fb6bdd32859d3a8fc558db38a7b3289d78e8c1396b3"
|
|
87
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "ember",
|
|
3
|
+
"modes": {
|
|
4
|
+
"light": {
|
|
5
|
+
"surface": {
|
|
6
|
+
"canvas": "#fffbeb",
|
|
7
|
+
"panel": "#fef3c7",
|
|
8
|
+
"elevated": "#fde68a"
|
|
9
|
+
},
|
|
10
|
+
"ink": { "primary": "#451a03", "muted": "#713f12", "inverse": "#ffffff" },
|
|
11
|
+
"accent": { "primary": "#9a3412", "secondary": "#92400e" },
|
|
12
|
+
"status": {
|
|
13
|
+
"success": "#166534",
|
|
14
|
+
"warning": "#854d0e",
|
|
15
|
+
"danger": "#991b1b",
|
|
16
|
+
"info": "#1e40af"
|
|
17
|
+
},
|
|
18
|
+
"diagramSeries": ["#9a3412", "#92400e", "#166534", "#1e40af"]
|
|
19
|
+
},
|
|
20
|
+
"dark": {
|
|
21
|
+
"surface": {
|
|
22
|
+
"canvas": "#431407",
|
|
23
|
+
"panel": "#7c2d12",
|
|
24
|
+
"elevated": "#78350f"
|
|
25
|
+
},
|
|
26
|
+
"ink": { "primary": "#fff7ed", "muted": "#fed7aa", "inverse": "#431407" },
|
|
27
|
+
"accent": { "primary": "#fdba74", "secondary": "#fcd34d" },
|
|
28
|
+
"status": {
|
|
29
|
+
"success": "#86efac",
|
|
30
|
+
"warning": "#fde047",
|
|
31
|
+
"danger": "#fca5a5",
|
|
32
|
+
"info": "#93c5fd"
|
|
33
|
+
},
|
|
34
|
+
"diagramSeries": ["#fdba74", "#fcd34d", "#86efac", "#93c5fd"]
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "forest",
|
|
3
|
+
"modes": {
|
|
4
|
+
"light": {
|
|
5
|
+
"surface": {
|
|
6
|
+
"canvas": "#f7fee7",
|
|
7
|
+
"panel": "#ecfccb",
|
|
8
|
+
"elevated": "#d9f99d"
|
|
9
|
+
},
|
|
10
|
+
"ink": { "primary": "#052e16", "muted": "#365314", "inverse": "#ffffff" },
|
|
11
|
+
"accent": { "primary": "#166534", "secondary": "#3f6212" },
|
|
12
|
+
"status": {
|
|
13
|
+
"success": "#166534",
|
|
14
|
+
"warning": "#854d0e",
|
|
15
|
+
"danger": "#991b1b",
|
|
16
|
+
"info": "#1e40af"
|
|
17
|
+
},
|
|
18
|
+
"diagramSeries": ["#166534", "#3f6212", "#854d0e", "#1e40af"]
|
|
19
|
+
},
|
|
20
|
+
"dark": {
|
|
21
|
+
"surface": {
|
|
22
|
+
"canvas": "#052e16",
|
|
23
|
+
"panel": "#14532d",
|
|
24
|
+
"elevated": "#365314"
|
|
25
|
+
},
|
|
26
|
+
"ink": { "primary": "#f7fee7", "muted": "#d9f99d", "inverse": "#052e16" },
|
|
27
|
+
"accent": { "primary": "#86efac", "secondary": "#bef264" },
|
|
28
|
+
"status": {
|
|
29
|
+
"success": "#86efac",
|
|
30
|
+
"warning": "#fde047",
|
|
31
|
+
"danger": "#fca5a5",
|
|
32
|
+
"info": "#93c5fd"
|
|
33
|
+
},
|
|
34
|
+
"diagramSeries": ["#86efac", "#bef264", "#fde047", "#93c5fd"]
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "neutral",
|
|
3
|
+
"modes": {
|
|
4
|
+
"light": {
|
|
5
|
+
"surface": {
|
|
6
|
+
"canvas": "#ffffff",
|
|
7
|
+
"panel": "#f3f4f6",
|
|
8
|
+
"elevated": "#e5e7eb"
|
|
9
|
+
},
|
|
10
|
+
"ink": { "primary": "#111827", "muted": "#4b5563", "inverse": "#ffffff" },
|
|
11
|
+
"accent": { "primary": "#374151", "secondary": "#4b5563" },
|
|
12
|
+
"status": {
|
|
13
|
+
"success": "#166534",
|
|
14
|
+
"warning": "#854d0e",
|
|
15
|
+
"danger": "#991b1b",
|
|
16
|
+
"info": "#1e40af"
|
|
17
|
+
},
|
|
18
|
+
"diagramSeries": ["#374151", "#1e40af", "#166534", "#854d0e"]
|
|
19
|
+
},
|
|
20
|
+
"dark": {
|
|
21
|
+
"surface": {
|
|
22
|
+
"canvas": "#111827",
|
|
23
|
+
"panel": "#1f2937",
|
|
24
|
+
"elevated": "#374151"
|
|
25
|
+
},
|
|
26
|
+
"ink": { "primary": "#f9fafb", "muted": "#d1d5db", "inverse": "#111827" },
|
|
27
|
+
"accent": { "primary": "#d1d5db", "secondary": "#e5e7eb" },
|
|
28
|
+
"status": {
|
|
29
|
+
"success": "#86efac",
|
|
30
|
+
"warning": "#fde047",
|
|
31
|
+
"danger": "#fca5a5",
|
|
32
|
+
"info": "#93c5fd"
|
|
33
|
+
},
|
|
34
|
+
"diagramSeries": ["#d1d5db", "#93c5fd", "#86efac", "#fde047"]
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "ocean",
|
|
3
|
+
"modes": {
|
|
4
|
+
"light": {
|
|
5
|
+
"surface": {
|
|
6
|
+
"canvas": "#f8fafc",
|
|
7
|
+
"panel": "#e2e8f0",
|
|
8
|
+
"elevated": "#cbd5e1"
|
|
9
|
+
},
|
|
10
|
+
"ink": { "primary": "#0f172a", "muted": "#334155", "inverse": "#ffffff" },
|
|
11
|
+
"accent": { "primary": "#075985", "secondary": "#155e75" },
|
|
12
|
+
"status": {
|
|
13
|
+
"success": "#166534",
|
|
14
|
+
"warning": "#854d0e",
|
|
15
|
+
"danger": "#991b1b",
|
|
16
|
+
"info": "#075985"
|
|
17
|
+
},
|
|
18
|
+
"diagramSeries": ["#075985", "#155e75", "#166534", "#854d0e"]
|
|
19
|
+
},
|
|
20
|
+
"dark": {
|
|
21
|
+
"surface": {
|
|
22
|
+
"canvas": "#082f49",
|
|
23
|
+
"panel": "#0c4a6e",
|
|
24
|
+
"elevated": "#164e63"
|
|
25
|
+
},
|
|
26
|
+
"ink": { "primary": "#f0f9ff", "muted": "#bae6fd", "inverse": "#082f49" },
|
|
27
|
+
"accent": { "primary": "#7dd3fc", "secondary": "#67e8f9" },
|
|
28
|
+
"status": {
|
|
29
|
+
"success": "#86efac",
|
|
30
|
+
"warning": "#fde047",
|
|
31
|
+
"danger": "#fca5a5",
|
|
32
|
+
"info": "#bae6fd"
|
|
33
|
+
},
|
|
34
|
+
"diagramSeries": ["#7dd3fc", "#67e8f9", "#86efac", "#fde047"]
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "violet",
|
|
3
|
+
"modes": {
|
|
4
|
+
"light": {
|
|
5
|
+
"surface": {
|
|
6
|
+
"canvas": "#faf5ff",
|
|
7
|
+
"panel": "#f3e8ff",
|
|
8
|
+
"elevated": "#e9d5ff"
|
|
9
|
+
},
|
|
10
|
+
"ink": { "primary": "#2e1065", "muted": "#581c87", "inverse": "#ffffff" },
|
|
11
|
+
"accent": { "primary": "#6b21a8", "secondary": "#5b21b6" },
|
|
12
|
+
"status": {
|
|
13
|
+
"success": "#166534",
|
|
14
|
+
"warning": "#854d0e",
|
|
15
|
+
"danger": "#991b1b",
|
|
16
|
+
"info": "#1e40af"
|
|
17
|
+
},
|
|
18
|
+
"diagramSeries": ["#6b21a8", "#5b21b6", "#166534", "#854d0e"]
|
|
19
|
+
},
|
|
20
|
+
"dark": {
|
|
21
|
+
"surface": {
|
|
22
|
+
"canvas": "#2e1065",
|
|
23
|
+
"panel": "#4c1d95",
|
|
24
|
+
"elevated": "#581c87"
|
|
25
|
+
},
|
|
26
|
+
"ink": { "primary": "#faf5ff", "muted": "#e9d5ff", "inverse": "#2e1065" },
|
|
27
|
+
"accent": { "primary": "#d8b4fe", "secondary": "#c4b5fd" },
|
|
28
|
+
"status": {
|
|
29
|
+
"success": "#86efac",
|
|
30
|
+
"warning": "#fde047",
|
|
31
|
+
"danger": "#fca5a5",
|
|
32
|
+
"info": "#93c5fd"
|
|
33
|
+
},
|
|
34
|
+
"diagramSeries": ["#d8b4fe", "#c4b5fd", "#86efac", "#fde047"]
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "clean",
|
|
3
|
+
"typography": {
|
|
4
|
+
"sans": ["system-ui", "-apple-system", "BlinkMacSystemFont", "sans-serif"],
|
|
5
|
+
"serif": ["ui-serif", "Georgia", "serif"],
|
|
6
|
+
"mono": ["ui-monospace", "SFMono-Regular", "Consolas", "monospace"],
|
|
7
|
+
"scale": {
|
|
8
|
+
"caption": "0.875rem",
|
|
9
|
+
"body": "1rem",
|
|
10
|
+
"title": "1.5rem",
|
|
11
|
+
"display": "2.25rem"
|
|
12
|
+
},
|
|
13
|
+
"lineHeight": { "caption": 1.4, "body": 1.6, "title": 1.25, "display": 1.1 }
|
|
14
|
+
},
|
|
15
|
+
"spacing": {
|
|
16
|
+
"unit": 4,
|
|
17
|
+
"scale": { "xs": 4, "sm": 8, "md": 16, "lg": 24, "xl": 40 }
|
|
18
|
+
},
|
|
19
|
+
"geometry": { "radius": { "sm": 4, "md": 8, "lg": 12 }, "borderWidth": 1 },
|
|
20
|
+
"elevation": {
|
|
21
|
+
"shadows": {
|
|
22
|
+
"low": "0 1px 2px rgb(0 0 0 / 0.08)",
|
|
23
|
+
"high": "0 12px 28px rgb(0 0 0 / 0.16)"
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
"density": "comfortable",
|
|
27
|
+
"motion": {
|
|
28
|
+
"enabled": true,
|
|
29
|
+
"durationMs": { "fast": 120, "normal": 200, "slow": 320 },
|
|
30
|
+
"easing": {
|
|
31
|
+
"standard": "ease",
|
|
32
|
+
"emphasized": "cubic-bezier(0.2, 0, 0, 1)"
|
|
33
|
+
},
|
|
34
|
+
"reducedMotion": "disable-nonessential"
|
|
35
|
+
},
|
|
36
|
+
"diagrams": {
|
|
37
|
+
"lineWidth": 2,
|
|
38
|
+
"nodeGap": 32,
|
|
39
|
+
"arrowStyle": "straight",
|
|
40
|
+
"labelTreatment": "boxed"
|
|
41
|
+
}
|
|
42
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "editorial",
|
|
3
|
+
"typography": {
|
|
4
|
+
"sans": ["system-ui", "-apple-system", "BlinkMacSystemFont", "sans-serif"],
|
|
5
|
+
"serif": ["Charter", "Bitstream Charter", "Georgia", "serif"],
|
|
6
|
+
"mono": ["ui-monospace", "SFMono-Regular", "Consolas", "monospace"],
|
|
7
|
+
"scale": {
|
|
8
|
+
"caption": "0.875rem",
|
|
9
|
+
"body": "1.0625rem",
|
|
10
|
+
"title": "1.75rem",
|
|
11
|
+
"display": "2.75rem"
|
|
12
|
+
},
|
|
13
|
+
"lineHeight": { "caption": 1.5, "body": 1.7, "title": 1.2, "display": 1.05 }
|
|
14
|
+
},
|
|
15
|
+
"spacing": {
|
|
16
|
+
"unit": 5,
|
|
17
|
+
"scale": { "xs": 5, "sm": 10, "md": 20, "lg": 30, "xl": 50 }
|
|
18
|
+
},
|
|
19
|
+
"geometry": { "radius": { "sm": 2, "md": 4, "lg": 8 }, "borderWidth": 1 },
|
|
20
|
+
"elevation": {
|
|
21
|
+
"shadows": {
|
|
22
|
+
"low": "0 1px 3px rgb(0 0 0 / 0.1)",
|
|
23
|
+
"high": "0 16px 36px rgb(0 0 0 / 0.18)"
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
"density": "spacious",
|
|
27
|
+
"motion": {
|
|
28
|
+
"enabled": true,
|
|
29
|
+
"durationMs": { "fast": 150, "normal": 240, "slow": 400 },
|
|
30
|
+
"easing": {
|
|
31
|
+
"standard": "ease-out",
|
|
32
|
+
"emphasized": "cubic-bezier(0.16, 1, 0.3, 1)"
|
|
33
|
+
},
|
|
34
|
+
"reducedMotion": "disable-nonessential"
|
|
35
|
+
},
|
|
36
|
+
"diagrams": {
|
|
37
|
+
"lineWidth": 1.5,
|
|
38
|
+
"nodeGap": 40,
|
|
39
|
+
"arrowStyle": "curved",
|
|
40
|
+
"labelTreatment": "inline"
|
|
41
|
+
}
|
|
42
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "technical",
|
|
3
|
+
"typography": {
|
|
4
|
+
"sans": ["system-ui", "-apple-system", "BlinkMacSystemFont", "sans-serif"],
|
|
5
|
+
"serif": ["ui-serif", "Georgia", "serif"],
|
|
6
|
+
"mono": ["ui-monospace", "SFMono-Regular", "Consolas", "monospace"],
|
|
7
|
+
"scale": {
|
|
8
|
+
"caption": "0.8125rem",
|
|
9
|
+
"body": "0.9375rem",
|
|
10
|
+
"title": "1.375rem",
|
|
11
|
+
"display": "2rem"
|
|
12
|
+
},
|
|
13
|
+
"lineHeight": { "caption": 1.35, "body": 1.5, "title": 1.2, "display": 1.1 }
|
|
14
|
+
},
|
|
15
|
+
"spacing": {
|
|
16
|
+
"unit": 3,
|
|
17
|
+
"scale": { "xs": 3, "sm": 6, "md": 12, "lg": 18, "xl": 30 }
|
|
18
|
+
},
|
|
19
|
+
"geometry": { "radius": { "sm": 2, "md": 4, "lg": 6 }, "borderWidth": 1 },
|
|
20
|
+
"elevation": {
|
|
21
|
+
"shadows": {
|
|
22
|
+
"low": "0 1px 2px rgb(0 0 0 / 0.12)",
|
|
23
|
+
"high": "0 8px 20px rgb(0 0 0 / 0.2)"
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
"density": "compact",
|
|
27
|
+
"motion": {
|
|
28
|
+
"enabled": false,
|
|
29
|
+
"durationMs": { "fast": 0, "normal": 0, "slow": 0 },
|
|
30
|
+
"easing": { "standard": "linear", "emphasized": "linear" },
|
|
31
|
+
"reducedMotion": "disable-nonessential"
|
|
32
|
+
},
|
|
33
|
+
"diagrams": {
|
|
34
|
+
"lineWidth": 2,
|
|
35
|
+
"nodeGap": 24,
|
|
36
|
+
"arrowStyle": "straight",
|
|
37
|
+
"labelTreatment": "boxed"
|
|
38
|
+
}
|
|
39
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": "explainer-kit.recipe/v1",
|
|
3
|
+
"id": "engineer-tour",
|
|
4
|
+
"version": "1",
|
|
5
|
+
"sourceRoles": [
|
|
6
|
+
{
|
|
7
|
+
"role": "codebase",
|
|
8
|
+
"required": true,
|
|
9
|
+
"accepts": ["directory", "git"],
|
|
10
|
+
"minBindings": 1,
|
|
11
|
+
"maxBindings": 1
|
|
12
|
+
}
|
|
13
|
+
],
|
|
14
|
+
"requiredNarrative": [
|
|
15
|
+
"orientation",
|
|
16
|
+
"architecture",
|
|
17
|
+
"execution-flow",
|
|
18
|
+
"key-code",
|
|
19
|
+
"validation"
|
|
20
|
+
],
|
|
21
|
+
"artifacts": [
|
|
22
|
+
{
|
|
23
|
+
"id": "engineer-tour",
|
|
24
|
+
"type": "explainer",
|
|
25
|
+
"template": "engineer-tour",
|
|
26
|
+
"required": true
|
|
27
|
+
}
|
|
28
|
+
],
|
|
29
|
+
"discoveryLimits": {
|
|
30
|
+
"consecutiveNoNewFindingsRounds": 2,
|
|
31
|
+
"maxRounds": 8
|
|
32
|
+
}
|
|
33
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": "explainer-kit.recipe/v1",
|
|
3
|
+
"id": "program-recap",
|
|
4
|
+
"version": "1",
|
|
5
|
+
"sourceRoles": [
|
|
6
|
+
{
|
|
7
|
+
"role": "program",
|
|
8
|
+
"required": true,
|
|
9
|
+
"accepts": ["file", "directory", "git"],
|
|
10
|
+
"minBindings": 1,
|
|
11
|
+
"maxBindings": 1
|
|
12
|
+
}
|
|
13
|
+
],
|
|
14
|
+
"requiredNarrative": [
|
|
15
|
+
"program-overview",
|
|
16
|
+
"wave-map",
|
|
17
|
+
"per-wave-outcomes",
|
|
18
|
+
"convention-evolution",
|
|
19
|
+
"aggregate-numbers",
|
|
20
|
+
"follow-up-ledger"
|
|
21
|
+
],
|
|
22
|
+
"artifacts": [
|
|
23
|
+
{
|
|
24
|
+
"id": "program-recap",
|
|
25
|
+
"type": "hub",
|
|
26
|
+
"template": "house-style",
|
|
27
|
+
"required": true
|
|
28
|
+
}
|
|
29
|
+
],
|
|
30
|
+
"discoveryLimits": {
|
|
31
|
+
"consecutiveNoNewFindingsRounds": 2,
|
|
32
|
+
"maxRounds": 8
|
|
33
|
+
}
|
|
34
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": "explainer-kit.recipe/v1",
|
|
3
|
+
"id": "project-explainer",
|
|
4
|
+
"version": "1",
|
|
5
|
+
"sourceRoles": [
|
|
6
|
+
{
|
|
7
|
+
"role": "project",
|
|
8
|
+
"required": true,
|
|
9
|
+
"accepts": ["file", "directory", "git", "github"],
|
|
10
|
+
"minBindings": 1,
|
|
11
|
+
"maxBindings": 1
|
|
12
|
+
}
|
|
13
|
+
],
|
|
14
|
+
"requiredNarrative": [
|
|
15
|
+
"planned-architecture",
|
|
16
|
+
"decisions",
|
|
17
|
+
"risks",
|
|
18
|
+
"phases",
|
|
19
|
+
"validation-approach"
|
|
20
|
+
],
|
|
21
|
+
"artifacts": [
|
|
22
|
+
{
|
|
23
|
+
"id": "project-explainer",
|
|
24
|
+
"type": "hub",
|
|
25
|
+
"template": "house-style",
|
|
26
|
+
"required": true
|
|
27
|
+
}
|
|
28
|
+
],
|
|
29
|
+
"discoveryLimits": {
|
|
30
|
+
"consecutiveNoNewFindingsRounds": 2,
|
|
31
|
+
"maxRounds": 8
|
|
32
|
+
}
|
|
33
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": "explainer-kit.recipe/v1",
|
|
3
|
+
"id": "project-recap",
|
|
4
|
+
"version": "1",
|
|
5
|
+
"sourceRoles": [
|
|
6
|
+
{
|
|
7
|
+
"role": "project",
|
|
8
|
+
"required": true,
|
|
9
|
+
"accepts": ["file", "directory", "git", "github"],
|
|
10
|
+
"minBindings": 1,
|
|
11
|
+
"maxBindings": 1
|
|
12
|
+
}
|
|
13
|
+
],
|
|
14
|
+
"requiredNarrative": [
|
|
15
|
+
"original-request",
|
|
16
|
+
"key-agent-decisions",
|
|
17
|
+
"as-built-architecture",
|
|
18
|
+
"implementation-record",
|
|
19
|
+
"validation-evidence",
|
|
20
|
+
"outcome"
|
|
21
|
+
],
|
|
22
|
+
"artifacts": [
|
|
23
|
+
{
|
|
24
|
+
"id": "project-recap",
|
|
25
|
+
"type": "hub",
|
|
26
|
+
"template": "house-style",
|
|
27
|
+
"required": true
|
|
28
|
+
}
|
|
29
|
+
],
|
|
30
|
+
"discoveryLimits": {
|
|
31
|
+
"consecutiveNoNewFindingsRounds": 2,
|
|
32
|
+
"maxRounds": 8
|
|
33
|
+
}
|
|
34
|
+
}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
# Core run contract
|
|
2
|
+
|
|
3
|
+
`scripts/run.mjs` is the config-blind orchestration entry point. It reads only
|
|
4
|
+
the explicit `ExplainerRunRequestV1`, bundled skill assets, and source paths
|
|
5
|
+
named by that request. It does not search for `.oat`, user configuration,
|
|
6
|
+
provider configuration, vaults, or destinations.
|
|
7
|
+
|
|
8
|
+
## Invocation
|
|
9
|
+
|
|
10
|
+
Programmatic callers import `runExplainer(request, options)`. Command-line
|
|
11
|
+
callers use:
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
node scripts/run.mjs --request request.json
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
Federated runs require a provider-neutral critic callback. A command-line
|
|
18
|
+
caller supplies one with `--critic-module critic.mjs`; the module exports
|
|
19
|
+
`critic(request)` or a default function. The callback receives reconciled
|
|
20
|
+
claims, sources, overrides, and the freshness policy. It returns:
|
|
21
|
+
|
|
22
|
+
```json
|
|
23
|
+
{
|
|
24
|
+
"criticId": "skeptical-pass",
|
|
25
|
+
"executedAt": "2026-07-17T20:00:00Z",
|
|
26
|
+
"findings": []
|
|
27
|
+
}
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
No provider name, command, credential, or dispatch protocol is part of this
|
|
31
|
+
contract.
|
|
32
|
+
|
|
33
|
+
## Explicit source forms
|
|
34
|
+
|
|
35
|
+
- `factBase.mode: supplied` points to a valid `FactBaseV1` JSON file. The core
|
|
36
|
+
performs only the lightweight consistency and freshness check and never
|
|
37
|
+
invokes the critic.
|
|
38
|
+
- `factBase.mode: federated` names explicit source bindings. File locators
|
|
39
|
+
contain JSON with a `claims` array of `{ "id", "text", "locator"? }`.
|
|
40
|
+
Non-file bindings require a caller-supplied `sourceLoader(source)` callback.
|
|
41
|
+
Every binding names its recipe `role` and `sourceSetId`. Multiple documents
|
|
42
|
+
may share one source-set ID; recipe cardinality counts distinct sets, not
|
|
43
|
+
documents. The core validates these bindings before loading facts, then
|
|
44
|
+
reconciles the loaded claims and invokes the critic exactly once.
|
|
45
|
+
|
|
46
|
+
An unattended request asserts that its explicit source artifacts are already
|
|
47
|
+
approved. It does not prompt. Interactive review and same-run approval/resume
|
|
48
|
+
are introduced separately and are not part of this contract.
|
|
49
|
+
|
|
50
|
+
## Pipeline and retained package
|
|
51
|
+
|
|
52
|
+
The core executes:
|
|
53
|
+
|
|
54
|
+
1. validate request and recipe
|
|
55
|
+
2. reconcile or check the fact base
|
|
56
|
+
3. apply bounded discovery and create recipe content
|
|
57
|
+
4. resolve one theme
|
|
58
|
+
5. render typed artifacts
|
|
59
|
+
6. run structural and optional browser QA
|
|
60
|
+
7. write the manifest and build record
|
|
61
|
+
|
|
62
|
+
The run package retains `source/fact-base.json`, `source/fact-base.md`,
|
|
63
|
+
`source/content/*.md`, `theme.resolved.json`, rendered `site/` files,
|
|
64
|
+
`manifest.json`, and `build-record.json` as far as each stage succeeds. A stage
|
|
65
|
+
failure records a structured error and recovery action without deleting earlier
|
|
66
|
+
outputs. Raw art direction is omitted unless the request explicitly opts in.
|
|
67
|
+
|
|
68
|
+
When a caller supplies `discover({ round, recipe, factBase })`, the callback
|
|
69
|
+
returns the findings added in that round. The core stops after two consecutive
|
|
70
|
+
empty rounds and always stops at the recipe's `maxRounds`.
|
|
71
|
+
|
|
72
|
+
## Optional seams
|
|
73
|
+
|
|
74
|
+
Durability and publishing are never implicit.
|
|
75
|
+
|
|
76
|
+
- `durability.strategy: none` invokes neither seam.
|
|
77
|
+
- `durability.strategy: commit` invokes the explicit `durability` callback.
|
|
78
|
+
Caller-created commit evidence is subsequently verified with
|
|
79
|
+
`record-durability.mjs`; the core never creates commits. The first evidence
|
|
80
|
+
commit must contain every path and byte hash in `manifest.immutableHashes`:
|
|
81
|
+
fact-base JSON and Markdown, all content Markdown, the resolved theme, and
|
|
82
|
+
every built artifact retained in the package. Mutable `manifest.json` and
|
|
83
|
+
`build-record.json` remain excluded for the separate evidence update.
|
|
84
|
+
- `durability.strategy: publish` invokes the explicit `publish` callback with
|
|
85
|
+
the complete publish request. A verified receipt is subsequently recorded as
|
|
86
|
+
durability evidence.
|
|
87
|
+
|
|
88
|
+
CLI callers provide these callbacks only with `--durability-module` and
|
|
89
|
+
`--publish-module`. Building remains `built-not-durable` until evidence is
|
|
90
|
+
verified. Publishing remains independently human-gated by the caller.
|
|
91
|
+
|
|
92
|
+
## Result
|
|
93
|
+
|
|
94
|
+
`runExplainer` returns the run root, manifest path, build-record path, outcome,
|
|
95
|
+
warnings, and bounded-discovery summary. Input validation and unsupported
|
|
96
|
+
recipes reject before output mutation. Failures after initialization return a
|
|
97
|
+
`failed` result with paths to the retained record and intermediates.
|
|
98
|
+
|
|
99
|
+
V1 readers reject unknown schema majors and unknown contract fields. Relative
|
|
100
|
+
record paths are run-root confined, hashes use `sha256:<hex>`, and command
|
|
101
|
+
metadata uses argv arrays rather than shell strings.
|