@kontourai/flow-agents 4.0.0 → 4.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (507) hide show
  1. package/.github/workflows/ci.yml +8 -0
  2. package/CHANGELOG.md +34 -0
  3. package/CONTEXT.md +5 -0
  4. package/agents/tool-security-reviewer.json +1 -1
  5. package/build/src/cli/init.js +35 -3
  6. package/build/src/cli/kit.js +95 -2
  7. package/build/src/cli/pull-work-provider.js +7 -1
  8. package/build/src/cli/validate-workflow-artifacts.js +53 -0
  9. package/build/src/cli/workflow.js +5 -1
  10. package/build/src/flow-kit/provision.d.ts +23 -0
  11. package/build/src/flow-kit/provision.js +99 -0
  12. package/build/src/flow-kit/validate.d.ts +52 -0
  13. package/build/src/flow-kit/validate.js +214 -9
  14. package/build/src/runtime-adapters.js +1 -1
  15. package/context/contracts/execution-contract.md +30 -1
  16. package/context/contracts/review-contract.md +4 -0
  17. package/context/contracts/trigger-guards.md +73 -0
  18. package/context/scripts/telemetry/lib/config.sh +29 -0
  19. package/context/settings/backlog-provider-settings.json +1 -1
  20. package/context/settings/workspace-backlog-provider-settings.example.json +1 -1
  21. package/dist/base/build/package.json +1 -1
  22. package/dist/base/build/src/cli/init.js +35 -3
  23. package/dist/base/build/src/cli/kit.js +95 -2
  24. package/dist/base/build/src/cli/pull-work-provider.js +7 -1
  25. package/dist/base/build/src/cli/validate-workflow-artifacts.js +53 -0
  26. package/dist/base/build/src/cli/workflow.js +5 -1
  27. package/dist/base/build/src/flow-kit/provision.d.ts +23 -0
  28. package/dist/base/build/src/flow-kit/provision.js +99 -0
  29. package/dist/base/build/src/flow-kit/validate.d.ts +52 -0
  30. package/dist/base/build/src/flow-kit/validate.js +214 -9
  31. package/dist/base/build/src/runtime-adapters.js +1 -1
  32. package/dist/base/context/contracts/execution-contract.md +30 -1
  33. package/dist/base/context/contracts/review-contract.md +4 -0
  34. package/dist/base/context/contracts/trigger-guards.md +73 -0
  35. package/dist/base/context/scripts/telemetry/lib/config.sh +29 -0
  36. package/dist/base/context/settings/backlog-provider-settings.json +1 -1
  37. package/dist/base/context/settings/workspace-backlog-provider-settings.example.json +1 -1
  38. package/dist/base/docs/adr/0023-kit-provisioning.md +47 -0
  39. package/dist/base/docs/adr/index.md +1 -0
  40. package/dist/base/docs/architecture-engine-and-kits.md +17 -0
  41. package/dist/base/docs/context-map.md +3 -0
  42. package/dist/base/docs/decisions/backlog-readiness-source.md +89 -0
  43. package/dist/base/docs/decisions/index.md +1 -0
  44. package/dist/base/docs/developer-architecture.md +3 -3
  45. package/dist/base/docs/flow-kit-repository-contract.md +34 -3
  46. package/dist/base/docs/kit-authoring-guide.md +1 -1
  47. package/dist/base/docs/veritas-integration.md +12 -0
  48. package/dist/base/evals/ci/run-baseline.sh +4 -0
  49. package/dist/base/evals/integration/test_kit_provisioning.sh +112 -0
  50. package/dist/base/evals/integration/test_liveness_console_relay.sh +91 -1
  51. package/dist/base/evals/integration/test_liveness_heartbeat.sh +66 -0
  52. package/dist/base/evals/integration/test_pull_work_provider.sh +18 -0
  53. package/dist/base/evals/integration/test_veritas_governance_kit.sh +256 -0
  54. package/dist/base/evals/integration/test_workflow_artifacts.sh +257 -0
  55. package/dist/base/evals/static/test_package.sh +6 -0
  56. package/dist/base/evals/static/test_workflow_skills.sh +16 -0
  57. package/dist/base/install.sh +1 -1
  58. package/dist/base/kits/builder/flows/publish-learn.flow.json +9 -1
  59. package/dist/base/kits/builder/skills/execute-plan/SKILL.md +4 -3
  60. package/dist/base/kits/builder/skills/pull-work/SKILL.md +12 -0
  61. package/dist/base/kits/builder/skills/review-work/SKILL.md +11 -0
  62. package/dist/base/kits/veritas-governance/adapter/readiness-to-trust-bundle.mjs +19 -20
  63. package/dist/base/kits/veritas-governance/assets/starter-hooks/githooks/post-commit +13 -0
  64. package/dist/base/kits/veritas-governance/assets/starter-hooks/githooks/pre-push +13 -0
  65. package/dist/base/kits/veritas-governance/assets/starter-standards/veritas/GOVERNANCE.md +23 -0
  66. package/dist/base/kits/veritas-governance/assets/starter-standards/veritas/README.md +58 -0
  67. package/dist/base/kits/veritas-governance/assets/starter-standards/veritas/authority/default.authority-settings.json +30 -0
  68. package/dist/base/kits/veritas-governance/assets/starter-standards/veritas/repo-map.json +115 -0
  69. package/dist/base/kits/veritas-governance/assets/starter-standards/veritas/repo-standards/default.repo-standards.json +54 -0
  70. package/dist/base/kits/veritas-governance/assets/starter-standards/veritas.claims.json +179 -0
  71. package/dist/base/kits/veritas-governance/docs/README.md +141 -10
  72. package/dist/base/kits/veritas-governance/fixtures/standards-authoring/approved.trust-bundle.json +74 -0
  73. package/dist/base/kits/veritas-governance/fixtures/standards-authoring/not-approved.trust-bundle.json +74 -0
  74. package/dist/base/kits/veritas-governance/flows/standards-authoring.flow.json +35 -0
  75. package/dist/base/kits/veritas-governance/kit.json +65 -0
  76. package/dist/base/kits/veritas-governance/skills/consult-standards/SKILL.md +73 -0
  77. package/dist/base/kits/veritas-governance/skills/standards-authoring/SKILL.md +87 -0
  78. package/dist/base/schemas/backlog-provider-settings.schema.json +1 -1
  79. package/dist/base/schemas/workflow-waves.schema.json +347 -0
  80. package/dist/base/scripts/check-layer-boundary.mjs +98 -0
  81. package/dist/base/scripts/hooks/claude-telemetry-hook.js +6 -0
  82. package/dist/base/scripts/hooks/lib/liveness-heartbeat.js +42 -1
  83. package/dist/base/scripts/hooks/lib/liveness-write.js +109 -9
  84. package/dist/base/scripts/liveness/relay.sh +23 -11
  85. package/dist/base/scripts/telemetry/lib/config.sh +29 -0
  86. package/dist/catalog.json +2 -0
  87. package/dist/claude-code/.claude/agents/tool-security-reviewer.md +2 -1
  88. package/dist/claude-code/.claude/skills/consult-standards/SKILL.md +73 -0
  89. package/dist/claude-code/.claude/skills/execute-plan/SKILL.md +4 -3
  90. package/dist/claude-code/.claude/skills/pull-work/SKILL.md +12 -0
  91. package/dist/claude-code/.claude/skills/review-work/SKILL.md +11 -0
  92. package/dist/claude-code/.claude/skills/standards-authoring/SKILL.md +87 -0
  93. package/dist/claude-code/build/package.json +1 -1
  94. package/dist/claude-code/build/src/cli/init.js +35 -3
  95. package/dist/claude-code/build/src/cli/kit.js +95 -2
  96. package/dist/claude-code/build/src/cli/pull-work-provider.js +7 -1
  97. package/dist/claude-code/build/src/cli/validate-workflow-artifacts.js +53 -0
  98. package/dist/claude-code/build/src/cli/workflow.js +5 -1
  99. package/dist/claude-code/build/src/flow-kit/provision.d.ts +23 -0
  100. package/dist/claude-code/build/src/flow-kit/provision.js +99 -0
  101. package/dist/claude-code/build/src/flow-kit/validate.d.ts +52 -0
  102. package/dist/claude-code/build/src/flow-kit/validate.js +214 -9
  103. package/dist/claude-code/build/src/runtime-adapters.js +1 -1
  104. package/dist/claude-code/context/contracts/execution-contract.md +30 -1
  105. package/dist/claude-code/context/contracts/review-contract.md +4 -0
  106. package/dist/claude-code/context/contracts/trigger-guards.md +73 -0
  107. package/dist/claude-code/context/scripts/telemetry/lib/config.sh +29 -0
  108. package/dist/claude-code/context/settings/backlog-provider-settings.json +1 -1
  109. package/dist/claude-code/context/settings/workspace-backlog-provider-settings.example.json +1 -1
  110. package/dist/claude-code/docs/adr/0023-kit-provisioning.md +47 -0
  111. package/dist/claude-code/docs/adr/index.md +1 -0
  112. package/dist/claude-code/docs/architecture-engine-and-kits.md +17 -0
  113. package/dist/claude-code/docs/context-map.md +3 -0
  114. package/dist/claude-code/docs/decisions/backlog-readiness-source.md +89 -0
  115. package/dist/claude-code/docs/decisions/index.md +1 -0
  116. package/dist/claude-code/docs/developer-architecture.md +3 -3
  117. package/dist/claude-code/docs/flow-kit-repository-contract.md +34 -3
  118. package/dist/claude-code/docs/kit-authoring-guide.md +1 -1
  119. package/dist/claude-code/docs/veritas-integration.md +12 -0
  120. package/dist/claude-code/evals/ci/run-baseline.sh +4 -0
  121. package/dist/claude-code/evals/integration/test_kit_provisioning.sh +112 -0
  122. package/dist/claude-code/evals/integration/test_liveness_console_relay.sh +91 -1
  123. package/dist/claude-code/evals/integration/test_liveness_heartbeat.sh +66 -0
  124. package/dist/claude-code/evals/integration/test_pull_work_provider.sh +18 -0
  125. package/dist/claude-code/evals/integration/test_veritas_governance_kit.sh +256 -0
  126. package/dist/claude-code/evals/integration/test_workflow_artifacts.sh +257 -0
  127. package/dist/claude-code/evals/static/test_package.sh +6 -0
  128. package/dist/claude-code/evals/static/test_workflow_skills.sh +16 -0
  129. package/dist/claude-code/install.sh +1 -1
  130. package/dist/claude-code/kits/builder/flows/publish-learn.flow.json +9 -1
  131. package/dist/claude-code/kits/builder/skills/execute-plan/SKILL.md +4 -3
  132. package/dist/claude-code/kits/builder/skills/pull-work/SKILL.md +12 -0
  133. package/dist/claude-code/kits/builder/skills/review-work/SKILL.md +11 -0
  134. package/dist/claude-code/kits/veritas-governance/adapter/readiness-to-trust-bundle.mjs +19 -20
  135. package/dist/claude-code/kits/veritas-governance/assets/starter-hooks/githooks/post-commit +13 -0
  136. package/dist/claude-code/kits/veritas-governance/assets/starter-hooks/githooks/pre-push +13 -0
  137. package/dist/claude-code/kits/veritas-governance/assets/starter-standards/veritas/GOVERNANCE.md +23 -0
  138. package/dist/claude-code/kits/veritas-governance/assets/starter-standards/veritas/README.md +58 -0
  139. package/dist/claude-code/kits/veritas-governance/assets/starter-standards/veritas/authority/default.authority-settings.json +30 -0
  140. package/dist/claude-code/kits/veritas-governance/assets/starter-standards/veritas/repo-map.json +115 -0
  141. package/dist/claude-code/kits/veritas-governance/assets/starter-standards/veritas/repo-standards/default.repo-standards.json +54 -0
  142. package/dist/claude-code/kits/veritas-governance/assets/starter-standards/veritas.claims.json +179 -0
  143. package/dist/claude-code/kits/veritas-governance/docs/README.md +141 -10
  144. package/dist/claude-code/kits/veritas-governance/fixtures/standards-authoring/approved.trust-bundle.json +74 -0
  145. package/dist/claude-code/kits/veritas-governance/fixtures/standards-authoring/not-approved.trust-bundle.json +74 -0
  146. package/dist/claude-code/kits/veritas-governance/flows/standards-authoring.flow.json +35 -0
  147. package/dist/claude-code/kits/veritas-governance/kit.json +65 -0
  148. package/dist/claude-code/kits/veritas-governance/skills/consult-standards/SKILL.md +73 -0
  149. package/dist/claude-code/kits/veritas-governance/skills/standards-authoring/SKILL.md +87 -0
  150. package/dist/claude-code/schemas/backlog-provider-settings.schema.json +1 -1
  151. package/dist/claude-code/schemas/workflow-waves.schema.json +347 -0
  152. package/dist/claude-code/scripts/check-layer-boundary.mjs +98 -0
  153. package/dist/claude-code/scripts/hooks/claude-telemetry-hook.js +6 -0
  154. package/dist/claude-code/scripts/hooks/lib/liveness-heartbeat.js +42 -1
  155. package/dist/claude-code/scripts/hooks/lib/liveness-write.js +109 -9
  156. package/dist/claude-code/scripts/liveness/relay.sh +23 -11
  157. package/dist/claude-code/scripts/telemetry/lib/config.sh +29 -0
  158. package/dist/codex/.agents/skills/builder-shape/context/contracts/execution-contract.md +30 -1
  159. package/dist/codex/.agents/skills/consult-standards/SKILL.md +73 -0
  160. package/dist/codex/.agents/skills/deliver/context/contracts/execution-contract.md +30 -1
  161. package/dist/codex/.agents/skills/design-probe/context/contracts/execution-contract.md +30 -1
  162. package/dist/codex/.agents/skills/execute-plan/SKILL.md +4 -3
  163. package/dist/codex/.agents/skills/execute-plan/context/contracts/execution-contract.md +30 -1
  164. package/dist/codex/.agents/skills/fix-bug/context/contracts/execution-contract.md +30 -1
  165. package/dist/codex/.agents/skills/idea-to-backlog/context/contracts/execution-contract.md +30 -1
  166. package/dist/codex/.agents/skills/plan-work/context/contracts/execution-contract.md +30 -1
  167. package/dist/codex/.agents/skills/pull-work/SKILL.md +12 -0
  168. package/dist/codex/.agents/skills/pull-work/context/contracts/execution-contract.md +30 -1
  169. package/dist/codex/.agents/skills/review-work/SKILL.md +11 -0
  170. package/dist/codex/.agents/skills/review-work/context/contracts/execution-contract.md +30 -1
  171. package/dist/codex/.agents/skills/standards-authoring/SKILL.md +87 -0
  172. package/dist/codex/.agents/skills/tdd-workflow/context/contracts/execution-contract.md +30 -1
  173. package/dist/codex/.agents/skills/verify-work/context/contracts/execution-contract.md +30 -1
  174. package/dist/codex/.codex/agents/tool-security-reviewer.toml +1 -1
  175. package/dist/codex/build/package.json +1 -1
  176. package/dist/codex/build/src/cli/init.js +35 -3
  177. package/dist/codex/build/src/cli/kit.js +95 -2
  178. package/dist/codex/build/src/cli/pull-work-provider.js +7 -1
  179. package/dist/codex/build/src/cli/validate-workflow-artifacts.js +53 -0
  180. package/dist/codex/build/src/cli/workflow.js +5 -1
  181. package/dist/codex/build/src/flow-kit/provision.d.ts +23 -0
  182. package/dist/codex/build/src/flow-kit/provision.js +99 -0
  183. package/dist/codex/build/src/flow-kit/validate.d.ts +52 -0
  184. package/dist/codex/build/src/flow-kit/validate.js +214 -9
  185. package/dist/codex/build/src/runtime-adapters.js +1 -1
  186. package/dist/codex/context/contracts/execution-contract.md +30 -1
  187. package/dist/codex/context/contracts/review-contract.md +4 -0
  188. package/dist/codex/context/contracts/trigger-guards.md +73 -0
  189. package/dist/codex/context/scripts/telemetry/lib/config.sh +29 -0
  190. package/dist/codex/context/settings/backlog-provider-settings.json +1 -1
  191. package/dist/codex/context/settings/workspace-backlog-provider-settings.example.json +1 -1
  192. package/dist/codex/docs/adr/0023-kit-provisioning.md +47 -0
  193. package/dist/codex/docs/adr/index.md +1 -0
  194. package/dist/codex/docs/architecture-engine-and-kits.md +17 -0
  195. package/dist/codex/docs/context-map.md +3 -0
  196. package/dist/codex/docs/decisions/backlog-readiness-source.md +89 -0
  197. package/dist/codex/docs/decisions/index.md +1 -0
  198. package/dist/codex/docs/developer-architecture.md +3 -3
  199. package/dist/codex/docs/flow-kit-repository-contract.md +34 -3
  200. package/dist/codex/docs/kit-authoring-guide.md +1 -1
  201. package/dist/codex/docs/veritas-integration.md +12 -0
  202. package/dist/codex/evals/ci/run-baseline.sh +4 -0
  203. package/dist/codex/evals/integration/test_kit_provisioning.sh +112 -0
  204. package/dist/codex/evals/integration/test_liveness_console_relay.sh +91 -1
  205. package/dist/codex/evals/integration/test_liveness_heartbeat.sh +66 -0
  206. package/dist/codex/evals/integration/test_pull_work_provider.sh +18 -0
  207. package/dist/codex/evals/integration/test_veritas_governance_kit.sh +256 -0
  208. package/dist/codex/evals/integration/test_workflow_artifacts.sh +257 -0
  209. package/dist/codex/evals/static/test_package.sh +6 -0
  210. package/dist/codex/evals/static/test_workflow_skills.sh +16 -0
  211. package/dist/codex/install.sh +1 -1
  212. package/dist/codex/kits/builder/flows/publish-learn.flow.json +9 -1
  213. package/dist/codex/kits/builder/skills/execute-plan/SKILL.md +4 -3
  214. package/dist/codex/kits/builder/skills/pull-work/SKILL.md +12 -0
  215. package/dist/codex/kits/builder/skills/review-work/SKILL.md +11 -0
  216. package/dist/codex/kits/veritas-governance/adapter/readiness-to-trust-bundle.mjs +19 -20
  217. package/dist/codex/kits/veritas-governance/assets/starter-hooks/githooks/post-commit +13 -0
  218. package/dist/codex/kits/veritas-governance/assets/starter-hooks/githooks/pre-push +13 -0
  219. package/dist/codex/kits/veritas-governance/assets/starter-standards/veritas/GOVERNANCE.md +23 -0
  220. package/dist/codex/kits/veritas-governance/assets/starter-standards/veritas/README.md +58 -0
  221. package/dist/codex/kits/veritas-governance/assets/starter-standards/veritas/authority/default.authority-settings.json +30 -0
  222. package/dist/codex/kits/veritas-governance/assets/starter-standards/veritas/repo-map.json +115 -0
  223. package/dist/codex/kits/veritas-governance/assets/starter-standards/veritas/repo-standards/default.repo-standards.json +54 -0
  224. package/dist/codex/kits/veritas-governance/assets/starter-standards/veritas.claims.json +179 -0
  225. package/dist/codex/kits/veritas-governance/docs/README.md +141 -10
  226. package/dist/codex/kits/veritas-governance/fixtures/standards-authoring/approved.trust-bundle.json +74 -0
  227. package/dist/codex/kits/veritas-governance/fixtures/standards-authoring/not-approved.trust-bundle.json +74 -0
  228. package/dist/codex/kits/veritas-governance/flows/standards-authoring.flow.json +35 -0
  229. package/dist/codex/kits/veritas-governance/kit.json +65 -0
  230. package/dist/codex/kits/veritas-governance/skills/consult-standards/SKILL.md +73 -0
  231. package/dist/codex/kits/veritas-governance/skills/standards-authoring/SKILL.md +87 -0
  232. package/dist/codex/schemas/backlog-provider-settings.schema.json +1 -1
  233. package/dist/codex/schemas/workflow-waves.schema.json +347 -0
  234. package/dist/codex/scripts/check-layer-boundary.mjs +98 -0
  235. package/dist/codex/scripts/hooks/claude-telemetry-hook.js +6 -0
  236. package/dist/codex/scripts/hooks/lib/liveness-heartbeat.js +42 -1
  237. package/dist/codex/scripts/hooks/lib/liveness-write.js +109 -9
  238. package/dist/codex/scripts/liveness/relay.sh +23 -11
  239. package/dist/codex/scripts/telemetry/lib/config.sh +29 -0
  240. package/dist/kiro/agents/tool-security-reviewer.json +1 -1
  241. package/dist/kiro/build/package.json +1 -1
  242. package/dist/kiro/build/src/cli/init.js +35 -3
  243. package/dist/kiro/build/src/cli/kit.js +95 -2
  244. package/dist/kiro/build/src/cli/pull-work-provider.js +7 -1
  245. package/dist/kiro/build/src/cli/validate-workflow-artifacts.js +53 -0
  246. package/dist/kiro/build/src/cli/workflow.js +5 -1
  247. package/dist/kiro/build/src/flow-kit/provision.d.ts +23 -0
  248. package/dist/kiro/build/src/flow-kit/provision.js +99 -0
  249. package/dist/kiro/build/src/flow-kit/validate.d.ts +52 -0
  250. package/dist/kiro/build/src/flow-kit/validate.js +214 -9
  251. package/dist/kiro/build/src/runtime-adapters.js +1 -1
  252. package/dist/kiro/context/contracts/execution-contract.md +30 -1
  253. package/dist/kiro/context/contracts/review-contract.md +4 -0
  254. package/dist/kiro/context/contracts/trigger-guards.md +73 -0
  255. package/dist/kiro/context/scripts/telemetry/lib/config.sh +29 -0
  256. package/dist/kiro/context/settings/backlog-provider-settings.json +1 -1
  257. package/dist/kiro/context/settings/workspace-backlog-provider-settings.example.json +1 -1
  258. package/dist/kiro/docs/adr/0023-kit-provisioning.md +47 -0
  259. package/dist/kiro/docs/adr/index.md +1 -0
  260. package/dist/kiro/docs/architecture-engine-and-kits.md +17 -0
  261. package/dist/kiro/docs/context-map.md +3 -0
  262. package/dist/kiro/docs/decisions/backlog-readiness-source.md +89 -0
  263. package/dist/kiro/docs/decisions/index.md +1 -0
  264. package/dist/kiro/docs/developer-architecture.md +3 -3
  265. package/dist/kiro/docs/flow-kit-repository-contract.md +34 -3
  266. package/dist/kiro/docs/kit-authoring-guide.md +1 -1
  267. package/dist/kiro/docs/veritas-integration.md +12 -0
  268. package/dist/kiro/evals/ci/run-baseline.sh +4 -0
  269. package/dist/kiro/evals/integration/test_kit_provisioning.sh +112 -0
  270. package/dist/kiro/evals/integration/test_liveness_console_relay.sh +91 -1
  271. package/dist/kiro/evals/integration/test_liveness_heartbeat.sh +66 -0
  272. package/dist/kiro/evals/integration/test_pull_work_provider.sh +18 -0
  273. package/dist/kiro/evals/integration/test_veritas_governance_kit.sh +256 -0
  274. package/dist/kiro/evals/integration/test_workflow_artifacts.sh +257 -0
  275. package/dist/kiro/evals/static/test_package.sh +6 -0
  276. package/dist/kiro/evals/static/test_workflow_skills.sh +16 -0
  277. package/dist/kiro/install.sh +1 -1
  278. package/dist/kiro/kits/builder/flows/publish-learn.flow.json +9 -1
  279. package/dist/kiro/kits/builder/skills/execute-plan/SKILL.md +4 -3
  280. package/dist/kiro/kits/builder/skills/pull-work/SKILL.md +12 -0
  281. package/dist/kiro/kits/builder/skills/review-work/SKILL.md +11 -0
  282. package/dist/kiro/kits/veritas-governance/adapter/readiness-to-trust-bundle.mjs +19 -20
  283. package/dist/kiro/kits/veritas-governance/assets/starter-hooks/githooks/post-commit +13 -0
  284. package/dist/kiro/kits/veritas-governance/assets/starter-hooks/githooks/pre-push +13 -0
  285. package/dist/kiro/kits/veritas-governance/assets/starter-standards/veritas/GOVERNANCE.md +23 -0
  286. package/dist/kiro/kits/veritas-governance/assets/starter-standards/veritas/README.md +58 -0
  287. package/dist/kiro/kits/veritas-governance/assets/starter-standards/veritas/authority/default.authority-settings.json +30 -0
  288. package/dist/kiro/kits/veritas-governance/assets/starter-standards/veritas/repo-map.json +115 -0
  289. package/dist/kiro/kits/veritas-governance/assets/starter-standards/veritas/repo-standards/default.repo-standards.json +54 -0
  290. package/dist/kiro/kits/veritas-governance/assets/starter-standards/veritas.claims.json +179 -0
  291. package/dist/kiro/kits/veritas-governance/docs/README.md +141 -10
  292. package/dist/kiro/kits/veritas-governance/fixtures/standards-authoring/approved.trust-bundle.json +74 -0
  293. package/dist/kiro/kits/veritas-governance/fixtures/standards-authoring/not-approved.trust-bundle.json +74 -0
  294. package/dist/kiro/kits/veritas-governance/flows/standards-authoring.flow.json +35 -0
  295. package/dist/kiro/kits/veritas-governance/kit.json +65 -0
  296. package/dist/kiro/kits/veritas-governance/skills/consult-standards/SKILL.md +73 -0
  297. package/dist/kiro/kits/veritas-governance/skills/standards-authoring/SKILL.md +87 -0
  298. package/dist/kiro/schemas/backlog-provider-settings.schema.json +1 -1
  299. package/dist/kiro/schemas/workflow-waves.schema.json +347 -0
  300. package/dist/kiro/scripts/check-layer-boundary.mjs +98 -0
  301. package/dist/kiro/scripts/hooks/claude-telemetry-hook.js +6 -0
  302. package/dist/kiro/scripts/hooks/lib/liveness-heartbeat.js +42 -1
  303. package/dist/kiro/scripts/hooks/lib/liveness-write.js +109 -9
  304. package/dist/kiro/scripts/liveness/relay.sh +23 -11
  305. package/dist/kiro/scripts/telemetry/lib/config.sh +29 -0
  306. package/dist/opencode/.opencode/agents/tool-security-reviewer.md +2 -1
  307. package/dist/opencode/.opencode/skills/consult-standards/SKILL.md +73 -0
  308. package/dist/opencode/.opencode/skills/execute-plan/SKILL.md +4 -3
  309. package/dist/opencode/.opencode/skills/pull-work/SKILL.md +12 -0
  310. package/dist/opencode/.opencode/skills/review-work/SKILL.md +11 -0
  311. package/dist/opencode/.opencode/skills/standards-authoring/SKILL.md +87 -0
  312. package/dist/opencode/build/package.json +1 -1
  313. package/dist/opencode/build/src/cli/init.js +35 -3
  314. package/dist/opencode/build/src/cli/kit.js +95 -2
  315. package/dist/opencode/build/src/cli/pull-work-provider.js +7 -1
  316. package/dist/opencode/build/src/cli/validate-workflow-artifacts.js +53 -0
  317. package/dist/opencode/build/src/cli/workflow.js +5 -1
  318. package/dist/opencode/build/src/flow-kit/provision.d.ts +23 -0
  319. package/dist/opencode/build/src/flow-kit/provision.js +99 -0
  320. package/dist/opencode/build/src/flow-kit/validate.d.ts +52 -0
  321. package/dist/opencode/build/src/flow-kit/validate.js +214 -9
  322. package/dist/opencode/build/src/runtime-adapters.js +1 -1
  323. package/dist/opencode/context/contracts/execution-contract.md +30 -1
  324. package/dist/opencode/context/contracts/review-contract.md +4 -0
  325. package/dist/opencode/context/contracts/trigger-guards.md +73 -0
  326. package/dist/opencode/context/scripts/telemetry/lib/config.sh +29 -0
  327. package/dist/opencode/context/settings/backlog-provider-settings.json +1 -1
  328. package/dist/opencode/context/settings/workspace-backlog-provider-settings.example.json +1 -1
  329. package/dist/opencode/docs/adr/0023-kit-provisioning.md +47 -0
  330. package/dist/opencode/docs/adr/index.md +1 -0
  331. package/dist/opencode/docs/architecture-engine-and-kits.md +17 -0
  332. package/dist/opencode/docs/context-map.md +3 -0
  333. package/dist/opencode/docs/decisions/backlog-readiness-source.md +89 -0
  334. package/dist/opencode/docs/decisions/index.md +1 -0
  335. package/dist/opencode/docs/developer-architecture.md +3 -3
  336. package/dist/opencode/docs/flow-kit-repository-contract.md +34 -3
  337. package/dist/opencode/docs/kit-authoring-guide.md +1 -1
  338. package/dist/opencode/docs/veritas-integration.md +12 -0
  339. package/dist/opencode/evals/ci/run-baseline.sh +4 -0
  340. package/dist/opencode/evals/integration/test_kit_provisioning.sh +112 -0
  341. package/dist/opencode/evals/integration/test_liveness_console_relay.sh +91 -1
  342. package/dist/opencode/evals/integration/test_liveness_heartbeat.sh +66 -0
  343. package/dist/opencode/evals/integration/test_pull_work_provider.sh +18 -0
  344. package/dist/opencode/evals/integration/test_veritas_governance_kit.sh +256 -0
  345. package/dist/opencode/evals/integration/test_workflow_artifacts.sh +257 -0
  346. package/dist/opencode/evals/static/test_package.sh +6 -0
  347. package/dist/opencode/evals/static/test_workflow_skills.sh +16 -0
  348. package/dist/opencode/install.sh +1 -1
  349. package/dist/opencode/kits/builder/flows/publish-learn.flow.json +9 -1
  350. package/dist/opencode/kits/builder/skills/execute-plan/SKILL.md +4 -3
  351. package/dist/opencode/kits/builder/skills/pull-work/SKILL.md +12 -0
  352. package/dist/opencode/kits/builder/skills/review-work/SKILL.md +11 -0
  353. package/dist/opencode/kits/veritas-governance/adapter/readiness-to-trust-bundle.mjs +19 -20
  354. package/dist/opencode/kits/veritas-governance/assets/starter-hooks/githooks/post-commit +13 -0
  355. package/dist/opencode/kits/veritas-governance/assets/starter-hooks/githooks/pre-push +13 -0
  356. package/dist/opencode/kits/veritas-governance/assets/starter-standards/veritas/GOVERNANCE.md +23 -0
  357. package/dist/opencode/kits/veritas-governance/assets/starter-standards/veritas/README.md +58 -0
  358. package/dist/opencode/kits/veritas-governance/assets/starter-standards/veritas/authority/default.authority-settings.json +30 -0
  359. package/dist/opencode/kits/veritas-governance/assets/starter-standards/veritas/repo-map.json +115 -0
  360. package/dist/opencode/kits/veritas-governance/assets/starter-standards/veritas/repo-standards/default.repo-standards.json +54 -0
  361. package/dist/opencode/kits/veritas-governance/assets/starter-standards/veritas.claims.json +179 -0
  362. package/dist/opencode/kits/veritas-governance/docs/README.md +141 -10
  363. package/dist/opencode/kits/veritas-governance/fixtures/standards-authoring/approved.trust-bundle.json +74 -0
  364. package/dist/opencode/kits/veritas-governance/fixtures/standards-authoring/not-approved.trust-bundle.json +74 -0
  365. package/dist/opencode/kits/veritas-governance/flows/standards-authoring.flow.json +35 -0
  366. package/dist/opencode/kits/veritas-governance/kit.json +65 -0
  367. package/dist/opencode/kits/veritas-governance/skills/consult-standards/SKILL.md +73 -0
  368. package/dist/opencode/kits/veritas-governance/skills/standards-authoring/SKILL.md +87 -0
  369. package/dist/opencode/schemas/backlog-provider-settings.schema.json +1 -1
  370. package/dist/opencode/schemas/workflow-waves.schema.json +347 -0
  371. package/dist/opencode/scripts/check-layer-boundary.mjs +98 -0
  372. package/dist/opencode/scripts/hooks/claude-telemetry-hook.js +6 -0
  373. package/dist/opencode/scripts/hooks/lib/liveness-heartbeat.js +42 -1
  374. package/dist/opencode/scripts/hooks/lib/liveness-write.js +109 -9
  375. package/dist/opencode/scripts/liveness/relay.sh +23 -11
  376. package/dist/opencode/scripts/telemetry/lib/config.sh +29 -0
  377. package/dist/pi/.pi/skills/consult-standards/SKILL.md +73 -0
  378. package/dist/pi/.pi/skills/execute-plan/SKILL.md +4 -3
  379. package/dist/pi/.pi/skills/pull-work/SKILL.md +12 -0
  380. package/dist/pi/.pi/skills/review-work/SKILL.md +11 -0
  381. package/dist/pi/.pi/skills/standards-authoring/SKILL.md +87 -0
  382. package/dist/pi/build/package.json +1 -1
  383. package/dist/pi/build/src/cli/init.js +35 -3
  384. package/dist/pi/build/src/cli/kit.js +95 -2
  385. package/dist/pi/build/src/cli/pull-work-provider.js +7 -1
  386. package/dist/pi/build/src/cli/validate-workflow-artifacts.js +53 -0
  387. package/dist/pi/build/src/cli/workflow.js +5 -1
  388. package/dist/pi/build/src/flow-kit/provision.d.ts +23 -0
  389. package/dist/pi/build/src/flow-kit/provision.js +99 -0
  390. package/dist/pi/build/src/flow-kit/validate.d.ts +52 -0
  391. package/dist/pi/build/src/flow-kit/validate.js +214 -9
  392. package/dist/pi/build/src/runtime-adapters.js +1 -1
  393. package/dist/pi/context/contracts/execution-contract.md +30 -1
  394. package/dist/pi/context/contracts/review-contract.md +4 -0
  395. package/dist/pi/context/contracts/trigger-guards.md +73 -0
  396. package/dist/pi/context/scripts/telemetry/lib/config.sh +29 -0
  397. package/dist/pi/context/settings/backlog-provider-settings.json +1 -1
  398. package/dist/pi/context/settings/workspace-backlog-provider-settings.example.json +1 -1
  399. package/dist/pi/docs/adr/0023-kit-provisioning.md +47 -0
  400. package/dist/pi/docs/adr/index.md +1 -0
  401. package/dist/pi/docs/architecture-engine-and-kits.md +17 -0
  402. package/dist/pi/docs/context-map.md +3 -0
  403. package/dist/pi/docs/decisions/backlog-readiness-source.md +89 -0
  404. package/dist/pi/docs/decisions/index.md +1 -0
  405. package/dist/pi/docs/developer-architecture.md +3 -3
  406. package/dist/pi/docs/flow-kit-repository-contract.md +34 -3
  407. package/dist/pi/docs/kit-authoring-guide.md +1 -1
  408. package/dist/pi/docs/veritas-integration.md +12 -0
  409. package/dist/pi/evals/ci/run-baseline.sh +4 -0
  410. package/dist/pi/evals/integration/test_kit_provisioning.sh +112 -0
  411. package/dist/pi/evals/integration/test_liveness_console_relay.sh +91 -1
  412. package/dist/pi/evals/integration/test_liveness_heartbeat.sh +66 -0
  413. package/dist/pi/evals/integration/test_pull_work_provider.sh +18 -0
  414. package/dist/pi/evals/integration/test_veritas_governance_kit.sh +256 -0
  415. package/dist/pi/evals/integration/test_workflow_artifacts.sh +257 -0
  416. package/dist/pi/evals/static/test_package.sh +6 -0
  417. package/dist/pi/evals/static/test_workflow_skills.sh +16 -0
  418. package/dist/pi/install.sh +1 -1
  419. package/dist/pi/kits/builder/flows/publish-learn.flow.json +9 -1
  420. package/dist/pi/kits/builder/skills/execute-plan/SKILL.md +4 -3
  421. package/dist/pi/kits/builder/skills/pull-work/SKILL.md +12 -0
  422. package/dist/pi/kits/builder/skills/review-work/SKILL.md +11 -0
  423. package/dist/pi/kits/veritas-governance/adapter/readiness-to-trust-bundle.mjs +19 -20
  424. package/dist/pi/kits/veritas-governance/assets/starter-hooks/githooks/post-commit +13 -0
  425. package/dist/pi/kits/veritas-governance/assets/starter-hooks/githooks/pre-push +13 -0
  426. package/dist/pi/kits/veritas-governance/assets/starter-standards/veritas/GOVERNANCE.md +23 -0
  427. package/dist/pi/kits/veritas-governance/assets/starter-standards/veritas/README.md +58 -0
  428. package/dist/pi/kits/veritas-governance/assets/starter-standards/veritas/authority/default.authority-settings.json +30 -0
  429. package/dist/pi/kits/veritas-governance/assets/starter-standards/veritas/repo-map.json +115 -0
  430. package/dist/pi/kits/veritas-governance/assets/starter-standards/veritas/repo-standards/default.repo-standards.json +54 -0
  431. package/dist/pi/kits/veritas-governance/assets/starter-standards/veritas.claims.json +179 -0
  432. package/dist/pi/kits/veritas-governance/docs/README.md +141 -10
  433. package/dist/pi/kits/veritas-governance/fixtures/standards-authoring/approved.trust-bundle.json +74 -0
  434. package/dist/pi/kits/veritas-governance/fixtures/standards-authoring/not-approved.trust-bundle.json +74 -0
  435. package/dist/pi/kits/veritas-governance/flows/standards-authoring.flow.json +35 -0
  436. package/dist/pi/kits/veritas-governance/kit.json +65 -0
  437. package/dist/pi/kits/veritas-governance/skills/consult-standards/SKILL.md +73 -0
  438. package/dist/pi/kits/veritas-governance/skills/standards-authoring/SKILL.md +87 -0
  439. package/dist/pi/schemas/backlog-provider-settings.schema.json +1 -1
  440. package/dist/pi/schemas/workflow-waves.schema.json +347 -0
  441. package/dist/pi/scripts/check-layer-boundary.mjs +98 -0
  442. package/dist/pi/scripts/hooks/claude-telemetry-hook.js +6 -0
  443. package/dist/pi/scripts/hooks/lib/liveness-heartbeat.js +42 -1
  444. package/dist/pi/scripts/hooks/lib/liveness-write.js +109 -9
  445. package/dist/pi/scripts/liveness/relay.sh +23 -11
  446. package/dist/pi/scripts/telemetry/lib/config.sh +29 -0
  447. package/docs/adr/0023-kit-provisioning.md +47 -0
  448. package/docs/adr/index.md +1 -0
  449. package/docs/architecture-engine-and-kits.md +17 -0
  450. package/docs/context-map.md +3 -0
  451. package/docs/decisions/backlog-readiness-source.md +89 -0
  452. package/docs/decisions/index.md +1 -0
  453. package/docs/developer-architecture.md +3 -3
  454. package/docs/flow-kit-repository-contract.md +34 -3
  455. package/docs/kit-authoring-guide.md +1 -1
  456. package/docs/veritas-integration.md +12 -0
  457. package/evals/ci/run-baseline.sh +4 -0
  458. package/evals/integration/test_kit_provisioning.sh +112 -0
  459. package/evals/integration/test_liveness_console_relay.sh +91 -1
  460. package/evals/integration/test_liveness_heartbeat.sh +66 -0
  461. package/evals/integration/test_pull_work_provider.sh +18 -0
  462. package/evals/integration/test_veritas_governance_kit.sh +256 -0
  463. package/evals/integration/test_workflow_artifacts.sh +257 -0
  464. package/evals/static/test_package.sh +6 -0
  465. package/evals/static/test_workflow_skills.sh +16 -0
  466. package/kits/builder/flows/publish-learn.flow.json +9 -1
  467. package/kits/builder/skills/execute-plan/SKILL.md +4 -3
  468. package/kits/builder/skills/pull-work/SKILL.md +12 -0
  469. package/kits/builder/skills/review-work/SKILL.md +11 -0
  470. package/kits/veritas-governance/adapter/readiness-to-trust-bundle.mjs +19 -20
  471. package/kits/veritas-governance/assets/starter-hooks/githooks/post-commit +13 -0
  472. package/kits/veritas-governance/assets/starter-hooks/githooks/pre-push +13 -0
  473. package/kits/veritas-governance/assets/starter-standards/veritas/GOVERNANCE.md +23 -0
  474. package/kits/veritas-governance/assets/starter-standards/veritas/README.md +58 -0
  475. package/kits/veritas-governance/assets/starter-standards/veritas/authority/default.authority-settings.json +30 -0
  476. package/kits/veritas-governance/assets/starter-standards/veritas/repo-map.json +115 -0
  477. package/kits/veritas-governance/assets/starter-standards/veritas/repo-standards/default.repo-standards.json +54 -0
  478. package/kits/veritas-governance/assets/starter-standards/veritas.claims.json +179 -0
  479. package/kits/veritas-governance/docs/README.md +141 -10
  480. package/kits/veritas-governance/fixtures/standards-authoring/approved.trust-bundle.json +74 -0
  481. package/kits/veritas-governance/fixtures/standards-authoring/not-approved.trust-bundle.json +74 -0
  482. package/kits/veritas-governance/flows/standards-authoring.flow.json +35 -0
  483. package/kits/veritas-governance/kit.json +65 -0
  484. package/kits/veritas-governance/skills/consult-standards/SKILL.md +73 -0
  485. package/kits/veritas-governance/skills/standards-authoring/SKILL.md +87 -0
  486. package/package.json +2 -1
  487. package/schemas/backlog-provider-settings.schema.json +1 -1
  488. package/schemas/workflow-waves.schema.json +347 -0
  489. package/scripts/check-layer-boundary.mjs +98 -0
  490. package/scripts/hooks/claude-telemetry-hook.js +6 -0
  491. package/scripts/hooks/lib/liveness-heartbeat.js +42 -1
  492. package/scripts/hooks/lib/liveness-write.js +109 -9
  493. package/scripts/liveness/relay.sh +23 -11
  494. package/scripts/telemetry/lib/config.sh +29 -0
  495. package/src/cli/builder-flow-runtime.test.mjs +86 -0
  496. package/src/cli/flow-resolver-composition.test.mjs +20 -1
  497. package/src/cli/init.ts +31 -3
  498. package/src/cli/kit-metadata-security.test.mjs +163 -1
  499. package/src/cli/kit-provisioning.test.mjs +122 -0
  500. package/src/cli/kit.ts +83 -2
  501. package/src/cli/pull-work-provider.ts +7 -1
  502. package/src/cli/validate-waves.test.mjs +134 -0
  503. package/src/cli/validate-workflow-artifacts.ts +47 -0
  504. package/src/cli/workflow.ts +7 -1
  505. package/src/flow-kit/provision.ts +118 -0
  506. package/src/flow-kit/validate.ts +233 -10
  507. package/src/runtime-adapters.ts +1 -1
