@khoavu882/doflow 0.0.0-stage → 2.0.0-beta.4

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 (409) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +132 -2
  3. package/bin/doflow.js +44 -0
  4. package/core/.antigravity-plugin/hooks.json +39 -0
  5. package/core/.antigravity-plugin/mcp_config.json +18 -0
  6. package/core/.antigravity-plugin/plugin.json +31 -0
  7. package/core/.claude-plugin/marketplace.json +20 -0
  8. package/core/.claude-plugin/plugin.json +21 -0
  9. package/core/.codex-plugin/marketplace.json +20 -0
  10. package/core/.codex-plugin/plugin.json +35 -0
  11. package/core/.plugin/plugin.json +19 -0
  12. package/core/harnesses/antigravity/hooks/pre-implementation-gate.sh +9 -0
  13. package/core/harnesses/antigravity/hooks/stop-check.sh +10 -0
  14. package/core/harnesses/claude/hooks/lib.sh +304 -0
  15. package/core/harnesses/claude/hooks/mcp-tool-guard.sh +20 -0
  16. package/core/harnesses/claude/hooks/permission-audit.sh +47 -0
  17. package/core/harnesses/claude/hooks/post-compact.sh +74 -0
  18. package/core/harnesses/claude/hooks/post-edit-lint.sh +36 -0
  19. package/core/harnesses/claude/hooks/post-tool-failure.sh +47 -0
  20. package/core/harnesses/claude/hooks/pre-bash-guard.sh +20 -0
  21. package/core/harnesses/claude/hooks/pre-compact.sh +43 -0
  22. package/core/harnesses/claude/hooks/pre-implement-gate.sh +21 -0
  23. package/core/harnesses/claude/hooks/session-end.sh +89 -0
  24. package/core/harnesses/claude/hooks/session-start.sh +5 -0
  25. package/core/harnesses/claude/hooks/skill-config-audit.sh +39 -0
  26. package/core/harnesses/claude/hooks/stop-check.sh +5 -0
  27. package/core/harnesses/claude/hooks/subagent-audit.sh +7 -0
  28. package/core/harnesses/claude/hooks/user-prompt-submit.sh +5 -0
  29. package/core/harnesses/claude/settings/keybindings.json +20 -0
  30. package/core/harnesses/claude/settings/settings.json +201 -0
  31. package/core/harnesses/claude/statusline/doflow-statusline.sh +49 -0
  32. package/core/harnesses/codex/agents/core-implementer.toml +7 -0
  33. package/core/harnesses/codex/agents/quality-guardian.toml +8 -0
  34. package/core/harnesses/codex/agents/research-writer.toml +8 -0
  35. package/core/harnesses/codex/agents/spec-analyst.toml +8 -0
  36. package/core/harnesses/codex/agents/system-architect.toml +9 -0
  37. package/core/harnesses/codex/config/config.toml +10 -0
  38. package/core/harnesses/codex/hooks/hooks.json +122 -0
  39. package/core/harnesses/codex/hooks/lib.sh +335 -0
  40. package/core/harnesses/codex/hooks/mcp-tool-guard.sh +18 -0
  41. package/core/harnesses/codex/hooks/post-edit-lint.impl.sh +52 -0
  42. package/core/harnesses/codex/hooks/post-edit-lint.sh +6 -0
  43. package/core/harnesses/codex/hooks/pre-bash-guard.sh +18 -0
  44. package/core/harnesses/codex/hooks/pre-compact.impl.sh +46 -0
  45. package/core/harnesses/codex/hooks/pre-compact.sh +9 -0
  46. package/core/harnesses/codex/hooks/pre-implement-gate.sh +19 -0
  47. package/core/harnesses/codex/hooks/session-end.impl.sh +92 -0
  48. package/core/harnesses/codex/hooks/session-end.sh +5 -0
  49. package/core/harnesses/codex/hooks/session-start.sh +5 -0
  50. package/core/harnesses/codex/hooks/stop-check.sh +8 -0
  51. package/core/harnesses/codex/hooks/subagent-audit.sh +8 -0
  52. package/core/harnesses/codex/hooks/user-prompt-submit.sh +6 -0
  53. package/core/harnesses/gemini/hooks/hooks.json +77 -0
  54. package/core/harnesses/gemini/hooks/lib.sh +302 -0
  55. package/core/harnesses/gemini/hooks/mcp-tool-guard.sh +21 -0
  56. package/core/harnesses/gemini/hooks/post-edit-lint.sh +39 -0
  57. package/core/harnesses/gemini/hooks/pre-bash-guard.sh +21 -0
  58. package/core/harnesses/gemini/hooks/pre-compact.sh +38 -0
  59. package/core/harnesses/gemini/hooks/pre-implement-gate.sh +22 -0
  60. package/core/harnesses/gemini/hooks/session-end.impl.sh +89 -0
  61. package/core/harnesses/gemini/hooks/session-end.sh +5 -0
  62. package/core/harnesses/gemini/hooks/session-start.sh +5 -0
  63. package/core/harnesses/gemini/settings/adapter-defaults.json +4 -0
  64. package/core/harnesses/kiro/agents/doflow.json +58 -0
  65. package/core/harnesses/kiro/hooks/doflow.json +53 -0
  66. package/core/harnesses/kiro/hooks/lib.sh +324 -0
  67. package/core/harnesses/kiro/hooks/mcp-tool-guard.sh +9 -0
  68. package/core/harnesses/kiro/hooks/pre-bash-guard.sh +9 -0
  69. package/core/harnesses/kiro/hooks/pre-implement-gate.sh +9 -0
  70. package/core/harnesses/kiro/hooks/session-start.sh +9 -0
  71. package/core/harnesses/kiro/hooks/stop-check.sh +43 -0
  72. package/core/harnesses/shared/hooks/ENVELOPE_MIGRATION.md +39 -0
  73. package/core/harnesses/shared/hooks/adapters/antigravity.js +111 -0
  74. package/core/harnesses/shared/hooks/adapters/arg-fields.js +19 -0
  75. package/core/harnesses/shared/hooks/adapters/gemini.js +114 -0
  76. package/core/harnesses/shared/hooks/hooks.json +47 -0
  77. package/core/harnesses/shared/hooks/policies/blocked-patterns.conf +91 -0
  78. package/core/harnesses/shared/hooks/policies/capture-failure.sh +97 -0
  79. package/core/harnesses/shared/hooks/policies/deny-json.sh +29 -0
  80. package/core/harnesses/shared/hooks/policies/lib.sh +501 -0
  81. package/core/harnesses/shared/hooks/policies/mcp-policy.conf +21 -0
  82. package/core/harnesses/shared/hooks/policies/mcp-tool-guard.sh +91 -0
  83. package/core/harnesses/shared/hooks/policies/pre-bash-guard.sh +328 -0
  84. package/core/harnesses/shared/hooks/policies/pre-implementation-gate.sh +496 -0
  85. package/core/harnesses/shared/hooks/policies/prompt-nudge.jq +131 -0
  86. package/core/harnesses/shared/hooks/policies/session-context.sh +141 -0
  87. package/core/harnesses/shared/hooks/policies/stop-check.sh +264 -0
  88. package/core/harnesses/shared/hooks/policies/subagent-audit.sh +46 -0
  89. package/core/harnesses/shared/hooks/policies/user-prompt-submit.sh +235 -0
  90. package/core/harnesses/shared/hooks/stream-hook-runner.js +590 -0
  91. package/core/harnesses/shared/locator/doflow-run +87 -0
  92. package/core/registry/advice.json +101 -0
  93. package/core/registry/assets.json +792 -0
  94. package/core/registry/capabilities.json +120 -0
  95. package/core/registry/contracts.json +189 -0
  96. package/core/registry/external-tools.json +191 -0
  97. package/core/registry/harnesses.json +2062 -0
  98. package/core/registry/lifecycle.json +231 -0
  99. package/core/registry/mcp.json +18 -0
  100. package/core/registry/models.json +79 -0
  101. package/core/registry/readiness-templates.json +118 -0
  102. package/core/registry/routes.json +47 -0
  103. package/core/registry/storage.json +1061 -0
  104. package/core/registry/verification.json +258 -0
  105. package/core/registry/workflows.json +790 -0
  106. package/core/shared/agent-specs/core-implementer.md +73 -0
  107. package/core/shared/agent-specs/quality-guardian.md +28 -0
  108. package/core/shared/agent-specs/research-writer.md +31 -0
  109. package/core/shared/agent-specs/spec-analyst.md +33 -0
  110. package/core/shared/agent-specs/system-architect.md +29 -0
  111. package/core/shared/guidance/DOFLOW_CORE.md +8 -0
  112. package/core/shared/guidance/FLAGS.md +25 -0
  113. package/core/shared/guidance/PRINCIPLES.md +61 -0
  114. package/core/shared/guidance/VERSION +1 -0
  115. package/core/shared/guidance/mcp/MCP_Context7.md +18 -0
  116. package/core/shared/guidance/mcp/MCP_Sequential.md +17 -0
  117. package/core/shared/guidance/modes/MODE_Brainstorming.md +46 -0
  118. package/core/shared/guidance/modes/MODE_DeepResearch.md +69 -0
  119. package/core/shared/guidance/modes/MODE_Introspection.md +33 -0
  120. package/core/shared/guidance/modes/MODE_Orchestration.md +57 -0
  121. package/core/shared/guidance/modes/MODE_Task_Management.md +74 -0
  122. package/core/shared/guidance/pointers/claude-gemini.md +2 -0
  123. package/core/shared/guidance/pointers/codex.md +6 -0
  124. package/core/shared/guidance/references/ARTIFACT_FORMAT.md +373 -0
  125. package/core/shared/guidance/references/ARTIFACT_VOICE.md +104 -0
  126. package/core/shared/guidance/references/CONSTITUTION_BASE.md +47 -0
  127. package/core/shared/guidance/references/DIAGRAM_GUIDE.md +161 -0
  128. package/core/shared/guidance/references/DOFLOW_CHAIN.md +87 -0
  129. package/core/shared/guidance/references/EVIDENCE_LEDGER.md +93 -0
  130. package/core/shared/guidance/references/MODEL_SELECTION.md +74 -0
  131. package/core/shared/guidance/references/ORCHESTRATION.md +36 -0
  132. package/core/shared/guidance/references/RESEARCH_CONFIG.md +21 -0
  133. package/core/shared/guidance/references/WORKFLOW_HANDOFF.md +81 -0
  134. package/core/shared/guidance/rules/RULE_01_SAFETY.md +25 -0
  135. package/core/shared/guidance/rules/RULE_02_WORKFLOW.md +23 -0
  136. package/core/shared/guidance/rules/RULE_03_QUALITY.md +14 -0
  137. package/core/shared/guidance/rules/RULE_04_QUESTIONS.md +46 -0
  138. package/core/shared/scripts/doflow/assets/mermaid-theme.json +46 -0
  139. package/core/shared/scripts/doflow/bash/do-exec-paths.sh +167 -0
  140. package/core/shared/scripts/doflow/bash/do-git-state.sh +546 -0
  141. package/core/shared/scripts/doflow/bash/do-parallel-check.sh +208 -0
  142. package/core/shared/scripts/doflow/bash/do-paths.sh +347 -0
  143. package/core/shared/scripts/doflow/bash/do-prereqs.sh +66 -0
  144. package/core/shared/scripts/doflow/bash/do-review-package.sh +127 -0
  145. package/core/shared/scripts/doflow/bash/do-task-brief.sh +698 -0
  146. package/core/shared/scripts/doflow/bash/render-audit.sh +224 -0
  147. package/core/shared/scripts/doflow/bash/render-diagrams.sh +177 -0
  148. package/core/shared/scripts/doflow/bash/render-puml.sh +223 -0
  149. package/core/shared/scripts/doflow/bash/sync-context.sh +66 -0
  150. package/core/shared/scripts/doflow/bash/validate-artifacts.sh +526 -0
  151. package/core/shared/scripts/doflow/bin/doflow-run +592 -0
  152. package/core/shared/skills/do/SKILL.md +128 -0
  153. package/core/shared/skills/do/references/estimation.md +13 -0
  154. package/core/shared/skills/do/references/pm_routing.md +25 -0
  155. package/core/shared/skills/do/references/tool_matrix.md +52 -0
  156. package/core/shared/skills/do-brainstorm/SKILL.md +252 -0
  157. package/core/shared/skills/do-code-review/README.md +49 -0
  158. package/core/shared/skills/do-code-review/SKILL.md +333 -0
  159. package/core/shared/skills/do-code-review/assets/sample_c_clean.c +71 -0
  160. package/core/shared/skills/do-code-review/assets/sample_c_smells.c +66 -0
  161. package/core/shared/skills/do-code-review/assets/sample_cpp_shift.cpp +19 -0
  162. package/core/shared/skills/do-code-review/assets/sample_csharp_clean.cs +100 -0
  163. package/core/shared/skills/do-code-review/assets/sample_csharp_smells.cs +78 -0
  164. package/core/shared/skills/do-code-review/assets/sample_java_clean.java +55 -0
  165. package/core/shared/skills/do-code-review/assets/sample_java_smells.java +56 -0
  166. package/core/shared/skills/do-code-review/assets/sample_json_clean.json +7 -0
  167. package/core/shared/skills/do-code-review/assets/sample_markdown_clean.md +30 -0
  168. package/core/shared/skills/do-code-review/assets/sample_markdown_smells.md +29 -0
  169. package/core/shared/skills/do-code-review/assets/sample_shell_heredoc.sh +38 -0
  170. package/core/shared/skills/do-code-review/assets/sample_shell_smells.sh +15 -0
  171. package/core/shared/skills/do-code-review/assets/sample_typescript_strings.ts +36 -0
  172. package/core/shared/skills/do-code-review/assets/sample_yaml_smells.yaml +6 -0
  173. package/core/shared/skills/do-code-review/content-types/config.md +83 -0
  174. package/core/shared/skills/do-code-review/content-types/markdown.md +132 -0
  175. package/core/shared/skills/do-code-review/expected_outputs/sample_c_clean_quality.json +79 -0
  176. package/core/shared/skills/do-code-review/expected_outputs/sample_c_smells_quality.json +169 -0
  177. package/core/shared/skills/do-code-review/expected_outputs/sample_cpp_shift_quality.json +49 -0
  178. package/core/shared/skills/do-code-review/expected_outputs/sample_csharp_clean_quality.json +149 -0
  179. package/core/shared/skills/do-code-review/expected_outputs/sample_csharp_smells_quality.json +157 -0
  180. package/core/shared/skills/do-code-review/expected_outputs/sample_java_clean_quality.json +67 -0
  181. package/core/shared/skills/do-code-review/expected_outputs/sample_java_smells_quality.json +97 -0
  182. package/core/shared/skills/do-code-review/expected_outputs/sample_json_clean_quality.json +33 -0
  183. package/core/shared/skills/do-code-review/expected_outputs/sample_markdown_clean_quality.json +1 -0
  184. package/core/shared/skills/do-code-review/expected_outputs/sample_markdown_smells_quality.json +16 -0
  185. package/core/shared/skills/do-code-review/expected_outputs/sample_shell_heredoc_quality.json +54 -0
  186. package/core/shared/skills/do-code-review/expected_outputs/sample_shell_smells_quality.json +91 -0
  187. package/core/shared/skills/do-code-review/expected_outputs/sample_typescript_strings_quality.json +60 -0
  188. package/core/shared/skills/do-code-review/expected_outputs/sample_yaml_smells_quality.json +46 -0
  189. package/core/shared/skills/do-code-review/languages/c.md +103 -0
  190. package/core/shared/skills/do-code-review/languages/cpp.md +103 -0
  191. package/core/shared/skills/do-code-review/languages/csharp.md +97 -0
  192. package/core/shared/skills/do-code-review/languages/dart.md +108 -0
  193. package/core/shared/skills/do-code-review/languages/go.md +92 -0
  194. package/core/shared/skills/do-code-review/languages/java.md +103 -0
  195. package/core/shared/skills/do-code-review/languages/kotlin.md +88 -0
  196. package/core/shared/skills/do-code-review/languages/php.md +109 -0
  197. package/core/shared/skills/do-code-review/languages/python.md +94 -0
  198. package/core/shared/skills/do-code-review/languages/ruby.md +105 -0
  199. package/core/shared/skills/do-code-review/languages/rust.md +99 -0
  200. package/core/shared/skills/do-code-review/languages/shell.md +90 -0
  201. package/core/shared/skills/do-code-review/languages/swift.md +88 -0
  202. package/core/shared/skills/do-code-review/languages/typescript.md +97 -0
  203. package/core/shared/skills/do-code-review/review-policy.json +47 -0
  204. package/core/shared/skills/do-code-review/rules/universal.md +49 -0
  205. package/core/shared/skills/do-code-review/scripts/code_quality_checker.py +1696 -0
  206. package/core/shared/skills/do-code-review/scripts/doc_quality_checker.py +532 -0
  207. package/core/shared/skills/do-code-review/scripts/pr_analyzer.py +620 -0
  208. package/core/shared/skills/do-code-review/scripts/review_report_generator.py +505 -0
  209. package/core/shared/skills/do-constitution/SKILL.md +72 -0
  210. package/core/shared/skills/do-design/SKILL.md +212 -0
  211. package/core/shared/skills/do-diagnose/SKILL.md +156 -0
  212. package/core/shared/skills/do-diagnose/references/code_audit.md +15 -0
  213. package/core/shared/skills/do-diagnose/references/refactoring.md +12 -0
  214. package/core/shared/skills/do-diagnose/references/root_cause.md +17 -0
  215. package/core/shared/skills/do-document/SKILL.md +81 -0
  216. package/core/shared/skills/do-document/references/api-reference.md +42 -0
  217. package/core/shared/skills/do-document/references/deep_research.md +18 -0
  218. package/core/shared/skills/do-document/references/embedded-research.md +11 -0
  219. package/core/shared/skills/do-document/references/implementation-flow.md +105 -0
  220. package/core/shared/skills/do-document/references/index_generator.md +9 -0
  221. package/core/shared/skills/do-document/references/user-guide.md +22 -0
  222. package/core/shared/skills/do-execute-plan/SKILL.md +261 -0
  223. package/core/shared/skills/do-execute-plan/references/handoff_record.md +57 -0
  224. package/core/shared/skills/do-execute-plan/references/parallel_dispatch.md +92 -0
  225. package/core/shared/skills/do-execute-plan/references/readiness_gate.md +155 -0
  226. package/core/shared/skills/do-execute-plan/references/run_position.md +63 -0
  227. package/core/shared/skills/do-execute-plan/references/scaffold.md +441 -0
  228. package/core/shared/skills/do-execute-plan/references/task_attempts.md +41 -0
  229. package/core/shared/skills/do-flow/SKILL.md +186 -0
  230. package/core/shared/skills/do-flow/references/task_classes.md +134 -0
  231. package/core/shared/skills/do-git/SKILL.md +115 -0
  232. package/core/shared/skills/do-git/references/hotfix-ritual.md +44 -0
  233. package/core/shared/skills/do-git/references/lifecycle-policy.md +54 -0
  234. package/core/shared/skills/do-git/references/release-ritual.md +64 -0
  235. package/core/shared/skills/do-implement/SKILL.md +222 -0
  236. package/core/shared/skills/do-plan/SKILL.md +219 -0
  237. package/core/shared/skills/do-test/SKILL.md +113 -0
  238. package/core/shared/templates/doflow/constitution-template.md +28 -0
  239. package/core/shared/templates/doflow/data-model-template.md +169 -0
  240. package/core/shared/templates/doflow/design-template.md +193 -0
  241. package/core/shared/templates/doflow/external-contract-template.md +35 -0
  242. package/core/shared/templates/doflow/intent-template.md +45 -0
  243. package/core/shared/templates/doflow/plan-template.md +151 -0
  244. package/core/shared/templates/doflow/question-log-template.md +51 -0
  245. package/core/shared/templates/doflow/requirement-template.md +126 -0
  246. package/core/shared/templates/doflow/specs-template.md +55 -0
  247. package/core/shared/templates/doflow/state-template.md +59 -0
  248. package/core/shared/workflows/do-flow-chain.md +17 -0
  249. package/package.json +48 -4
  250. package/src/adapters/antigravity/index.js +631 -0
  251. package/src/adapters/claude/index.js +548 -0
  252. package/src/adapters/claude/mcp.js +94 -0
  253. package/src/adapters/codex/agents.js +208 -0
  254. package/src/adapters/codex/config.js +272 -0
  255. package/src/adapters/codex/hooks.js +203 -0
  256. package/src/adapters/codex/index.js +707 -0
  257. package/src/adapters/codex/mcp.js +271 -0
  258. package/src/adapters/codex/native-projection.js +34 -0
  259. package/src/adapters/copilot/index.js +413 -0
  260. package/src/adapters/copy-tree.js +620 -0
  261. package/src/adapters/gemini/hooks.js +210 -0
  262. package/src/adapters/gemini/index.js +390 -0
  263. package/src/adapters/hook-commands.js +60 -0
  264. package/src/adapters/index.js +106 -0
  265. package/src/adapters/kiro/index.js +310 -0
  266. package/src/adapters/mcp-entries.js +331 -0
  267. package/src/adapters/opencode/index.js +466 -0
  268. package/src/adapters/pi/index.js +279 -0
  269. package/src/adapters/pi/json-members.js +185 -0
  270. package/src/adapters/pi/mcp.js +373 -0
  271. package/src/adapters/resolve-source.js +19 -0
  272. package/src/cli/commands/install.js +218 -0
  273. package/src/cli/commands/list-backups.js +21 -0
  274. package/src/cli/commands/reconcile.js +120 -0
  275. package/src/cli/commands/remove.js +82 -0
  276. package/src/cli/commands/rollback.js +172 -0
  277. package/src/cli/commands/self-update.js +33 -0
  278. package/src/cli/commands/status.js +138 -0
  279. package/src/cli/commands/tools.js +92 -0
  280. package/src/cli/commands/update.js +162 -0
  281. package/src/cli/index.js +568 -0
  282. package/src/cli/runtime-commands.js +281 -0
  283. package/src/cli/shared.js +218 -0
  284. package/src/helper/bash-helper.js +34 -0
  285. package/src/helper/git.js +24 -0
  286. package/src/helper/guardrails.js +49 -0
  287. package/src/helper/harness-paths.js +140 -0
  288. package/src/helper/marker-merge.js +116 -0
  289. package/src/helper/prompt.js +61 -0
  290. package/src/helper/repo-root.js +29 -0
  291. package/src/helper/settings-merge.js +151 -0
  292. package/src/helper/settings-scope.js +33 -0
  293. package/src/helper/toml.js +244 -0
  294. package/src/install/backup-set.js +149 -0
  295. package/src/install/backup.js +724 -0
  296. package/src/install/context.js +58 -0
  297. package/src/install/manifest.js +145 -0
  298. package/src/install/mcp.js +254 -0
  299. package/src/install/paths.js +84 -0
  300. package/src/install/targets.js +90 -0
  301. package/src/install/tool-lifecycle.js +151 -0
  302. package/src/lifecycle/bash-availability.js +25 -0
  303. package/src/lifecycle/index.js +812 -0
  304. package/src/lifecycle/mcp-index.js +28 -0
  305. package/src/lifecycle/policies.js +73 -0
  306. package/src/lifecycle/view.js +175 -0
  307. package/src/registry/index.js +611 -0
  308. package/src/release/build-package.js +91 -0
  309. package/src/release/changelog-section.js +70 -0
  310. package/src/release/sync-plugin-versions.js +66 -0
  311. package/src/runtime/advice/cli.js +283 -0
  312. package/src/runtime/advice/client.js +324 -0
  313. package/src/runtime/advice/config.js +189 -0
  314. package/src/runtime/advice/doctor.js +169 -0
  315. package/src/runtime/advice/endpoint-guard.js +134 -0
  316. package/src/runtime/advice/kinds.js +154 -0
  317. package/src/runtime/advice/providers/ollama-systemone.js +209 -0
  318. package/src/runtime/advice/record.js +166 -0
  319. package/src/runtime/advice/registry.js +170 -0
  320. package/src/runtime/advice/strength.js +66 -0
  321. package/src/runtime/brief-tools.js +342 -0
  322. package/src/runtime/c4-project.js +371 -0
  323. package/src/runtime/capability-router.js +484 -0
  324. package/src/runtime/checkouts.js +170 -0
  325. package/src/runtime/claims.js +468 -0
  326. package/src/runtime/cli-result.js +55 -0
  327. package/src/runtime/cli.js +678 -0
  328. package/src/runtime/command-detect.js +516 -0
  329. package/src/runtime/context-pack.js +492 -0
  330. package/src/runtime/decision-register.js +493 -0
  331. package/src/runtime/evidence-ledger.js +338 -0
  332. package/src/runtime/failure/capture.js +272 -0
  333. package/src/runtime/failure/classifier.js +68 -0
  334. package/src/runtime/failure/cli.js +178 -0
  335. package/src/runtime/failure/home.js +64 -0
  336. package/src/runtime/failure/store.js +226 -0
  337. package/src/runtime/feature-resolve.js +79 -0
  338. package/src/runtime/freshness.js +177 -0
  339. package/src/runtime/health.js +863 -0
  340. package/src/runtime/history-compactor.js +237 -0
  341. package/src/runtime/implementation-gate.js +321 -0
  342. package/src/runtime/inventory/coverage.js +218 -0
  343. package/src/runtime/inventory/identity.js +65 -0
  344. package/src/runtime/inventory/index.js +705 -0
  345. package/src/runtime/inventory/precedence.js +134 -0
  346. package/src/runtime/inventory/read-scopes.js +131 -0
  347. package/src/runtime/inventory/siblings.js +192 -0
  348. package/src/runtime/knowledge/chunker.js +124 -0
  349. package/src/runtime/knowledge/hybrid.js +149 -0
  350. package/src/runtime/knowledge/index-store.js +145 -0
  351. package/src/runtime/knowledge/retrieval.js +194 -0
  352. package/src/runtime/leak-scan.js +185 -0
  353. package/src/runtime/lifecycle/cli.js +276 -0
  354. package/src/runtime/lifecycle/event-store.js +340 -0
  355. package/src/runtime/lifecycle/fold.js +353 -0
  356. package/src/runtime/lifecycle/followup.js +432 -0
  357. package/src/runtime/lifecycle/goal.js +249 -0
  358. package/src/runtime/lifecycle/intent-writer.js +86 -0
  359. package/src/runtime/lifecycle/overview.js +292 -0
  360. package/src/runtime/lifecycle/release.js +241 -0
  361. package/src/runtime/lifecycle/report-store.js +221 -0
  362. package/src/runtime/lifecycle/retention.js +212 -0
  363. package/src/runtime/lifecycle/root.js +71 -0
  364. package/src/runtime/lifecycle/status.js +353 -0
  365. package/src/runtime/lifecycle/store-upkeep.js +393 -0
  366. package/src/runtime/locator-resolve.js +158 -0
  367. package/src/runtime/mask.js +210 -0
  368. package/src/runtime/mcp-consultations.js +412 -0
  369. package/src/runtime/mcp-reach.js +157 -0
  370. package/src/runtime/model-router.js +153 -0
  371. package/src/runtime/outcome.js +467 -0
  372. package/src/runtime/reach.js +148 -0
  373. package/src/runtime/readiness-record.js +150 -0
  374. package/src/runtime/readiness.js +435 -0
  375. package/src/runtime/recovery.js +282 -0
  376. package/src/runtime/research-request.js +231 -0
  377. package/src/runtime/retrieval-plan.js +578 -0
  378. package/src/runtime/scaffold/artifacts.js +217 -0
  379. package/src/runtime/scaffold/fingerprint.js +56 -0
  380. package/src/runtime/scaffold/generate.js +911 -0
  381. package/src/runtime/scaffold/languages.js +245 -0
  382. package/src/runtime/storage/cli.js +64 -0
  383. package/src/runtime/storage/engine.js +249 -0
  384. package/src/runtime/storage/registry.js +130 -0
  385. package/src/runtime/storage/roots.js +63 -0
  386. package/src/runtime/storage/rules.js +282 -0
  387. package/src/runtime/storage/upkeep.js +243 -0
  388. package/src/runtime/storage/work-status.js +326 -0
  389. package/src/runtime/task-attempts.js +415 -0
  390. package/src/runtime/task-classifier.js +550 -0
  391. package/src/runtime/task-scope.js +130 -0
  392. package/src/runtime/task-state.js +176 -0
  393. package/src/runtime/trace/indicators.js +235 -0
  394. package/src/runtime/trace/ledger.js +626 -0
  395. package/src/runtime/trace/render.js +76 -0
  396. package/src/runtime/trace/views.js +459 -0
  397. package/src/runtime/verification/contract-runner.js +341 -0
  398. package/src/runtime/verification/engine.js +1461 -0
  399. package/src/runtime/verification/registry.js +130 -0
  400. package/src/runtime/verification/scope-bound.js +418 -0
  401. package/src/runtime/verification/test-selection.js +172 -0
  402. package/src/runtime/workflow-engine.js +588 -0
  403. package/src/runtime/workflow-orchestrator.js +953 -0
  404. package/src/runtime/worktree.js +340 -0
  405. package/src/state/index.js +193 -0
  406. package/src/state/lockfile.js +136 -0
  407. package/src/state/run-lock.js +408 -0
  408. package/types/node-commonjs.d.ts +68 -0
  409. package/types/runtime.d.ts +91 -0
