@kontourai/flow-agents 0.1.1

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 (418) hide show
  1. package/.githooks/pre-push +11 -0
  2. package/.github/workflows/ci.yml +210 -0
  3. package/.github/workflows/docs-pages.yml +52 -0
  4. package/.github/workflows/publish-npm.yml +104 -0
  5. package/AGENTS.md +26 -0
  6. package/CHANGELOG.md +66 -0
  7. package/CODE_OF_CONDUCT.md +25 -0
  8. package/CONTEXT.md +300 -0
  9. package/CONTRIBUTING.md +44 -0
  10. package/LICENSE +201 -0
  11. package/README.md +129 -0
  12. package/SECURITY.md +33 -0
  13. package/agent-cards/dev.json +19 -0
  14. package/agents/dev.json +127 -0
  15. package/agents/tool-code-reviewer.json +61 -0
  16. package/agents/tool-dependencies-updater.json +118 -0
  17. package/agents/tool-explore-config.json +92 -0
  18. package/agents/tool-explore-deps.json +92 -0
  19. package/agents/tool-explore-entry.json +92 -0
  20. package/agents/tool-explore-patterns.json +92 -0
  21. package/agents/tool-explore-structure.json +92 -0
  22. package/agents/tool-explore-tests.json +92 -0
  23. package/agents/tool-planner.json +57 -0
  24. package/agents/tool-playwright.json +145 -0
  25. package/agents/tool-security-reviewer.json +56 -0
  26. package/agents/tool-verifier.json +61 -0
  27. package/agents/tool-worker.json +58 -0
  28. package/build/src/cli/console-learning-projection.js +123 -0
  29. package/build/src/cli/docs-preview.js +39 -0
  30. package/build/src/cli/effective-backlog-settings.js +102 -0
  31. package/build/src/cli/export-bookmarks.js +38 -0
  32. package/build/src/cli/fixture-retirement-audit.js +140 -0
  33. package/build/src/cli/flow-kit.js +138 -0
  34. package/build/src/cli/import-bookmarks.js +50 -0
  35. package/build/src/cli/init.js +239 -0
  36. package/build/src/cli/instinct-cli.js +93 -0
  37. package/build/src/cli/promote-workflow-artifact.js +63 -0
  38. package/build/src/cli/publish-change-helper.js +154 -0
  39. package/build/src/cli/pull-work-provider.js +469 -0
  40. package/build/src/cli/runtime-adapter.js +23 -0
  41. package/build/src/cli/telemetry-doctor.js +221 -0
  42. package/build/src/cli/usage-feedback.js +443 -0
  43. package/build/src/cli/validate-hook-influence.js +152 -0
  44. package/build/src/cli/validate-source-tree.js +31 -0
  45. package/build/src/cli/validate-workflow-artifacts.js +486 -0
  46. package/build/src/cli/veritas-governance.js +262 -0
  47. package/build/src/cli/workflow-artifact-cleanup-audit.js +272 -0
  48. package/build/src/cli/workflow-sidecar.js +816 -0
  49. package/build/src/cli.js +89 -0
  50. package/build/src/flow-kit/validate.js +75 -0
  51. package/build/src/lib/args.js +45 -0
  52. package/build/src/lib/fs.js +62 -0
  53. package/build/src/lib/workflow-learning-projection.js +334 -0
  54. package/build/src/runtime-adapters.js +146 -0
  55. package/build/src/tools/build-universal-bundles.js +397 -0
  56. package/build/src/tools/common.js +56 -0
  57. package/build/src/tools/filter-installed-packs.js +132 -0
  58. package/build/src/tools/generate-context-map.js +198 -0
  59. package/build/src/tools/validate-package.js +64 -0
  60. package/build/src/tools/validate-source-tree.js +622 -0
  61. package/console.telemetry.json +176 -0
  62. package/context/base-rules.md +17 -0
  63. package/context/code-review-standards.md +62 -0
  64. package/context/coding-standards.md +42 -0
  65. package/context/common/orchestrators.md +12 -0
  66. package/context/common/subagents.md +28 -0
  67. package/context/contracts/artifact-contract.md +182 -0
  68. package/context/contracts/builder-kit-workflow-state-contract.md +319 -0
  69. package/context/contracts/delivery-contract.md +69 -0
  70. package/context/contracts/execution-contract.md +53 -0
  71. package/context/contracts/governance-adapter-contract.md +67 -0
  72. package/context/contracts/planning-contract.md +85 -0
  73. package/context/contracts/review-contract.md +104 -0
  74. package/context/contracts/sandbox-policy.md +52 -0
  75. package/context/contracts/verification-contract.md +134 -0
  76. package/context/contracts/work-item-contract.md +215 -0
  77. package/context/deferred/demo-mode.md +33 -0
  78. package/context/deferred/languages/go.md +31 -0
  79. package/context/deferred/languages/python.md +31 -0
  80. package/context/deferred/languages/typescript.md +34 -0
  81. package/context/deferred/parallelization.md +35 -0
  82. package/context/deferred/worktree-isolation.md +24 -0
  83. package/context/development-workflow.md +50 -0
  84. package/context/scripts/context-budget/budget-scan.sh +166 -0
  85. package/context/scripts/detect-tools.sh +3 -0
  86. package/context/scripts/discover-agents.sh +28 -0
  87. package/context/scripts/git-status.sh +49 -0
  88. package/context/scripts/hooks/config-protection.js +79 -0
  89. package/context/scripts/hooks/desktop-notify.sh +39 -0
  90. package/context/scripts/hooks/governance-audit.sh +135 -0
  91. package/context/scripts/hooks/lib/audit-transport.sh +40 -0
  92. package/context/scripts/hooks/lib/hook-flags.js +49 -0
  93. package/context/scripts/hooks/lib/patterns.sh +57 -0
  94. package/context/scripts/hooks/lib/resolve-formatter.js +80 -0
  95. package/context/scripts/hooks/post-edit-accumulator.js +66 -0
  96. package/context/scripts/hooks/pre-commit-quality.js +194 -0
  97. package/context/scripts/hooks/quality-gate.js +93 -0
  98. package/context/scripts/hooks/report-only-guard.js +21 -0
  99. package/context/scripts/hooks/run-hook.js +136 -0
  100. package/context/scripts/hooks/stop-format-typecheck.js +141 -0
  101. package/context/scripts/hooks/stop-goal-fit.js +337 -0
  102. package/context/scripts/hooks/workflow-steering.js +250 -0
  103. package/context/scripts/telemetry/console-presets.sh +14 -0
  104. package/context/scripts/telemetry/install-console-config.sh +214 -0
  105. package/context/scripts/telemetry/lib/config.sh +85 -0
  106. package/context/scripts/telemetry/lib/enrich.sh +115 -0
  107. package/context/scripts/telemetry/lib/redact.sh +22 -0
  108. package/context/scripts/telemetry/lib/session.sh +63 -0
  109. package/context/scripts/telemetry/lib/transport.sh +183 -0
  110. package/context/scripts/telemetry/lib/usage.sh +29 -0
  111. package/context/scripts/telemetry/sync-agents.sh +173 -0
  112. package/context/scripts/telemetry/telemetry.conf +23 -0
  113. package/context/scripts/telemetry/telemetry.sh +387 -0
  114. package/context/scripts/validate-package.sh +89 -0
  115. package/context/settings/backlog-provider-settings.json +54 -0
  116. package/context/templates/core/identity.md +26 -0
  117. package/context/templates/core/user.md +15 -0
  118. package/docs/_config.yml +15 -0
  119. package/docs/_layouts/default.html +87 -0
  120. package/docs/adr/0001-flow-agents-consumes-flow.md +77 -0
  121. package/docs/adr/0002-flow-kits-as-extension-unit.md +13 -0
  122. package/docs/adr/0003-flow-agents-coordinates-kits-and-adapters.md +13 -0
  123. package/docs/adr/0004-gates-expect-surface-claims.md +15 -0
  124. package/docs/adr/0005-kubernetes-inspired-resource-contracts.md +48 -0
  125. package/docs/adr/0006-typescript-first-source-policy.md +98 -0
  126. package/docs/agent-system-guidebook.md +391 -0
  127. package/docs/agent-usage-feedback-loop.md +351 -0
  128. package/docs/assets/favicon.svg +13 -0
  129. package/docs/assets/og-image.png +0 -0
  130. package/docs/assets/site.css +774 -0
  131. package/docs/assets/site.js +139 -0
  132. package/docs/configurable-workflow-routing.md +174 -0
  133. package/docs/context-map.md +145 -0
  134. package/docs/developer-architecture.md +145 -0
  135. package/docs/developer-hook-setup.md +61 -0
  136. package/docs/fixture-ownership.md +44 -0
  137. package/docs/flow-kit-repository-contract.md +180 -0
  138. package/docs/index.md +129 -0
  139. package/docs/kontour-resource-contract.md +358 -0
  140. package/docs/migrations.md +64 -0
  141. package/docs/north-star.md +322 -0
  142. package/docs/operating-layers.md +110 -0
  143. package/docs/repository-structure.md +132 -0
  144. package/docs/sandbox-policy.md +56 -0
  145. package/docs/skills-map.md +203 -0
  146. package/docs/standards-register.md +96 -0
  147. package/docs/veritas-integration.md +165 -0
  148. package/docs/work-item-adapters.md +72 -0
  149. package/docs/workflow-artifact-lifecycle.md +141 -0
  150. package/docs/workflow-eval-strategy.md +295 -0
  151. package/docs/workflow-shared-contracts.md +51 -0
  152. package/docs/workflow-usage-guide.md +443 -0
  153. package/evals/ARCHITECTURE.md +143 -0
  154. package/evals/CONVENTIONS.md +58 -0
  155. package/evals/README.md +128 -0
  156. package/evals/acceptance/run.sh +29 -0
  157. package/evals/acceptance/test_claude_harness.sh +242 -0
  158. package/evals/acceptance/test_codex_harness.sh +108 -0
  159. package/evals/acceptance/test_kiro_harness.sh +128 -0
  160. package/evals/cases/dev/404.html +97 -0
  161. package/evals/cases/dev/code-review.yaml +44 -0
  162. package/evals/cases/dev/dashboard.html +300 -0
  163. package/evals/cases/dev/deliver.yaml +66 -0
  164. package/evals/cases/dev/dependency-update.yaml +16 -0
  165. package/evals/cases/dev/explore.yaml +20 -0
  166. package/evals/cases/dev/index.html +370 -0
  167. package/evals/cases/dev/package-lock.json +28 -0
  168. package/evals/cases/dev/package.json +16 -0
  169. package/evals/cases/dev/plan-work.yaml +20 -0
  170. package/evals/cases/dev/promptfooconfig.yaml +666 -0
  171. package/evals/cases/dev/search-first.yaml +20 -0
  172. package/evals/cases/dev/tdd-workflow.yaml +48 -0
  173. package/evals/cases/dev/verify-work.yaml +44 -0
  174. package/evals/cases/dev/workflow.yaml +34 -0
  175. package/evals/ci/run-baseline.sh +283 -0
  176. package/evals/fixtures/backlog-provider-settings/global-default.json +44 -0
  177. package/evals/fixtures/backlog-provider-settings/project-override.json +53 -0
  178. package/evals/fixtures/builder-kit-workflow-state/baseline-freshness-resolution-hint.json +139 -0
  179. package/evals/fixtures/builder-kit-workflow-state/direct-primitive-stop.json +59 -0
  180. package/evals/fixtures/builder-kit-workflow-state/empty-board-route-shape.json +55 -0
  181. package/evals/fixtures/builder-kit-workflow-state/happy-path.json +71 -0
  182. package/evals/fixtures/builder-kit-workflow-state/mid-work-resume.json +80 -0
  183. package/evals/fixtures/builder-kit-workflow-state/missing-prestep-recovery.json +65 -0
  184. package/evals/fixtures/builder-kit-workflow-state/product-build-chaining.json +60 -0
  185. package/evals/fixtures/builder-kit-workflow-state/stale-continuation-requires-new-probe.json +57 -0
  186. package/evals/fixtures/console-learning-projection/artifacts/console-learning-correction/learning.json +50 -0
  187. package/evals/fixtures/console-learning-projection/artifacts/console-learning-open-route/learning.json +41 -0
  188. package/evals/fixtures/flow-kit-repository/invalid-absolute-path/kit.json +8 -0
  189. package/evals/fixtures/flow-kit-repository/invalid-asset-section/flows/review.flow.json +6 -0
  190. package/evals/fixtures/flow-kit-repository/invalid-asset-section/kit.json +11 -0
  191. package/evals/fixtures/flow-kit-repository/invalid-duplicate-flow/flows/review.flow.json +6 -0
  192. package/evals/fixtures/flow-kit-repository/invalid-duplicate-flow/kit.json +9 -0
  193. package/evals/fixtures/flow-kit-repository/invalid-id/flows/review.flow.json +6 -0
  194. package/evals/fixtures/flow-kit-repository/invalid-id/kit.json +8 -0
  195. package/evals/fixtures/flow-kit-repository/invalid-malformed-json/kit.json +8 -0
  196. package/evals/fixtures/flow-kit-repository/invalid-missing-flow/kit.json +8 -0
  197. package/evals/fixtures/flow-kit-repository/invalid-missing-id/flows/review.flow.json +6 -0
  198. package/evals/fixtures/flow-kit-repository/invalid-missing-id/kit.json +7 -0
  199. package/evals/fixtures/flow-kit-repository/invalid-missing-schema-version/flows/review.flow.json +6 -0
  200. package/evals/fixtures/flow-kit-repository/invalid-missing-schema-version/kit.json +7 -0
  201. package/evals/fixtures/flow-kit-repository/invalid-name/flows/review.flow.json +6 -0
  202. package/evals/fixtures/flow-kit-repository/invalid-name/kit.json +8 -0
  203. package/evals/fixtures/flow-kit-repository/invalid-schema-version/flows/review.flow.json +6 -0
  204. package/evals/fixtures/flow-kit-repository/invalid-schema-version/kit.json +8 -0
  205. package/evals/fixtures/flow-kit-repository/invalid-traversal/kit.json +8 -0
  206. package/evals/fixtures/flow-kit-repository/mixed-runtime-kit/adapters/example.json +3 -0
  207. package/evals/fixtures/flow-kit-repository/mixed-runtime-kit/assets/example.txt +1 -0
  208. package/evals/fixtures/flow-kit-repository/mixed-runtime-kit/docs/README.md +3 -0
  209. package/evals/fixtures/flow-kit-repository/mixed-runtime-kit/flows/runtime.flow.json +26 -0
  210. package/evals/fixtures/flow-kit-repository/mixed-runtime-kit/kit-evals/example.json +3 -0
  211. package/evals/fixtures/flow-kit-repository/mixed-runtime-kit/kit-skills/mixed/SKILL.md +3 -0
  212. package/evals/fixtures/flow-kit-repository/mixed-runtime-kit/kit.json +44 -0
  213. package/evals/fixtures/flow-kit-repository/valid-local-kit/docs/README.md +3 -0
  214. package/evals/fixtures/flow-kit-repository/valid-local-kit/flows/review.flow.json +26 -0
  215. package/evals/fixtures/flow-kit-repository/valid-local-kit/kit.json +20 -0
  216. package/evals/fixtures/hook-influence/cases.json +336 -0
  217. package/evals/fixtures/pull-work-provider/github-issues.json +170 -0
  218. package/evals/fixtures/pull-work-wip-shepherding/global-wip-informs.json +43 -0
  219. package/evals/fixtures/pull-work-wip-shepherding/personal-wip-blocks.json +42 -0
  220. package/evals/fixtures/surface-trust/accepted-claim-trust-report.json +31 -0
  221. package/evals/fixtures/surface-trust/artifact-absent.json +19 -0
  222. package/evals/fixtures/surface-trust/integrity-mismatch-trust-report.json +32 -0
  223. package/evals/fixtures/surface-trust/missing-authority-trust-report.json +27 -0
  224. package/evals/fixtures/surface-trust/provider-absent.json +19 -0
  225. package/evals/fixtures/surface-trust/rejected-claim-trust-report.json +30 -0
  226. package/evals/fixtures/surface-trust/stale-claim-trust-snapshot.json +31 -0
  227. package/evals/fixtures/usage-feedback/sample-full.jsonl +11 -0
  228. package/evals/fixtures/usage-feedback/sample-outcomes.jsonl +1 -0
  229. package/evals/fixtures/veritas-governance-adapter/fake-veritas-pass.sh +18 -0
  230. package/evals/fixtures/veritas-governance-adapter/fake-veritas-secret-fail.sh +10 -0
  231. package/evals/fixtures/veritas-governance-adapter/fake-veritas-unconfigured.sh +4 -0
  232. package/evals/integration/test_bundle_install.sh +541 -0
  233. package/evals/integration/test_console_learning_projection.sh +192 -0
  234. package/evals/integration/test_context_map.sh +65 -0
  235. package/evals/integration/test_effective_backlog_settings.sh +58 -0
  236. package/evals/integration/test_fixture_retirement_audit.sh +58 -0
  237. package/evals/integration/test_flow_agents_statusline.sh +93 -0
  238. package/evals/integration/test_flow_kit_repository.sh +90 -0
  239. package/evals/integration/test_goal_fit_hook.sh +482 -0
  240. package/evals/integration/test_hook_category_behaviors.sh +190 -0
  241. package/evals/integration/test_hook_influence_cases.sh +69 -0
  242. package/evals/integration/test_local_flow_kit_install.sh +145 -0
  243. package/evals/integration/test_publish_change_helper.sh +176 -0
  244. package/evals/integration/test_pull_work_provider.sh +140 -0
  245. package/evals/integration/test_runtime_adapter_activation.sh +106 -0
  246. package/evals/integration/test_telemetry.sh +485 -0
  247. package/evals/integration/test_telemetry_doctor.sh +193 -0
  248. package/evals/integration/test_usage_feedback_dashboard.sh +169 -0
  249. package/evals/integration/test_usage_feedback_global.sh +117 -0
  250. package/evals/integration/test_usage_feedback_import.sh +227 -0
  251. package/evals/integration/test_usage_feedback_outcomes.sh +165 -0
  252. package/evals/integration/test_usage_feedback_report.sh +263 -0
  253. package/evals/integration/test_veritas_governance_adapter.sh +235 -0
  254. package/evals/integration/test_workflow_artifact_cleanup_audit.sh +287 -0
  255. package/evals/integration/test_workflow_artifacts.sh +1247 -0
  256. package/evals/integration/test_workflow_sidecar_writer.sh +2112 -0
  257. package/evals/integration/test_workflow_steering_hook.sh +337 -0
  258. package/evals/lib/assertions/delegated-to.js +40 -0
  259. package/evals/lib/assertions/max-tool-calls.js +15 -0
  260. package/evals/lib/assertions/no-write-tools.js +27 -0
  261. package/evals/lib/assertions/pass-at-k.js +39 -0
  262. package/evals/lib/assertions/telemetry-utils.js +105 -0
  263. package/evals/lib/assertions/tool-called.js +39 -0
  264. package/evals/lib/assertions/verify-after-fix.js +61 -0
  265. package/evals/lib/claude-judge.sh +40 -0
  266. package/evals/lib/claude-provider.sh +74 -0
  267. package/evals/lib/codex-judge.sh +39 -0
  268. package/evals/lib/codex-provider.sh +81 -0
  269. package/evals/lib/eval-dev.sh +5 -0
  270. package/evals/lib/eval-judge.sh +22 -0
  271. package/evals/lib/eval-provider.sh +26 -0
  272. package/evals/lib/eval-report.sh +73 -0
  273. package/evals/lib/kiro-dev.sh +4 -0
  274. package/evals/lib/kiro-judge.sh +17 -0
  275. package/evals/lib/kiro-provider.sh +62 -0
  276. package/evals/lib/node.sh +111 -0
  277. package/evals/promptfooconfig.yaml +70 -0
  278. package/evals/run.sh +309 -0
  279. package/evals/static/test_evidence_refs.sh +141 -0
  280. package/evals/static/test_package.sh +407 -0
  281. package/evals/static/test_repo_hooks.sh +68 -0
  282. package/evals/static/test_universal_bundles.sh +274 -0
  283. package/evals/static/test_workflow_skills.sh +1207 -0
  284. package/install.sh +64 -0
  285. package/integrations/veritas/flow-agents.adapter.json +138 -0
  286. package/integrations/veritas/flow-agents.authority-settings.json +26 -0
  287. package/integrations/veritas/flow-agents.repo-standards.json +82 -0
  288. package/kits/builder/flows/build.flow.json +218 -0
  289. package/kits/builder/flows/shape.flow.json +127 -0
  290. package/kits/builder/kit.json +19 -0
  291. package/kits/catalog.json +11 -0
  292. package/package.json +130 -0
  293. package/packaging/README.md +60 -0
  294. package/packaging/manifest.json +173 -0
  295. package/packaging/packs.json +69 -0
  296. package/powers/dependency-checker/POWER.md +20 -0
  297. package/powers/dependency-checker/mcp.json +20 -0
  298. package/powers/playwright/POWER.md +25 -0
  299. package/powers/playwright/mcp.json +12 -0
  300. package/prompts/code-audit.md +123 -0
  301. package/prompts/kcommit.md +88 -0
  302. package/schemas/backlog-provider-settings.schema.json +138 -0
  303. package/schemas/workflow-acceptance.schema.json +216 -0
  304. package/schemas/workflow-critique.schema.json +113 -0
  305. package/schemas/workflow-evidence.schema.json +357 -0
  306. package/schemas/workflow-handoff.schema.json +52 -0
  307. package/schemas/workflow-learning.schema.json +223 -0
  308. package/schemas/workflow-release.schema.json +172 -0
  309. package/schemas/workflow-state.schema.json +80 -0
  310. package/scripts/README.md +111 -0
  311. package/scripts/build-universal-bundles.js +3 -0
  312. package/scripts/check-content-boundary.cjs +99 -0
  313. package/scripts/context-budget/budget-scan.sh +166 -0
  314. package/scripts/detect-tools.sh +3 -0
  315. package/scripts/discover-agents.sh +28 -0
  316. package/scripts/effective-backlog-settings.js +2 -0
  317. package/scripts/filter-installed-packs.js +2 -0
  318. package/scripts/flow-kit.js +2 -0
  319. package/scripts/generate-context-map.js +2 -0
  320. package/scripts/git-status.sh +49 -0
  321. package/scripts/hooks/claude-hook-adapter.js +174 -0
  322. package/scripts/hooks/claude-telemetry-hook.js +115 -0
  323. package/scripts/hooks/codex-hook-adapter.js +176 -0
  324. package/scripts/hooks/codex-telemetry-hook.js +95 -0
  325. package/scripts/hooks/config-protection.js +79 -0
  326. package/scripts/hooks/desktop-notify.sh +39 -0
  327. package/scripts/hooks/governance-audit.sh +135 -0
  328. package/scripts/hooks/lib/audit-transport.sh +40 -0
  329. package/scripts/hooks/lib/hook-flags.js +49 -0
  330. package/scripts/hooks/lib/patterns.sh +57 -0
  331. package/scripts/hooks/lib/resolve-formatter.js +80 -0
  332. package/scripts/hooks/post-edit-accumulator.js +66 -0
  333. package/scripts/hooks/pre-commit-quality.js +194 -0
  334. package/scripts/hooks/quality-gate.js +93 -0
  335. package/scripts/hooks/report-only-guard.js +21 -0
  336. package/scripts/hooks/run-hook.js +136 -0
  337. package/scripts/hooks/stop-format-typecheck.js +141 -0
  338. package/scripts/hooks/stop-goal-fit.js +337 -0
  339. package/scripts/hooks/workflow-steering.js +250 -0
  340. package/scripts/install-codex-home.sh +106 -0
  341. package/scripts/package.json +3 -0
  342. package/scripts/promote-workflow-artifact.js +2 -0
  343. package/scripts/publish-change-helper.js +2 -0
  344. package/scripts/pull-work-provider.js +2 -0
  345. package/scripts/setup-repo-hooks.sh +8 -0
  346. package/scripts/statusline/flow-agents-statusline.js +157 -0
  347. package/scripts/telemetry/console-presets.sh +14 -0
  348. package/scripts/telemetry/install-console-config.sh +214 -0
  349. package/scripts/telemetry/lib/config.sh +85 -0
  350. package/scripts/telemetry/lib/enrich.sh +115 -0
  351. package/scripts/telemetry/lib/redact.sh +22 -0
  352. package/scripts/telemetry/lib/session.sh +63 -0
  353. package/scripts/telemetry/lib/transport.sh +183 -0
  354. package/scripts/telemetry/lib/usage.sh +29 -0
  355. package/scripts/telemetry/sync-agents.sh +173 -0
  356. package/scripts/telemetry/telemetry.conf +23 -0
  357. package/scripts/telemetry/telemetry.sh +387 -0
  358. package/scripts/usage-feedback.js +2 -0
  359. package/scripts/validate-hook-influence-cases.js +2 -0
  360. package/scripts/validate-package.sh +89 -0
  361. package/scripts/validate-source-tree.js +9 -0
  362. package/skills/agentic-engineering/SKILL.md +62 -0
  363. package/skills/browser-test/SKILL.md +51 -0
  364. package/skills/builder-shape/SKILL.md +76 -0
  365. package/skills/context-budget/SKILL.md +40 -0
  366. package/skills/deliver/SKILL.md +241 -0
  367. package/skills/dependency-update/SKILL.md +68 -0
  368. package/skills/design-probe/SKILL.md +107 -0
  369. package/skills/eval-rebuild/SKILL.md +39 -0
  370. package/skills/evidence-gate/SKILL.md +186 -0
  371. package/skills/execute-plan/SKILL.md +110 -0
  372. package/skills/explore/SKILL.md +137 -0
  373. package/skills/feedback-loop/SKILL.md +87 -0
  374. package/skills/fix-bug/SKILL.md +133 -0
  375. package/skills/frontend-design/SKILL.md +80 -0
  376. package/skills/github-cli/SKILL.md +63 -0
  377. package/skills/idea-to-backlog/SKILL.md +267 -0
  378. package/skills/knowledge-capture/SKILL.md +55 -0
  379. package/skills/learning-review/SKILL.md +115 -0
  380. package/skills/pickup-probe/SKILL.md +114 -0
  381. package/skills/plan-work/SKILL.md +176 -0
  382. package/skills/pull-work/SKILL.md +309 -0
  383. package/skills/release-readiness/SKILL.md +121 -0
  384. package/skills/review-work/SKILL.md +161 -0
  385. package/skills/search-first/SKILL.md +66 -0
  386. package/skills/tdd-workflow/SKILL.md +140 -0
  387. package/skills/verify-work/SKILL.md +109 -0
  388. package/src/cli/console-learning-projection.ts +140 -0
  389. package/src/cli/effective-backlog-settings.ts +99 -0
  390. package/src/cli/fixture-retirement-audit.ts +154 -0
  391. package/src/cli/flow-kit.ts +139 -0
  392. package/src/cli/init.ts +248 -0
  393. package/src/cli/promote-workflow-artifact.ts +64 -0
  394. package/src/cli/publish-change-helper.ts +143 -0
  395. package/src/cli/pull-work-provider.ts +481 -0
  396. package/src/cli/runtime-adapter.ts +24 -0
  397. package/src/cli/telemetry-doctor.ts +243 -0
  398. package/src/cli/usage-feedback.ts +418 -0
  399. package/src/cli/validate-hook-influence.ts +119 -0
  400. package/src/cli/validate-source-tree.ts +30 -0
  401. package/src/cli/validate-workflow-artifacts.ts +411 -0
  402. package/src/cli/veritas-governance.ts +322 -0
  403. package/src/cli/workflow-artifact-cleanup-audit.ts +281 -0
  404. package/src/cli/workflow-sidecar.ts +676 -0
  405. package/src/cli.ts +95 -0
  406. package/src/flow-kit/validate.ts +74 -0
  407. package/src/lib/args.ts +43 -0
  408. package/src/lib/fs.ts +62 -0
  409. package/src/lib/workflow-learning-projection.ts +491 -0
  410. package/src/runtime-adapters.ts +154 -0
  411. package/src/tools/build-universal-bundles.ts +366 -0
  412. package/src/tools/common.ts +61 -0
  413. package/src/tools/filter-installed-packs.ts +129 -0
  414. package/src/tools/generate-context-map.ts +199 -0
  415. package/src/tools/validate-package.ts +57 -0
  416. package/src/tools/validate-source-tree.ts +488 -0
  417. package/tsconfig.json +19 -0
  418. package/veritas.claims.json +6 -0