@@ -7,26 +7,36 @@
7
7
  # never forked). The Console side ingests this record type and projects the fleet view + runs the
8
8
  # janitor (console repo #125); this script is only the flow-agents EMIT half.
9
9
  #
10
- # STRICTLY OPTIONAL and local-first (ADR 0012 §5): a no-op unless FLOW_AGENTS_CONSOLE_LIVENESS_RELAY
11
- # is enabled AND a console endpoint is configured. Best-effort throughout it must NEVER block, slow,
12
- # or fail the local liveness write that already happened before this was invoked. Every failure path
13
- # is a quiet `exit 0`.
10
+ # STRICTLY OPTIONAL and local-first (ADR 0012 §5): a no-op unless the liveness relay is enabled AND a
11
+ # console endpoint is configured. Enablement is conf-driven (#567, parity with economics #469): an
12
+ # operator sets `console_liveness_relay=1` in the console conf (or it defaults on once a console url
13
+ # resolves) — NOT an env var. config.sh (sourced below) is the authoritative, trust-gated decision
14
+ # and also supplies the endpoint/token/tenant from the conf. Best-effort throughout — it must NEVER
15
+ # block, slow, or fail the local liveness write that already happened before this was invoked. Every
16
+ # failure path is a quiet `exit 0`.
14
17
  #
