@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,126 @@
1
+ # Feature Requirement: [FEATURE NAME]
2
+
3
+ **Feature:** [NNN-slug] · **Branch:** `feat/[NNN-slug]` · **Maturity:** Draft
4
+ **Created:** [DATE] · **Owner:** [OWNER] · **Ticket:** [PBI/ticket ID, or "none"]
5
+ **Intent:** [agent-docs/intent/<name>.md, or "none"]
6
+
7
+ > WHAT and WHY only — no tech or implementation detail. Zero unresolved clarification markers at
8
+ > hand-off — every ambiguity is resolved via `AskUserQuestion` before this file is written;
9
+ > deferred answers become assumptions in §8.
10
+ >
11
+ > Structure follows `references/ARTIFACT_FORMAT.md`: indexed sections carry a table above full
12
+ > `**Detail**`, the document-level `Maturity` is `Draft`, `In review` or `Approved`, the item-level
13
+ > `Status` is only `Live` or `Superseded → <ref>`, and superseded prose moves to §9.
14
+
15
+ ## 1. Summary
16
+
17
+ [1–2 sentences: the user-facing outcome and why it matters.]
18
+
19
+ **Scope boundary:**
20
+
21
+ <!-- The visual orientation: what is in, what is explicitly out, and what each in-scope item
22
+ achieves — so a reader sees the shape of the change before parsing prose. Replace with
23
+ "N/A: [why]" for a change too small to have a meaningful boundary. -->
24
+
25
+ ```mermaid
26
+ flowchart LR
27
+ subgraph IN["In scope"]
28
+ A["[in-scope item]"]
29
+ B["[in-scope item]"]
30
+ end
31
+ subgraph OUT["Out of scope"]
32
+ C["[excluded item]"]
33
+ D["[excluded item]"]
34
+ end
35
+ A --> E["[outcome this produces]"]
36
+ B --> F["[outcome this produces]"]
37
+ ```
38
+
39
+ ## 2. User Stories
40
+
41
+ <!-- Use hierarchical story headings (e.g. "### Story 1: [Story Title] (P1)" or "### Story 3.2: [Story Title] (P1)")
42
+ followed by the standard role/want/benefit formulation. -->
43
+
44
+ ### Story 1: [Story Title] (P1)
45
+ - **US1 (P1):** As a [role], I want [capability], so that [benefit].
46
+
47
+ ### Story 2: [Story Title] (P2)
48
+ - **US2 (P2):** As a [role], I want [capability], so that [benefit].
49
+
50
+ ### Story 3: [Story Title] (P3)
51
+ - **US3 (P3):** As a [role], I want [capability], so that [benefit].
52
+
53
+ ## 3. Functional Requirements
54
+
55
+ **Index** — `Status` is `Live` or `Superseded → <ref>`.
56
+
57
+ | ID | Requirement | Story | Priority | Status |
58
+ |---|---|---|---|---|
59
+ | FR-001 | [one-line summary] | US1 | P1 | Live |
60
+ | FR-002 | [one-line summary] | US2 | P2 | Live |
61
+
62
+ **Detail**
63
+
64
+ - **FR-001:** The system MUST [full behaviour — every qualifier and exception that makes this
65
+ correct stays here; the index above is navigation, never a substitute].
66
+ - **FR-002:** The system MUST [behaviour].
67
+
68
+ ## 4. Non-Functional Requirements
69
+
70
+ | ID | Constraint | Kind | Status |
71
+ |---|---|---|---|
72
+ | NFR-001 | [one-line summary] | performance / security / UX / reliability | Live |
73
+
74
+ **Detail**
75
+
76
+ - **NFR-001 ([short label]):** [the constraint in full, with the reasoning that makes it binding].
77
+
78
+ ## 5. Out of Scope
79
+
80
+ - **[excluded item]** — [why it is excluded, so the boundary is unambiguous rather than an omission].
81
+
82
+ ## 6. Acceptance Criteria
83
+
84
+ <!-- Structured as Gherkin BDD scenario blocks with Given / When / Then clauses mapped to User Stories (US#)
85
+ and Functional Requirements (FR-###). Single-line criteria remain permissible for simple non-functional checks. -->
86
+
87
+ - [ ] **Scenario: [Scenario Title]** (US1, FR-001)
88
+ - **Given** [precondition or initial context]
89
+ - **When** [action or trigger event occurs]
90
+ - **Then** [expected observable outcome]
91
+
92
+ - [ ] **Scenario: [Scenario Title]** (US2, FR-002)
93
+ - **Given** [precondition]
94
+ - **When** [action]
95
+ - **Then** [expected outcome]
96
+
97
+ - [ ] [observable, testable outcome] (NFR-001).
98
+
99
+ ## 7. Open Questions
100
+
101
+ None. (The clarification-marker syntax is reserved for a session aborted mid-loop; a completed
102
+ artifact carries none. The marker itself is deliberately not spelled here — a filled template is
103
+ checked for its absence, and a template that quotes it makes every correct artifact look wrong.)
104
+
105
+ ## 8. Assumptions
106
+
107
+ <!-- With a decision register, a row from a "Decide for me" pick cites its DEC-### in Basis: see ARTIFACT_FORMAT.md §12. -->
108
+
109
+ | ID | Assumption | Affects | Basis |
110
+ |---|---|---|---|
111
+ | A1 | [assumption stated] | FR-001 | [why this default, or "user deferred"] |
112
+
113
+ **Detail**
114
+
115
+ - **A1** — [the reasoning, and what would change if the assumption turns out wrong].
116
+
117
+ <!-- Write "None — no clarification questions were deferred." in place of the table and detail if
118
+ every ambiguity was resolved by a direct answer rather than the defer escape hatch. -->
119
+
120
+ ## 9. History
121
+
122
+ <!-- When an item is superseded, its obsolete prose moves here and its index row above stays as a
123
+ tombstone with `Superseded → <ref>`. The body then reads as current truth; this section keeps
124
+ the reasoning behind the change. -->
125
+
126
+ None — initial version.
@@ -0,0 +1,55 @@
1
+ # Specs: [FEATURE NAME]
2
+
3
+ **Feature:** [NNN-slug] · **Design:** ./design.md · **Maturity:** Draft · **Created:** [DATE]
4
+
5
+ > Machine-checkable interface/schema contracts split out of design.md's own narrative — endpoints,
6
+ > CLI verb signatures, repository/service interfaces, data schemas and file formats a design
7
+ > decided. Reads ./design.md; distinct from it the way a contract is distinct from the rationale
8
+ > that produced it.
9
+ >
10
+ > Structure follows `references/ARTIFACT_FORMAT.md`: indexed sections carry a table above full
11
+ > `**Detail**`, the document-level `Maturity` is `Draft`, `In review` or `Approved`, the item-level
12
+ > `Status` is only `Live` or `Superseded → <ref>`, and superseded prose moves to §2.
13
+
14
+ ## 1. Interface Contracts
15
+
16
+ <!-- Document endpoints, CLI verb signatures, and repository/service interfaces that anchor
17
+ implementation — one IC-### entry per contract, so plan.md and downstream implementation can
18
+ cite a specific contract precisely instead of a paragraph of prose.
19
+
20
+ The index carries a `Family` column, and the detail below is grouped under
21
+ "#### Family: [name]" headings. Contracts are ordered within a family, and families are ordered
22
+ as the index lists them. Each contract carries its own "#### IC-###: [summary]" heading so a
23
+ reader can link to and cite one contract without scanning the block around it. A heading of
24
+ that form counts as the contract's detail entry only when the same ID also appears in the first
25
+ column of the index above; an ID-shaped heading with no matching index row is ignored. Grouping
26
+ is navigation: it never shortens the normative text a contract carries. Write "N/A: [why]" in
27
+ place of the index and detail when the feature introduces no interface contract. -->
28
+
29
+ | ID | Contract | Family | Kind | Status |
30
+ |---|---|---|---|---|
31
+ | IC-001 | [one-line summary] | [family name] | endpoint / cli-verb / schema / file-format | Live |
32
+ | IC-002 | [one-line summary] | [family name] | endpoint / cli-verb / schema / file-format | Live |
33
+
34
+ **Detail**
35
+
36
+ #### Family: [family name]
37
+
38
+ #### IC-001: [one-line summary]
39
+
40
+ [the full normative shape — for an `endpoint`: method, route, request/response
41
+ payload, status codes; for a `cli-verb`: verb name, flags, arguments, exit codes; for a `schema`:
42
+ repository/service interface (`interface` → `concrete` → `mock` pattern) or service method
43
+ signature (`[serviceMethod](params): ReturnType`); for a `file-format`: the file's key
44
+ fields/shape — every qualifier and exception intact].
45
+
46
+ #### IC-002: [one-line summary]
47
+
48
+ [the full normative shape, every qualifier and exception intact].
49
+
50
+ ## 2. History
51
+
52
+ <!-- Superseded contracts move here; the index row above stays as a tombstone with
53
+ `Superseded → <ref>`. -->
54
+
55
+ None — initial version.
@@ -0,0 +1,59 @@
1
+ # State: [FEATURE NAME]
2
+
3
+ **Feature:** [NNN-slug] · **Plan:** [PLAN_PATH] · **Status:** In Progress · **Updated:** [DATE]
4
+
5
+ > Execution state for `/do-execute-plan`: what happened, not the intent (`plan.md`'s job). Rewrite
6
+ > Status, Blocked, Findings and Next Action in place so each states only what is true now; delete
7
+ > what no longer applies.
8
+ >
9
+ > The **Plan:** field above is this file's identity: a record naming a different plan is another
10
+ > run's progress, so leave it alone and start a fresh one rather than reading it as your own. On
11
+ > resume, trust this file and `git log` over recollection: conversation memory does not survive a
12
+ > compact, and a lost place can mean re-dispatching finished work.
13
+
14
+ ## Repo Branch Status
15
+ > Populate/update as `/do-execute-plan` first touches each repo — lazily, only when that repo's
16
+ > first task executes, not upfront; this check runs for every task regardless of how many repos
17
+ > the feature started with (a plan can grow a new repo mid-execution). `Status` is `created`
18
+ > (branch didn't exist, now does) / `existing` (branch already existed, checked out as-is) /
19
+ > `blocked` (uncommitted changes were found and not silently checked out over — resolve manually).
20
+ > A `blocked` row is re-checked the next time that repo is touched; `created`/`existing` rows are
21
+ > trusted as-is, never re-checked. For a single-repo feature, write "N/A: single-repo feature"
22
+ > instead of the table.
23
+
24
+ | Repo | Branch | Status | Last Checked |
25
+ |---|---|---|---|
26
+ | [repo path] | `feat/[branch]` | created / existing / blocked | [DATE] |
27
+
28
+ ## Task Ledger
29
+
30
+ > Per-task execution facts, appended as each task finishes — the durable record the status sections
31
+ > below summarise. `Rounds` is `<used>/<cap>` review-fix rounds (`0` = review passed first time,
32
+ > `—` = not reviewed). `Review` is `clean`, `N open`, or `n/a`. `Status` here is execution state, not
33
+ > the `Live`/`Superseded` vocabulary artifacts use — this file sits outside that convention.
34
+ > A task with a `complete` row is DONE: never re-dispatch it, resume at the first task without one.
35
+
36
+ | Task | Commits | Rounds | Review | Status |
37
+ |---|---|---|---|---|
38
+ | [A.1] | `[base7]..[head7]` | 0 | clean | complete |
39
+
40
+ ## Findings
41
+
42
+ > Review findings that were deliberately not fixed, so nothing is discarded silently. Deferred
43
+ > minors are handed to `/do-code-review` to triage; a parked finding records the ruling that let the
44
+ > code stand. Write "None." when there are none — an empty section reads as an oversight.
45
+
46
+ - **[A.2] deferred (minor)** — [one-liner].
47
+ - **[B.1] parked** — [finding] — ruling: [why the code stands, or that it is real and deferred].
48
+
49
+ ## Completed
50
+ - [ ] [task ref, e.g. A.1] — [one-line summary]
51
+
52
+ ## In Progress
53
+ - [task ref] — [what's happening now]
54
+
55
+ ## Blocked
56
+ - [task ref] — [blocker] — [what's needed to unblock]
57
+
58
+ ## Next Action
59
+ [the single next step — task ref + brief description, or "none, feature complete pending /do-code-review"]
@@ -0,0 +1,17 @@
1
+ ---
2
+ description: Run the DoFlow spec-driven delivery chain on an idea
3
+ ---
4
+
5
+ When the user types `/do-flow-chain <idea>`, orchestrate DoFlow's installed skills as one
6
+ delivery sequence, pausing where human judgment matters:
7
+
8
+ 1. Act as the discovery lead and run `/do-brainstorm` with `<idea>` to produce
9
+ `requirement.md`. Wait for the user to confirm the requirement before continuing.
10
+ 2. Run `/do-design` to turn the confirmed requirement into `design.md`.
11
+ 3. Run `/do-plan` to decompose the design into a dependency-ordered `plan.md`.
12
+ 4. Ask the user to review all three specifications. Only proceed on explicit approval.
13
+ 5. Execute `/do-execute-plan --scope next` repeatedly until the plan's checklist is complete.
14
+ 6. Run `/do-test`, then `/do-code-review`, and report both results before proposing any commit.
15
+
16
+ If the user comments directly inside any specification file, re-read it, apply the requested
17
+ changes, and ask for approval again before moving on.
package/package.json CHANGED
@@ -1,6 +1,50 @@
1
1
  {
2
2
  "name": "@khoavu882/doflow",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
6
- }
3
+ "version": "2.0.0-beta.4",
4
+ "description": "DoFlow config installer — npx CLI for the registry-driven multi-harness install/update/remove lifecycle",
5
+ "keywords": [
6
+ "claude-code",
7
+ "codex",
8
+ "gemini",
9
+ "opencode",
10
+ "ai-coding-agent",
11
+ "skills",
12
+ "hooks",
13
+ "mcp",
14
+ "cli"
15
+ ],
16
+ "homepage": "https://github.com/khoavu882/do-flow#readme",
17
+ "bugs": {
18
+ "url": "https://github.com/khoavu882/do-flow/issues"
19
+ },
20
+ "repository": {
21
+ "type": "git",
22
+ "url": "git+https://github.com/khoavu882/do-flow.git"
23
+ },
24
+ "author": "Khoa Vu Dang",
25
+ "bin": {
26
+ "doflow": "bin/doflow.js"
27
+ },
28
+ "engines": {
29
+ "node": "^22.18.0 || >=24.3.0"
30
+ },
31
+ "scripts": {
32
+ "test": "node --test \"test/**/*.test.js\"",
33
+ "typecheck": "npx -y -p typescript@5.7.2 tsc -p tsconfig.json",
34
+ "build:package": "node src/release/build-package.js .pack",
35
+ "bench": "node bench/runner.js",
36
+ "drift": "node scripts/check-format-drift.js",
37
+ "release-notes": "node src/release/changelog-section.js",
38
+ "version": "node src/release/sync-plugin-versions.js && git add core/.codex-plugin/plugin.json core/.claude-plugin/plugin.json core/.plugin/plugin.json"
39
+ },
40
+ "files": [
41
+ "bin/",
42
+ "src/",
43
+ "core/",
44
+ "types/"
45
+ ],
46
+ "publishConfig": {
47
+ "access": "public"
48
+ },
49
+ "license": "MIT"
50
+ }