@@ -0,0 +1,358 @@
1
+ ---
2
+ title: Kontour Resource Contract
3
+ ---
4
+
5
+ # Kontour Resource Contract
6
+
7
+ Kontour Resource Contracts are the durable, versioned record shape for Flow Agents configuration, selected scope, workflow state, evidence pointers, provider output, and cross-product interchange.
8
+
9
+ They are Kubernetes-inspired, not Kubernetes-dependent. A local file, a provider-backed Work Item, a workflow sidecar, a CLI output, or a future control-plane record can all use the same contract shape. Kubernetes CRDs or operators may become adapters over these records later, but Kubernetes is not the Flow Agents runtime substrate.
10
+
11
+ This page is the canonical Flow Agents reference skeleton. It documents contract shape and vocabulary only; it does not migrate existing sidecars, change provider behavior, add schemas, or alter Flow, Surface, Veritas, Console, or Builder Kit runtime behavior.
12
+
13
+ ## Contract Shape
14
+
15
+ Every durable Flow Agents resource should follow this shape unless a product records an explicit exception or mapping.
16
+
17
+ ```yaml
18
+ apiVersion: flowagents.kontourai.io/v1alpha1
19
+ kind: ResourceKind
20
+ metadata:
21
+ name: resource-name
22
+ uid: stable-resource-id
23
+ namespace: optional-project-or-provider-scope
24
+ labels: {}
25
+ annotations: {}
26
+ ownerReferences: []
27
+ createdAt: "2026-05-28T00:00:00Z"
28
+ updatedAt: "2026-05-28T00:00:00Z"
29
+ spec: {}
30
+ status:
31
+ observedGeneration: 1
32
+ resourceVersion: "1"
33
+ conditions: []
34
+ ```
35
+
36
+ ## Field Semantics
37
+
38
+ | Field | Semantics |
39
+ | --- | --- |
40
+ | `apiVersion` | Versioned product namespace for the contract. Flow Agents core resources use a Flow Agents namespace such as `flowagents.kontourai.io/v1alpha1`. Kit-specific resources use their own owner namespace, such as `builder.flowagents.kontourai.io/v1alpha1`. |
41
+ | `kind` | The resource type. Use core Flow Agents kinds for provider-neutral concepts and kit-specific kinds only for kit-owned specializations. |
42
+ | `metadata` | Stable identity, ownership, labels, annotations, timestamps, and relationship pointers that help tools find and correlate records without interpreting desired intent or observed status. |
43
+ | `metadata.name` | Human-readable stable name within the relevant scope. Names should be deterministic enough for local files and provider-backed records. |
44
+ | `metadata.uid` | Durable unique identity for correlation across local files, provider records, evidence, and future adapters. |
45
+ | `metadata.namespace` | Optional project, workspace, tenant, provider, or environment boundary. Absence of a namespace does not imply global scope. |
46
+ | `metadata.labels` | Low-cardinality selectors for grouping, filtering, ownership, workflow mode, provider, or kit. Labels should not carry large evidence or status payloads. |
47
+ | `metadata.annotations` | Non-selector metadata for humans, adapters, and tooling. Annotations may carry external IDs or source hints but should not replace typed fields where a resource owns a concept. |
48
+ | `metadata.ownerReferences` | Links to owning or parent resources, such as an Initiative owning related Work Items or a Workflow Run owning a Run Plan. Ownership should not hide cross-resource dependency links. |
49
+ | `metadata.createdAt` / `metadata.updatedAt` | Record lifecycle timestamps for local files and provider-backed records. These are record timestamps, not proof that workflow evidence is fresh. |
50
+ | `spec` | Desired intent. This is what the user, workflow, kit, provider adapter, or controller wants to be true: selected subjects, required capabilities, gate order, expected evidence, route-back policy, or declared configuration. Observed results do not belong here. |
51
+ | `status` | Observed state. This is what Flow Agents, a provider, a gate, a verifier, or an adapter has observed about the resource. Status summarizes facts, outcomes, gaps, and current lifecycle state; it should not redefine desired intent. |
52
+ | `status.conditions` | Current inspectable Status Condition summaries. Conditions are for reporting, gating summaries, Console views, evals, and analytics. They do not replace underlying evidence records. |
53
+ | `status.observedGeneration` | Optional marker for which desired generation the status reflects. Use it when a writer can detect that `spec` changed after status was last observed. |
54
+ | `status.resourceVersion` | Optional concurrency or freshness marker from a local writer, provider, or adapter. It is a resource record version, not an API requirement. |
55
+ | References | Resource references should identify `apiVersion`, `kind`, `name`, and when available `uid`. Provider-backed references should also include provider type and external ID when needed for traceability. |
56
+ | Evidence pointers | Evidence should be referenced by stable pointers such as sidecar paths, provider artifact URLs, claim IDs, Flow Reports, logs, test reports, review artifacts, or Gate evidence records. Conditions may summarize evidence state, but the evidence must remain separately inspectable. |
57
+ | Versioning | Contract versions are carried by `apiVersion`. Backward-incompatible changes require a new version. Provider adapters and local-file readers should tolerate unknown fields when possible. |
58
+
59
+ The most important boundary is between `spec` and `status`: `spec` records desired intent, while `status` records observed facts. A Selected Scope declares the subjects a Workflow Run is authorized to operate on in `spec`; overlap findings, material scope changes, missing evidence, and gate outcomes belong in `status.conditions` or evidence records.
60
+
61
+ ## Core Resource Registry
62
+
63
+ The first core Flow Agents resources are provider-neutral concepts from the Flow Agents glossary. They are core because multiple work modes, Flow Kits, providers, adapters, gates, evals, or future reporting surfaces need to understand them without importing Builder Kit-specific delivery semantics.
64
+
65
+ | Kind | Why it is core |
66
+ | --- | --- |
67
+ | `SelectedScope` | Declares the explicit subject or subjects a Workflow Run is authorized to operate on. It can include Work Items, files, documents, customers, meetings, research sources, or provider-backed records across work modes. |
68
+ | `WorkflowRun` | Represents one execution of a Workflow from selected scope through gates, evidence, route-backs, and terminal outcome. Builder Kit Delivery Runs specialize this concept but do not replace it. |
69
+ | `RunPlan` | Describes intended gate order, selected scope, required capabilities, required evidence, route-back policy, and learning points for a Workflow Run without assuming software delivery. |
70
+ | `WorkItem` | Represents an executable backlog or queue unit selected by a workflow. It remains provider-neutral while allowing GitHub, Jira, local Markdown, or other provider-backed records to stay first-class. |
71
+ | `Gate` | Represents a workflow checkpoint that decides whether a Workflow Run can advance, stop, or route back, with structured evidence, gaps, authority, actors, attempts, and condition summaries. |
72
+ | `Initiative` | Optionally groups related product, platform, governance, or internal validation outcomes for planning and traceability. It is not an executable unit and does not replace dependency links or Work Items. |
73
+
74
+ `ExecutionPlan` and `DeliveryRun` are not core Flow Agents registry entries. They are Builder Kit-specific specializations: an Execution Plan specializes a Run Plan for delivery work, and a Delivery Run is a build-specific kind of Workflow Run.
75
+
76
+ ## Status Conditions
77
+
78
+ Status Conditions are current, inspectable statements about a Kontour Resource Contract, Gate, Workflow Run, or Builder Kit Delivery Run. They summarize lifecycle state, reason, message, evidence pointers, and transition time without replacing underlying evidence.
79
+
80
+ Use conditions for shared reporting and gate visibility. Keep detailed proof in evidence records.
81
+
82
+ ```yaml
83
+ type: Ready
84
+ status: "False"
85
+ reason: MissingEvidence
86
+ message: Verification evidence has not been recorded.
87
+ evidenceRefs: []
88
+ observedGeneration: 1
89
+ lastTransitionTime: "2026-05-28T00:00:00Z"
90
+ ```
91
+
92
+ | Field | Semantics |
93
+ | --- | --- |
94
+ | `type` | Shared condition meaning, such as `Ready`, `Blocked`, or `MissingEvidence`. Use stable PascalCase names in records even when docs describe the meaning in prose. |
95
+ | `status` | Condition truth value. Use `"True"`, `"False"`, or `"Unknown"` unless a specific contract version defines a narrower enum. |
96
+ | `reason` | Stable machine-readable reason code. Flow Kits may add domain-specific reasons, but they must not redefine shared condition meanings. |
97
+ | `message` | Human-readable explanation of the current condition. Keep it concise and factual. |
98
+ | `evidenceRefs` | Stable pointers to evidence records, provider artifacts, sidecars, claim IDs, reports, or logs that support the condition. Required for non-trivial pass, fail, blocked, and not-verified states. |
99
+ | `observedGeneration` | Optional desired generation this condition observed. Useful when `spec` changed and old status may be stale. |
100
+ | `lastTransitionTime` | Timestamp for when this condition last changed truth value or reason. |
101
+
102
+ ## Core Condition Vocabulary
103
+
104
+ | Condition meaning | Suggested `type` | Meaning | Reason and evidence guidance |
105
+ | --- | --- | --- | --- |
106
+ | Ready | `Ready` | The resource or gate has enough satisfied required conditions to advance or be consumed. | Use reasons such as `RequirementsSatisfied` or a kit-specific pass reason. Include evidence references for the checks that justify readiness. |
107
+ | Blocked | `Blocked` | The resource or Workflow Run cannot make useful progress without a required decision, capability, provider state, or external change. | Use stable reasons that identify the blocking class, such as `ConfigurationGap`, `MissingEvidence`, `ScopeOverlap`, or `NeedsUserDecision`. Include evidence or provider pointers when the block was observed. |
108
+ | In progress | `InProgress` | Work has started and has not reached a terminal ready, blocked, failed, or accepted state. | Use reasons for the active step, gate, or attempt. Evidence may point to the current session, Flow Run, provider operation, or active handoff. |
109
+ | Scope overlap | `ScopeOverlap` | One active Selected Scope intersects with another active Workflow Run or provider-backed work record. This supports Alignment Gate coordination and does not imply lock, lease, or reservation semantics. | Include references to the overlapping Selected Scope, Workflow Run, Work Item, provider record, or file/document path. |
110
+ | Scope changed | `ScopeChanged` | The Selected Scope changed after alignment, planning, or downstream evidence began. Material changes route back to an Alignment Gate. | Include old and new scope references when available, plus the gate or evidence that detected the material change. |
111
+ | Configuration gap | `ConfigurationGap` | A required provider, capability, setting, permission, or version is missing, invalid, unavailable, or incompatible. | Required gaps usually set `Blocked=True` or `Ready=False`; optional gaps may be advisory or unknown. Point to provider settings, capability checks, or validation output. |
112
+ | Missing evidence | `MissingEvidence` | Required evidence has not been recorded, cannot be found, or is stale for the current desired generation. | Point to the expected evidence contract, gate requirement, sidecar, provider check, or artifact path. Do not mark readiness true until the missing required evidence is resolved or explicitly accepted. |
113
+ | Route-back required | `RouteBackRequired` | A gate cannot advance and the next useful action is an earlier workflow step. | Include route reason, target step or gate, attempt count when available, and evidence supporting the route-back decision. |
114
+
115
+ Flow Kits may add domain-specific condition reasons and additional condition types for their own resources. Shared condition meanings remain stable across kits so Flow Agents, adapters, evals, analytics, and future Console views can compare state without understanding every kit.
116
+
117
+ ## Canonical Examples
118
+
119
+ These examples use one provider-neutral documentation workflow: add the Kontour Resource Contract reference for work item `workitem-resource-contract-56`. The same stable identifiers connect the Selected Scope, Workflow Run, and Run Plan. Desired intent stays in `spec`; observed facts, gaps, and current lifecycle summaries stay in `status.conditions`.
120
+
121
+ ### SelectedScope
122
+
123
+ ```yaml
124
+ apiVersion: flowagents.kontourai.io/v1alpha1
125
+ kind: SelectedScope
126
+ metadata:
127
+ name: selected-scope-resource-contract-56
128
+ uid: scope-20260528-resource-contract-56
129
+ namespace: flow-agents
130
+ labels:
131
+ flowagents.kontourai.io/workflow: docs-reference
132
+ annotations:
133
+ flowagents.kontourai.io/source: local-work-item
134
+ ownerReferences: []
135
+ createdAt: "2026-05-28T06:09:09Z"
136
+ updatedAt: "2026-05-28T06:10:21Z"
137
+ spec:
138
+ workflowIntent: Document the core Kontour Resource Contract shape for Flow Agents.
139
+ authorizedSubjects:
140
+ - apiVersion: flowagents.kontourai.io/v1alpha1
141
+ kind: WorkItem
142
+ name: workitem-resource-contract-56
143
+ uid: workitem-kontourai-flow-agents-56
144
+ providerRef:
145
+ type: local
146
+ externalId: kontourai-flow-agents-56
147
+ - apiVersion: flowagents.kontourai.io/v1alpha1
148
+ kind: Document
149
+ name: kontour-resource-contract-reference
150
+ uid: doc-docs-kontour-resource-contract
151
+ path: docs/kontour-resource-contract.md
152
+ boundaries:
153
+ include:
154
+ - docs/kontour-resource-contract.md
155
+ exclude:
156
+ - dist/
157
+ - runtime code
158
+ - provider records
159
+ materialChangePolicy:
160
+ routeBackGate: Alignment
161
+ status:
162
+ observedGeneration: 1
163
+ resourceVersion: "1"
164
+ conditions:
165
+ - type: Ready
166
+ status: "True"
167
+ reason: ScopeSelected
168
+ message: The selected Work Item and documentation file are narrow enough for the planned workflow.
169
+ evidenceRefs:
170
+ - kind: SessionArtifact
171
+ path: .flow-agents/resource-contract-skeleton/resource-contract-skeleton--deliver.md
172
+ observedGeneration: 1
173
+ lastTransitionTime: "2026-05-28T06:10:21Z"
174
+ - type: ScopeOverlap
175
+ status: "False"
176
+ reason: NoOverlapObserved
177
+ message: No active overlapping workflow was recorded for this selected scope.
178
+ evidenceRefs:
179
+ - kind: SessionArtifact
180
+ path: .flow-agents/resource-contract-skeleton/resource-contract-skeleton--deliver.md
181
+ observedGeneration: 1
182
+ lastTransitionTime: "2026-05-28T06:10:21Z"
183
+ ```
184
+
185
+ ### WorkflowRun
186
+
187
+ ```yaml
188
+ apiVersion: flowagents.kontourai.io/v1alpha1
189
+ kind: WorkflowRun
190
+ metadata:
191
+ name: workflow-run-resource-contract-56
192
+ uid: run-20260528-resource-contract-56
193
+ namespace: flow-agents
194
+ labels:
195
+ flowagents.kontourai.io/workflow: docs-reference
196
+ annotations:
197
+ flowagents.kontourai.io/source: local-session
198
+ ownerReferences:
199
+ - apiVersion: flowagents.kontourai.io/v1alpha1
200
+ kind: SelectedScope
201
+ name: selected-scope-resource-contract-56
202
+ uid: scope-20260528-resource-contract-56
203
+ createdAt: "2026-05-28T06:09:09Z"
204
+ updatedAt: "2026-05-28T06:10:21Z"
205
+ spec:
206
+ workflow: docs-reference
207
+ selectedScopeRef:
208
+ apiVersion: flowagents.kontourai.io/v1alpha1
209
+ kind: SelectedScope
210
+ name: selected-scope-resource-contract-56
211
+ uid: scope-20260528-resource-contract-56
212
+ runPlanRef:
213
+ apiVersion: flowagents.kontourai.io/v1alpha1
214
+ kind: RunPlan
215
+ name: run-plan-resource-contract-56
216
+ uid: plan-20260528-resource-contract-56
217
+ gateOrder:
218
+ - Alignment
219
+ - Planning
220
+ - Execution
221
+ - Verification
222
+ - Evidence
223
+ terminalPolicy:
224
+ requireEvidenceForReady: true
225
+ routeBackOnMaterialScopeChange: true
226
+ status:
227
+ observedGeneration: 1
228
+ resourceVersion: "1"
229
+ phase: execution
230
+ attempt: 1
231
+ selectedSubjectSnapshot:
232
+ - kind: WorkItem
233
+ uid: workitem-kontourai-flow-agents-56
234
+ - kind: Document
235
+ uid: doc-docs-kontour-resource-contract
236
+ conditions:
237
+ - type: InProgress
238
+ status: "True"
239
+ reason: WaveExecutionStarted
240
+ message: The documentation workflow is executing the resource contract examples and compatibility guidance.
241
+ evidenceRefs:
242
+ - kind: SessionArtifact
243
+ path: .flow-agents/resource-contract-skeleton/resource-contract-skeleton--deliver.md
244
+ observedGeneration: 1
245
+ lastTransitionTime: "2026-05-28T06:10:21Z"
246
+ - type: MissingEvidence
247
+ status: "True"
248
+ reason: VerificationPending
249
+ message: Final YAML parsing and text checks have not been recorded for this run.
250
+ evidenceRefs:
251
+ - kind: ExpectedEvidence
252
+ name: yaml-parse-and-rg-checks
253
+ observedGeneration: 1
254
+ lastTransitionTime: "2026-05-28T06:10:21Z"
255
+ - type: Ready
256
+ status: "False"
257
+ reason: VerificationPending
258
+ message: The workflow cannot be marked ready until required evidence is recorded.
259
+ evidenceRefs:
260
+ - kind: ExpectedEvidence
261
+ name: yaml-parse-and-rg-checks
262
+ observedGeneration: 1
263
+ lastTransitionTime: "2026-05-28T06:10:21Z"
264
+ ```
265
+
266
+ ### RunPlan
267
+
268
+ ```yaml
269
+ apiVersion: flowagents.kontourai.io/v1alpha1
270
+ kind: RunPlan
271
+ metadata:
272
+ name: run-plan-resource-contract-56
273
+ uid: plan-20260528-resource-contract-56
274
+ namespace: flow-agents
275
+ labels:
276
+ flowagents.kontourai.io/workflow: docs-reference
277
+ annotations:
278
+ flowagents.kontourai.io/source: local-plan
279
+ ownerReferences:
280
+ - apiVersion: flowagents.kontourai.io/v1alpha1
281
+ kind: WorkflowRun
282
+ name: workflow-run-resource-contract-56
283
+ uid: run-20260528-resource-contract-56
284
+ createdAt: "2026-05-28T06:10:21Z"
285
+ updatedAt: "2026-05-28T06:10:21Z"
286
+ spec:
287
+ selectedScopeRef:
288
+ apiVersion: flowagents.kontourai.io/v1alpha1
289
+ kind: SelectedScope
290
+ name: selected-scope-resource-contract-56
291
+ uid: scope-20260528-resource-contract-56
292
+ requiredCapabilities:
293
+ - docs-edit
294
+ - yaml-parse
295
+ - text-search
296
+ gates:
297
+ - name: Alignment
298
+ requiredEvidence:
299
+ - selected-scope-recorded
300
+ - name: Execution
301
+ requiredEvidence:
302
+ - modified-files-recorded
303
+ - name: Verification
304
+ requiredEvidence:
305
+ - yaml-parse-and-rg-checks
306
+ routeBackPolicy:
307
+ materialScopeChange:
308
+ targetGate: Alignment
309
+ reason: ScopeChanged
310
+ missingEvidence:
311
+ targetGate: Verification
312
+ reason: MissingEvidence
313
+ learningPoints:
314
+ - Resource examples should remain provider-neutral.
315
+ - Compatibility guidance should document direction without migrating sidecars.
316
+ status:
317
+ observedGeneration: 1
318
+ resourceVersion: "1"
319
+ conditions:
320
+ - type: Ready
321
+ status: "True"
322
+ reason: PlanAccepted
323
+ message: The Run Plan has enough desired gate and evidence detail for execution.
324
+ evidenceRefs:
325
+ - kind: PlanArtifact
326
+ path: .flow-agents/resource-contract-skeleton/resource-contract-skeleton--plan.md
327
+ observedGeneration: 1
328
+ lastTransitionTime: "2026-05-28T06:10:21Z"
329
+ - type: RouteBackRequired
330
+ status: "False"
331
+ reason: NoRouteBackObserved
332
+ message: No material scope change or missing required plan input has been observed.
333
+ evidenceRefs:
334
+ - kind: PlanArtifact
335
+ path: .flow-agents/resource-contract-skeleton/resource-contract-skeleton--plan.md
336
+ observedGeneration: 1
337
+ lastTransitionTime: "2026-05-28T06:10:21Z"
338
+ ```
339
+
340
+ ## Compatibility Guidance
341
+
342
+ This issue documents the resource direction only. It does not migrate current sidecars, rewrite provider-backed Work Items, add schemas, alter sidecar writers, or change runtime behavior. Existing local artifacts and provider records remain valid while future adapters and docs converge on the Kontour Resource Contract shape.
343
+
344
+ Current workflow sidecars can be interpreted as resource-shaped status, evidence, and handoff data without changing their files:
345
+
346
+ | Current artifact | Resource Contract direction |
347
+ | --- | --- |
348
+ | `state.json` | Maps toward `WorkflowRun.status` for phase, lifecycle status, next action, and current condition summaries. It should not become the only evidence source for gate outcomes. |
349
+ | `acceptance.json` | Maps toward required evidence and acceptance expectations on `RunPlan.spec`, plus observed criterion outcomes in gate or workflow status. Desired acceptance criteria remain intent; pass, fail, and not-verified outcomes remain observed facts. |
350
+ | `evidence.json` | Maps toward evidence records and `status.conditions[].evidenceRefs`. Conditions summarize the evidence verdict, while detailed proof remains inspectable in the evidence sidecar or future evidence resource. |
351
+ | `handoff.json` | Maps toward route-back, pause, blocker, owner, and next-action status on `WorkflowRun.status` or handoff evidence. It records observed workflow continuity facts, not desired scope or plan intent. |
352
+ | `critique.json`, `release.json`, and `learning.json` | Map toward gate-specific evidence and condition summaries for review, release, and learning gates. They remain separate sidecars until a deliberate migration or adapter is designed. |
353
+
354
+ Provider-backed Work Items keep the provider-neutral vocabulary from `context/contracts/work-item-contract.md`. A provider record can be represented as a `WorkItem` resource by preserving stable identity, provider references, title, state, acceptance pointers, and artifact references, but the provider remains the source of provider state. Local files, tests, kit demos, and migrations may use the same resource-shaped Work Item without requiring GitHub, Jira, Linear, Kubernetes, or any other provider.
355
+
356
+ Adapters should treat provider-specific IDs and URLs as references, not as generic resource identity. For example, a provider-backed Work Item may include a provider reference in `metadata.annotations`, `spec.providerRef`, or a typed reference field while keeping `metadata.uid` stable for Flow Agents correlation. Workflow artifacts such as plans, sidecars, reviews, verification reports, and durable docs should remain linked through artifact or evidence references so users and gates can inspect the underlying proof.
357
+
358
+ No compatibility text on this page requires an immediate migration. A future migration or adapter should be planned as its own Workflow Run with explicit Selected Scope, Run Plan, acceptance evidence, sidecar compatibility checks, provider behavior checks, and route-back policy.
@@ -0,0 +1,64 @@
1
+ ---
2
+ title: Migrations
3
+ ---
4
+
5
+ # Migrations
6
+
7
+ ## Unreleased
8
+
9
+ - Workflow runtime artifacts now live under `.flow-agents/` instead of
10
+ `.agents/flow-agents/`. Move any local session directories, sidecars, or
11
+ `current.json` pointers you want to keep into the new root. Runtime state
12
+ remains ignored; promote durable outcomes into docs, source, schemas, or
13
+ provider records before merge.
14
+ - Flow Agents setup no longer accepts Console bearer tokens as CLI arguments.
15
+ Replace `--console-token TOKEN` with `--console-token-file PATH` for
16
+ headless installs, or use the prompted `flow-agents init` flow. Interactive
17
+ setup hides token input and passes it to installers through a temporary
18
+ `0600` token file that is deleted after install.
19
+ - Telemetry setup now uses named sinks. Local file telemetry remains the
20
+ default. Add `--telemetry-sink local-kontour-console`,
21
+ `--telemetry-sink kontour-hosted-console`, or
22
+ `--telemetry-sink user-hosted-console --console-url ...` to mirror local
23
+ telemetry into a Console API. Legacy `kontour-cloud` and
24
+ `hosted-kontour-console` names still work as aliases.
25
+ - Flow Agents now owns and ships `console.telemetry.json`. Console should load
26
+ the descriptor from the Flow Agents product root rather than owning Flow
27
+ Agents-specific telemetry facets or sidecar mappings.
28
+
29
+ ## Evidence Reference Migration
30
+
31
+ Flow Agents sidecars now treat structured evidence reference objects as the schema contract. Legacy string refs in `acceptance.json` and `evidence.json` must be converted before validation.
32
+
33
+ Convert old strings like:
34
+
35
+ ```json
36
+ "evidence_refs": ["npm run eval:static --silent"]
37
+ ```
38
+
39
+ to objects like:
40
+
41
+ ```json
42
+ "evidence_refs": [
43
+ {
44
+ "kind": "command",
45
+ "excerpt": "npm run eval:static --silent",
46
+ "summary": "Static eval suite passed."
47
+ }
48
+ ]
49
+ ```
50
+
51
+ For source evidence, include file and line data:
52
+
53
+ ```json
54
+ {
55
+ "kind": "source",
56
+ "url": "https://github.com/OWNER/REPO/blob/COMMIT_SHA/path/to/file.ts#L12-L24",
57
+ "file": "path/to/file.ts",
58
+ "line_start": 12,
59
+ "line_end": 24,
60
+ "excerpt": "Short excerpt that supports the acceptance claim."
61
+ }
62
+ ```
63
+
64
+ Use immutable GitHub blob URLs pinned to a commit SHA when the commit/provider URL is available. Before publication, omit `url` and keep `file`, `line_start`, `line_end`, and `excerpt` as a local fallback. Upgrade local refs before provider closure whenever practical.