15
18
  # Invoked (fully detached, best-effort) from scripts/hooks/lib/liveness-write.js after the durable
16
19
  # local append. Usage: relay.sh '<liveness-event-json>'
17
20
  set -uo pipefail
18
21
 
19
- # Opt-in gate — off by default.
20
- case "${FLOW_AGENTS_CONSOLE_LIVENESS_RELAY:-}" in
21
- 1 | true | TRUE | yes | on) ;;
22
- *) exit 0 ;;
23
- esac
24
-
25
22
  SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" || exit 0
26
23
 
27
24
  # transport.sh sources ${TELEMETRY_DIR}/lib/redact.sh at load — point it at the telemetry lib dir,
28
25
  # then reuse the SAME console POST core the telemetry mirror uses.
29
26
  export TELEMETRY_DIR="${TELEMETRY_DIR:-$SCRIPT_DIR/../telemetry}"
27
+
28
+ # Source config.sh FIRST (best-effort, like economics-record.sh) so the conf resolves enablement
29
+ # (FLOW_AGENTS_CONSOLE_LIVENESS_RELAY) and the endpoint/token/tenant — trust-gated for default-path
30
+ # confs. This is what makes conf-only operation work with NO env var set.
31
+ # shellcheck source=/dev/null
32
+ [[ -f "$TELEMETRY_DIR/lib/config.sh" ]] && source "$TELEMETRY_DIR/lib/config.sh" 2>/dev/null || true
33
+
34
+ # Opt-in gate — off by default, now honoring the conf-derived value config.sh just resolved.
35
+ case "${FLOW_AGENTS_CONSOLE_LIVENESS_RELAY:-}" in
36
+ 1 | true | TRUE | yes | on) ;;
37
+ *) exit 0 ;;
38
+ esac
39
+
30
40
  [[ -f "$TELEMETRY_DIR/lib/transport.sh" ]] || exit 0
