@open-agent-toolkit/cli 0.2.73 → 0.2.74

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 (149) hide show
  1. package/assets/bundle-metadata.json +1 -1
  2. package/assets/docs/cli-utilities/configuration.md +3 -56
  3. package/assets/docs/cli-utilities/tool-packs.md +4 -4
  4. package/assets/docs/contributing/code.md +2 -2
  5. package/assets/docs/contributing/index.md +0 -1
  6. package/assets/docs/reference/cli-reference.md +1 -1
  7. package/assets/docs/reference/troubleshooting.md +17 -40
  8. package/assets/docs/workflows/projects/artifacts.md +16 -34
  9. package/assets/docs/workflows/projects/lifecycle.md +20 -19
  10. package/assets/docs/workflows/skills/explainer-kit.md +180 -440
  11. package/assets/docs/workflows/skills/index.md +1 -2
  12. package/assets/public-package-versions.json +4 -4
  13. package/assets/skills/explainer-kit/SKILL.md +96 -171
  14. package/assets/skills/explainer-kit/recipes/engineer-tour.json +1 -22
  15. package/assets/skills/explainer-kit/recipes/program-recap.json +1 -29
  16. package/assets/skills/explainer-kit/recipes/project-explainer.json +1 -22
  17. package/assets/skills/explainer-kit/recipes/project-recap.v2.json +1 -43
  18. package/assets/skills/explainer-kit/references/fact-base-contract.md +76 -101
  19. package/assets/skills/explainer-kit/references/recap-authoring.md +99 -0
  20. package/assets/skills/explainer-kit/schemas/manifest.schema.json +13 -135
  21. package/assets/skills/explainer-kit/scripts/bundle.mjs +712 -0
  22. package/assets/skills/explainer-kit/scripts/lib/claim-subject.mjs +40 -0
  23. package/assets/skills/explainer-kit/scripts/lib/contracts.mjs +113 -1504
  24. package/assets/skills/explainer-kit/scripts/lib/failure.mjs +13 -0
  25. package/assets/skills/explainer-kit/scripts/lib/package-coverage.mjs +57 -403
  26. package/assets/skills/explainer-kit/scripts/lib/qa-result.mjs +168 -0
  27. package/assets/skills/explainer-kit/scripts/lib/qa.mjs +90 -488
  28. package/assets/skills/explainer-kit/scripts/lib/recipes.mjs +28 -545
  29. package/assets/skills/explainer-kit/scripts/lib/run-package.mjs +120 -0
  30. package/assets/skills/explainer-kit/scripts/lib/sanitize.mjs +42 -0
  31. package/assets/skills/explainer-kit/scripts/record.mjs +335 -0
  32. package/assets/skills/explainer-kit/scripts/verify.mjs +648 -0
  33. package/assets/skills/oat-explainer-kit/SKILL.md +57 -117
  34. package/assets/skills/oat-explainer-kit/references/config-contract.md +20 -64
  35. package/assets/skills/oat-explainer-kit/references/lifecycle-contract.md +85 -237
  36. package/assets/skills/oat-explainer-kit/scripts/bind-project-sources.mjs +18 -10
  37. package/assets/skills/oat-explainer-kit/scripts/check-core.mjs +1 -0
  38. package/assets/skills/oat-explainer-kit/scripts/check-terminal-outcome.mjs +256 -21
  39. package/assets/skills/oat-explainer-kit/scripts/persist-intent.mjs +82 -3
  40. package/assets/skills/oat-explainer-kit/scripts/resolve-config.mjs +0 -162
  41. package/assets/skills/oat-explainer-kit/scripts/resolve-intent.mjs +57 -123
  42. package/assets/skills/oat-project-autonomous/SKILL.md +14 -13
  43. package/assets/skills/oat-project-autonomous/references/gate-inventory.md +165 -165
  44. package/assets/skills/oat-project-complete/SKILL.md +168 -349
  45. package/assets/skills/oat-project-complete/scripts/consume-persisted-recap-intent.mjs +125 -0
  46. package/assets/skills/oat-project-complete/scripts/execute-synced-archive-entry.mjs +0 -30
  47. package/assets/skills/oat-project-complete/scripts/parse-completion-retry-fields.mjs +4 -37
  48. package/assets/skills/oat-project-complete/scripts/parse-synced-archive-resume-fields.mjs +17 -16
  49. package/assets/skills/oat-project-complete/scripts/recover-completion-receipts.mjs +9 -174
  50. package/assets/skills/oat-project-complete/scripts/resolve-completion-retry.mjs +1 -2
  51. package/assets/skills/oat-project-document/SKILL.md +1 -1
  52. package/assets/skills/oat-project-document/references/docs/autonomy-contract.md +165 -165
  53. package/assets/skills/oat-project-implement/SKILL.md +1 -1
  54. package/assets/skills/oat-project-implement/references/completion-and-closeout.md +44 -56
  55. package/assets/skills/oat-project-implement/references/docs/autonomy-contract.md +165 -165
  56. package/assets/skills/oat-project-lite/SKILL.md +1 -1
  57. package/assets/skills/oat-project-lite/references/docs/autonomy-contract.md +165 -165
  58. package/assets/skills/oat-project-plan/SKILL.md +5 -6
  59. package/assets/skills/oat-project-pr-final/SKILL.md +1 -1
  60. package/assets/skills/oat-project-pr-final/references/docs/autonomy-contract.md +165 -165
  61. package/assets/skills/oat-project-quick-start/SKILL.md +1 -1
  62. package/assets/skills/oat-project-quick-start/references/docs/autonomy-contract.md +165 -165
  63. package/assets/skills/oat-project-summary/SKILL.md +35 -25
  64. package/assets/skills/oat-wave-execute/SKILL.md +11 -36
  65. package/assets/skills/oat-wave-program/SKILL.md +13 -37
  66. package/dist/commands/config/index.d.ts.map +1 -1
  67. package/dist/commands/config/index.js +9 -113
  68. package/dist/commands/project/archive/archive-utils.d.ts.map +1 -1
  69. package/dist/commands/project/archive/archive-utils.js +32 -184
  70. package/dist/commands/project/archive/explainer-package-coverage.d.ts +3 -8
  71. package/dist/commands/project/archive/explainer-package-coverage.d.ts.map +1 -1
  72. package/dist/commands/project/archive/explainer-package-coverage.js +1 -1
  73. package/dist/config/oat-config.d.ts +0 -11
  74. package/dist/config/oat-config.d.ts.map +1 -1
  75. package/dist/config/oat-config.js +0 -34
  76. package/dist/config/resolve.d.ts.map +1 -1
  77. package/dist/config/resolve.js +0 -8
  78. package/dist/release/public-package-contract.d.ts.map +1 -1
  79. package/dist/release/public-package-contract.js +2 -10
  80. package/dist/validation/project-state.d.ts.map +1 -1
  81. package/dist/validation/project-state.js +42 -3
  82. package/package.json +2 -2
  83. package/assets/docs/contributing/explainer-kit-verification.md +0 -133
  84. package/assets/docs/workflows/skills/explainer-kit-providers.md +0 -155
  85. package/assets/skills/explainer-kit/briefs/deep-dive.md +0 -35
  86. package/assets/skills/explainer-kit/briefs/project-page.md +0 -38
  87. package/assets/skills/explainer-kit/briefs/supporting-diagram.md +0 -28
  88. package/assets/skills/explainer-kit/briefs/walkthrough-deck.md +0 -35
  89. package/assets/skills/explainer-kit/examples/project-explainer/content.md +0 -31
  90. package/assets/skills/explainer-kit/examples/project-explainer/fact-base.md +0 -22
  91. package/assets/skills/explainer-kit/examples/project-recap/content.md +0 -77
  92. package/assets/skills/explainer-kit/examples/project-recap/fact-base.json +0 -104
  93. package/assets/skills/explainer-kit/examples/project-recap/fact-base.md +0 -44
  94. package/assets/skills/explainer-kit/examples/theme-bundle.json +0 -87
  95. package/assets/skills/explainer-kit/recipes/project-recap.v1.json +0 -93
  96. package/assets/skills/explainer-kit/references/contracts.md +0 -324
  97. package/assets/skills/explainer-kit/references/destination-contract.md +0 -210
  98. package/assets/skills/explainer-kit/references/extension-contract.md +0 -80
  99. package/assets/skills/explainer-kit/references/golden-conformance.md +0 -80
  100. package/assets/skills/explainer-kit/references/visual-review.md +0 -71
  101. package/assets/skills/explainer-kit/schemas/author-request.v2.schema.json +0 -212
  102. package/assets/skills/explainer-kit/schemas/author-request.v3.schema.json +0 -241
  103. package/assets/skills/explainer-kit/schemas/author-result.v2.schema.json +0 -52
  104. package/assets/skills/explainer-kit/schemas/build-record.schema.json +0 -98
  105. package/assets/skills/explainer-kit/schemas/durability-evidence.schema.json +0 -53
  106. package/assets/skills/explainer-kit/schemas/publish-receipt.v1.schema.json +0 -97
  107. package/assets/skills/explainer-kit/schemas/publish-receipt.v2.schema.json +0 -215
  108. package/assets/skills/explainer-kit/schemas/publish-request.v1.schema.json +0 -32
  109. package/assets/skills/explainer-kit/schemas/publish-request.v2.schema.json +0 -34
  110. package/assets/skills/explainer-kit/schemas/run-request.schema.json +0 -147
  111. package/assets/skills/explainer-kit/schemas/set-plan.v1.schema.json +0 -149
  112. package/assets/skills/explainer-kit/schemas/terminal-evidence.v1.schema.json +0 -81
  113. package/assets/skills/explainer-kit/schemas/visual-review-evidence.v1.schema.json +0 -66
  114. package/assets/skills/explainer-kit/schemas/visual-review-request.v1.schema.json +0 -117
  115. package/assets/skills/explainer-kit/schemas/visual-review-result.v1.schema.json +0 -80
  116. package/assets/skills/explainer-kit/scripts/lib/catalog.mjs +0 -349
  117. package/assets/skills/explainer-kit/scripts/lib/content-approval.mjs +0 -418
  118. package/assets/skills/explainer-kit/scripts/lib/diagram.mjs +0 -514
  119. package/assets/skills/explainer-kit/scripts/lib/durability.mjs +0 -643
  120. package/assets/skills/explainer-kit/scripts/lib/fact-base.mjs +0 -664
  121. package/assets/skills/explainer-kit/scripts/lib/internal-references.mjs +0 -538
  122. package/assets/skills/explainer-kit/scripts/lib/markdown.mjs +0 -414
  123. package/assets/skills/explainer-kit/scripts/lib/publication-policy.mjs +0 -54
  124. package/assets/skills/explainer-kit/scripts/lib/records.mjs +0 -954
  125. package/assets/skills/explainer-kit/scripts/lib/render.mjs +0 -703
  126. package/assets/skills/explainer-kit/scripts/lib/s3-roots.mjs +0 -353
  127. package/assets/skills/explainer-kit/scripts/lib/s3-static.mjs +0 -759
  128. package/assets/skills/explainer-kit/scripts/lib/set-plan.mjs +0 -209
  129. package/assets/skills/explainer-kit/scripts/lib/source-backlinks.mjs +0 -218
  130. package/assets/skills/explainer-kit/scripts/lib/terminal-evidence.mjs +0 -157
  131. package/assets/skills/explainer-kit/scripts/lib/visual-review.mjs +0 -400
  132. package/assets/skills/explainer-kit/scripts/publish.mjs +0 -76
  133. package/assets/skills/explainer-kit/scripts/record-durability.mjs +0 -64
  134. package/assets/skills/explainer-kit/scripts/render-qa.mjs +0 -461
  135. package/assets/skills/explainer-kit/scripts/run.mjs +0 -3038
  136. package/assets/skills/explainer-kit/scripts/validate.mjs +0 -59
  137. package/assets/skills/oat-explainer-kit/references/author-callback.md +0 -53
  138. package/assets/skills/oat-explainer-kit/references/migration.md +0 -144
  139. package/assets/skills/oat-explainer-kit/references/visual-review-callback.md +0 -83
  140. package/assets/skills/oat-explainer-kit/scripts/derive-destination.mjs +0 -91
  141. package/assets/skills/oat-explainer-kit/scripts/finalize-tracked-run.mjs +0 -531
  142. package/assets/skills/oat-explainer-kit/scripts/probe-recap-seams.mjs +0 -371
  143. package/assets/skills/oat-explainer-kit/scripts/run.mjs +0 -905
  144. package/dist/commands/project/archive/explainer-source-backlinks.d.ts +0 -18
  145. package/dist/commands/project/archive/explainer-source-backlinks.d.ts.map +0 -1
  146. package/dist/commands/project/archive/explainer-source-backlinks.js +0 -27
  147. package/dist/commands/project/archive/explainer-terminal-evidence.d.ts +0 -29
  148. package/dist/commands/project/archive/explainer-terminal-evidence.d.ts.map +0 -1
  149. package/dist/commands/project/archive/explainer-terminal-evidence.js +0 -37