@@ -0,0 +1,120 @@
1
+ {
2
+ "version": 1,
3
+ "capabilities": {
4
+ "code.exact-search": {
5
+ "description": "Find exact symbols, strings, file paths, or regex patterns.",
6
+ "providers": [
7
+ {
8
+ "id": "native.rg",
9
+ "name": "Ripgrep Native Search",
10
+ "kind": "native",
11
+ "binary": "rg",
12
+ "checkCommand": ["rg", "--version"],
13
+ "costTier": "free",
14
+ "sourceMode": "live"
15
+ }
16
+ ]
17
+ },
18
+ "code.semantic-search": {
19
+ "description": "Find code by natural language concept, behavior, or intent.",
20
+ "providers": [
21
+ {
22
+ "id": "semble.search",
23
+ "name": "Semble Semantic Search",
24
+ "kind": "cli",
25
+ "binary": "semble",
26
+ "checkCommand": ["semble", "--version"],
27
+ "costTier": "local-index",
28
+ "sourceMode": "index",
29
+ "mcp": { "server": "semble", "tool": "search" }
30
+ },
31
+ {
32
+ "id": "native.rg",
33
+ "name": "Ripgrep Regex Fallback",
34
+ "kind": "native",
35
+ "binary": "rg",
36
+ "costTier": "free",
37
+ "sourceMode": "live"
38
+ }
39
+ ]
40
+ },
41
+ "code.relationships": {
42
+ "description": "Query structural call graphs, caller/callee trees, and dependencies.",
43
+ "providers": [
44
+ {
45
+ "id": "graphify.query",
46
+ "name": "Graphify Knowledge Graph",
47
+ "kind": "cli",
48
+ "binary": "graphify",
49
+ "checkCommand": ["graphify", "--version"],
50
+ "costTier": "local-graph",
51
+ "sourceMode": "index",
52
+ "mcp": { "server": "graphify", "tool": "query_graph" }
53
+ },
54
+ {
55
+ "id": "native.rg",
56
+ "name": "Ripgrep Reference Fallback",
57
+ "kind": "native",
58
+ "binary": "rg",
59
+ "costTier": "free",
60
+ "sourceMode": "live"
61
+ }
62
+ ]
63
+ },
64
+ "code.impact-analysis": {
65
+ "description": "Determine blast radius and affected dependents of a symbol or component.",
66
+ "providers": [
67
+ {
68
+ "id": "graphify.query",
69
+ "name": "Graphify Blast Radius",
70
+ "kind": "cli",
71
+ "binary": "graphify",
72
+ "checkCommand": ["graphify", "--version"],
73
+ "costTier": "local-graph",
74
+ "sourceMode": "index",
75
+ "mcp": { "server": "graphify", "tool": "query_graph" }
76
+ }
77
+ ]
78
+ },
79
+ "history.search": {
80
+ "description": "Inspect git commit history, commit rationale, diffs, and blame.",
81
+ "providers": [
82
+ {
83
+ "id": "git.native",
84
+ "name": "Git CLI",
85
+ "kind": "native",
86
+ "binary": "git",
87
+ "checkCommand": ["git", "--version"],
88
+ "costTier": "free",
89
+ "sourceMode": "live"
90
+ }
91
+ ]
92
+ },
93
+ "behavior.verify": {
94
+ "description": "Execute automated test suites and behavioral assertions.",
95
+ "providers": [
96
+ {
97
+ "id": "native.test",
98
+ "name": "Project Test Runner",
99
+ "kind": "native",
100
+ "costTier": "compute",
101
+ "sourceMode": "live"
102
+ }
103
+ ]
104
+ },
105
+ "command.compress": {
106
+ "description": "Preserve agent context by compressing CLI stdout/stderr.",
107
+ "providers": [
108
+ {
109
+ "id": "rtk",
110
+ "name": "Rust Token Killer",
111
+ "kind": "cli",
112
+ "binary": "rtk",
113
+ "checkCommand": ["rtk", "--version"],
114
+ "costTier": "free",
115
+ "sourceMode": "live"
116
+ }
117
+ ]
118
+ }
119
+ }
120
+ }
@@ -0,0 +1,189 @@
1
+ {
2
+ "version": 1,
3
+ "contracts": [
4
+ {
5
+ "harness": "claude",
6
+ "completeness": "verified",
7
+ "note": "Field lists and hook events verified against current Claude Code documentation. A frontmatter key or hook event absent here is rejected by the guards, not silently tolerated.",
8
+ "skillFields": [
9
+ "name",
10
+ "description",
11
+ "when_to_use",
12
+ "argument-hint",
13
+ "arguments",
14
+ "disable-model-invocation",
15
+ "user-invocable",
16
+ "allowed-tools",
17
+ "disallowed-tools",
18
+ "model",
19
+ "effort",
20
+ "context",
21
+ "agent",
22
+ "background",
23
+ "hooks",
24
+ "paths",
25
+ "shell"
26
+ ],
27
+ "agentFields": [
28
+ "name",
29
+ "description",
30
+ "tools",
31
+ "disallowedTools",
32
+ "model",
33
+ "permissionMode",
34
+ "maxTurns",
35
+ "skills",
36
+ "mcpServers",
37
+ "hooks",
38
+ "memory",
39
+ "background",
40
+ "effort",
41
+ "isolation",
42
+ "color",
43
+ "initialPrompt"
44
+ ],
45
+ "hookEvents": [
46
+ "SessionStart",
47
+ "Setup",
48
+ "SessionEnd",
49
+ "UserPromptSubmit",
50
+ "UserPromptExpansion",
51
+ "Stop",
52
+ "StopFailure",
53
+ "PreToolUse",
54
+ "PermissionRequest",
55
+ "PermissionDenied",
56
+ "PostToolUse",
57
+ "PostToolUseFailure",
58
+ "PostToolBatch",
59
+ "SubagentStart",
60
+ "SubagentStop",
61
+ "TeammateIdle",
62
+ "TaskCreated",
63
+ "TaskCompleted",
64
+ "InstructionsLoaded",
65
+ "ConfigChange",
66
+ "CwdChanged",
67
+ "FileChanged",
68
+ "DirectoryAdded",
69
+ "PreCompact",
70
+ "PostCompact",
71
+ "WorktreeCreate",
72
+ "WorktreeRemove",
73
+ "Notification",
74
+ "MessageDisplay",
75
+ "Elicitation",
76
+ "ElicitationResult"
77
+ ],
78
+ "evidence": [
79
+ "https://code.claude.com/docs/en/skills",
80
+ "https://code.claude.com/docs/en/sub-agents",
81
+ "https://code.claude.com/docs/en/hooks",
82
+ "https://code.claude.com/docs/en/settings"
83
+ ]
84
+ },
85
+ {
86
+ "harness": "codex",
87
+ "completeness": "lower-bound",
88
+ "note": "Frontmatter field lists are deliberately absent: shared skills and agent specs are byte-identical across harnesses, so a per-harness list could only restate a subset of claude's and would change no guard outcome \u2014 an inert declaration of exactly the kind these guards exist to remove. hookEvents IS per-harness and lists the events DoFlow actually wires; widen it only with an added evidence URL.",
89
+ "hookEvents": [
90
+ "SessionStart",
91
+ "SessionEnd",
92
+ "UserPromptSubmit",
93
+ "Stop",
94
+ "PreToolUse",
95
+ "PostToolUse",
96
+ "SubagentStart",
97
+ "SubagentStop",
98
+ "PreCompact"
99
+ ],
100
+ "evidence": [
101
+ "https://learn.chatgpt.com/docs/agent-configuration/agents-md",
102
+ "https://learn.chatgpt.com/docs/hooks",
103
+ "https://learn.chatgpt.com/docs/agent-configuration/subagents"
104
+ ]
105
+ },
106
+ {
107
+ "harness": "gemini",
108
+ "completeness": "lower-bound",
109
+ "note": "Frontmatter field lists are deliberately absent: shared skills and agent specs are byte-identical across harnesses, so a per-harness list could only restate a subset of claude's and would change no guard outcome \u2014 an inert declaration of exactly the kind these guards exist to remove. hookEvents IS per-harness and lists the events DoFlow actually wires; widen it only with an added evidence URL.",
110
+ "hookEvents": [
111
+ "SessionStart",
112
+ "SessionEnd",
113
+ "BeforeTool",
114
+ "AfterTool",
115
+ "PreCompress"
116
+ ],
117
+ "evidence": [
118
+ "https://geminicli.com/docs/cli/skills/",
119
+ "https://geminicli.com/docs/hooks/",
120
+ "https://geminicli.com/docs/cli/settings/"
121
+ ]
122
+ },
123
+ {
124
+ "harness": "opencode",
125
+ "completeness": "lower-bound",
126
+ "note": "hookEvents is empty by design, not by omission: OpenCode implements lifecycle handlers as JavaScript/TypeScript plugin modules exporting named hooks such as tool.execute.before, while DoFlow ships shell scripts invoked by a command string. The events exist natively and are recorded under capabilities.hooks.events with status \"different\"; wiring them would mean shipping executable code into the user's agent, which is a distribution decision rather than a projection. Widen this list only alongside that decision and an added evidence URL. See https://opencode.ai/docs/plugins.",
127
+ "hookEvents": [],
128
+ "evidence": [
129
+ "https://opencode.ai/docs/plugins",
130
+ "https://opencode.ai/docs/rules",
131
+ "https://opencode.ai/docs/config"
132
+ ]
133
+ },
134
+ {
135
+ "harness": "pi",
136
+ "completeness": "lower-bound",
137
+ "note": "hookEvents is empty by design, not by omission: Pi implements lifecycle handlers as TypeScript extension modules registering handlers through pi.on(), executing with full system permissions, while DoFlow ships shell scripts invoked by a command string. The events exist natively and are recorded under capabilities.hooks.events with status \"different\"; wiring them would mean shipping executable code into the user's agent, which is a distribution decision rather than a projection. Widen this list only alongside that decision and an added evidence URL. See https://pi.dev/docs/latest/extensions.",
138
+ "hookEvents": [],
139
+ "evidence": [
140
+ "https://pi.dev/docs/latest/extensions",
141
+ "https://pi.dev/docs/latest/settings",
142
+ "https://pi.dev/docs/latest/skills"
143
+ ]
144
+ },
145
+ {
146
+ "harness": "copilot",
147
+ "completeness": "lower-bound",
148
+ "note": "Copilot CLI now documents a full hook surface (use-hooks / hooks-reference, 2026): .github/hooks/*.json and ~/.copilot/hooks/, shape {version:1,hooks:{camelCaseEvent:[entries]}}. DoFlow wires none of it: the shipped scripts are Claude-payload-coupled (tool names, .session_id/.transcript_path stdin fields, CLAUDE_* envs) and Copilot's payload schemas are unverified here. hookEvents stays empty until that verification lands; widen only alongside it and an added evidence URL.",
149
+ "hookEvents": [],
150
+ "evidence": [
151
+ "https://docs.github.com/en/copilot/how-tos/copilot-cli/customize-copilot/add-skills",
152
+ "https://docs.github.com/en/copilot/how-tos/copilot-cli/customize-copilot/create-custom-agents-for-cli",
153
+ "https://docs.github.com/en/copilot/how-tos/copilot-cli/customize-copilot/use-hooks",
154
+ "https://docs.github.com/en/copilot/reference/hooks-reference"
155
+ ]
156
+ },
157
+ {
158
+ "harness": "kiro",
159
+ "completeness": "lower-bound",
160
+ "note": "hookEvents lists only the events DoFlow actually installs a doflow.json entry for (session-context on SessionStart, pre-implementation-gate, pre-bash-guard and mcp-tool-guard all on PreToolUse \u2014 hence PreToolUse appearing once, not twice \u2014 and stop-check on Stop), not the full set of trigger names Kiro's docs confirm (SessionStart, Stop, PreToolUse, PostToolUse, UserPromptSubmit, PreTaskExec, PostTaskExec, PostFileSave, PostFileCreate, PostFileDelete \u2014 see kiro.dev/docs/hooks/actions/). Widen this list only when DoFlow wires a hook to one of the unused confirmed events, alongside an added evidence URL.",
161
+ "hookEvents": [
162
+ "SessionStart",
163
+ "PreToolUse",
164
+ "Stop"
165
+ ],
166
+ "evidence": [
167
+ "https://kiro.dev/docs/steering/",
168
+ "https://kiro.dev/docs/mcp/configuration/",
169
+ "https://kiro.dev/docs/hooks/",
170
+ "https://kiro.dev/docs/hooks/actions/"
171
+ ]
172
+ },
173
+ {
174
+ "harness": "antigravity",
175
+ "completeness": "lower-bound",
176
+ "note": "hookEvents lists what DoFlow wires; widen only with added evidence. Antigravity documents five hook events; DoFlow wires PreToolUse (pre-implementation gate) and Stop (stop check) today.",
177
+ "hookEvents": [
178
+ "PreToolUse",
179
+ "Stop"
180
+ ],
181
+ "evidence": [
182
+ "https://antigravity.google/docs/cli/gcli-migration",
183
+ "https://antigravity.google/docs/hooks",
184
+ "https://antigravity.google/docs/cli/mcp",
185
+ "https://antigravity.google/docs/hooks/"
186
+ ]
187
+ }
188
+ ]
189
+ }
@@ -0,0 +1,191 @@
1
+ {
2
+ "version": 1,
3
+ "tools": [
4
+ {
5
+ "id": "rtk",
6
+ "displayName": "RTK (Rust Token Killer)",
7
+ "officialEvidence": [
8
+ "https://github.com/rtk-ai/rtk/blob/develop/INSTALL.md",
9
+ "https://www.rtk-ai.app/docs/getting-started/installation/"
10
+ ],
11
+ "status": {
12
+ "commands": [
13
+ [
14
+ "rtk",
15
+ "--version"
16
+ ],
17
+ [
18
+ "rtk",
19
+ "gain"
20
+ ]
21
+ ]
22
+ },
23
+ "install": {
24
+ "command": [
25
+ "cargo",
26
+ "install",
27
+ "--git",
28
+ "https://github.com/rtk-ai/rtk",
29
+ "--branch",
30
+ "master",
31
+ "rtk"
32
+ ]
33
+ },
34
+ "uninstall": {
35
+ "command": [
36
+ "cargo",
37
+ "uninstall",
38
+ "rtk"
39
+ ]
40
+ }
41
+ },
42
+ {
43
+ "id": "graphify",
44
+ "displayName": "Graphify",
45
+ "officialEvidence": [
46
+ "https://github.com/Graphify-Labs/graphify/blob/v8/README.md",
47
+ "https://docs.astral.sh/uv/guides/tools/",
48
+ "https://docs.astral.sh/uv/reference/cli/"
49
+ ],
50
+ "prerequisites": [
51
+ "uv"
52
+ ],
53
+ "status": {
54
+ "commands": [
55
+ [
56
+ "graphify",
57
+ "--version"
58
+ ]
59
+ ]
60
+ },
61
+ "install": {
62
+ "command": [
63
+ "uv",
64
+ "tool",
65
+ "install",
66
+ "graphifyy"
67
+ ]
68
+ },
69
+ "update": {
70
+ "command": [
71
+ "uv",
72
+ "tool",
73
+ "upgrade",
74
+ "graphifyy"
75
+ ]
76
+ },
77
+ "uninstall": {
78
+ "command": [
79
+ "uv",
80
+ "tool",
81
+ "uninstall",
82
+ "graphifyy"
83
+ ]
84
+ }
85
+ },
86
+ {
87
+ "id": "semble",
88
+ "displayName": "Semble",
89
+ "officialEvidence": [
90
+ "https://github.com/MinishLab/semble"
91
+ ],
92
+ "prerequisites": [
93
+ "uv"
94
+ ],
95
+ "status": {
96
+ "commands": [
97
+ [
98
+ "semble",
99
+ "--version"
100
+ ]
101
+ ]
102
+ },
103
+ "install": {
104
+ "command": [
105
+ "uv",
106
+ "tool",
107
+ "install",
108
+ "semble"
109
+ ]
110
+ },
111
+ "update": {
112
+ "command": [
113
+ "uv",
114
+ "tool",
115
+ "upgrade",
116
+ "semble"
117
+ ]
118
+ },
119
+ "uninstall": {
120
+ "command": [
121
+ "uv",
122
+ "tool",
123
+ "uninstall",
124
+ "semble"
125
+ ]
126
+ }
127
+ },
128
+ {
129
+ "id": "mermaid-cli",
130
+ "displayName": "Mermaid CLI",
131
+ "officialEvidence": [
132
+ "https://github.com/mermaid-js/mermaid-cli/blob/master/README.md",
133
+ "https://github.com/mermaid-js/mermaid/blob/develop/docs/config/usage.md"
134
+ ],
135
+ "status": {
136
+ "commands": [
137
+ [
138
+ "mmdc",
139
+ "--version"
140
+ ]
141
+ ]
142
+ },
143
+ "install": {
144
+ "command": [
145
+ "npm",
146
+ "install",
147
+ "-g",
148
+ "@mermaid-js/mermaid-cli"
149
+ ]
150
+ },
151
+ "uninstall": {
152
+ "command": [
153
+ "npm",
154
+ "uninstall",
155
+ "-g",
156
+ "@mermaid-js/mermaid-cli"
157
+ ]
158
+ }
159
+ },
160
+ {
161
+ "id": "plantuml",
162
+ "displayName": "PlantUML",
163
+ "officialEvidence": [
164
+ "https://plantuml.com/starting",
165
+ "https://github.com/plantuml-stdlib/C4-PlantUML/blob/master/README.md"
166
+ ],
167
+ "status": {
168
+ "commands": [
169
+ [
170
+ "plantuml",
171
+ "-version"
172
+ ]
173
+ ]
174
+ },
175
+ "install": {
176
+ "command": [
177
+ "brew",
178
+ "install",
179
+ "plantuml"
180
+ ]
181
+ },
182
+ "uninstall": {
183
+ "command": [
184
+ "brew",
185
+ "uninstall",
186
+ "plantuml"
187
+ ]
188
+ }
189
+ }
190
+ ]
191
+ }