31
41
  # shellcheck source=/dev/null
32
42
  source "$TELEMETRY_DIR/lib/transport.sh" 2>/dev/null || exit 0
@@ -73,7 +83,9 @@ record="$(printf '%s' "$event_json" | jq -c '{
73
83
  ttlSeconds: (.ttlSeconds // null),
74
84
  host: (.host // null),
75
85
  branch: (.branch // null),
76
- artifact_dir: (.artifact_dir // .artifactDir // null)
86
+ artifact_dir: (.artifact_dir // .artifactDir // null),
87
+ source: (.source // null),
88
+ activity: (.activity // null)
77
89
  }' 2>/dev/null)" || exit 0
78
90
  [[ -z "$record" || "$record" == "null" ]] && exit 0
79
91
 
@@ -109,6 +109,13 @@ FLOW_AGENTS_CONSOLE_ECONOMICS_ENDPOINT_URL="${FLOW_AGENTS_CONSOLE_ECONOMICS_ENDP
109
109
  # Set (non-empty) only when the config file carries an explicit console_economics_relay key —
110
110
  # distinguishes "operator said 0/1" from "key absent" for the default-on rule below.
111
111
  console_economics_relay_raw=""
112
+ # Liveness relay (#567): same conf-driven, opt-out-not-silent-off shape as economics (#469) so an
113
+ # operator enables the hosted liveness mirror via console_liveness_relay=1 in the conf, NOT an env
114
+ # var/.profile. A caller-pre-set env var is the starting point; the config key overrides it; absent
115
+ # any key the default-on rule below turns it on once a console telemetry sink resolves.
116
+ FLOW_AGENTS_CONSOLE_LIVENESS_RELAY="${FLOW_AGENTS_CONSOLE_LIVENESS_RELAY:-}"
117
+ FLOW_AGENTS_CONSOLE_LIVENESS_ENDPOINT_URL="${FLOW_AGENTS_CONSOLE_LIVENESS_ENDPOINT_URL:-}"
118
+ console_liveness_relay_raw=""
112
119
  # Pricing registry source (consumed by lib/pricing.sh). Explicit file/URL win;
113
120
  # otherwise lib/pricing.sh uses the bundled pricing.json offline.
114
121
  TELEMETRY_PRICING_FILE="${TELEMETRY_PRICING_FILE:-${FLOW_AGENTS_PRICING_FILE:-}}"
@@ -164,6 +171,17 @@ if [[ -f "$TELEMETRY_CONFIG_FILE" ]]; then
164
171
  esac
165
172
  ;;
166
173
  console_economics_endpoint_url) FLOW_AGENTS_CONSOLE_ECONOMICS_ENDPOINT_URL="$value" ;;
174
+ console_liveness_relay)
175
+ case "$(echo "$value" | tr '[:upper:]' '[:lower:]')" in
176
+ 1|true|yes|on) console_liveness_relay_raw="1" ;;
177
+ 0|false|no|off) console_liveness_relay_raw="0" ;;
178
+ *)
179
+ printf 'warning: config.sh: unrecognized console_liveness_relay value %q; treating as off\n' "$value" >&2
180
+ console_liveness_relay_raw="$value"
181
+ ;;
182
+ esac
183
+ ;;
184
+ console_liveness_endpoint_url) FLOW_AGENTS_CONSOLE_LIVENESS_ENDPOINT_URL="$value" ;;
167
185
  console_pricing_url) TELEMETRY_PRICING_URL="$value" ;;
