@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,351 @@
1
+ ---
2
+ title: Agent Usage Feedback Loop
3
+ ---
4
+
5
+ # Agent Usage Feedback Loop
6
+
7
+ This document defines the usage feedback loop for comparing agent runs across repositories, runtimes, profiles, prompts, skills, and future setups. The measurement schema is runtime-neutral: every runtime should import or emit normalized session, event, and outcome records before reporting. Codex and Claude Code can both flow through the shared telemetry envelope; Kiro uses the same canonical telemetry script when hooks are installed.
8
+
9
+ The loop has three parts:
10
+
11
+ 1. Import or read runtime telemetry into normalized usage records.
12
+ 2. Sync quality outcomes from task artifacts, evals, release gates, or humans.
13
+ 3. Report usage and outcome metrics by repo, runtime, profile, prompt, skill, or task type.
14
+
15
+ Quality outcomes are not inferred from raw telemetry alone. The CLI can automatically derive coarse outcomes from task artifacts such as `.flow-agents/<slug>/*.md`: `delivered` and `complete` become `success`, `failed` becomes `failure`, and optionally open artifacts can be recorded as `not_verified`. It does not invent `quality_score` or `human_minutes_saved`; those remain human/eval/release-gate facts.
16
+
17
+ ## Storage Defaults
18
+
19
+ Repo-local telemetry defaults to `.telemetry/`:
20
+
21
+ - `.telemetry/full.jsonl`: raw runtime telemetry events.
22
+ - `.telemetry/analytics.jsonl`: summarized analytics emitted by telemetry hooks.
23
+ - `.telemetry/sessions/`: per-session runtime artifacts, when the runtime writes them.
24
+ - `.telemetry/outcomes.jsonl`: human/eval outcome records for completed work.
25
+ - `.telemetry/reports/`: generated Markdown or JSON usage reports.
26
+
27
+ Locations are configurable. CLI commands should accept `--telemetry-dir`, and shell workflows may set `TELEMETRY_DATA_DIR`. User-level or global Codex telemetry roots, such as `~/.codex/telemetry` or `~/.flow-agents/telemetry`, should be treated as configurable installation choices, not hard-coded truth. When comparing multiple repositories or machines, pass each telemetry root explicitly with repeatable `--telemetry-dir` flags.
28
+
29
+ Runtime hooks can also mirror redacted telemetry to Console without changing the
30
+ event shape. Set `CONSOLE_TELEMETRY_URL=http://127.0.0.1:3737` for a local
31
+ Console, or `CONSOLE_URL=https://console.kontourai.io` for a deployed Console.
32
+ The transport posts to `/api/telemetry/records` by default. Hosted Console URLs
33
+ must use `https://`; `http://` is accepted only for `localhost` or `127.0.0.1`
34
+ local development. Use `CONSOLE_TELEMETRY_ENDPOINT_URL` only when the API path
35
+ is nonstandard, `CONSOLE_TELEMETRY_TOKEN` or `CONSOLE_AUTH_TOKEN` for bearer
36
+ auth, and `CONSOLE_TENANT_ID` for hosted tenant routing. If no Console URL is
37
+ set, telemetry remains local-only.
38
+
39
+ Flow Agents owns the Console telemetry descriptor at `console.telemetry.json`.
40
+ Generated bundles include that root descriptor beside `AGENTS.md`, scripts, and
41
+ kit assets. The descriptor maps Flow Agents runtime telemetry and workflow
42
+ sidecars into generic Console facets for skills, tools, flows, repositories,
43
+ projects, runtimes, agents, models, statuses, and outcomes. Console consumes
44
+ those mappings as product-owned display metadata; Flow-owned gate and transition
45
+ semantics stay in Flow contracts and sidecars. Repository and project metadata
46
+ are stable cross-user workspace identifiers when present. Local working-directory
47
+ paths stay out of the descriptor so Console display metadata does not expose
48
+ usernames or machine-local paths; records without a repository identifier should
49
+ fall back to their logical product root such as `product:flow-agents:.flow-agents`.
50
+
51
+ Packaged setup modes are:
52
+
53
+ - `local-files`: default local JSONL telemetry only; no Console URL or token.
54
+ - `local-kontour-console`: mirror to a separately running local Console, using
55
+ `http://127.0.0.1:3737` unless `FLOW_AGENTS_LOCAL_KONTOUR_CONSOLE_URL` is set.
56
+ - `kontour-hosted-console`: mirror to Kontour's hosted Console default URL.
57
+ Pass `--console-token-file` and `--console-tenant` for headless hosted setup.
58
+ - `user-hosted-console`: mirror to a self-hosted Console; requires
59
+ `--console-url` or `--console-endpoint`.
60
+
61
+ Use `flow-agents init --yes` or `--headless` with the same flags in CI. The
62
+ legacy sink names `kontour-cloud` and `hosted-kontour-console` are still
63
+ accepted for existing scripts.
64
+
65
+ Check an installed telemetry setup without opening an interactive prompt:
66
+
67
+ ```bash
68
+ flow-agents telemetry-doctor --dest /path/to/installed/flow-agents --json --headless
69
+ ```
70
+
71
+ The doctor reads `scripts/telemetry/telemetry.conf`, reports active local and
72
+ Console sinks, the resolved local telemetry files, Console URL/endpoint
73
+ configuration, and a bounded Console reachability check. JSON output is stable
74
+ for CI and setup scripts; a missing or unreachable configured Console makes the
75
+ command exit nonzero while still emitting the report. By default, reachability
76
+ checks are limited to local endpoints; pass `--allow-network` to probe a
77
+ non-local HTTPS Console endpoint explicitly.
78
+
79
+ ## Normalized Records
80
+
81
+ ### Session
82
+
83
+ A session record represents one agent run after import or aggregation. It should include:
84
+
85
+ - `schema_version`
86
+ - `source_id`
87
+ - `repo`
88
+ - `repo_root`
89
+ - `runtime`
90
+ - `runtime_session_id`
91
+ - `session_id`
92
+ - `agent`
93
+ - `model`
94
+ - `profile_id`
95
+ - `prompt_id`
96
+ - `prompt_variant`
97
+ - `skill_ids`
98
+ - `skill_variant`
99
+ - `started_at`
100
+ - `ended_at`
101
+ - `duration_s`
102
+ - `turns`
103
+ - `tool_invocations`
104
+ - `delegations`
105
+ - `permission_requests`
106
+ - `imported_at`
107
+
108
+ ### Event
109
+
110
+ An event record is a runtime-neutral envelope around a runtime event. It keeps report code from depending on Codex-specific names. Runtime adapters can map native event names like `session.start`, `turn.user`, `tool.invoke`, `tool.permission_request`, `agent.delegate`, `session.usage`, and `session.end` into a shared event shape.
111
+
112
+ ### Outcome
113
+
114
+ An outcome record captures quality and effectiveness facts:
115
+
116
+ - `schema_version`
117
+ - `outcome_id`
118
+ - `recorded_at`
119
+ - `session_id`
120
+ - `runtime_session_id`
121
+ - `runtime`
122
+ - `repo`
123
+ - `agent`
124
+ - `profile_id`
125
+ - `prompt_id`
126
+ - `prompt_variant`
127
+ - `skill_ids`
128
+ - `skill_variant`
129
+ - `task_type`
130
+ - `task_slug`
131
+ - `result`: `success`, `partial`, `failure`, or `not_verified`
132
+ - `quality_score`: `1` through `5`, or null
133
+ - `human_minutes_saved`
134
+ - `rework_required`
135
+ - `notes`
136
+ - `evidence`
137
+
138
+ Do not store sensitive prompt text, tool payloads, secrets, or customer data in outcome records. Use evidence paths or stable identifiers instead.
139
+
140
+ ## Metrics
141
+
142
+ Recommended reports should include:
143
+
144
+ - Success rate.
145
+ - Partial, failure, and not-verified rates.
146
+ - Session duration, including total and average duration.
147
+ - Tool invocations per session.
148
+ - Delegations per session.
149
+ - Permission requests per session.
150
+ - Rework rate.
151
+ - Average quality score from recorded outcomes.
152
+ - Human minutes saved from recorded outcomes.
153
+ - Sessions with outcomes versus sessions without outcomes.
154
+
155
+ Usage-only metrics can be computed from telemetry. Quality and value metrics require outcome records.
156
+
157
+ ## Core Commands
158
+
159
+ ### Project Dashboard
160
+
161
+ Generate the local HTML dashboard. This syncs terminal task artifacts from `.flow-agents` into `.telemetry/outcomes.jsonl` before rendering:
162
+
163
+ ```bash
164
+ npm run usage-feedback -- dashboard --force
165
+ ```
166
+
167
+ The dashboard is written to `.telemetry/reports/dashboard.html` by default.
168
+
169
+ Sync artifacts without rendering the dashboard:
170
+
171
+ ```bash
172
+ npm run usage-feedback -- sync-artifacts \
173
+ --artifact-dir .flow-agents \
174
+ --repo flow-agents \
175
+ --profile-id codex-default \
176
+ --prompt-id deliver-v1 \
177
+ --skill-id deliver
178
+ ```
179
+
180
+ Import Codex telemetry from an explicit source and tag it with comparable identifiers:
181
+
182
+ ```bash
183
+ npm run usage-feedback -- import-codex \
184
+ --input-telemetry-dir ../repo-a/.telemetry \
185
+ --telemetry-dir .telemetry/repo-a \
186
+ --source-id repo-a \
187
+ --repo repo-a \
188
+ --profile-id codex-kdev \
189
+ --prompt-id deliver-v1 \
190
+ --skill-id deliver
191
+ ```
192
+
193
+ Import telemetry from any runtime that emits the shared event envelope:
194
+
195
+ ```bash
196
+ npm run usage-feedback -- import-telemetry \
197
+ --runtime claude-code \
198
+ --input-telemetry-dir ../repo-b/.telemetry \
199
+ --telemetry-dir .telemetry/repo-b \
200
+ --source-id repo-b \
201
+ --repo repo-b \
202
+ --profile-id claude-dev \
203
+ --prompt-id deliver-v1 \
204
+ --skill-id deliver
205
+ ```
206
+
207
+ Record a human or eval outcome for one session:
208
+
209
+ ```bash
210
+ npm run usage-feedback -- record-outcome \
211
+ --telemetry-dir .telemetry/repo-a \
212
+ --session-id session-123 \
213
+ --runtime codex \
214
+ --repo repo-a \
215
+ --agent dev \
216
+ --profile-id codex-kdev \
217
+ --prompt-id deliver-v1 \
218
+ --skill-id deliver \
219
+ --task-type delivery \
220
+ --task-slug usage-feedback-docs \
221
+ --result success \
222
+ --quality-score 5 \
223
+ --human-minutes-saved 35 \
224
+ --evidence .flow-agents/agent-usage-feedback-loop/agent-usage-feedback-loop--deliver.md
225
+ ```
226
+
227
+ Generate a report:
228
+
229
+ ```bash
230
+ npm run usage-feedback -- report \
231
+ --telemetry-dir .telemetry/repo-a \
232
+ --group-by profile_id \
233
+ --output reports/usage-feedback.md
234
+ ```
235
+
236
+ Generate a standalone HTML report without artifact syncing:
237
+
238
+ ```bash
239
+ npm run usage-feedback -- report \
240
+ --telemetry-dir .telemetry/repo-a \
241
+ --group-by profile_id \
242
+ --format html \
243
+ --output reports/usage-feedback.html
244
+ ```
245
+
246
+ ### Global Dashboard
247
+
248
+ Use a global telemetry root when you want one view across projects. The default global root is `~/.flow-agents/telemetry`.
249
+
250
+ Register the current project once with stable comparison labels:
251
+
252
+ ```bash
253
+ npm run usage-feedback -- register-project \
254
+ --global-dir ~/.flow-agents/telemetry \
255
+ --repo-root "$PWD" \
256
+ --name flow-agents \
257
+ --profile-id codex-default \
258
+ --prompt-id deliver-v1 \
259
+ --skill-id deliver
260
+ ```
261
+
262
+ Sync registered projects into the global root:
263
+
264
+ ```bash
265
+ npm run usage-feedback -- sync-projects \
266
+ --global-dir ~/.flow-agents/telemetry
267
+ ```
268
+
269
+ Render the global dashboard:
270
+
271
+ ```bash
272
+ npm run usage-feedback -- global-dashboard \
273
+ --global-dir ~/.flow-agents/telemetry \
274
+ --group-by repo \
275
+ --force
276
+ ```
277
+
278
+ The global dashboard writes `~/.flow-agents/telemetry/reports/global-dashboard.html`.
279
+
280
+ You can also target projects directly without registering them first:
281
+
282
+ ```bash
283
+ npm run usage-feedback -- global-dashboard \
284
+ --global-dir ~/.flow-agents/telemetry \
285
+ --repo-root /path/to/project-a \
286
+ --repo-root /path/to/project-b \
287
+ --group-by repo \
288
+ --force
289
+ ```
290
+
291
+ Or discover direct child projects under a parent directory:
292
+
293
+ ```bash
294
+ npm run usage-feedback -- global-dashboard \
295
+ --global-dir ~/.flow-agents/telemetry \
296
+ --discover ~/dev/github \
297
+ --group-by repo \
298
+ --force
299
+ ```
300
+
301
+ Global project stores live under `~/.flow-agents/telemetry/projects/<project>/`. Each project store contains normalized sessions and outcomes, so reports can compare projects, profiles, prompts, and skills from one dashboard.
302
+
303
+ ## Comparison Examples
304
+
305
+ Compare two repositories:
306
+
307
+ ```bash
308
+ npm run usage-feedback -- report \
309
+ --telemetry-dir ../repo-a/.telemetry \
310
+ --telemetry-dir ../repo-b/.telemetry \
311
+ --group-by repo
312
+ ```
313
+
314
+ Compare two Codex profiles over the same task family:
315
+
316
+ ```bash
317
+ npm run usage-feedback -- report \
318
+ --telemetry-dir .telemetry/codex-default \
319
+ --telemetry-dir .telemetry/codex-bedrock \
320
+ --runtime codex \
321
+ --group-by profile_id
322
+ ```
323
+
324
+ Compare prompt variants:
325
+
326
+ ```bash
327
+ npm run usage-feedback -- report \
328
+ --telemetry-dir .telemetry/prompt-a \
329
+ --telemetry-dir .telemetry/prompt-b \
330
+ --group-by prompt_variant
331
+ ```
332
+
333
+ Compare skill setups:
334
+
335
+ ```bash
336
+ npm run usage-feedback -- report \
337
+ --telemetry-dir .telemetry/with-deliver \
338
+ --telemetry-dir .telemetry/with-tdd \
339
+ --group-by skill_id
340
+ ```
341
+
342
+ Compare Codex with Kiro or another future runtime after import:
343
+
344
+ ```bash
345
+ npm run usage-feedback -- report \
346
+ --telemetry-dir .telemetry/codex \
347
+ --telemetry-dir .telemetry/kiro \
348
+ --group-by runtime
349
+ ```
350
+
351
+ The non-Codex runtime must provide or import normalized records with the same session and outcome fields. Codex-specific paths and event names should stay inside the Codex adapter.
@@ -0,0 +1,13 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
2
+ <defs>
3
+ <linearGradient id="g" x1="0" y1="0" x2="1" y2="1">
4
+ <stop offset="0" stop-color="#5cc4e0"/>
5
+ <stop offset="1" stop-color="#1f6f88"/>
6
+ </linearGradient>
7
+ </defs>
8
+ <rect x="2" y="2" width="28" height="28" rx="7" fill="url(#g)"/>
9
+ <circle cx="11" cy="11" r="3" fill="#06080b"/>
10
+ <circle cx="21" cy="16" r="3" fill="#06080b"/>
11
+ <circle cx="11" cy="21" r="3" fill="#06080b"/>
12
+ <path d="M13 12.5l5 2M13.5 19.5l4.5-2" stroke="#06080b" stroke-width="2" stroke-linecap="round"/>
13
+ </svg>
Binary file