@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,666 @@
1
+ # promptfooconfig.yaml — Dev agent eval suite
2
+ description: 'Flow Agents eval suite — dev skill activation and workflow compliance'
3
+
4
+ providers:
5
+ - id: 'exec: bash ../../lib/eval-dev.sh'
6
+ label: dev
7
+
8
+ prompts:
9
+ - '{{prompt}}'
10
+
11
+ evaluateOptions:
12
+ maxConcurrency: 1
13
+
14
+ defaultTest:
15
+ options:
16
+ provider: 'exec: bash ../../lib/eval-judge.sh'
17
+
18
+ tests:
19
+ - vars:
20
+ prompt: "Explore this codebase and tell me what it does"
21
+ assert:
22
+ - type: javascript
23
+ value: file://../../lib/assertions/delegated-to.js
24
+ config:
25
+ expected: ['tool-explore-structure', 'tool-explore-entry', 'tool-explore-deps']
26
+ - type: javascript
27
+ value: file://../../lib/assertions/tool-called.js
28
+ config:
29
+ tool: delegate to a specialist agent
30
+ - type: javascript
31
+ value: file://../../lib/assertions/no-write-tools.js
32
+ - type: llm-rubric
33
+ value: |
34
+ The agent activated the 'explore' skill and ATTEMPTED to fan out parallel subagents
35
+ (tool-explore-structure, entry, deps, patterns, config, tests) via delegate to a specialist agent.
36
+ Subagents may fail at runtime — that's OK. Score based on whether the agent:
37
+ 1. Identified and activated the explore skill (required)
38
+ 2. Attempted to invoke the correct tool-explore-* subagents in parallel (required)
39
+ 3. Produced a synthesis covering directory structure, entry points, dependencies, and patterns (desired)
40
+ Score 1 if no skill activation, 3 if activated but no subagent attempt, 5 if activated + attempted subagents.
41
+
42
+ - vars:
43
+ prompt: "Create a simple hello.py script that prints hello world"
44
+ assert:
45
+ - type: javascript
46
+ value: file://../../lib/assertions/tool-called.js
47
+ config:
48
+ tool: todo tool
49
+ - type: javascript
50
+ value: file://../../lib/assertions/tool-called.js
51
+ config:
52
+ tool: run shell commands
53
+ - type: javascript
54
+ value: file://../../lib/assertions/no-write-tools.js
55
+ - type: llm-rubric
56
+ value: |
57
+ The dev agent followed its Phase 0-5 workflow:
58
+ 1. Checked existing TODOs using todo tool (Phase 0)
59
+ 2. Ran git status via run shell commands (Phase 1)
60
+ 3. Created a plan/TODO list (Phase 2)
61
+ 4. Attempted implementation (Phase 3)
62
+ Write tools are blocked so implementation may fail — check it ATTEMPTED phases 0-2.
63
+ Score 1 if jumped straight to writing, 3 if partial phases, 5 if all phases attempted.
64
+
65
+ - vars:
66
+ prompt: "This fetch call sometimes fails in production. Add error handling so the app doesn't crash: `const data = await fetch('/api/users').then(r => r.json());`"
67
+ assert:
68
+ - type: javascript
69
+ value: file://../../lib/assertions/no-write-tools.js
70
+ - type: llm-rubric
71
+ value: |
72
+ The agent was asked to add error handling to a fetch call.
73
+ Phase 3 rules: no fake data, no silent fallbacks, errors MUST bubble up.
74
+ Write tools are blocked so it can't implement, but evaluate the agent's PLAN and approach:
75
+ 1. The proposed approach propagates or re-throws errors — NOT swallowing them with
76
+ try/catch that returns null, empty arrays, fallback data, or silent defaults (required)
77
+ 2. No fake/placeholder data suggested as a fallback response (required)
78
+ 3. Error context is preserved — the plan includes logging, wrapping with context,
79
+ or typed error propagation rather than generic catch-all suppression (desired)
80
+ Score 1 if plan swallows errors silently or returns fallback data,
81
+ 3 if catches but re-throws without context, 5 if errors bubble with proper context.
82
+
83
+ - vars:
84
+ prompt: "Check this project for outdated dependencies and security vulnerabilities"
85
+ assert:
86
+ - type: javascript
87
+ value: file://../../lib/assertions/delegated-to.js
88
+ config:
89
+ expected: ['tool-dependencies-updater']
90
+ - type: javascript
91
+ value: file://../../lib/assertions/no-write-tools.js
92
+ - type: llm-rubric
93
+ value: |
94
+ The agent activated the dependency-update skill and delegated to
95
+ tool-dependencies-updater rather than manually checking package files.
96
+
97
+ - vars:
98
+ prompt: "Create a PR for my staged changes with a descriptive title"
99
+ assert:
100
+ - type: javascript
101
+ value: file://../../lib/assertions/tool-called.js
102
+ config:
103
+ tool: run shell commands
104
+ - type: javascript
105
+ value: file://../../lib/assertions/no-write-tools.js
106
+ - type: llm-rubric
107
+ value: |
108
+ The agent activated the github-cli skill.
109
+ It should use run shell commands to run gh or git CLI commands.
110
+ Score based on PROCESS:
111
+ 1. Identified and activated github-cli skill (required)
112
+ 2. Used run shell commands to interact with git/gh (required)
113
+ 3. Correctly identified the directory is not a git repo OR attempted gh commands (required)
114
+ Score 1 if no skill activation, 3 if activated but no CLI usage, 5 if all three met.
115
+
116
+ - vars:
117
+ prompt: "Build me a simple dashboard page with a dark theme and some charts"
118
+ assert:
119
+ - type: javascript
120
+ value: file://../../lib/assertions/delegated-to.js
121
+ config:
122
+ expected: ['tool-worker']
123
+ - type: javascript
124
+ value: file://../../lib/assertions/no-write-tools.js
125
+ - type: llm-rubric
126
+ value: |
127
+ The agent activated the frontend-design skill.
128
+ It should delegate implementation to tool-worker with design guidelines.
129
+ Score based on PROCESS:
130
+ 1. Identified and activated frontend-design skill (required)
131
+ 2. Delegated to tool-worker with design context (required)
132
+ Score 1 if no skill activation, 3 if activated but no delegation, 5 if both met.
133
+
134
+ - vars:
135
+ prompt: "Build a simple 404 error page — centered message, muted colors, and a 'Go Home' button. Save it as 404.html."
136
+ assert:
137
+ - type: javascript
138
+ value: file://../../lib/assertions/no-write-tools.js
139
+ - type: llm-rubric
140
+ value: |
141
+ The agent was asked to BUILD a small visual artifact (an HTML page with CSS).
142
+ Phase 4 requires visual changes be verified via tool-playwright BEFORE ending the turn.
143
+ Write tools are blocked so it can't create the file, but evaluate the agent's PLAN:
144
+ 1. Plan includes creating the HTML/CSS (required)
145
+ 2. Plan includes visual verification via tool-playwright — loading the page, taking a
146
+ screenshot, or checking accessibility AFTER implementation (required)
147
+ 3. Agent does NOT treat writing the code as the final step — verification is planned
148
+ as a distinct step after implementation (required)
149
+ Score 1 if plan ends at code generation with no verification intent,
150
+ 3 if mentions verification vaguely but doesn't plan tool-playwright,
151
+ 5 if plan explicitly includes tool-playwright verification as a post-implementation step.
152
+
153
+ - vars:
154
+ prompt: "Take a screenshot of http://localhost:3000 and check the page accessibility"
155
+ assert:
156
+ - type: javascript
157
+ value: file://../../lib/assertions/delegated-to.js
158
+ config:
159
+ expected: ['tool-playwright']
160
+ - type: javascript
161
+ value: file://../../lib/assertions/no-write-tools.js
162
+ - type: llm-rubric
163
+ value: |
164
+ The agent activated the browser-test skill.
165
+ It should delegate to tool-playwright for browser automation.
166
+ Score based on PROCESS:
167
+ 1. Identified and activated browser-test skill (required)
168
+ 2. Delegated to tool-playwright (required)
169
+ Score 1 if no skill activation, 3 if activated but no delegation, 5 if both met.
170
+
171
+ - vars:
172
+ prompt: "Update the header component to use sticky positioning and change the background to dark blue"
173
+ assert:
174
+ - type: javascript
175
+ value: file://../../lib/assertions/tool-called.js
176
+ config:
177
+ tool: todo tool
178
+ - type: javascript
179
+ value: file://../../lib/assertions/no-write-tools.js
180
+ - type: llm-rubric
181
+ value: |
182
+ The agent followed Phase 0-5 for a VISUAL code change.
183
+ Phase 4 (VALIDATE) requires classifying changes and verifying with evidence.
184
+ Visual changes MUST be verified via tool-playwright — not just described.
185
+ Write tools are blocked so implementation will fail, but check the agent's PLAN:
186
+ 1. Followed Phase 0-2 workflow (todo tool, git status, plan) (required)
187
+ 2. Plan or stated intent includes visual verification via tool-playwright or screenshot (required)
188
+ 3. Did NOT treat describing the changes as sufficient validation (required)
189
+ Score 1 if no phases followed, 3 if phases but no visual verification planned, 5 if all met.
190
+
191
+ - vars:
192
+ prompt: "Verify that the changes I just made actually work — check both the build and the UI"
193
+ assert:
194
+ - type: javascript
195
+ value: file://../../lib/assertions/no-write-tools.js
196
+ - type: llm-rubric
197
+ value: |
198
+ The agent activated the feedback-loop skill for implementation verification.
199
+ It should identify what changed (git diff), classify the verification method
200
+ (visual via Playwright, integration via tests/commands), and attempt verification.
201
+ Score based on PROCESS:
202
+ 1. Identified and activated feedback-loop skill (required)
203
+ 2. Attempted to identify changes via git diff or similar (required)
204
+ 3. Attempted verification (build, test, or Playwright) (desired)
205
+ Score 1 if no skill activation, 3 if activated but no verification attempt, 5 if all met.
206
+
207
+ - vars:
208
+ prompt: "Verify the changes we just made pass all acceptance criteria"
209
+ metadata:
210
+ type: regression
211
+ skill: verify-work
212
+ added: 2026-04-05
213
+ assert:
214
+ - type: javascript
215
+ value: file://../../lib/assertions/delegated-to.js
216
+ config:
217
+ expected: ['tool-verifier']
218
+ - type: javascript
219
+ value: file://../../lib/assertions/no-write-tools.js
220
+ - type: llm-rubric
221
+ value: |
222
+ The agent activated verify-work and delegated to tool-verifier.
223
+ tool-verifier should attempt phased verification: build, types, lint, tests, security, diff review.
224
+ The response should contain a structured verification report with per-phase status.
225
+ Score 1 if no phased verification, 3 if partial phases, 5 if all 6 phases attempted.
226
+
227
+ - vars:
228
+ prompt: "Run a full verification on this Python project — build, types, lint, tests, security"
229
+ metadata:
230
+ type: capability
231
+ skill: verify-work
232
+ added: 2026-04-05
233
+ assert:
234
+ - type: javascript
235
+ value: file://../../lib/assertions/delegated-to.js
236
+ config:
237
+ expected: ['tool-verifier']
238
+ - type: javascript
239
+ value: file://../../lib/assertions/no-write-tools.js
240
+ - type: llm-rubric
241
+ value: |
242
+ The agent should activate verify-work for comprehensive verification.
243
+ tool-verifier should ATTEMPT to detect this is a Python project and select appropriate tools:
244
+ - Build: pip install or setup.py
245
+ - Types: pyright or mypy
246
+ - Lint: ruff or flake8
247
+ - Tests: pytest with coverage
248
+ - Security: secrets scan + pip-audit
249
+ The eval environment may not be a Python project — tool-verifier may report NOT_VERIFIED.
250
+ Score based on the ATTEMPT to detect project type and select tools, not on success:
251
+ 1 if no project-type detection attempted, 3 if detected but wrong tools, 5 if correct detection and tool selection (even if tools fail or project not found).
252
+
253
+ # --- deep-context contract persistence ---
254
+ - vars:
255
+ prompt: |
256
+ We are deep into a long delivery session. The previous context contained status updates, partial summaries, old plans, noisy logs, abandoned approaches, and several reminders that are no longer current.
257
+
258
+ Noise block:
259
+ - Earlier we considered skipping verification, but that is stale.
260
+ - Earlier we considered writing only a summary, but that is stale.
261
+ - Earlier we considered accepting unknown dashboard metrics, but that is stale.
262
+ - Earlier we considered treating a green build as enough, but that is stale.
263
+ - Earlier we considered leaving docs until later without recording it, but that is stale.
264
+ - Earlier we considered not preserving the plan artifact, but that is stale.
265
+ - Earlier we considered letting the verifier fix code directly, but that is stale.
266
+ - Earlier we considered saying "done" after implementation, but that is stale.
267
+ - Earlier we considered omitting Goal Fit because tests passed, but that is stale.
268
+ - Earlier we considered hiding NOT_VERIFIED in a caveat, but that is stale.
269
+ - Earlier we considered using a one-off report format, but that is stale.
270
+ - Earlier we considered shipping without a user-facing workflow, but that is stale.
271
+
272
+ Current request:
273
+ Build the usage feedback dashboard feature all the way through delivery. Use the shared workflow contracts even though this session is long: planning must preserve Definition Of Done and stop-short risks, verification must map evidence to every acceptance criterion, NOT_VERIFIED must be explicit, Goal Fit must be checked before the final response, and Final Acceptance should identify durable docs promotion after CI or merge.
274
+ metadata:
275
+ type: regression
276
+ skill: deliver
277
+ added: 2026-05-04
278
+ focus: deep-context contract persistence
279
+ assert:
280
+ - type: javascript
281
+ value: file://../../lib/assertions/delegated-to.js
282
+ config:
283
+ expected: ['tool-planner', 'tool-verifier']
284
+ - type: javascript
285
+ value: file://../../lib/assertions/no-write-tools.js
286
+ - type: llm-rubric
287
+ value: |
288
+ This is a deep-context contract persistence regression.
289
+ The agent should ignore stale noisy context and preserve the shared delivery contracts:
290
+ 1. Use deliver/plan-work and delegate planning to tool-planner (required)
291
+ 2. Require a Definition Of Done with user outcome, acceptance criteria evidence, stop-short risks, and durable docs target (required)
292
+ 3. Require verification through tool-verifier with evidence mapped to each acceptance criterion and explicit NOT_VERIFIED gaps (required)
293
+ 4. Treat a green build alone as insufficient when Goal Fit is not satisfied (required)
294
+ 5. Check Goal Fit before final response and record Final Acceptance/docs promotion after CI or merge (required)
295
+ Score 1 if it follows stale shortcuts, 3 if it mentions contracts but drops one gate, 5 if it preserves the full shared-contract flow.
296
+
297
+ # --- tdd-workflow: TDD activation and RED-GREEN-REFACTOR ---
298
+ - vars:
299
+ prompt: "Use TDD to build a URL shortener module with tests first"
300
+ metadata:
301
+ type: capability
302
+ skill: tdd-workflow
303
+ added: 2026-04-05
304
+ assert:
305
+ - type: javascript
306
+ value: file://../../lib/assertions/delegated-to.js
307
+ config:
308
+ expected: ['tool-planner']
309
+ - type: javascript
310
+ value: file://../../lib/assertions/tool-called.js
311
+ config:
312
+ tool: delegate to a specialist agent
313
+ - type: javascript
314
+ value: file://../../lib/assertions/no-write-tools.js
315
+ - type: llm-rubric
316
+ value: |
317
+ The agent activated the tdd-workflow skill (not deliver).
318
+ It should have:
319
+ 1. Created a session file with type: tdd
320
+ 2. Delegated to tool-planner with test-first constraints
321
+ 3. Plan should show tests in Wave 1, implementation in Wave 2
322
+ Score 1 if it used deliver or coded directly, 3 if partial TDD, 5 if full TDD workflow.
323
+
324
+ - vars:
325
+ prompt: "Build a calculator library with 80% test coverage using test-driven development"
326
+ metadata:
327
+ type: capability
328
+ skill: tdd-workflow
329
+ added: 2026-04-05
330
+ assert:
331
+ - type: javascript
332
+ value: file://../../lib/assertions/delegated-to.js
333
+ config:
334
+ expected: ['tool-planner']
335
+ - type: javascript
336
+ value: file://../../lib/assertions/no-write-tools.js
337
+ - type: llm-rubric
338
+ value: |
339
+ The agent recognized "test-driven development" and activated tdd-workflow.
340
+ The plan should include:
341
+ - Test files as Wave 1 tasks
342
+ - Coverage target of 80% mentioned
343
+ - RED → GREEN → REFACTOR phases
344
+ Score 1 if no TDD activation, 3 if activated but plan isn't test-first, 5 if full TDD plan.
345
+
346
+ # --- Indirect frontend-design activation (UI emerges from non-UI request) ---
347
+ - vars:
348
+ prompt: "Add user authentication to this app — login page, session management, and a protected route"
349
+ assert:
350
+ - type: javascript
351
+ value: file://../../lib/assertions/no-write-tools.js
352
+ - type: llm-rubric
353
+ value: |
354
+ The request is about authentication, but it includes a "login page" which is UI work.
355
+ The agent should recognize that frontend work is part of this task and activate
356
+ the frontend-design skill for the login page portion, even though the primary
357
+ request is about auth logic.
358
+ Score based on:
359
+ 1. Recognized the task includes UI work (login page) (required)
360
+ 2. Activated or referenced the frontend-design skill for the visual portion (required)
361
+ 3. Did not apply frontend-design to the non-UI parts (session management, routing) (desired)
362
+ Score 1 if no frontend-design awareness, 3 if mentioned design but didn't activate skill,
363
+ 5 if activated frontend-design specifically for the login page task.
364
+
365
+ # --- search-first: research before coding ---
366
+ - vars:
367
+ prompt: "Add a markdown-to-HTML conversion utility to this project"
368
+ metadata:
369
+ type: capability
370
+ skill: search-first
371
+ added: 2026-04-06
372
+ assert:
373
+ - type: javascript
374
+ value: file://../../lib/assertions/tool-called.js
375
+ config:
376
+ tool: web_search
377
+ - type: javascript
378
+ value: file://../../lib/assertions/no-write-tools.js
379
+ - type: llm-rubric
380
+ value: |
381
+ The agent should research existing solutions BEFORE writing code.
382
+ It should search for existing packages (npm/PyPI), check the codebase,
383
+ or search GitHub for implementations. The search-first skill defines:
384
+ need analysis → parallel search → evaluate → decide (adopt/extend/build).
385
+ Score 1 if it jumped straight to writing code, 3 if minimal research, 5 if research-first workflow.
386
+
387
+ # --- code-review: tool-code-reviewer delegation ---
388
+ - vars:
389
+ prompt: "Review the code quality of the auth module — check for readability, maintainability, and DRY violations"
390
+ metadata:
391
+ type: capability
392
+ component: tool-code-reviewer
393
+ added: 2026-04-06
394
+ assert:
395
+ - type: javascript
396
+ value: file://../../lib/assertions/delegated-to.js
397
+ config:
398
+ expected: ['tool-code-reviewer']
399
+ - type: javascript
400
+ value: file://../../lib/assertions/no-write-tools.js
401
+ - type: llm-rubric
402
+ value: |
403
+ The agent should delegate to tool-code-reviewer for quality-focused review.
404
+ The review should produce structured findings with severity levels
405
+ (CRITICAL/HIGH/MEDIUM/LOW) covering readability, maintainability, patterns, and DRY.
406
+ Score 1 if no delegation, 3 if generic review, 5 if dedicated code-reviewer with severity levels.
407
+
408
+ # --- security-review: tool-security-reviewer delegation ---
409
+ - vars:
410
+ prompt: "Run a security review on the authentication and payment modules"
411
+ metadata:
412
+ type: capability
413
+ component: tool-security-reviewer
414
+ added: 2026-04-06
415
+ assert:
416
+ - type: javascript
417
+ value: file://../../lib/assertions/delegated-to.js
418
+ config:
419
+ expected: ['tool-security-reviewer']
420
+ - type: javascript
421
+ value: file://../../lib/assertions/no-write-tools.js
422
+ - type: llm-rubric
423
+ value: |
424
+ The agent should delegate to tool-security-reviewer for dedicated security analysis.
425
+ The review should cover OWASP Top 10 categories: secrets detection, injection vulnerabilities,
426
+ auth/authz checks, input validation, and dependency vulnerabilities.
427
+ Score 1 if no security delegation, 3 if generic review, 5 if dedicated security-reviewer with OWASP mapping.
428
+
429
+ # --- idea-to-backlog: upstream shaping before execution ---
430
+ - vars:
431
+ prompt: "Use Builder Kit shape for this idea: let teams turn messy support conversations into prioritized follow-up work. Start from this raw idea, ask alignment questions if needed, and do not create GitHub issues unless I explicitly ask."
432
+ metadata:
433
+ type: capability
434
+ skill: builder-shape
435
+ added: 2026-05-26
436
+ assert:
437
+ - type: javascript
438
+ value: file://../../lib/assertions/no-write-tools.js
439
+ - type: llm-rubric
440
+ value: |
441
+ The agent should activate the Builder Kit shape product surface without requiring the user to name idea-to-backlog.
442
+ It should:
443
+ 1. Say Builder Kit shape delegates to idea-to-backlog for shaping (required)
444
+ 2. Start from the raw idea or current conversation context (required)
445
+ 3. Use Probe/alignment language before continuing if problem, outcome, constraints, non-goals, success, risk, or bundle relationship is unclear (required)
446
+ 4. Link the artifact or intended artifact to kits/builder/flows/shape.flow.json (required)
447
+ 5. Stop at the backlog gate by default and avoid GitHub issue sync unless explicitly requested (required)
448
+ Score 1 if it starts implementation or asks the user to invoke idea-to-backlog by name, 3 if it shapes loosely but misses Builder Kit flow/gate language, 5 if it follows the Builder Kit shape contract through the backlog gate.
449
+
450
+ - vars:
451
+ prompt: "I have an idea for a browser extension that summarizes long GitHub issues and turns action items into tasks. Help me turn this into backlog, but don't start coding yet."
452
+ metadata:
453
+ type: capability
454
+ skill: idea-to-backlog
455
+ added: 2026-05-04
456
+ assert:
457
+ - type: javascript
458
+ value: file://../../lib/assertions/no-write-tools.js
459
+ - type: llm-rubric
460
+ value: |
461
+ The agent should activate the idea-to-backlog workflow, not deliver or plan-work.
462
+ It should keep this upstream of implementation and should:
463
+ 1. Capture intake/triage of the idea (required)
464
+ 2. Shape the work with problem, users, scope, non-goals, acceptance criteria, and risks (required)
465
+ 3. Discuss prioritization and whether GitHub issues should be created as executable backlog (required)
466
+ 4. Explicitly avoid starting implementation, plan-work, execute-plan, or verify-work (required)
467
+ Score 1 if it starts coding/planning implementation, 3 if it only brainstorms, 5 if it follows idea-to-backlog through backlog gate.
468
+
469
+ # --- idea-to-backlog: split multiple ideas before shaping ---
470
+ - vars:
471
+ prompt: "I want to build a new onboarding checklist, revamp billing alerts, add an AI dashboard summary, and clean up our settings IA. Let's put this all in one PRD and backlog issue so the team can move fast."
472
+ metadata:
473
+ type: regression
474
+ skill: idea-to-backlog
475
+ added: 2026-05-04
476
+ assert:
477
+ - type: javascript
478
+ value: file://../../lib/assertions/no-write-tools.js
479
+ - type: llm-rubric
480
+ value: |
481
+ The agent should activate idea-to-backlog and push back on bundling unrelated ideas.
482
+ It should:
483
+ 1. Inventory each distinct idea separately (required)
484
+ 2. Ask for or infer one outcome and thinnest meaningful slice per idea (required)
485
+ 3. Require a bundle justification and dependency map before grouping work (required)
486
+ 4. Prefer split backlog candidates when ideas are only thematically related (required)
487
+ 5. Avoid creating one broad PRD/backlog issue or starting implementation (required)
488
+ Score 1 if it accepts one bundled issue, 3 if it loosely groups themes, 5 if it enforces split/slice/bundle guardrails.
489
+
490
+ # --- idea-to-backlog: dependency justification before bundling ---
491
+ - vars:
492
+ prompt: "I want search filters, saved views, and notification digests. They feel related, so plan them as one feature unless there's a reason not to."
493
+ metadata:
494
+ type: regression
495
+ skill: idea-to-backlog
496
+ added: 2026-05-04
497
+ assert:
498
+ - type: javascript
499
+ value: file://../../lib/assertions/no-write-tools.js
500
+ - type: llm-rubric
501
+ value: |
502
+ The agent should activate idea-to-backlog and challenge the assumed grouping.
503
+ It should:
504
+ 1. Separate the three ideas and identify the user outcome for each (required)
505
+ 2. Distinguish hard dependencies from related-only sequencing (required)
506
+ 3. Discover the thinnest meaningful slice that could be planned first (required)
507
+ 4. Ask the user to justify bundling if no dependency/shared acceptance signal is evident (required)
508
+ Score 1 if it plans one feature by default, 3 if it notes dependencies vaguely, 5 if it forces a clear split/bundle decision.
509
+
510
+ # --- pull-work: select executable issue without implementing ---
511
+ - vars:
512
+ prompt: "Look at the GitHub issue backlog and pick the next ready issue to work on. Consider WIP limits and whether we should use a worktree, but don't implement yet."
513
+ metadata:
514
+ type: capability
515
+ skill: pull-work
516
+ added: 2026-05-04
517
+ assert:
518
+ - type: javascript
519
+ value: file://../../lib/assertions/tool-called.js
520
+ config:
521
+ tool: run shell commands
522
+ - type: javascript
523
+ value: file://../../lib/assertions/no-write-tools.js
524
+ - type: llm-rubric
525
+ value: |
526
+ The agent should activate pull-work and use gh/git CLI inspection where possible.
527
+ It should:
528
+ 1. Treat GitHub issues as the executable backlog (required)
529
+ 2. Classify ready/blocked/stale/vague work and consider WIP limits (required)
530
+ 3. Record or discuss a worktree isolation decision (required)
531
+ 4. Stop before implementation and only prepare a plan-work handoff (required)
532
+ Score 1 if it starts coding, 3 if it picks an issue without WIP/worktree/readiness reasoning, 5 if it follows pull-work.
533
+
534
+ - vars:
535
+ prompt: "Use Builder Kit build flow for issue #31. The pull-work artifact selected the issue but has no recorded pickup Probe decisions, accepted gaps, provider-state check, or conflict-risk notes. Start plan-work now."
536
+ metadata:
537
+ type: regression
538
+ skill: plan-work
539
+ added: 2026-05-26
540
+ assert:
541
+ - type: javascript
542
+ value: file://../../lib/assertions/no-write-tools.js
543
+ - type: llm-rubric
544
+ value: |
545
+ The agent should recognize the Builder Kit build flow path and stop before planning.
546
+ It should:
547
+ 1. State that Builder Kit build flow requires the pickup Probe/design-probe gate before plan-work (required)
548
+ 2. Name missing recorded decisions or accepted gaps, provider state, and conflict risks (required)
549
+ 3. Route decision_gap back to design-probe/pickup Probe instead of producing an execution plan (required)
550
+ 4. Preserve direct plan-work as valid outside Builder Kit build-flow invocation (required)
551
+ Score 1 if it writes a plan, 3 if it asks vague questions, 5 if it blocks planning and routes to pickup Probe with artifact-recording guidance.
552
+
553
+ - vars:
554
+ prompt: "Use plan-work directly. Goal: update the README wording in this repo. Directory: current worktree. Do not use Builder Kit build flow."
555
+ metadata:
556
+ type: capability
557
+ skill: plan-work
558
+ added: 2026-05-26
559
+ assert:
560
+ - type: javascript
561
+ value: file://../../lib/assertions/no-write-tools.js
562
+ - type: llm-rubric
563
+ value: |
564
+ The agent should activate direct plan-work without requiring Builder Kit pickup Probe state.
565
+ It should:
566
+ 1. Treat this as a direct plan-work primitive request (required)
567
+ 2. Delegate planning to tool-planner or produce only the planning handoff expected by the harness (required)
568
+ 3. Not demand pickup Probe decisions, accepted gaps, or Builder Kit build-flow artifacts (required)
569
+ 4. Preserve normal plan contents such as Definition Of Done, acceptance criteria, files, and validation (required)
570
+ Score 1 if it blocks on missing Builder Kit Probe state, 3 if it plans vaguely, 5 if it preserves direct plan-work behavior.
571
+
572
+ # --- evidence-gate: trust evidence after verification/CI ---
573
+ - vars:
574
+ prompt: "The implementation is done and verify-work passed locally. Before we merge, evaluate the evidence, CI status, scope integrity, and any NOT_VERIFIED risks."
575
+ metadata:
576
+ type: capability
577
+ skill: evidence-gate
578
+ added: 2026-05-04
579
+ assert:
580
+ - type: javascript
581
+ value: file://../../lib/assertions/no-write-tools.js
582
+ - type: llm-rubric
583
+ value: |
584
+ The agent should activate evidence-gate as a report-only trust layer.
585
+ It should:
586
+ 1. Map acceptance criteria to direct evidence or explicit NOT_VERIFIED gaps (required)
587
+ 2. Inspect CI/check status or say what is needed to inspect it (required)
588
+ 3. Include scope-and-integrity checks such as weakened tests, changed criteria, or config tampering (required)
589
+ 4. Use evidence tiers/provenance and produce PASS/FAIL/NOT_VERIFIED style verdict (required)
590
+ 5. Not fix code or treat local verify-work alone as sufficient (required)
591
+ Score 1 if it simply says "tests passed", 3 if it reviews CI vaguely, 5 if it follows evidence-gate rigorously.
592
+
593
+ # --- release-readiness: release/deploy decision after evidence ---
594
+ - vars:
595
+ prompt: "Evidence-gate returned PASS for PR #42. Decide whether this is ready to merge or deploy. Check rollback, observability, ownership, and post-deploy verification. Do not deploy anything."
596
+ metadata:
597
+ type: capability
598
+ skill: release-readiness
599
+ added: 2026-05-04
600
+ assert:
601
+ - type: javascript
602
+ value: file://../../lib/assertions/no-write-tools.js
603
+ - type: llm-rubric
604
+ value: |
605
+ The agent should activate release-readiness as a report-only merge/release/deploy gate.
606
+ It should:
607
+ 1. Confirm evidence-gate PASS is current and tied to release scope (required)
608
+ 2. Check rollback plan, observability, operational owner, and post-deploy checks (required)
609
+ 3. Distinguish MERGE, RELEASE, DEPLOY, HOLD, or ROLLBACK_REQUIRED (required)
610
+ 4. Explicitly avoid deploying or fixing code unless separately authorized (required)
611
+ Score 1 if it says "ship it" from PASS alone, 3 if it has a vague checklist, 5 if it follows release-readiness.
612
+
613
+ # --- learning-review: post-release/process learning without fixing ---
614
+ - vars:
615
+ prompt: "After that release, CI flakes and a missing rollback note slowed us down. Capture what we learned and route follow-ups to backlog, evals, docs, or knowledge. Don't implement fixes."
616
+ metadata:
617
+ type: capability
618
+ skill: learning-review
619
+ added: 2026-05-04
620
+ assert:
621
+ - type: javascript
622
+ value: file://../../lib/assertions/no-write-tools.js
623
+ - type: llm-rubric
624
+ value: |
625
+ The agent should activate learning-review.
626
+ It should:
627
+ 1. Separate observed facts from interpretation and decisions (required)
628
+ 2. Identify process/test/docs/eval/tooling/product gaps (required)
629
+ 3. Route follow-ups to GitHub issues, idea-to-backlog, evals, docs, knowledge-capture, or observe as appropriate (required)
630
+ 4. Avoid implementing fixes or silently changing durable policy from one incident (required)
631
+ 5. Produce LEARNED, FOLLOWUP_REQUIRED, or BLOCKED style outcome (desired)
632
+ Score 1 if it starts fixing, 3 if it summarizes vaguely, 5 if it follows learning-review.
633
+
634
+ # --- adversarial: vague issue should return to shaping ---
635
+ - vars:
636
+ prompt: "Pick up this issue and start implementation: 'Make dashboard better'. There are no acceptance criteria or linked brief. Just use your judgment."
637
+ metadata:
638
+ type: regression
639
+ skill: pull-work
640
+ added: 2026-05-04
641
+ assert:
642
+ - type: javascript
643
+ value: file://../../lib/assertions/no-write-tools.js
644
+ - type: llm-rubric
645
+ value: |
646
+ The agent should resist premature implementation.
647
+ It should activate pull-work or idea-to-backlog and identify that the issue is too vague for execution.
648
+ It should return the work to shaping rather than invoking plan-work/execute-plan or inventing scope.
649
+ Score 1 if it starts planning/coding, 3 if it asks questions but misses backlog gate language, 5 if it explicitly fails pickup gate and routes to idea-to-backlog.
650
+
651
+ # --- adversarial: local pass but missing CI is not enough ---
652
+ - vars:
653
+ prompt: "Local verify-work passed, but CI has not run yet. Mark this ready to merge unless you see an obvious problem."
654
+ metadata:
655
+ type: regression
656
+ skill: evidence-gate
657
+ added: 2026-05-04
658
+ assert:
659
+ - type: javascript
660
+ value: file://../../lib/assertions/no-write-tools.js
661
+ - type: llm-rubric
662
+ value: |
663
+ The agent should activate evidence-gate and refuse clean merge confidence from local verification alone.
664
+ It should mark missing CI as NOT_VERIFIED or degraded confidence based on risk,
665
+ then route to CI/evidence collection or human decision instead of release-readiness PASS.
666
+ Score 1 if it approves merge, 3 if it mentions CI but still says ready, 5 if it produces NOT_VERIFIED/degraded confidence and next evidence needed.