168
186
  pricing_url) TELEMETRY_PRICING_URL="$value" ;;
169
187
  pricing_file) TELEMETRY_PRICING_FILE="$value" ;;
@@ -186,6 +204,17 @@ elif [[ -z "$FLOW_AGENTS_CONSOLE_ECONOMICS_RELAY" \
186
204
  FLOW_AGENTS_CONSOLE_ECONOMICS_RELAY=1
187
205
  fi
188
206
 
207
+ # Liveness relay default-on rule (#567), identical shape to economics above: an explicit
208
+ # console_liveness_relay config key always wins; otherwise, once a console telemetry sink resolves,
209
+ # the relay defaults ON unless a caller already pre-set FLOW_AGENTS_CONSOLE_LIVENESS_RELAY in the
210
+ # environment. relay.sh's own opt-in gate reads this exact variable.
211
+ if [[ -n "$console_liveness_relay_raw" ]]; then
212
+ FLOW_AGENTS_CONSOLE_LIVENESS_RELAY="$console_liveness_relay_raw"
213
+ elif [[ -z "$FLOW_AGENTS_CONSOLE_LIVENESS_RELAY" \
214
+ && ( -n "${CONSOLE_TELEMETRY_URL:-}" || -n "${CONSOLE_TELEMETRY_ENDPOINT_URL:-}" ) ]]; then
215
+ FLOW_AGENTS_CONSOLE_LIVENESS_RELAY=1
216
+ fi
217
+
189
218
  # Pricing URL is explicit-only (env or config). Do not derive the console
190
219
  # pricing endpoint by default; the bundled registry is the reliable offline floor.
191
220
 
@@ -42,7 +42,36 @@ Execution may upgrade to a stronger mode when risk increases. Downgrades require
42
42
  - Independent tasks with no shared files can run in the same wave.
43
43
  - Shared files, generated artifacts, migrations, and cross-cutting contracts should be serialized unless the plan gives explicit file ownership.
44
44
  - Worker delegation must name the exact worker role (`tool-worker`) rather than spawning an unnamed/default implementation agent.
45
- - After each wave, collect results, check conflicts, and update the session artifact before starting the next wave.
45
+ - After each wave, reconcile results against the wave manifest (below), check conflicts, and update the session artifact before starting the next wave.
46
+
47
+ ## Wave Manifest And Reconciliation
48
+
49
+ Fan-out collection is machine-checkable, not prose. A reduce step that silently
50
+ drops a worker's stream is worse than one that errors.
51
+
52
+ - **Declare before dispatch.** Before dispatching a wave that delegates work,
53
+ declare it in the session's `waves.json` sidecar (schema:
54
+ `schemas/workflow-waves.schema.json`): `wave_id`, owning step, and one
55
+ `expected_workers` entry per worker. The expected count (M) must exist before
56
+ any result arrives.
57
+ - **One terminal record per worker.** Each worker lands exactly one terminal
58
+ status record: `completed`, `failed`, or `blocked`. Duplicate records and
59
+ undeclared reporters are validation errors.
60
+ - **Reconcile at wave close.** The orchestrator's collect step is
61
+ reconcile-against-manifest: record every declared worker that has no terminal
62
+ record as `not_reported` — never silently absorb a missing worker — then
63
+ record the wave's `reconciliation` with `expected_count` M, `reported_count`
64
+ N, and an explicit "N of M reported" summary naming the `not_reported`
65
+ workers (for example "2 of 3 reported; worker-3 not_reported").
66
+ - **Incomplete is visible, never silent.** A wave is `complete` only when N
67
+ equals M. An incomplete wave stays visible data and routes to re-dispatch, a
68
+ blocker report, or an explicit accepted gap; it must never be treated as
69
+ complete because the missing worker was forgotten.
70
+ - **Enforcement boundary (slice 1).** `validate-workflow-artifacts` enforces
71
+ the shape and the cross-record arithmetic (counts, exactly-one-record,
72
+ undeclared reporters, impossible `complete` claims) as data-level validation.
73
+ Stop-hook refusal of wave completion is #663 part 3 (slice 2), deferred until
74
+ the hook correctness issues (#453/#450/#494) are resolved.
46
75
 
47
76
  ## Delegation: Model Routing
48
77
 
@@ -0,0 +1,73 @@
1
+ ---
2
+ name: "consult-standards"
3
+ description: "Get just-in-time Veritas governance guidance for a file or work area before editing it: run `veritas explain --file <path>` (or `--work-area <id>`) to see the governance excerpt, the Repo Standards rules that apply, their do/don't/examples, and the latest recorded surface status — then edit within those rules. Use before changing a governed repo's files, or when you want to know what standards apply to a path. Pull-based guidance; it does not block (the PreToolUse hook is the enforcement gate)."
4
+ ---
5
+
6
+ # Consult Standards
7
+
8
+ Before you edit a file in a Veritas-governed repo, ask Veritas what applies to it. `veritas
9
+ explain` projects the repo's governance excerpt + the Repo Standards rules matching that file (or
10
+ work area) + their latest surface status into one just-in-time briefing — so you edit *within* the
11
+ rules instead of discovering a violation only when the PreToolUse hook blocks the write.
12
+
13
+ **This skill wraps the `veritas` CLI. It reimplements no rule evaluation** — `veritas explain`
14
+ does the matching and projection; the skill only tells you when and how to ask.
15
+
16
+ ## When to use this
17
+
18
+ - **Before editing** a file in a repo that has a `.veritas/` governance config — especially a
19
+ file under a governed work area, or one you haven't touched before.
20
+ - **When you want to know what standards apply** to a path or area without reading every rule in
21
+ `.veritas/repo-standards/` yourself.
22
+ - Not a gate: this is **pull-based** guidance you invoke. Enforcement is separate and automatic —
23
+ the Veritas PreToolUse hook (engine-side; installed via the kit's governance hooks) evaluates
24
+ and can *block* a non-conforming write whether or not you consulted first. Consulting first
25
+ means you shape the edit to pass, rather than getting blocked and retrying.
26
+
27
+ ## How to consult
28
+
29
+ ```bash
30
+ # For a specific file you're about to change:
31
+ veritas explain --file src/path/to/file.ts
32
+
33
+ # For a whole work area (a Repo Map graph node id):
34
+ veritas explain --work-area <work-area-id>
35
+
36
+ # Or pass a bare selector (auto-classified as a rule id, a file path if it contains '/', or a work-area token):
37
+ veritas explain src/path/to/file.ts
38
+ ```
39
+
40
+ `veritas explain` prints a **`Veritas JIT Context`** briefing:
41
+
42
+ - **`Governance:`** — the leading lines of `.veritas/GOVERNANCE.md` (the repo's terse governance rules).
43
+ - One block per **matching rule**: `Rule` / `Kind` / `Enforcement Level` (`Require` / `Guide` / …) /
44
+ `Summary` / `Do` / `Do not` / `Good` / `Bad` / `Context`.
45
+ - **`Surface status:`** — the latest recorded status for that rule from the evidence artifacts
46
+ (e.g. `verified`), plus any `Surface fault:` transparency-gap lines.
47
+
48
+ Read the matching rules, honor their `Do`/`Do not`, and keep the change inside the work area's
49
+ guidance. `No matching requirement found.` means no additional Repo Standard applies to that path
50
+ — proceed normally, it is not an error.
51
+
52
+ ## Source of truth
53
+
54
+ `veritas explain` is a *projection* of the repo's own governance config. When you want the raw
55
+ standards rather than the filtered view, read them directly — they are the source `explain` reads:
56
+
57
+ - `.veritas/GOVERNANCE.md` — the terse agent-facing governance rules.
58
+ - `.veritas/repo-standards/*.json` — the Repo Standards (each rule's `summary` / `mustDo` /
59
+ `mustNotDo` / `exampleGood` / `exampleBad` / `contextLinks`).
60
+ - `.veritas/repo-map.json` — the work-area graph `--work-area` selects against.
61
+
62
+ ## Contract
63
+
64
+ - **Read-only advisory.** This skill runs `veritas explain`, which reads config and evidence and
65
+ writes nothing. It never gates, never blocks, never attaches evidence, and has no pass/fail
66
+ verdict — it surfaces guidance, full stop. Enforcement stays the PreToolUse hook (engine-side).
67
+ - **No MCP server.** Just-in-time guidance here is agent-invoked CLI (`veritas explain`), not a
68
+ standing MCP service. Per the flow-agents MCP posture (ADR 0011), MCP never carries the gate and
69
+ enforcement stays hooks; this skill is the deliberate agent-pull replacement for a guidance
70
+ server, not a new server.
71
+ - **Wraps the engine; reimplements nothing.** All rule matching, governance projection, and
72
+ surface-status lookup live in `@kontourai/veritas` (`veritas explain` / `src/explain.mjs`). The
73
+ skill adds no evaluation logic.
@@ -42,7 +42,36 @@ Execution may upgrade to a stronger mode when risk increases. Downgrades require
42
42
  - Independent tasks with no shared files can run in the same wave.
43
43
  - Shared files, generated artifacts, migrations, and cross-cutting contracts should be serialized unless the plan gives explicit file ownership.
44
44
  - Worker delegation must name the exact worker role (`tool-worker`) rather than spawning an unnamed/default implementation agent.
45
- - After each wave, collect results, check conflicts, and update the session artifact before starting the next wave.
45
+ - After each wave, reconcile results against the wave manifest (below), check conflicts, and update the session artifact before starting the next wave.
46
+
47
+ ## Wave Manifest And Reconciliation
48
+
49
+ Fan-out collection is machine-checkable, not prose. A reduce step that silently
50
+ drops a worker's stream is worse than one that errors.
51
+
52
+ - **Declare before dispatch.** Before dispatching a wave that delegates work,
53
+ declare it in the session's `waves.json` sidecar (schema:
54
+ `schemas/workflow-waves.schema.json`): `wave_id`, owning step, and one
55
+ `expected_workers` entry per worker. The expected count (M) must exist before
56
+ any result arrives.
57
+ - **One terminal record per worker.** Each worker lands exactly one terminal
58
+ status record: `completed`, `failed`, or `blocked`. Duplicate records and
59
+ undeclared reporters are validation errors.
60
+ - **Reconcile at wave close.** The orchestrator's collect step is
61
+ reconcile-against-manifest: record every declared worker that has no terminal
62
+ record as `not_reported` — never silently absorb a missing worker — then
63
+ record the wave's `reconciliation` with `expected_count` M, `reported_count`
64
+ N, and an explicit "N of M reported" summary naming the `not_reported`
65
+ workers (for example "2 of 3 reported; worker-3 not_reported").
66
+ - **Incomplete is visible, never silent.** A wave is `complete` only when N
67
+ equals M. An incomplete wave stays visible data and routes to re-dispatch, a
68
+ blocker report, or an explicit accepted gap; it must never be treated as
69
+ complete because the missing worker was forgotten.
70
+ - **Enforcement boundary (slice 1).** `validate-workflow-artifacts` enforces
71
+ the shape and the cross-record arithmetic (counts, exactly-one-record,
72
+ undeclared reporters, impossible `complete` claims) as data-level validation.
73
+ Stop-hook refusal of wave completion is #663 part 3 (slice 2), deferred until
74
+ the hook correctness issues (#453/#450/#494) are resolved.
46
75
 
47
76
  ## Delegation: Model Routing
48
77
 
@@ -42,7 +42,36 @@ Execution may upgrade to a stronger mode when risk increases. Downgrades require
42
42
  - Independent tasks with no shared files can run in the same wave.
43
43
  - Shared files, generated artifacts, migrations, and cross-cutting contracts should be serialized unless the plan gives explicit file ownership.
44
44
  - Worker delegation must name the exact worker role (`tool-worker`) rather than spawning an unnamed/default implementation agent.
45
- - After each wave, collect results, check conflicts, and update the session artifact before starting the next wave.
45
+ - After each wave, reconcile results against the wave manifest (below), check conflicts, and update the session artifact before starting the next wave.
46
+
47
+ ## Wave Manifest And Reconciliation
48
+
49
+ Fan-out collection is machine-checkable, not prose. A reduce step that silently
50
+ drops a worker's stream is worse than one that errors.
51
+
52
+ - **Declare before dispatch.** Before dispatching a wave that delegates work,
53
+ declare it in the session's `waves.json` sidecar (schema:
54
+ `schemas/workflow-waves.schema.json`): `wave_id`, owning step, and one
55
+ `expected_workers` entry per worker. The expected count (M) must exist before
56
+ any result arrives.
57
+ - **One terminal record per worker.** Each worker lands exactly one terminal
58
+ status record: `completed`, `failed`, or `blocked`. Duplicate records and
59
+ undeclared reporters are validation errors.
60
+ - **Reconcile at wave close.** The orchestrator's collect step is
61
+ reconcile-against-manifest: record every declared worker that has no terminal
62
+ record as `not_reported` — never silently absorb a missing worker — then
63
+ record the wave's `reconciliation` with `expected_count` M, `reported_count`
64
+ N, and an explicit "N of M reported" summary naming the `not_reported`
65
+ workers (for example "2 of 3 reported; worker-3 not_reported").
66
+ - **Incomplete is visible, never silent.** A wave is `complete` only when N
67
+ equals M. An incomplete wave stays visible data and routes to re-dispatch, a
68
+ blocker report, or an explicit accepted gap; it must never be treated as
69
+ complete because the missing worker was forgotten.
70
+ - **Enforcement boundary (slice 1).** `validate-workflow-artifacts` enforces
71
+ the shape and the cross-record arithmetic (counts, exactly-one-record,
72
+ undeclared reporters, impossible `complete` claims) as data-level validation.
73
+ Stop-hook refusal of wave completion is #663 part 3 (slice 2), deferred until
74
+ the hook correctness issues (#453/#450/#494) are resolved.
46
75
 
47
76
  ## Delegation: Model Routing
48
77
 
@@ -11,7 +11,7 @@ Implement an approved plan while preserving scope, traceability, and recovery co
11
11
 
12
12
  - **Role:** canonical Builder build-step producer and standalone execution primitive.
13
13
  - **Binding:** `builder.build` step `execute`.
14
- - **Produces:** the active session execution report (`<slug>--deliver.md`), `state.json`, and `implementation-scope` for an active matching run.
14
+ - **Produces:** the active session execution report (`<slug>--deliver.md`), `state.json`, the wave manifest (`waves.json`) for delegated waves, and `implementation-scope` for an active matching run.
15
15
  - **Standalone no-run behavior:** execute the supplied plan and return execution evidence. Do not start a Builder run, record Builder evidence, or imply that an inactive Builder flow advanced.
16
16
 
17
17
  ## Model Routing
@@ -33,8 +33,8 @@ Use `RepositoryAdapter` for repository, target revision, worktree, and changed-f
33
33
 
34
34
  1. Read the plan. Return it to `plan-work` when it lacks a Definition Of Done, stable acceptance criteria, task mapping, sandbox boundary, or usable execution scope.
35
35
  2. Before delegation, compare the current target revision with the plan's base through `RepositoryAdapter`. Re-ground the plan when changed scope intersects its assumptions; record missing confirmation as `NOT_VERIFIED` rather than treating it as fresh.
36
- 3. Give each worker its bounded task, owned files, relevant acceptance IDs, required evidence, sandbox/worktree constraints, rollback conditions, and plan reference.
37
- 4. Run safe independent tasks concurrently and dependent tasks in order. Between waves, collect results, resolve conflicts, and update the execution record with completed work, remaining work, changed files, and supported acceptance criteria.
36
+ 3. Before dispatching a wave that delegates work, declare it in the session's wave manifest (`waves.json`, schema `schemas/workflow-waves.schema.json`): `wave_id`, owning step, and one `expected_workers` entry per worker, so the expected worker count (M) exists before any result arrives. Then give each worker its bounded task, owned files, relevant acceptance IDs, required evidence, sandbox/worktree constraints, rollback conditions, and plan reference.
37
+ 4. Run safe independent tasks concurrently and dependent tasks in order. Between waves, reconcile results against the wave manifest — never collect from memory or prose. Every declared worker must land exactly one terminal status record (`completed`, `failed`, or `blocked`). Record each declared worker that has no terminal record as `not_reported` — never silently absorb a missing worker — then record the wave's `reconciliation` with an explicit "N of M reported" summary naming the `not_reported` workers (for example "2 of 3 reported; worker-3 not_reported"). Treat the wave as complete only when N equals M; an incomplete wave is visible data that routes to re-dispatch, a blocker, or an explicit accepted gap. After reconciliation, resolve conflicts and update the execution record with completed work, remaining work, changed files, and supported acceptance criteria.
38
38
  5. For UI tasks, include the applicable frontend design guidance in the worker instruction.
39
39
  6. When implementation completes, record scope integrity: changed files, accepted deviations, task-to-criterion traceability, evidence, and outstanding gaps. Hand off to report-only review and verification; do not treat implementation as verification.
40
40
  7. Reconcile the execution report and `state.json` with the active session artifact directory.
@@ -49,6 +49,7 @@ The execution record must identify:
49
49
  - each completed task and its supported `AC*` identifiers
50
50
  - changed files and any scope deviation with approval or route-back reason
51
51
  - worker evidence, conflicts, rollback notes, remaining work, and next action
52
+ - per-wave reconciliation against the manifest: "N of M reported" and any `not_reported` workers with their recovery route
52
53
  - current revision comparison and re-grounding decision
53
54
 
54
55
  ## Active Builder Evidence
@@ -42,7 +42,36 @@ Execution may upgrade to a stronger mode when risk increases. Downgrades require
42
42
  - Independent tasks with no shared files can run in the same wave.
43
43
  - Shared files, generated artifacts, migrations, and cross-cutting contracts should be serialized unless the plan gives explicit file ownership.
44
44
  - Worker delegation must name the exact worker role (`tool-worker`) rather than spawning an unnamed/default implementation agent.
45
- - After each wave, collect results, check conflicts, and update the session artifact before starting the next wave.
45
+ - After each wave, reconcile results against the wave manifest (below), check conflicts, and update the session artifact before starting the next wave.
46
+
47
+ ## Wave Manifest And Reconciliation
48
+
49
+ Fan-out collection is machine-checkable, not prose. A reduce step that silently
50
+ drops a worker's stream is worse than one that errors.
51
+
52
+ - **Declare before dispatch.** Before dispatching a wave that delegates work,
53
+ declare it in the session's `waves.json` sidecar (schema:
54
+ `schemas/workflow-waves.schema.json`): `wave_id`, owning step, and one
55
+ `expected_workers` entry per worker. The expected count (M) must exist before
56
+ any result arrives.
57
+ - **One terminal record per worker.** Each worker lands exactly one terminal
58
+ status record: `completed`, `failed`, or `blocked`. Duplicate records and
59
+ undeclared reporters are validation errors.
60
+ - **Reconcile at wave close.** The orchestrator's collect step is
61
+ reconcile-against-manifest: record every declared worker that has no terminal
62
+ record as `not_reported` — never silently absorb a missing worker — then
63
+ record the wave's `reconciliation` with `expected_count` M, `reported_count`
64
+ N, and an explicit "N of M reported" summary naming the `not_reported`
65
+ workers (for example "2 of 3 reported; worker-3 not_reported").
66
+ - **Incomplete is visible, never silent.** A wave is `complete` only when N
67
+ equals M. An incomplete wave stays visible data and routes to re-dispatch, a
68
+ blocker report, or an explicit accepted gap; it must never be treated as
69
+ complete because the missing worker was forgotten.
70
+ - **Enforcement boundary (slice 1).** `validate-workflow-artifacts` enforces
71
+ the shape and the cross-record arithmetic (counts, exactly-one-record,
72
+ undeclared reporters, impossible `complete` claims) as data-level validation.
73
+ Stop-hook refusal of wave completion is #663 part 3 (slice 2), deferred until
74
+ the hook correctness issues (#453/#450/#494) are resolved.
46
75
 
47
76
  ## Delegation: Model Routing
48
77
 
@@ -42,7 +42,36 @@ Execution may upgrade to a stronger mode when risk increases. Downgrades require
42
42
  - Independent tasks with no shared files can run in the same wave.
43
43
  - Shared files, generated artifacts, migrations, and cross-cutting contracts should be serialized unless the plan gives explicit file ownership.
44
44
  - Worker delegation must name the exact worker role (`tool-worker`) rather than spawning an unnamed/default implementation agent.
45
- - After each wave, collect results, check conflicts, and update the session artifact before starting the next wave.
45
+ - After each wave, reconcile results against the wave manifest (below), check conflicts, and update the session artifact before starting the next wave.
46
+
47
+ ## Wave Manifest And Reconciliation
48
+
49
+ Fan-out collection is machine-checkable, not prose. A reduce step that silently
50
+ drops a worker's stream is worse than one that errors.
51
+
52
+ - **Declare before dispatch.** Before dispatching a wave that delegates work,
53
+ declare it in the session's `waves.json` sidecar (schema:
54
+ `schemas/workflow-waves.schema.json`): `wave_id`, owning step, and one
55
+ `expected_workers` entry per worker. The expected count (M) must exist before
56
+ any result arrives.
57
+ - **One terminal record per worker.** Each worker lands exactly one terminal
58
+ status record: `completed`, `failed`, or `blocked`. Duplicate records and
59
+ undeclared reporters are validation errors.
60
+ - **Reconcile at wave close.** The orchestrator's collect step is
61
+ reconcile-against-manifest: record every declared worker that has no terminal
62
+ record as `not_reported` — never silently absorb a missing worker — then
63
+ record the wave's `reconciliation` with `expected_count` M, `reported_count`
64
+ N, and an explicit "N of M reported" summary naming the `not_reported`
65
+ workers (for example "2 of 3 reported; worker-3 not_reported").
66
+ - **Incomplete is visible, never silent.** A wave is `complete` only when N
67
+ equals M. An incomplete wave stays visible data and routes to re-dispatch, a
68
+ blocker report, or an explicit accepted gap; it must never be treated as
69
+ complete because the missing worker was forgotten.
70
+ - **Enforcement boundary (slice 1).** `validate-workflow-artifacts` enforces
71
+ the shape and the cross-record arithmetic (counts, exactly-one-record,
72
+ undeclared reporters, impossible `complete` claims) as data-level validation.
73
+ Stop-hook refusal of wave completion is #663 part 3 (slice 2), deferred until
74
+ the hook correctness issues (#453/#450/#494) are resolved.
46
75
 
47
76
  ## Delegation: Model Routing
48
77
 
@@ -42,7 +42,36 @@ Execution may upgrade to a stronger mode when risk increases. Downgrades require
42
42
  - Independent tasks with no shared files can run in the same wave.
43
43
  - Shared files, generated artifacts, migrations, and cross-cutting contracts should be serialized unless the plan gives explicit file ownership.
44
44
  - Worker delegation must name the exact worker role (`tool-worker`) rather than spawning an unnamed/default implementation agent.
45
- - After each wave, collect results, check conflicts, and update the session artifact before starting the next wave.
45
+ - After each wave, reconcile results against the wave manifest (below), check conflicts, and update the session artifact before starting the next wave.
46
+
47
+ ## Wave Manifest And Reconciliation
48
+
49
+ Fan-out collection is machine-checkable, not prose. A reduce step that silently
50
+ drops a worker's stream is worse than one that errors.
51
+
52
+ - **Declare before dispatch.** Before dispatching a wave that delegates work,
53
+ declare it in the session's `waves.json` sidecar (schema:
54
+ `schemas/workflow-waves.schema.json`): `wave_id`, owning step, and one
55
+ `expected_workers` entry per worker. The expected count (M) must exist before
56
+ any result arrives.
57
+ - **One terminal record per worker.** Each worker lands exactly one terminal
58
+ status record: `completed`, `failed`, or `blocked`. Duplicate records and
59
+ undeclared reporters are validation errors.
60
+ - **Reconcile at wave close.** The orchestrator's collect step is
61
+ reconcile-against-manifest: record every declared worker that has no terminal
62
+ record as `not_reported` — never silently absorb a missing worker — then
63
+ record the wave's `reconciliation` with `expected_count` M, `reported_count`
64
+ N, and an explicit "N of M reported" summary naming the `not_reported`
65
+ workers (for example "2 of 3 reported; worker-3 not_reported").
66
+ - **Incomplete is visible, never silent.** A wave is `complete` only when N
67
+ equals M. An incomplete wave stays visible data and routes to re-dispatch, a
68
+ blocker report, or an explicit accepted gap; it must never be treated as
69
+ complete because the missing worker was forgotten.
70
+ - **Enforcement boundary (slice 1).** `validate-workflow-artifacts` enforces
71
+ the shape and the cross-record arithmetic (counts, exactly-one-record,
72
+ undeclared reporters, impossible `complete` claims) as data-level validation.
73
+ Stop-hook refusal of wave completion is #663 part 3 (slice 2), deferred until
74
+ the hook correctness issues (#453/#450/#494) are resolved.
46
75
 
47
76
  ## Delegation: Model Routing
48
77
 
@@ -42,7 +42,36 @@ Execution may upgrade to a stronger mode when risk increases. Downgrades require
42
42
  - Independent tasks with no shared files can run in the same wave.
43
43
  - Shared files, generated artifacts, migrations, and cross-cutting contracts should be serialized unless the plan gives explicit file ownership.
44
44
  - Worker delegation must name the exact worker role (`tool-worker`) rather than spawning an unnamed/default implementation agent.
45
- - After each wave, collect results, check conflicts, and update the session artifact before starting the next wave.
45
+ - After each wave, reconcile results against the wave manifest (below), check conflicts, and update the session artifact before starting the next wave.
46
+
47
+ ## Wave Manifest And Reconciliation
48
+
49
+ Fan-out collection is machine-checkable, not prose. A reduce step that silently
50
+ drops a worker's stream is worse than one that errors.
51
+
52
+ - **Declare before dispatch.** Before dispatching a wave that delegates work,
53
+ declare it in the session's `waves.json` sidecar (schema:
54
+ `schemas/workflow-waves.schema.json`): `wave_id`, owning step, and one
55
+ `expected_workers` entry per worker. The expected count (M) must exist before
56
+ any result arrives.
57
+ - **One terminal record per worker.** Each worker lands exactly one terminal
58
+ status record: `completed`, `failed`, or `blocked`. Duplicate records and
59
+ undeclared reporters are validation errors.
60
+ - **Reconcile at wave close.** The orchestrator's collect step is
61
+ reconcile-against-manifest: record every declared worker that has no terminal
62
+ record as `not_reported` — never silently absorb a missing worker — then
63
+ record the wave's `reconciliation` with `expected_count` M, `reported_count`
64
+ N, and an explicit "N of M reported" summary naming the `not_reported`
65
+ workers (for example "2 of 3 reported; worker-3 not_reported").
66
+ - **Incomplete is visible, never silent.** A wave is `complete` only when N
67
+ equals M. An incomplete wave stays visible data and routes to re-dispatch, a
68
+ blocker report, or an explicit accepted gap; it must never be treated as
69
+ complete because the missing worker was forgotten.
70
+ - **Enforcement boundary (slice 1).** `validate-workflow-artifacts` enforces
71
+ the shape and the cross-record arithmetic (counts, exactly-one-record,
72
+ undeclared reporters, impossible `complete` claims) as data-level validation.
73
+ Stop-hook refusal of wave completion is #663 part 3 (slice 2), deferred until
74
+ the hook correctness issues (#453/#450/#494) are resolved.
46
75
 
47
76
  ## Delegation: Model Routing
48
77
 
@@ -32,6 +32,18 @@ Select ready backlog work and prepare a bounded handoff without implementing it.
32
32
 
33
33
  An optional GitHub adapter may implement these interfaces. Do not require GitHub issue numbers, labels, Projects, pull requests, `gh`, or provider-native dependency APIs.
34
34
 
35
+ ### Readiness Source Integrity
36
+
37
+ A configured `BoardProvider` is the canonical Backlog Readiness Source
38
+ (`docs/decisions/backlog-readiness-source.md`). When the configured board
39
+ yields zero ready items or cannot be read, record the provider warning
40
+ (`zero_ready_items`, or the read failure) in the pull-work artifact and route
41
+ to triage/intake for an explicit readiness decision. Never silently
42
+ substitute `WorkItemProvider` issue-level listing for board-driven selection:
43
+ a deliberate issue-listing pass must carry the `board_provider_bypassed`
44
+ warning it received into the artifact, with the reason the board was
45
+ bypassed.
46
+
35
47
  ## Model Routing
36
48
 
37
49
  For board scans, WIP assessment, dependency joins, and selection bookkeeping, resolve `delegate-mechanical` from `.datum/config.json`. If unavailable, inherit the session model and record the fallback.
@@ -42,7 +42,36 @@ Execution may upgrade to a stronger mode when risk increases. Downgrades require
42
42
  - Independent tasks with no shared files can run in the same wave.
43
43
  - Shared files, generated artifacts, migrations, and cross-cutting contracts should be serialized unless the plan gives explicit file ownership.
44
44
  - Worker delegation must name the exact worker role (`tool-worker`) rather than spawning an unnamed/default implementation agent.
45
- - After each wave, collect results, check conflicts, and update the session artifact before starting the next wave.
45
+ - After each wave, reconcile results against the wave manifest (below), check conflicts, and update the session artifact before starting the next wave.
46
+
47
+ ## Wave Manifest And Reconciliation
48
+
49
+ Fan-out collection is machine-checkable, not prose. A reduce step that silently
50
+ drops a worker's stream is worse than one that errors.
51
+
52
+ - **Declare before dispatch.** Before dispatching a wave that delegates work,
53
+ declare it in the session's `waves.json` sidecar (schema:
54
+ `schemas/workflow-waves.schema.json`): `wave_id`, owning step, and one
55
+ `expected_workers` entry per worker. The expected count (M) must exist before
56
+ any result arrives.
57
+ - **One terminal record per worker.** Each worker lands exactly one terminal
58
+ status record: `completed`, `failed`, or `blocked`. Duplicate records and
59
+ undeclared reporters are validation errors.
60
+ - **Reconcile at wave close.** The orchestrator's collect step is
61
+ reconcile-against-manifest: record every declared worker that has no terminal
62
+ record as `not_reported` — never silently absorb a missing worker — then
63
+ record the wave's `reconciliation` with `expected_count` M, `reported_count`
64
+ N, and an explicit "N of M reported" summary naming the `not_reported`
65
+ workers (for example "2 of 3 reported; worker-3 not_reported").
66
+ - **Incomplete is visible, never silent.** A wave is `complete` only when N
67
+ equals M. An incomplete wave stays visible data and routes to re-dispatch, a
68
+ blocker report, or an explicit accepted gap; it must never be treated as
69
+ complete because the missing worker was forgotten.
70
+ - **Enforcement boundary (slice 1).** `validate-workflow-artifacts` enforces
71
+ the shape and the cross-record arithmetic (counts, exactly-one-record,
72
+ undeclared reporters, impossible `complete` claims) as data-level validation.
73
+ Stop-hook refusal of wave completion is #663 part 3 (slice 2), deferred until
74
+ the hook correctness issues (#453/#450/#494) are resolved.
46
75
 
47
76
  ## Delegation: Model Routing
48
77
 
@@ -58,6 +58,17 @@ fallback or escalation in the critique artifact.
58
58
  security-policy changes.
59
59
  - `tool-dependencies-updater` for dependency-manifest, lockfile, or dependency-tooling changes.
60
60
  - A configured domain or policy reviewer when the repository requires one.
61
+
62
+ When review fans out to delegated reviewer lanes, declare the fan-out in the
63
+ session's wave manifest (`waves.json`, schema
64
+ `schemas/workflow-waves.schema.json`, step `review`) with one
65
+ `expected_workers` entry per reviewer lane before dispatch. Reconcile against
66
+ that manifest at collection — "N of M reported" — instead of collecting from
67
+ memory: every declared reviewer lands exactly one terminal status record;
68
+ record a reviewer that never reports as `not_reported` in the manifest —
69
+ never silently absorb it — and carry that lane into the critique as
70
+ `not_verified` with the missing report named. A missing reviewer is never a
71
+ clean lane.
61
72
  3. Use repository-provided scanners and checks when applicable. Do not install
62
73
  a scanner, silently substitute a different one, or mark an unavailable
63
74
  required lane clean; record the lane as `NOT_VERIFIED` with the missing
@@ -42,7 +42,36 @@ Execution may upgrade to a stronger mode when risk increases. Downgrades require
42
42
  - Independent tasks with no shared files can run in the same wave.
43
43
  - Shared files, generated artifacts, migrations, and cross-cutting contracts should be serialized unless the plan gives explicit file ownership.
44
44
  - Worker delegation must name the exact worker role (`tool-worker`) rather than spawning an unnamed/default implementation agent.
45
- - After each wave, collect results, check conflicts, and update the session artifact before starting the next wave.
45
+ - After each wave, reconcile results against the wave manifest (below), check conflicts, and update the session artifact before starting the next wave.
46
+
47
+ ## Wave Manifest And Reconciliation
48
+
49
+ Fan-out collection is machine-checkable, not prose. A reduce step that silently
50
+ drops a worker's stream is worse than one that errors.
51
+
52
+ - **Declare before dispatch.** Before dispatching a wave that delegates work,
53
+ declare it in the session's `waves.json` sidecar (schema:
54
+ `schemas/workflow-waves.schema.json`): `wave_id`, owning step, and one
55
+ `expected_workers` entry per worker. The expected count (M) must exist before
56
+ any result arrives.
57
+ - **One terminal record per worker.** Each worker lands exactly one terminal
58
+ status record: `completed`, `failed`, or `blocked`. Duplicate records and
59
+ undeclared reporters are validation errors.
60
+ - **Reconcile at wave close.** The orchestrator's collect step is
61
+ reconcile-against-manifest: record every declared worker that has no terminal
62
+ record as `not_reported` — never silently absorb a missing worker — then
63
+ record the wave's `reconciliation` with `expected_count` M, `reported_count`
64
+ N, and an explicit "N of M reported" summary naming the `not_reported`
65
+ workers (for example "2 of 3 reported; worker-3 not_reported").
66
+ - **Incomplete is visible, never silent.** A wave is `complete` only when N
67
+ equals M. An incomplete wave stays visible data and routes to re-dispatch, a
68
+ blocker report, or an explicit accepted gap; it must never be treated as
69
+ complete because the missing worker was forgotten.
70
+ - **Enforcement boundary (slice 1).** `validate-workflow-artifacts` enforces
71
+ the shape and the cross-record arithmetic (counts, exactly-one-record,
72
+ undeclared reporters, impossible `complete` claims) as data-level validation.
73
+ Stop-hook refusal of wave completion is #663 part 3 (slice 2), deferred until
74
+ the hook correctness issues (#453/#450/#494) are resolved.
46
75
 
47
76
  ## Delegation: Model Routing
48
77