@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,104 @@
1
+ # Review Contract
2
+
3
+ Review is report-only critique. It asks whether the changed code is maintainable, secure, consistent with project standards, and structurally sound before verification proves behavior.
4
+
5
+ ## Purpose
6
+
7
+ Review and verification are separate gates:
8
+
9
+ - Review answers: should this implementation be changed before we trust it?
10
+ - Verification answers: what evidence proves the accepted behavior works?
11
+
12
+ Keep review findings in the configured critique artifact/sink; in the local sidecar workflow this is materialized as `critique.json`. Keep behavior evidence in `evidence.json`.
13
+
14
+ Review is not a canonical `state.phase` value. Machine-readable workflow state must use the canonical lifecycle phase vocabulary from the artifact contract, while review-work records its verdicts and findings through the critique artifact/sink.
15
+
16
+ ## Required Inputs
17
+
18
+ - session artifact path when available
19
+ - plan artifact path or implementation summary
20
+ - modified files
21
+ - relevant project standards, including `context/code-review-standards.md` when present
22
+ - risk triggers such as auth, user input, database queries, filesystem operations, API endpoints, cryptography, payments, migrations, CI, deployment, or public contracts
23
+
24
+ ## Review Lanes And Trigger Rules
25
+
26
+ Run each required lane as report-only critique. A lane is required when modified
27
+ files, the plan, or the implementation behavior match its triggers. When trigger
28
+ detection is uncertain for a substantial change, run the relevant lane or record
29
+ that lane as `not_verified` with the reason.
30
+
31
+ | Lane | Triggers | Expected reviewer or delegate |
32
+ | --- | --- | --- |
33
+ | Code | Source code, tests, scripts, generated-code inputs, public contracts, or implementation logic changed. | `tool-code-reviewer` |
34
+ | Security | Authentication, authorization, user input, query params, headers, templates, serialization, database queries, filesystem paths, uploads, downloads, archives, generated files, API endpoints, webhooks, external API calls, network operations, cryptography, tokens, secrets, payments, billing, CI, deployment, or feature flags changed. | `tool-security-reviewer` |
35
+ | Dependency | Package manifests, dependency manifests, lockfiles, dependency tooling, package manager config, container base-image dependency declarations, or dependency update policy changed. Examples include `package.json`, `package-lock.json`, `pnpm-lock.yaml`, `yarn.lock`, `requirements.txt`, `pyproject.toml`, `poetry.lock`, `Pipfile.lock`, `Cargo.toml`, `Cargo.lock`, `go.mod`, `go.sum`, `pom.xml`, `build.gradle`, `Gemfile.lock`, `composer.lock`, and NuGet lock files. | `tool-dependencies-updater` or configured repo dependency reviewer |
36
+ | Architecture/standards | Module boundaries, ownership boundaries, shared abstractions, schemas, API compatibility, data flow, migrations, platform conventions, documented decisions, project standards, or cross-cutting behavior changed. | `tool-code-reviewer` plus configured architecture/domain reviewer when present |
37
+ | IaC/policy | Infrastructure as code, policy as code, cloud/deployment config, Terraform, OpenTofu, CloudFormation, Kubernetes manifests, Helm charts, Dockerfiles, Compose files, GitHub Actions, CI/CD permissions, IAM, OPA/Rego, Sentinel, or environment provisioning changed. | `tool-security-reviewer`, configured IaC/policy reviewer, or repo-local read-only scanner |
38
+
39
+ IaC/policy scanner guidance is vendor-neutral. Acceptable scanner classes include
40
+ Checkov, tfsec, Trivy, Semgrep, and project-configured policy scanners, but no
41
+ single vendor is required by this contract. Reviewers may reference native
42
+ scanner output or SARIF when available, but missing scanner tooling must be
43
+ recorded as `not_verified`; do not install new scanners or silently pass the
44
+ lane during review.
45
+
46
+ ## Reviewers
47
+
48
+ Run the relevant report-only reviewers:
49
+
50
+ - `tool-code-reviewer` for code quality, maintainability, correctness, project standards, and architecture/standards fit
51
+ - `tool-security-reviewer` when security or IaC/policy triggers are present
52
+ - `tool-dependencies-updater` when dependency manifests, package manifests, package manager configuration, or lockfiles change
53
+ - an architecture, domain, IaC/policy, dependency, or standards reviewer when configured by the project or requested by the user
54
+
55
+ All reviewers are read-only reporters. They may inspect files, run read-only analysis commands, and write review artifacts under the workflow artifact directory. They must not modify source files, apply patches, or run autofixes.
56
+
57
+ ## Review Scope
58
+
59
+ Attempt relevant perspectives and record findings:
60
+
61
+ - Code quality: readability, naming, function/file size, error handling, duplication, maintainability
62
+ - Correctness risks: edge cases, unintended behavior, unsafe assumptions, missing tests
63
+ - Standards fit: project conventions, local architecture, public contracts, documented decisions
64
+ - Security: secrets, injection, XSS, path traversal, auth/authz, unsafe external calls, vulnerable dependencies
65
+ - Architecture: ownership boundaries, coupling, data flow, schema or API compatibility, migration risk
66
+
67
+ If a perspective is required but cannot be reviewed, record it as `not_verified` with the reason.
68
+
69
+ ## Verdicts
70
+
71
+ - `pass`: no open findings that block delivery
72
+ - `comment`: non-blocking findings or suggestions only
73
+ - `fail`: at least one open critical/high finding, or a medium finding that requires code changes before delivery
74
+ - `not_verified`: required review evidence could not be collected
75
+
76
+ ## Structured Critique Sidecar
77
+
78
+ When review runs as part of a workflow, write or update the configured critique artifact/sink. For the current local sidecar materialization, write or update `critique.json` beside the workflow artifacts using `schemas/workflow-critique.schema.json`.
79
+
80
+ Prefer the sidecar writer when available:
81
+
82
+ ```bash
83
+ npm run workflow:sidecar -- record-critique .flow-agents/<slug> \
84
+ --id code-review \
85
+ --reviewer tool-code-reviewer \
86
+ --verdict pass \
87
+ --summary "Code review passed."
88
+ ```
89
+
90
+ For Markdown reviewer reports, import them when possible:
91
+
92
+ ```bash
93
+ npm run workflow:sidecar -- import-critique .flow-agents/<slug> \
94
+ .flow-agents/<slug>/<slug>--code-review.md \
95
+ --reviewer tool-code-reviewer
96
+ ```
97
+
98
+ ## Gate Rules
99
+
100
+ - Critical or high findings block delivery until fixed, accepted by the user, deferred with explicit rationale, or marked false positive.
101
+ - Security critical/high findings block delivery unless the user explicitly accepts the risk.
102
+ - Medium findings that require code changes route through an execution fix pass.
103
+ - Any code change after review requires another clean review and verification pass.
104
+ - Do not mark critique `pass` while open findings remain.
@@ -0,0 +1,52 @@
1
+ # Sandbox Policy Contract
2
+
3
+ Workflow artifacts must name the execution boundary required for the work. The sandbox mode is a planning and delegation contract, not a substitute for the runtime permission model.
4
+
5
+ ## Canonical Modes
6
+
7
+ Use exactly one of these values when recording `sandbox_mode`:
8
+
9
+ - `local-read-only`: inspect files, configs, logs, docs, and command output without mutating files or external systems.
10
+ - `local-edit`: edit files in the active workspace and run local validation with low conflict and rollback risk.
11
+ - `worktree`: use an isolated branch/worktree for parallel work, broad refactors, generated artifacts, or work likely to outlive the current session.
12
+ - `container`: use a disposable local environment for untrusted dependencies, destructive tools, or build steps that may pollute host state.
13
+ - `cloud-sandbox`: use scoped cloud accounts, projects, stacks, or preview environments with explicit owner, budget risk, and teardown.
14
+ - `privileged-integration`: access sensitive data, mutate external systems, send messages, deploy, approve releases, or use elevated local permissions.
15
+
16
+ ## Required Artifact Fields
17
+
18
+ Plans, execution summaries, and handoffs should record:
19
+
20
+ - `sandbox_mode`
21
+ - `scope`
22
+ - `owner`
23
+ - `approval`
24
+ - `rollback`
25
+ - `evidence`
26
+
27
+ The Markdown form may use a Definition Of Done bullet. Structured sidecars should use the same vocabulary when a schema supports the field.
28
+
29
+ ## Selection Rules
30
+
31
+ - Start discovery, planning, and code review at `local-read-only`.
32
+ - Use `local-edit` only when the active workspace is the intended edit surface.
33
+ - Prefer `worktree` for parallel agents, overlapping ownership, broad shared-file edits, or long-running work.
34
+ - Prefer `container` for risky dependency installation, generated-code experiments, or destructive commands.
35
+ - Use `cloud-sandbox` for cloud experimentation before touching shared or production-like resources.
36
+ - Use `privileged-integration` only with explicit approval, target, expected effect, rollback, and post-action verification.
37
+
38
+ ## Escalation Rules
39
+
40
+ - Upgrade the mode when the work becomes riskier than planned.
41
+ - Stop for approval when the required mode is `privileged-integration` or when cloud, destructive, or externally mutating behavior was not already authorized.
42
+ - Downgrade only when the artifact records why the stronger boundary is no longer required.
43
+ - Do not hide sandbox blockers in a final summary. Record the blocker and route back to planning or user approval.
44
+
45
+ ## Evidence Expectations
46
+
47
+ - `local-read-only`: sources read and checks attempted.
48
+ - `local-edit`: modified files and validation commands.
49
+ - `worktree`: worktree path, branch, owner, merge plan, and cleanup plan.
50
+ - `container`: image/context, mounted paths, command evidence, and copied outputs.
51
+ - `cloud-sandbox`: account/project, region, permissions, cost risk, teardown evidence.
52
+ - `privileged-integration`: approval reason, target, action result, rollback status, and post-action verification.
@@ -0,0 +1,134 @@
1
+ # Verification Contract
2
+
3
+ Verification is report-only. It proves whether the implementation satisfies the plan, the Definition Of Done, and the original user outcome.
4
+
5
+ ## Required Inputs
6
+
7
+ - session artifact path when available
8
+ - plan artifact path or acceptance criteria
9
+ - Definition Of Done and stop-short risks
10
+ - modified files
11
+ - build, test, lint, browser, or runtime commands from the plan, AGENTS.md, or project conventions
12
+
13
+ ## Report-Only Rule
14
+
15
+ Verifiers and reviewers do not modify source code. They may run commands, inspect files, take screenshots, and write verification artifacts. They must not apply fixes, formatting, lint autofixes, or patches.
16
+
17
+ ## Verification Phases
18
+
19
+ Attempt relevant phases and record evidence:
20
+
21
+ - Build: compile or bundle the project
22
+ - Types: run detected static type checks
23
+ - Lint: run detected lint or quality checks
24
+ - Tests: run affected or full tests, with coverage when available
25
+ - Security: scan for secrets, debug artifacts, and dependency issues when relevant
26
+ - Diff review: inspect changed files against acceptance criteria
27
+ - Browser or visual checks: use screenshots, accessibility checks, and interaction tests for UI changes
28
+ - Provider checks: collect CI, status, review, mergeability, deployment, policy, or equivalent ChangeProvider evidence after publish-change when release confidence depends on the provider
29
+
30
+ If a tool or environment is unavailable, mark that phase `NOT_VERIFIED` with the reason. Do not skip silently.
31
+
32
+ Provider-check gaps are risk-based:
33
+
34
+ - Docs-only changes may use `SKIP` / `skip` for missing provider checks only when the report names the skipped check, explains why local docs evidence is enough, and the repository does not require the missing check.
35
+ - Runtime, schema, package, hook, security, migration, release, infrastructure, or deployment changes require provider check evidence or equivalent proof. If that proof is missing, mark the provider check and any affected acceptance/release item `NOT_VERIFIED`; release-readiness must hold rather than treating the gap as pass.
36
+ - Provider API failure, unknown mergeability, missing required review, or absent CI is not a clean pass for risky changes.
37
+
38
+ ## Verdicts
39
+
40
+ - `PASS`: all required criteria are satisfied with evidence, and no required phase failed or remains unaccepted.
41
+ - `FAIL`: at least one acceptance criterion, required check, or Goal Fit item failed.
42
+ - `NOT_VERIFIED`: required evidence could not be collected.
43
+ - `PARTIAL`: only for legacy reports where some criteria pass and some fail or remain unverified; route it like a non-pass.
44
+
45
+ ## Required Report Shape
46
+
47
+ ```markdown
48
+ ## Verification Report
49
+
50
+ Build: [PASS/FAIL/NOT_VERIFIED/SKIP] <command, exit code, or reason>
51
+ Types: [PASS/FAIL/NOT_VERIFIED/SKIP] <command, result, or reason>
52
+ Lint: [PASS/FAIL/NOT_VERIFIED/SKIP] <command, result, or reason>
53
+ Tests: [PASS/FAIL/NOT_VERIFIED/SKIP] <command, result, coverage, or reason>
54
+ Security: [PASS/FAIL/NOT_VERIFIED/SKIP] <findings or reason>
55
+ Provider: [PASS/FAIL/NOT_VERIFIED/SKIP] <provider checks, change ref, or risk-based skip reason>
56
+ Diff: [PASS/FAIL/NOT_VERIFIED] <changed files reviewed>
57
+
58
+ ### Acceptance Criteria
59
+ - [PASS/FAIL/NOT_VERIFIED] <criterion> - <evidence or gap>
60
+
61
+ ### Goal Fit
62
+ - [PASS/FAIL/NOT_VERIFIED] User outcome - <evidence or gap>
63
+ - [PASS/FAIL/NOT_VERIFIED] User-facing workflow - <docs, commands, UI, screenshots, or gap>
64
+ - [PASS/FAIL/NOT_VERIFIED] Durable docs target - <updated, deferred, not needed, or gap>
65
+ - [PASS/FAIL/NOT_VERIFIED] Stop-short risks - <resolved, accepted, or still open>
66
+
67
+ ### Verdict: PASS | PARTIAL | FAIL | NOT_VERIFIED
68
+ <summary>
69
+ ```
70
+
71
+ ## Structured Evidence Sidecar
72
+
73
+ When verification runs as part of a workflow, write or update `evidence.json` beside the workflow artifacts using `schemas/workflow-evidence.schema.json`.
74
+
75
+ Use the sidecar writer when available:
76
+
77
+ ```bash
78
+ npm run workflow:sidecar -- record-evidence .flow-agents/<slug> \
79
+ --verdict pass \
80
+ --check-json '{"id":"tests","kind":"test","status":"pass","summary":"Relevant checks passed."}'
81
+ ```
82
+
83
+ Map phases to check kinds:
84
+
85
+ - Build -> `build`
86
+ - Types -> `types`
87
+ - Lint -> `lint`
88
+ - Tests -> `test`
89
+ - Security -> `security`
90
+ - Diff -> `diff`
91
+ - Browser or visual checks -> `browser`
92
+ - Runtime checks -> `runtime`
93
+ - External policy or governance checks -> `policy` or `external`
94
+ - Provider checks from publish-change or release surfaces -> `external`
95
+
96
+ Use lowercase statuses: `pass`, `fail`, `not_verified`, or `skip`. Set the top-level `verdict` to `pass`, `partial`, `fail`, or `not_verified`. Include `not_verified_gaps` for any missing required evidence.
97
+
98
+ Modified files are part of verification scope. If changed-file scope is unavailable, mark diff/scope integrity `NOT_VERIFIED` instead of inferring from memory. Optional governance providers such as Veritas may use the same modified-file scope as input or as an integrity reference, but their native reports should remain external evidence referenced from `evidence.json`.
99
+
100
+ When evidence has a native standard artifact, include `standard_refs` on the relevant check instead of flattening that artifact into prose:
101
+
102
+ - SARIF for static analysis, code review, security, and policy findings
103
+ - OpenTelemetry logs or traces for runtime, tool, model, workflow, and production-like event evidence
104
+ - JUnit or TAP for test runner output
105
+ - Veritas for optional policy/proof-lane evidence owned by Veritas
106
+
107
+ Use `external_evidence` for evidence stored outside the artifact directory, with `system`, `ref`, optional `summary`, and optional `standard`.
108
+
109
+ External governance evidence follows `context/contracts/governance-adapter-contract.md`. Veritas is optional: when present, reference its native artifact with `standard: "veritas"`; when absent, do not invent a pass.
110
+
111
+ Published change evidence follows `context/contracts/work-item-contract.md`. Record ChangeProvider evidence as provider-neutral refs: `work_item_ref`, `board_ref`, `change_ref`, provider checks, closing-reference checks, and evidence refs. GitHub pull requests are the first adapter example, not required core terminology.
112
+
113
+ Update `acceptance.json` when acceptance criteria move from `pending` to `pass`, `fail`, `not_verified`, or `accepted_gap`.
114
+
115
+ ## Final-State Reconciliation
116
+
117
+ Verifier-local mismatch notes are pre-orchestration observations. They are useful for catching stale Markdown or sidecars, but they are not the terminal source of truth after the orchestrator updates final sidecars.
118
+
119
+ Before a clean terminal verdict:
120
+
121
+ - read the final `acceptance.json`, `evidence.json`, and `release.json` when present
122
+ - ensure Markdown summaries and sidecars no longer silently contradict each other
123
+ - record final sidecar validation evidence or mark the mismatch `NOT_VERIFIED`
124
+ - supersede earlier mismatch notes only by naming the final reconciled sidecars and evidence
125
+
126
+ If final sidecars still disagree with the Markdown artifact, return `NOT_VERIFIED` or `FAIL` according to the affected acceptance criteria.
127
+
128
+ ## Verdict Rules
129
+
130
+ - Every acceptance criterion gets a status.
131
+ - Evidence is mandatory for PASS.
132
+ - `NOT_VERIFIED` is honest uncertainty, not failure disguised as success.
133
+ - A technically green build is not enough for PASS when the user still cannot run, inspect, understand, or act on the result.
134
+ - The orchestrator routes FAIL, PARTIAL, and unaccepted NOT_VERIFIED back through execution or to an explicit user decision.
@@ -0,0 +1,215 @@
1
+ # Work Item Contract
2
+
3
+ This contract defines the provider-neutral vocabulary for selecting, planning, and handing off backlog work. It is the source shape for provider-backed workflows such as `pull-work`; provider-specific adapters map into this model without making GitHub, Jira, Linear, or any other provider the generic language.
4
+
5
+ ## Provider Roles
6
+
7
+ - `WorkItemProvider`: supplies issue-like records that represent requested work, defects, chores, or decisions.
8
+ - `BoardProvider`: supplies project, board, milestone, sprint, or queue membership and the fields used to order or route work.
9
+ - `ChangeProvider`: supplies branch, review, merge request, pull request, changeset, release, or deploy records that represent a published implementation.
10
+
11
+ A single external system can implement both roles. For example, GitHub Issues is a `WorkItemProvider`, while GitHub Projects is a `BoardProvider`.
12
+
13
+ ## Work Item Shape
14
+
15
+ Every provider-backed work item should preserve the stable fields below when the provider can supply them.
16
+
17
+ | Field | Required | Description |
18
+ | --- | --- | --- |
19
+ | `id` | yes | Stable provider identifier, such as an issue number, opaque item id, or provider-qualified id. |
20
+ | `title` | yes | Human-readable summary. |
21
+ | `body` | optional | Main description, problem statement, or request body. |
22
+ | `status` | optional | Provider-neutral lifecycle state or mapped board status, such as `todo`, `ready`, `in_progress`, `blocked`, `review`, `verification`, or `done`. |
23
+ | `labels` / `tags` | optional | Provider labels, tags, components, or categories used for filtering and triage. |
24
+ | `priority` | optional | Provider priority value mapped without changing meaning, such as `P0`, `P1`, or `high`. |
25
+ | `size` | optional | Estimated implementation size, complexity, or effort. |
26
+ | `risk` | optional | Delivery, technical, product, security, migration, or coordination risk. |
27
+ | `blockers` | optional | Blocking work items, decisions, external dependencies, or explicit blocked reasons. |
28
+ | `related_links` | optional | URLs or provider references for related issues, discussions, docs, designs, incidents, and decisions. |
29
+ | `source_provider` | yes | Provider identity and source location, including provider kind, owner or workspace, repository or project, and canonical URL when available. |
30
+ | `project_membership` / `board_membership` | optional | Board, project, milestone, sprint, queue, column, or status-field membership supplied by a `BoardProvider`. |
31
+ | `pr_links` | optional | Pull requests, merge requests, or changesets associated with the work item. |
32
+ | `artifact_refs` | optional | Workflow artifacts, sidecars, evidence, plans, reviews, handoffs, or durable docs that trace the work. |
33
+
34
+ Provider-specific fields may be carried as adapter metadata, but generic workflow skills should make selection and handoff decisions from the neutral shape above.
35
+
36
+ ## Planning Base And Drift
37
+
38
+ Executable work items should record the source revision that shaped their scope. This lets pickup Probe compare the current repository against the assumptions used when the work entered the backlog.
39
+
40
+ Recommended fields:
41
+
42
+ | Field | Required | Description |
43
+ | --- | --- | --- |
44
+ | `planned_base_ref` | recommended | Branch or ref used when shaping the work item, usually `main`. |
45
+ | `planned_base_sha` | recommended | Exact commit SHA of `planned_base_ref` at shaping time. |
46
+ | `planned_at` | recommended | Timestamp when the work item was shaped or last materially re-shaped. |
47
+ | `planning_artifact_ref` | recommended | Idea-to-backlog, design, ADR, or plan artifact that produced the work item. |
48
+ | `planning_scope_refs` | optional | Key docs, contracts, schemas, files, or packages considered during shaping. |
49
+ | `dependency_refs` | optional | Issues, changes, releases, or commits assumed complete, pending, or blocking during shaping. |
50
+
51
+ `pull-work` and pickup Probe should compare `planned_base_sha` with the current target ref before planning implementation. At minimum, record:
52
+
53
+ - current target ref and SHA
54
+ - files, docs, contracts, or schemas changed since `planned_base_sha` when they overlap `planning_scope_refs` or likely execution scope
55
+ - dependency issue/change state that has moved since shaping
56
+ - whether drift is material to scope, acceptance criteria, dependencies, or risk
57
+
58
+ Pickup Probe drift outcomes:
59
+
60
+ | Outcome | Meaning |
61
+ | --- | --- |
62
+ | `no_material_drift` | The work item is still aligned with current main and dependencies. |
63
+ | `scope_drift` | Current code/docs changed the intended scope or acceptance criteria; ask for alignment or route back to shaping. |
64
+ | `dependency_drift` | Assumed blockers, prerequisites, or related changes moved; refresh dependency assumptions before planning. |
65
+ | `contract_drift` | Relevant docs, contracts, schemas, or provider policies changed; re-check the work item against the current contract. |
66
+ | `conflict_risk` | Changed files or active work overlap likely execution scope; require worktree, rebase, sequencing, or coordination before planning. |
67
+
68
+ If a legacy work item lacks `planned_base_sha`, pickup Probe should record the gap and use current main plus provider history as the best available baseline instead of inventing certainty.
69
+
70
+ ## Publish Change Shape
71
+
72
+ `publish-change` is the provider-neutral step between clean local evidence and release readiness. It publishes the verified diff to a `ChangeProvider`, records the provider result, and collects provider checks without making any one provider's terms core workflow vocabulary.
73
+
74
+ ### References
75
+
76
+ Use typed references instead of provider-specific nouns in core artifacts:
77
+
78
+ | Ref | Description |
79
+ | --- | --- |
80
+ | `work_item_ref` | Provider-backed work request, defect, task, or decision selected for the workflow. |
81
+ | `board_ref` | Project, board, queue, milestone, sprint, or planning surface that contextualizes the work item. |
82
+ | `change_ref` | Published implementation record such as a pull request, merge request, changeset, review request, release proposal, or deploy request. |
83
+ | `evidence_ref` | Workflow evidence, CI/check run, test report, review artifact, governance report, or provider-native proof linked to the change. |
84
+
85
+ ### PublishChangeResult
86
+
87
+ A publish-change result should preserve:
88
+
89
+ | Field | Required | Description |
90
+ | --- | --- | --- |
91
+ | `provider` | yes | Stable provider id and adapter version when known. |
92
+ | `status` | yes | `published`, `updated`, `skipped`, `failed`, or `not_verified`. |
93
+ | `work_item_refs` | optional | Work items the change intends to address. |
94
+ | `board_refs` | optional | Board or project records affected by the change. |
95
+ | `change_ref` | optional | Provider change identity, canonical URL, branch, target, and state. Required unless status is `skipped`, `failed`, or `not_verified`. |
96
+ | `closing_reference_check` | optional | Whether the provider recognized references that will close or resolve work items. |
97
+ | `provider_checks` | optional | Provider-native checks such as CI, required review, policy, mergeability, status, or deployment gates. |
98
+ | `evidence_refs` | optional | Local sidecars, standard evidence artifacts, provider checks, and external evidence records used for release readiness. |
99
+ | `summary` | yes | Human-readable outcome and next action. |
100
+
101
+ ### ClosingReferenceCheck
102
+
103
+ Closing-reference recognition is provider behavior. Core workflow artifacts should record the neutral result:
104
+
105
+ | Field | Required | Description |
106
+ | --- | --- | --- |
107
+ | `expected_work_item_refs` | yes | Work items the change is expected to close, resolve, or complete. |
108
+ | `recognized_work_item_refs` | yes | Work items the provider reports as recognized by the change record. |
109
+ | `missing_work_item_refs` | yes | Expected refs not recognized by the provider. |
110
+ | `status` | yes | `pass`, `fail`, `not_verified`, or `skip`. |
111
+ | `evidence_refs` | optional | Provider API response, rendered body, check output, or dry-run fixture supporting the result. |
112
+
113
+ If closing behavior matters and expected refs are missing, publish-change must return `fail` or `not_verified`; do not hide it as a successful publish.
114
+
115
+ ### Provider Checks
116
+
117
+ Provider checks are external facts used by evidence-gate and release-readiness. Examples include CI checks, required status checks, branch protection, mergeability, required review, deployment checks, and external policy checks. Record them as provider-neutral check records with status `pass`, `fail`, `not_verified`, or `skip`, plus evidence refs.
118
+
119
+ Missing provider checks are risk-sensitive:
120
+
121
+ - Docs-only changes may pass with an explicit `skip` when the skipped provider check is not required by the repository and the artifact records why local review is enough.
122
+ - Runtime, schema, package, hook, security, migration, release, or infrastructure changes require provider check evidence or an explicit `not_verified` / release `hold`.
123
+ - A provider being unavailable is not a pass. Record `not_verified` unless the workflow explicitly chooses a low-risk no-provider path.
124
+
125
+ ## Capability Flags
126
+
127
+ Adapters must describe provider capabilities explicitly so workflows can avoid assuming unavailable fields.
128
+
129
+ | Capability | Meaning |
130
+ | --- | --- |
131
+ | `issues` | Provider can list or read issue-like work items. |
132
+ | `projects_boards` | Provider can list or read project, board, queue, sprint, or milestone membership. |
133
+ | `status_fields` | Provider exposes lifecycle, column, state, or status field values. |
134
+ | `custom_fields` | Provider exposes typed project or work item fields beyond the base shape. |
135
+ | `dependencies` | Provider exposes blocked-by, blocks, parent-child, or linked-dependency relationships. |
136
+ | `labels` | Provider exposes labels, tags, components, or categories. |
137
+ | `milestones` | Provider exposes milestones, releases, iterations, or equivalent delivery targets. |
138
+ | `assignees` | Provider exposes owner or assignee information. |
139
+ | `pr_links` | Provider exposes pull request, merge request, changeset, or branch links. |
140
+ | `comments` | Provider exposes discussion comments or activity entries. |
141
+ | `change_records` | Provider exposes branch, pull request, merge request, changeset, release, deploy, or review records. |
142
+ | `closing_references` | Provider reports whether change text or metadata will close, resolve, or complete linked work items. |
143
+ | `checks` | Provider exposes CI, status, review, mergeability, policy, deployment, or equivalent checks. |
144
+
145
+ Capabilities are descriptive, not discovery settings. Provider settings and configured-provider discovery are separate implementation concerns.
146
+
147
+ ## Status Guidance
148
+
149
+ Adapters may keep the provider's original status in metadata, but workflow-facing status should be mapped to a small neutral category when possible:
150
+
151
+ - `todo`: known work that is not ready or started.
152
+ - `ready`: scoped work that can be selected.
153
+ - `in_progress`: work currently owned or being implemented.
154
+ - `blocked`: work waiting on another item, decision, access, or external event.
155
+ - `review`: work waiting for human or automated critique.
156
+ - `verification`: work waiting for validation, evidence, or CI.
157
+ - `done`: accepted, closed, merged, released, or otherwise complete according to the provider.
158
+
159
+ When a provider has more detail than these categories, carry it in `project_membership`, `board_membership`, or adapter metadata rather than expanding the generic status vocabulary.
160
+
161
+ ## GitHub Mapping
162
+
163
+ GitHub is the first concrete mapping for this contract, not the generic vocabulary.
164
+
165
+ ### GitHub Issues as `WorkItemProvider`
166
+
167
+ | Work item field | GitHub Issues source |
168
+ | --- | --- |
169
+ | `id` | Repository-qualified issue number or node id. |
170
+ | `title` | Issue title. |
171
+ | `body` | Issue body. |
172
+ | `status` | Issue state plus mapped project status when available. |
173
+ | `labels` / `tags` | Issue labels. |
174
+ | `priority`, `size`, `risk` | Labels or GitHub Projects custom fields when present. |
175
+ | `blockers` | Linked issues, task lists, project fields, or issue body references marked as blocked/blocking. |
176
+ | `related_links` | Issue links, closing references, discussions, docs, and cross-references. |
177
+ | `source_provider` | `github`, repository owner/name, issue number, node id, and issue URL. |
178
+ | `pr_links` | Linked pull requests, closing PRs, branches, or manually referenced PR URLs. |
179
+ | `artifact_refs` | `.flow-agents/<slug>/` artifacts, plan/review/evidence links, and promoted docs referenced from the issue or workflow. |
180
+
181
+ ### GitHub Projects as `BoardProvider`
182
+
183
+ | Board field | GitHub Projects source |
184
+ | --- | --- |
185
+ | `project_membership` / `board_membership` | Organization or repository project, project item id, view or board name when known, status field, milestone, iteration, and custom fields. |
186
+ | `status` | Mapped project status field when it is more workflow-relevant than issue open/closed state. |
187
+ | `priority`, `size`, `risk` | Project custom fields or labels when those fields are configured. |
188
+ | `blockers` | Project dependency fields, linked issues, or custom blocked fields when configured. |
189
+ | `related_links` | Project item URL, project URL, milestone URL, and linked provider references. |
190
+
191
+ GitHub capability flags should reflect what the current token and project configuration can actually read. Do not treat unavailable project fields as empty truth; record them as not available or `NOT_VERIFIED` in workflow evidence when they affect selection.
192
+
193
+ ### GitHub Pull Requests as `ChangeProvider`
194
+
195
+ | Publish/change field | GitHub source |
196
+ | --- | --- |
197
+ | `change_ref` | Pull request number, node id, head branch, base branch, URL, merge state, and review state. |
198
+ | `work_item_refs` | Issues linked in the pull request body, branch, commits, manually supplied metadata, or GraphQL closing issue references. |
199
+ | `closing_reference_check` | Provider-recognized closing issues from GitHub, compared with expected issue refs. |
200
+ | `provider_checks` | Check runs, status checks, required reviews, branch protection, mergeability, and deployment checks visible to the token. |
201
+ | `evidence_refs` | Workflow sidecars, verification summaries, CI URLs, check run URLs, review artifacts, and release-readiness records linked from the pull request. |
202
+
203
+ GitHub is the first adapter/example for publish-change. Core workflow text should still say `change_ref`, `provider_checks`, and `closing_reference_check` unless it is inside a GitHub mapping or example.
204
+
205
+ ## Artifact References
206
+
207
+ Workflow artifacts should be linked by stable path or URL and should preserve traceability to source work items:
208
+
209
+ - pull-work artifacts that capture board snapshots and selection rationale
210
+ - plan artifacts and `acceptance.json`
211
+ - execution handoffs and modified-file evidence
212
+ - review, verification, evidence, release, and learning sidecars
213
+ - promoted durable docs or release notes
214
+
215
+ `artifact_refs` should not replace provider state. They connect agent workflow evidence back to the provider-backed work item.
@@ -0,0 +1,33 @@
1
+ # Demo Mode
2
+
3
+ Speed over polish. For customer demos, workshops, and prototypes.
4
+
5
+ ## When to Activate
6
+ - User says "demo", "prototype", "workshop", "spike", "proof of concept", or "POC"
7
+ - Explicitly requested: "use demo mode"
8
+
9
+ ## Relaxed Quality Gates
10
+ - Skip TDD — write tests only for critical paths if time allows
11
+ - Skip code review — no tool-verifier pass required
12
+ - Minimal validation — "it runs and looks right" is sufficient
13
+ - Skip linting/formatting enforcement
14
+
15
+ ## Quick-Start Patterns
16
+
17
+ | Language | Stack | Command |
18
+ |----------|-------|---------|
19
+ | TypeScript | Vite + React | `npm create vite@latest -- --template react-ts` |
20
+ | Python | FastAPI | `pip install fastapi uvicorn && uvicorn main:app --reload` |
21
+ | Go | net/http | Standard library, no framework needed |
22
+ | Java | Spring Boot | `spring init --dependencies=web,devtools` |
23
+
24
+ ## Guidelines
25
+ - **Visual-first validation** — use Playwright screenshots over unit tests for UI work
26
+ - **Framework scaffolding** — prefer `create-*` CLIs and official templates over manual setup
27
+ - **Hardcoded config is fine** — no need for env vars or config files in demos
28
+ - **Skip abstractions** — inline logic, skip interfaces/factories, keep it flat
29
+ - **Copy-paste is acceptable** — DRY doesn't apply to throwaway code
30
+
31
+ ## ⚠️ Boundary
32
+
33
+ Demo-mode artifacts MUST NOT be committed to production branches. Use a `demo/` or `spike/` branch prefix. If demo code needs to become production code, run the full development workflow from step 0.
@@ -0,0 +1,31 @@
1
+ # Go Rules
2
+
3
+ Loaded on-demand when working in Go projects.
4
+
5
+ ## Error Handling
6
+ - Check every error — no `_` for error returns unless explicitly justified
7
+ - Wrap errors with context: `fmt.Errorf("doing X: %w", err)`
8
+ - Use `errors.Is` / `errors.As` for comparison — never string matching
9
+ - Sentinel errors as package-level `var` for expected conditions
10
+ - Return errors, don't panic — reserve `panic` for truly unrecoverable states
11
+
12
+ ## Testing
13
+ - Table-driven tests as the default pattern
14
+ - Use `testify/assert` or `testify/require` for readable assertions
15
+ - `t.Helper()` in test helper functions
16
+ - `t.Parallel()` for independent tests
17
+ - Benchmarks (`Benchmark*`) for performance-sensitive code
18
+
19
+ ## Tooling
20
+ - `go vet` + `golangci-lint` with default linters enabled
21
+ - `gofmt` / `goimports` for formatting (non-negotiable)
22
+ - `go mod tidy` before every commit
23
+
24
+ ## Patterns
25
+ - Accept interfaces, return structs
26
+ - `context.Context` as first parameter for cancellation and deadlines
27
+ - Prefer small interfaces (1-3 methods) for testability
28
+ - Use `sync.Once` for lazy initialization, not `init()`
29
+ - Channel direction in function signatures: `chan<-` or `<-chan`
30
+ - Prefer `slog` (Go 1.21+) for structured logging
31
+ - Embed structs for composition, not inheritance
@@ -0,0 +1,31 @@
1
+ # Python Rules
2
+
3
+ Loaded on-demand when working in Python projects.
4
+
5
+ ## Types
6
+ - Type hints on all function signatures — no untyped public APIs
7
+ - Use `from __future__ import annotations` for forward references
8
+ - `typing.Protocol` for structural subtyping over ABC where possible
9
+
10
+ ## Validation
11
+ - Pydantic for runtime validation of external inputs (API payloads, config, env vars)
12
+ - Dataclasses or attrs for internal data structures (no plain dicts for structured data)
13
+
14
+ ## Testing
15
+ - pytest as the test framework — no unittest
16
+ - Co-locate tests in `tests/` mirroring `src/` structure
17
+ - Use fixtures over setup/teardown methods
18
+ - `pytest-cov` for coverage reporting
19
+
20
+ ## Tooling
21
+ - Ruff for linting and formatting (replaces flake8 + black + isort)
22
+ - `pyproject.toml` as the single config file
23
+ - Type checking with mypy or pyright in strict mode
24
+
25
+ ## Patterns
26
+ - Use `async/await` where I/O bound (httpx, database, file ops)
27
+ - Prefer `pathlib.Path` over `os.path`
28
+ - Use context managers (`with`) for resource cleanup
29
+ - Prefer `enum.Enum` over string constants
30
+ - Use `logging` module with structured output — no `print()` in library code
31
+ - Virtual environments always — never install to system Python
@@ -0,0 +1,34 @@
1
+ # TypeScript Rules
2
+
3
+ Loaded on-demand when working in TypeScript projects.
4
+
5
+ ## Compiler
6
+ - `strict: true` always — no exceptions
7
+ - Target ES2022+ unless browser compat requires lower
8
+
9
+ ## Types
10
+ - Prefer `type` over `interface` for unions and intersections
11
+ - `interface` for object shapes that may be extended
12
+ - No `any` without a `// eslint-disable` comment explaining why
13
+ - Use `unknown` for untyped external data, narrow with type guards
14
+ - Prefer `const` and `readonly` — mutability must be intentional
15
+
16
+ ## Validation
17
+ - Use Zod for runtime validation of external inputs (API payloads, env vars, config)
18
+ - Infer types from Zod schemas (`z.infer<typeof schema>`) — single source of truth
19
+
20
+ ## Testing
21
+ - Jest or Vitest (prefer Vitest for new projects)
22
+ - Co-locate test files: `foo.ts` → `foo.test.ts`
23
+ - Mock external dependencies, not internal modules
24
+
25
+ ## Tooling
26
+ - ESLint + Prettier (or Biome as a single tool)
27
+ - `@typescript-eslint/strict` ruleset as baseline
28
+ - Format on save, lint on commit
29
+
30
+ ## Patterns
31
+ - Prefer `async/await` over raw Promises
32
+ - Use discriminated unions for state machines
33
+ - Barrel exports (`index.ts`) only at package boundaries, not within modules
34
+ - Prefer named exports over default exports