@@ -5,41 +5,28 @@ disable-model-invocation: false
5
5
  user-invocable: true
6
6
  allowed-tools: Read, Write, Edit, Bash, Grep, Glob, AskUserQuestion
7
7
  metadata:
8
- version: 1.0.8
8
+ version: 1.0.9
9
9
  ---
10
10
 
11
11
  # OAT Explainer Kit
12
12
 
13
- Adapt OAT project context into the versioned request consumed by the canonical
14
- `explainer-kit` core.
13
+ Adapt OAT project and program context into the agent-authored flow provided by
14
+ the canonical `explainer-kit` core.
15
15
 
16
16
  ## Responsibilities
17
17
 
18
18
  - Require a compatible installed `explainer-kit` core.
19
- - Resolve typed OAT configuration with source attribution.
20
- - Derive canonical project or repository output roots.
19
+ - Resolve explainer defaults and preserve their source attribution.
20
+ - Derive canonical project or repository output roots with
21
+ `scripts/resolve-paths.mjs`.
21
22
  - Bind OAT lifecycle artifacts to generic recipe source roles.
22
- - Probe recap seam availability before an unattended run is attempted.
23
- - Resolve project explainer and recap intent before invoking the core.
24
- - Resolve one provider-neutral set planner for unattended project recaps.
25
- - Require lifecycle callers to construct a brief-aware author seam.
26
- - Require first-class browser-evidence and whole-set visual-review providers
27
- for unattended project recaps.
23
+ - Resolve and persist project-explainer and project-recap intent.
24
+ - Run the core's bundle, agent-authoring, verification, and recording stages.
25
+ - Return the terminal outcome and run path to the lifecycle caller.
28
26
 
29
- ## Dependency Direction
30
-
31
- This adapter depends on `explainer-kit`; the core never depends on this adapter.
32
- Fail closed when the compatible installed core is unavailable. Do not copy core
33
- runtime logic into the adapter.
34
-
35
- Private wrappers use the core's frozen pre-resolution/request/core-run/manifest/
36
- post-run seam directly; they do not route presets, vaults, Google Docs, Stoa, or
37
- personal destinations through this adapter. For the release-candidate sequence,
38
- rollback, and operator-owned real-wrapper gate, use `references/migration.md`.
39
-
40
- Before reading OAT config or invoking the core, call
27
+ Before reading OAT config or preparing a bundle, call
41
28
  `scripts/check-core.mjs#checkCoreCompatibility` with this installed skill
42
- directory and minimum core version `2.1.0`. Continue only when it returns
29
+ directory and the exported `MINIMUM_CORE_VERSION`. Continue only when it returns
43
30
  `ok: true`.
44
31
 
45
32
  - Missing core: stop and show
@@ -54,97 +41,49 @@ Resolve adapter scripts and references relative to this installed skill
54
41
  directory. Resolve the core only from its installed canonical skill path. Never
55
42
  fall back to a repository source checkout.
56
43
 
57
- ## Core Invocation
58
-
59
- Call `scripts/run.mjs#runOatExplainer` with the repository root, project
60
- invocation, active project path, recipe, slug, lifecycle mode, and any explicit
61
- runtime overrides. The adapter:
62
-
63
- 1. checks the user-scoped installed core at minimum version `2.1.0`;
64
- 2. resolves only the public `explainers.*` and `workflow.explainers.*` keys;
65
- 3. derives the canonical project output root;
66
- 4. binds approved OAT artifacts to the recipe's single `project` source set;
67
- 5. creates one `ExplainerRunRequestV1`;
68
- 6. calls the installed core's `runExplainer(request, options)` export; and
69
- 7. consumes and returns the resulting `explainer-kit.manifest/v1`.
70
-
71
- `project-explainer` binds `plan.md`, `design.md`, and `spec.md`.
72
- `project-recap` additionally binds `implementation.md` and `summary.md`.
73
- Missing optional artifacts are omitted, but at least one approved lifecycle
74
- artifact is required. An explicit supplied fact-base path bypasses artifact
75
- federation and is passed through as `factBase.mode: supplied`.
76
-
77
- New project-recap requests select immutable `project-recap@2`: one
78
- navigational hub is the floor, while a diagram, walkthrough deck, or deep dive
79
- is selected only when the planner can state its distinct reader question,
80
- source evidence, and medium rationale. The installed core continues reading
81
- `project-recap@1` for replay; the adapter never rewrites a retained request's
82
- recipe selector.
83
-
84
- Before an unattended `project-recap`, call
85
- `scripts/probe-recap-seams.mjs#probeRecapSeams` with the seam inputs you are
86
- about to pass. The probe is pure and checks all five required seams — author,
87
- fact critic, browser session, visual critic, and set planner — using the same
88
- rules `run.mjs` applies. `seams-unavailable` means no provider is configured
89
- for a required seam: pass the probe result to the intent resolver as
90
- `seamProbe`, which returns a recordable `skip` with source `capability_probe`
91
- and a warning. `seams-invalid` means a supplied seam violates a resolution
92
- rule: fail closed and report the configuration error; it is never a skip. When
93
- the probe returns `ok: true`, invoke the adapter with unchanged behavior, and
94
- treat any later failure as `failed` rather than as a skip.
95
-
96
- Before invocation, read `references/author-callback.md`. Unattended
97
- `project-recap` runs require exactly one provider-neutral set planner:
98
- in-process callers supply `planSet`, while JSON/CLI callers supply
99
- `planSetModulePath` naming a module with a `planSet` function export. The
100
- adapter resolves this executable capability and passes only the callback to the
101
- core. It never persists provider configuration or module paths.
102
-
103
- Construct exactly one provider-neutral author seam in both modes: in-process
104
- callers supply `author`, while JSON/CLI callers supply `authorModulePath` naming
105
- a module with an `author` function export. The core invokes that callback once
106
- per planned artifact. Every request carries the immutable shared `setContext`,
107
- the matching `plannedArtifact`, the recipe brief, theme, and any
108
- recipe-selected artistic shell. Those bundled inputs are the required
109
- medium-specific guidance; an optional visual-explainer installation may enhance
110
- provider execution but is never required. The adapter validates and resolves
111
- executable inputs before passing them to `core.runExplainer`; callbacks and
112
- module paths never enter the persisted run request.
113
-
114
- Also read `references/visual-review-callback.md`. Unattended `project-recap`
115
- runs require exactly one trusted launched-Chromium browser session and one
116
- whole-set visual critic. In-process callers supply a branded `browserSession`
117
- created by the compatible core and `visualCritic`; JSON/CLI callers supply
118
- `browserSessionModulePath` and `visualCriticModulePath`, naming modules with
119
- matching exports. Bare browser callbacks and caller-authored runtime metadata
120
- are rejected. These are first-class adapter inputs; do not place either
121
- provider in `coreOptions`.
122
-
123
- The critic judges typography, hierarchy, composition, density, medium leverage,
124
- template repetition, diagram semantics, and cross-artifact cohesion from the
125
- bound rendered evidence. Keep those criteria in prose. Preserve the core's
126
- existing `visual-review-result/v1` contract and actionable `pass`/`correct`
127
- behavior; do not add adapter-owned scores, layout thresholds, or result fields.
128
-
129
- The adapter resolves all executable providers before core invocation, enforces
130
- direct-versus-module mutual exclusion, and requires distinct identities for
131
- authoring, fact criticism, browser evidence, and visual criticism. A missing,
132
- forged, or deterministic fixture session fails production validation before the
133
- core runs. A runtime browser or visual-review failure is retained by the core
134
- as `built-needs-review`, never as a successful durability or publication
135
- outcome.
136
-
137
- Unattended project runs pass `approved-oat-artifacts` provenance to the core's
138
- content-approval seam and never prompt. Automated completion and
139
- implementation-tail recaps always use `mode: unattended`.
140
-
141
- Federated runs still require an explicit provider-neutral critic callback.
142
- In-process callers may supply `critic` (or `coreOptions.critic` for
143
- compatibility); JSON/CLI callers supply `criticModulePath` naming a module whose
144
- `critic` export implements the same provider-neutral request/result contract.
145
- Supply exactly one critic seam. Approval provenance does not bypass fact
146
- reconciliation. Do not read private presets, vault files, provider
147
- configuration, or ambient destination configuration.
44
+ ## Generate
45
+
46
+ Use this flow for `project-recap`, `program-recap`, or `project-explainer`.
47
+ Lifecycle callers use `mode: unattended` and never prompt.
48
+
49
+ 1. Check the installed core as described above.
50
+ 2. Resolve intent with `scripts/resolve-intent.mjs`. Persist a returned record
51
+ with `scripts/persist-intent.mjs` before generation. A persisted `skip`
52
+ ends the flow without bundling or authoring.
53
+ 3. Resolve only the `explainers.defaults.*` theme values with
54
+ `scripts/resolve-config.mjs`.
55
+ 4. Resolve the parent output root with
56
+ `scripts/resolve-paths.mjs#resolveExplainerOutputRoot`.
57
+ 5. Resolve approved inputs with
58
+ `scripts/bind-project-sources.mjs`. `project-explainer` uses `plan.md`,
59
+ `design.md`, `spec.md`, and optional `discovery.md`. `project-recap` also
60
+ uses completion, summary, project-log, and optional orchestration material.
61
+ `program-recap` uses the program record and its reconciled summaries.
62
+ 6. Run the installed core's `scripts/bundle.mjs` with the selected recipe,
63
+ input mode, resolved theme JSON, and run root. If it reports `reuse: true`,
64
+ return that satisfied run without authoring or recording again.
65
+ 7. The host agent reads the recipe's `briefRef`, the core's
66
+ `references/recap-authoring.md`, `source/fact-base.json`,
67
+ `source/ledger.json`, and `theme.resolved.json`, then authors exactly one
68
+ `site/index.html` from the recipe shell.
69
+ 8. Run `scripts/verify.mjs`. Use the first available rung: host browser capture
70
+ and inspection at 320, 768, and 1440 pixels; the Playwright probe; or the
71
+ browser-free `none` rung. Browser-free checks always run.
72
+ 9. Run `scripts/record.mjs` with the recipe, slug, `mode: unattended`, and
73
+ resolved theme. Do not write into the run root after recording.
74
+ 10. Return the run path, `runId`, and outcome from
75
+ `explainer-kit.manifest/v2`. `built` and `built-needs-review` satisfy a
76
+ `generate` intent; `failed` and `incomplete` do not.
77
+
78
+ On `failed` or `incomplete`, show the sanitized cause and require retry or an
79
+ explicit skip. A skip after an attempted run must be persisted as
80
+ `skip/failed_attempt` with `failed_attempt_evidence` set to the project-relative
81
+ `explainers/<run-slug>/manifest.json`, or to that run's `failure.json` when
82
+ recording never occurred. The deployed completion consumer validates canonical
83
+ project/run containment and the terminal evidence contract before returning
84
+ the trusted path to `scripts/check-terminal-outcome.mjs`.
85
+ `skip/capability_probe` remains readable only for an existing legacy intent and
86
+ must not be newly written.
148
87
 
149
88
  ## Progress Indicators (User-Facing)
150
89
 
@@ -156,5 +95,6 @@ OAT ▸ EXPLAINER KIT
156
95
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
157
96
  ```
158
97
 
159
- Report compatibility, config, intent, source-binding, core-run, and finalization
160
- stages. Lifecycle-triggered unattended runs must not prompt.
98
+ Report compatibility, intent, source binding, bundle, authoring, verification,
99
+ recording, and outcome stages. Lifecycle-triggered unattended runs must not
100
+ prompt.
@@ -3,41 +3,21 @@
3
3
  `oat-explainer-kit` is the OAT-aware boundary around the config-blind
4
4
  `explainer-kit` core. The adapter reads each supported stored value with
5
5
  `oat config get <key> --json` and preserves its `source` metadata while
6
- constructing an `explainer-kit.run-request/v1`.
6
+ resolving the theme used by `bundle.mjs`.
7
7
 
8
- ## Supported keys
8
+ ## Supported explainer defaults
9
9
 
10
- | Key | Stored scopes | Built-in default |
11
- | -------------------------------------- | ------------------- | ---------------- |
12
- | `explainers.defaults.style` | local, shared, user | `clean-neutral` |
13
- | `explainers.defaults.palette` | local, shared, user | unset |
14
- | `explainers.defaults.visualProfile` | local, shared, user | unset |
15
- | `explainers.defaults.themeBundlePath` | local, shared | unset |
16
- | `explainers.publish.provider` | shared | unset |
17
- | `explainers.publish.s3Uri` | shared | unset |
18
- | `explainers.publish.publicBaseUrl` | shared | unset |
19
- | `explainers.publish.awsRegion` | shared | unset |
20
- | `explainers.publish.publicAccess` | shared | `public` |
21
- | `explainers.publish.awsProfile` | local, user | unset |
22
- | `workflow.explainers.projectExplainer` | local, shared, user | `ask` |
23
- | `workflow.explainers.projectRecap` | local, shared, user | `ask` |
10
+ | Key | Stored scopes | Built-in default |
11
+ | ------------------------------------- | ------------------- | ---------------- |
12
+ | `explainers.defaults.style` | local, shared, user | `clean-neutral` |
13
+ | `explainers.defaults.palette` | local, shared, user | unset |
14
+ | `explainers.defaults.visualProfile` | local, shared, user | unset |
15
+ | `explainers.defaults.themeBundlePath` | local, shared | unset |
24
16
 
25
- Explicit runtime inputs may override these twelve keys for one invocation. They
26
- do not write config. Recipe, slug, fact-base path, output root, per-run art
27
- direction, and private wrapper lanes are invocation inputs rather than config
28
- keys and are rejected from the runtime config-override map.
29
-
30
- ## Seams are invocation inputs, not configuration
31
-
32
- No supported key names an author, fact critic, browser session, visual critic,
33
- or set planner. Every seam is supplied per invocation as a callback or a module
34
- entry point, so seam availability is discovered by
35
- `scripts/probe-recap-seams.mjs#probeRecapSeams` against the inputs a caller is
36
- about to pass, not read from stored config. A host on which those inputs are
37
- absent has no configuration to correct: the probe reports `seams-unavailable`
38
- and the lifecycle caller records a `skip / capability_probe` recap intent. The
39
- `workflow.explainers.projectRecap` preference expresses whether a host _wants_
40
- a recap and cannot make an unavailable seam available.
17
+ Explicit runtime inputs may override these four keys for one invocation. They
18
+ do not write config. Recipe, slug, fact-base path, output root, and art
19
+ direction are invocation inputs rather than config keys and are rejected from
20
+ the runtime config-override map.
41
21
 
42
22
  ## Source-sensitive paths
43
23
 
@@ -51,39 +31,15 @@ The four curated styles are `clean-neutral`, `business-corporate`,
51
31
  `navy-ocean`, and `dark-edgy`. A theme bundle path has highest precedence,
52
32
  followed by an explicit style. Legacy palette and visual-profile fields remain
53
33
  accepted as an advanced compatibility path and produce deprecation warnings.
54
- When no source explicitly configures any selection, the adapter leaves the
55
- request theme empty so the core records its visible `clean-neutral` fallback
56
- warning. The adapter passes a resolved bundle as `theme.suppliedBundlePath`.
57
-
58
- ## Publish block
59
-
60
- `provider`, `s3Uri`, `publicBaseUrl`, and `awsRegion` form one complete publish
61
- block. If any field is absent, the adapter returns a structured build-only
62
- report listing every missing field and does not construct publish config.
63
- `awsProfile` is optional and uses the normal AWS credential chain when absent.
64
- `publicAccess` accepts `public` or `protected` and defaults to `public`;
65
- source metadata is retained and the resolved mode is carried explicitly in the
66
- versioned core publish request. Destination roots are normalized without trailing
67
- slashes. Lifecycle callers must explicitly select publish durability; complete
68
- configuration only makes publication available and never authorizes it. The
69
- existing human gate remains mandatory.
34
+ When no source explicitly configures a selection, the core records its visible
35
+ `clean-neutral` fallback.
70
36
 
71
37
  ## Canonical output roots
72
38
 
73
- - Active project: `<resolved-project-path>/explainers/`, for both shared and
74
- local projects.
75
- - Non-project OAT run: `.oat/repo/reference/explainers/`.
76
- - Direct core caller: an explicit `outputRoot`; the OAT adapter does not infer
77
- one.
78
-
79
- Derived OAT roots reject traversal and must remain inside their canonical root
80
- after symlink resolution. The adapter validates all config and paths before the
81
- core creates output.
82
-
83
- ## Run-request translation
39
+ - Active project: `<resolved-project-path>/explainers/`.
40
+ - Program or repository run: `.oat/repo/reference/explainers/`.
41
+ - Direct core caller: an explicit parent output root.
84
42
 
85
- The adapter emits `explainer-kit.run-request/v1` with the requested recipe,
86
- slug, fact-base binding, mode, derived output root, resolved theme selection,
87
- privacy choice, and explicit durability strategy. Publish durability adds a
88
- complete `explainer-kit.publish-request/v2` whose `siteRoot` and
89
- `manifestPath` point inside `<outputRoot>/<slug>/`.
43
+ Derived OAT roots reject traversal and remain inside their canonical root after
44
+ symlink resolution. The adapter validates config and paths before the core
45
+ creates output.