@khoavu882/doflow 0.0.0-stage → 2.0.0-beta.3
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.
- package/LICENSE +21 -0
- package/README.md +132 -2
- package/bin/doflow.js +44 -0
- package/core/.antigravity-plugin/hooks.json +39 -0
- package/core/.antigravity-plugin/mcp_config.json +18 -0
- package/core/.antigravity-plugin/plugin.json +31 -0
- package/core/.claude-plugin/marketplace.json +20 -0
- package/core/.claude-plugin/plugin.json +21 -0
- package/core/.codex-plugin/marketplace.json +20 -0
- package/core/.codex-plugin/plugin.json +35 -0
- package/core/.plugin/plugin.json +19 -0
- package/core/harnesses/antigravity/hooks/pre-implementation-gate.sh +9 -0
- package/core/harnesses/antigravity/hooks/stop-check.sh +10 -0
- package/core/harnesses/claude/hooks/lib.sh +304 -0
- package/core/harnesses/claude/hooks/mcp-tool-guard.sh +20 -0
- package/core/harnesses/claude/hooks/permission-audit.sh +47 -0
- package/core/harnesses/claude/hooks/post-compact.sh +74 -0
- package/core/harnesses/claude/hooks/post-edit-lint.sh +36 -0
- package/core/harnesses/claude/hooks/post-tool-failure.sh +47 -0
- package/core/harnesses/claude/hooks/pre-bash-guard.sh +20 -0
- package/core/harnesses/claude/hooks/pre-compact.sh +43 -0
- package/core/harnesses/claude/hooks/pre-implement-gate.sh +21 -0
- package/core/harnesses/claude/hooks/session-end.sh +89 -0
- package/core/harnesses/claude/hooks/session-start.sh +5 -0
- package/core/harnesses/claude/hooks/skill-config-audit.sh +39 -0
- package/core/harnesses/claude/hooks/stop-check.sh +5 -0
- package/core/harnesses/claude/hooks/subagent-audit.sh +7 -0
- package/core/harnesses/claude/hooks/user-prompt-submit.sh +5 -0
- package/core/harnesses/claude/settings/keybindings.json +20 -0
- package/core/harnesses/claude/settings/settings.json +201 -0
- package/core/harnesses/claude/statusline/doflow-statusline.sh +49 -0
- package/core/harnesses/codex/agents/core-implementer.toml +7 -0
- package/core/harnesses/codex/agents/quality-guardian.toml +8 -0
- package/core/harnesses/codex/agents/research-writer.toml +8 -0
- package/core/harnesses/codex/agents/spec-analyst.toml +8 -0
- package/core/harnesses/codex/agents/system-architect.toml +9 -0
- package/core/harnesses/codex/config/config.toml +10 -0
- package/core/harnesses/codex/hooks/hooks.json +122 -0
- package/core/harnesses/codex/hooks/lib.sh +335 -0
- package/core/harnesses/codex/hooks/mcp-tool-guard.sh +18 -0
- package/core/harnesses/codex/hooks/post-edit-lint.impl.sh +52 -0
- package/core/harnesses/codex/hooks/post-edit-lint.sh +6 -0
- package/core/harnesses/codex/hooks/pre-bash-guard.sh +18 -0
- package/core/harnesses/codex/hooks/pre-compact.impl.sh +46 -0
- package/core/harnesses/codex/hooks/pre-compact.sh +9 -0
- package/core/harnesses/codex/hooks/pre-implement-gate.sh +19 -0
- package/core/harnesses/codex/hooks/session-end.impl.sh +92 -0
- package/core/harnesses/codex/hooks/session-end.sh +5 -0
- package/core/harnesses/codex/hooks/session-start.sh +5 -0
- package/core/harnesses/codex/hooks/stop-check.sh +8 -0
- package/core/harnesses/codex/hooks/subagent-audit.sh +8 -0
- package/core/harnesses/codex/hooks/user-prompt-submit.sh +6 -0
- package/core/harnesses/gemini/hooks/hooks.json +77 -0
- package/core/harnesses/gemini/hooks/lib.sh +302 -0
- package/core/harnesses/gemini/hooks/mcp-tool-guard.sh +21 -0
- package/core/harnesses/gemini/hooks/post-edit-lint.sh +39 -0
- package/core/harnesses/gemini/hooks/pre-bash-guard.sh +21 -0
- package/core/harnesses/gemini/hooks/pre-compact.sh +38 -0
- package/core/harnesses/gemini/hooks/pre-implement-gate.sh +22 -0
- package/core/harnesses/gemini/hooks/session-end.impl.sh +89 -0
- package/core/harnesses/gemini/hooks/session-end.sh +5 -0
- package/core/harnesses/gemini/hooks/session-start.sh +5 -0
- package/core/harnesses/gemini/settings/adapter-defaults.json +4 -0
- package/core/harnesses/kiro/agents/doflow.json +58 -0
- package/core/harnesses/kiro/hooks/doflow.json +53 -0
- package/core/harnesses/kiro/hooks/lib.sh +324 -0
- package/core/harnesses/kiro/hooks/mcp-tool-guard.sh +9 -0
- package/core/harnesses/kiro/hooks/pre-bash-guard.sh +9 -0
- package/core/harnesses/kiro/hooks/pre-implement-gate.sh +9 -0
- package/core/harnesses/kiro/hooks/session-start.sh +9 -0
- package/core/harnesses/kiro/hooks/stop-check.sh +43 -0
- package/core/harnesses/shared/hooks/ENVELOPE_MIGRATION.md +39 -0
- package/core/harnesses/shared/hooks/adapters/antigravity.js +111 -0
- package/core/harnesses/shared/hooks/adapters/arg-fields.js +19 -0
- package/core/harnesses/shared/hooks/adapters/gemini.js +114 -0
- package/core/harnesses/shared/hooks/hooks.json +47 -0
- package/core/harnesses/shared/hooks/policies/blocked-patterns.conf +91 -0
- package/core/harnesses/shared/hooks/policies/capture-failure.sh +97 -0
- package/core/harnesses/shared/hooks/policies/deny-json.sh +29 -0
- package/core/harnesses/shared/hooks/policies/lib.sh +501 -0
- package/core/harnesses/shared/hooks/policies/mcp-policy.conf +21 -0
- package/core/harnesses/shared/hooks/policies/mcp-tool-guard.sh +91 -0
- package/core/harnesses/shared/hooks/policies/pre-bash-guard.sh +328 -0
- package/core/harnesses/shared/hooks/policies/pre-implementation-gate.sh +496 -0
- package/core/harnesses/shared/hooks/policies/prompt-nudge.jq +131 -0
- package/core/harnesses/shared/hooks/policies/session-context.sh +141 -0
- package/core/harnesses/shared/hooks/policies/stop-check.sh +264 -0
- package/core/harnesses/shared/hooks/policies/subagent-audit.sh +46 -0
- package/core/harnesses/shared/hooks/policies/user-prompt-submit.sh +235 -0
- package/core/harnesses/shared/hooks/stream-hook-runner.js +590 -0
- package/core/harnesses/shared/locator/doflow-run +87 -0
- package/core/registry/advice.json +101 -0
- package/core/registry/assets.json +792 -0
- package/core/registry/capabilities.json +120 -0
- package/core/registry/contracts.json +189 -0
- package/core/registry/external-tools.json +191 -0
- package/core/registry/harnesses.json +2062 -0
- package/core/registry/lifecycle.json +231 -0
- package/core/registry/mcp.json +18 -0
- package/core/registry/models.json +79 -0
- package/core/registry/readiness-templates.json +118 -0
- package/core/registry/routes.json +47 -0
- package/core/registry/storage.json +1057 -0
- package/core/registry/verification.json +258 -0
- package/core/registry/workflows.json +790 -0
- package/core/shared/agent-specs/core-implementer.md +73 -0
- package/core/shared/agent-specs/quality-guardian.md +28 -0
- package/core/shared/agent-specs/research-writer.md +31 -0
- package/core/shared/agent-specs/spec-analyst.md +33 -0
- package/core/shared/agent-specs/system-architect.md +29 -0
- package/core/shared/guidance/DOFLOW_CORE.md +8 -0
- package/core/shared/guidance/FLAGS.md +25 -0
- package/core/shared/guidance/PRINCIPLES.md +61 -0
- package/core/shared/guidance/VERSION +1 -0
- package/core/shared/guidance/mcp/MCP_Context7.md +18 -0
- package/core/shared/guidance/mcp/MCP_Sequential.md +17 -0
- package/core/shared/guidance/modes/MODE_Brainstorming.md +46 -0
- package/core/shared/guidance/modes/MODE_DeepResearch.md +69 -0
- package/core/shared/guidance/modes/MODE_Introspection.md +33 -0
- package/core/shared/guidance/modes/MODE_Orchestration.md +57 -0
- package/core/shared/guidance/modes/MODE_Task_Management.md +74 -0
- package/core/shared/guidance/pointers/claude-gemini.md +2 -0
- package/core/shared/guidance/pointers/codex.md +6 -0
- package/core/shared/guidance/references/ARTIFACT_FORMAT.md +373 -0
- package/core/shared/guidance/references/ARTIFACT_VOICE.md +104 -0
- package/core/shared/guidance/references/CONSTITUTION_BASE.md +47 -0
- package/core/shared/guidance/references/DIAGRAM_GUIDE.md +161 -0
- package/core/shared/guidance/references/DOFLOW_CHAIN.md +87 -0
- package/core/shared/guidance/references/EVIDENCE_LEDGER.md +93 -0
- package/core/shared/guidance/references/MODEL_SELECTION.md +74 -0
- package/core/shared/guidance/references/ORCHESTRATION.md +36 -0
- package/core/shared/guidance/references/RESEARCH_CONFIG.md +21 -0
- package/core/shared/guidance/references/WORKFLOW_HANDOFF.md +81 -0
- package/core/shared/guidance/rules/RULE_01_SAFETY.md +25 -0
- package/core/shared/guidance/rules/RULE_02_WORKFLOW.md +23 -0
- package/core/shared/guidance/rules/RULE_03_QUALITY.md +14 -0
- package/core/shared/guidance/rules/RULE_04_QUESTIONS.md +46 -0
- package/core/shared/scripts/doflow/assets/mermaid-theme.json +46 -0
- package/core/shared/scripts/doflow/bash/do-exec-paths.sh +167 -0
- package/core/shared/scripts/doflow/bash/do-git-state.sh +546 -0
- package/core/shared/scripts/doflow/bash/do-parallel-check.sh +208 -0
- package/core/shared/scripts/doflow/bash/do-paths.sh +347 -0
- package/core/shared/scripts/doflow/bash/do-prereqs.sh +66 -0
- package/core/shared/scripts/doflow/bash/do-review-package.sh +127 -0
- package/core/shared/scripts/doflow/bash/do-task-brief.sh +698 -0
- package/core/shared/scripts/doflow/bash/render-audit.sh +224 -0
- package/core/shared/scripts/doflow/bash/render-diagrams.sh +177 -0
- package/core/shared/scripts/doflow/bash/render-puml.sh +223 -0
- package/core/shared/scripts/doflow/bash/sync-context.sh +66 -0
- package/core/shared/scripts/doflow/bash/validate-artifacts.sh +526 -0
- package/core/shared/scripts/doflow/bin/doflow-run +592 -0
- package/core/shared/skills/do/SKILL.md +128 -0
- package/core/shared/skills/do/references/estimation.md +13 -0
- package/core/shared/skills/do/references/pm_routing.md +25 -0
- package/core/shared/skills/do/references/tool_matrix.md +52 -0
- package/core/shared/skills/do-brainstorm/SKILL.md +252 -0
- package/core/shared/skills/do-code-review/README.md +49 -0
- package/core/shared/skills/do-code-review/SKILL.md +333 -0
- package/core/shared/skills/do-code-review/assets/sample_c_clean.c +71 -0
- package/core/shared/skills/do-code-review/assets/sample_c_smells.c +66 -0
- package/core/shared/skills/do-code-review/assets/sample_cpp_shift.cpp +19 -0
- package/core/shared/skills/do-code-review/assets/sample_csharp_clean.cs +100 -0
- package/core/shared/skills/do-code-review/assets/sample_csharp_smells.cs +78 -0
- package/core/shared/skills/do-code-review/assets/sample_java_clean.java +55 -0
- package/core/shared/skills/do-code-review/assets/sample_java_smells.java +56 -0
- package/core/shared/skills/do-code-review/assets/sample_json_clean.json +7 -0
- package/core/shared/skills/do-code-review/assets/sample_markdown_clean.md +30 -0
- package/core/shared/skills/do-code-review/assets/sample_markdown_smells.md +29 -0
- package/core/shared/skills/do-code-review/assets/sample_shell_heredoc.sh +38 -0
- package/core/shared/skills/do-code-review/assets/sample_shell_smells.sh +15 -0
- package/core/shared/skills/do-code-review/assets/sample_typescript_strings.ts +36 -0
- package/core/shared/skills/do-code-review/assets/sample_yaml_smells.yaml +6 -0
- package/core/shared/skills/do-code-review/content-types/config.md +83 -0
- package/core/shared/skills/do-code-review/content-types/markdown.md +132 -0
- package/core/shared/skills/do-code-review/expected_outputs/sample_c_clean_quality.json +79 -0
- package/core/shared/skills/do-code-review/expected_outputs/sample_c_smells_quality.json +169 -0
- package/core/shared/skills/do-code-review/expected_outputs/sample_cpp_shift_quality.json +49 -0
- package/core/shared/skills/do-code-review/expected_outputs/sample_csharp_clean_quality.json +149 -0
- package/core/shared/skills/do-code-review/expected_outputs/sample_csharp_smells_quality.json +157 -0
- package/core/shared/skills/do-code-review/expected_outputs/sample_java_clean_quality.json +67 -0
- package/core/shared/skills/do-code-review/expected_outputs/sample_java_smells_quality.json +97 -0
- package/core/shared/skills/do-code-review/expected_outputs/sample_json_clean_quality.json +33 -0
- package/core/shared/skills/do-code-review/expected_outputs/sample_markdown_clean_quality.json +1 -0
- package/core/shared/skills/do-code-review/expected_outputs/sample_markdown_smells_quality.json +16 -0
- package/core/shared/skills/do-code-review/expected_outputs/sample_shell_heredoc_quality.json +54 -0
- package/core/shared/skills/do-code-review/expected_outputs/sample_shell_smells_quality.json +91 -0
- package/core/shared/skills/do-code-review/expected_outputs/sample_typescript_strings_quality.json +60 -0
- package/core/shared/skills/do-code-review/expected_outputs/sample_yaml_smells_quality.json +46 -0
- package/core/shared/skills/do-code-review/languages/c.md +103 -0
- package/core/shared/skills/do-code-review/languages/cpp.md +103 -0
- package/core/shared/skills/do-code-review/languages/csharp.md +97 -0
- package/core/shared/skills/do-code-review/languages/dart.md +108 -0
- package/core/shared/skills/do-code-review/languages/go.md +92 -0
- package/core/shared/skills/do-code-review/languages/java.md +103 -0
- package/core/shared/skills/do-code-review/languages/kotlin.md +88 -0
- package/core/shared/skills/do-code-review/languages/php.md +109 -0
- package/core/shared/skills/do-code-review/languages/python.md +94 -0
- package/core/shared/skills/do-code-review/languages/ruby.md +105 -0
- package/core/shared/skills/do-code-review/languages/rust.md +99 -0
- package/core/shared/skills/do-code-review/languages/shell.md +90 -0
- package/core/shared/skills/do-code-review/languages/swift.md +88 -0
- package/core/shared/skills/do-code-review/languages/typescript.md +97 -0
- package/core/shared/skills/do-code-review/review-policy.json +47 -0
- package/core/shared/skills/do-code-review/rules/universal.md +49 -0
- package/core/shared/skills/do-code-review/scripts/code_quality_checker.py +1696 -0
- package/core/shared/skills/do-code-review/scripts/doc_quality_checker.py +532 -0
- package/core/shared/skills/do-code-review/scripts/pr_analyzer.py +620 -0
- package/core/shared/skills/do-code-review/scripts/review_report_generator.py +505 -0
- package/core/shared/skills/do-constitution/SKILL.md +72 -0
- package/core/shared/skills/do-design/SKILL.md +212 -0
- package/core/shared/skills/do-diagnose/SKILL.md +156 -0
- package/core/shared/skills/do-diagnose/references/code_audit.md +15 -0
- package/core/shared/skills/do-diagnose/references/refactoring.md +12 -0
- package/core/shared/skills/do-diagnose/references/root_cause.md +17 -0
- package/core/shared/skills/do-document/SKILL.md +81 -0
- package/core/shared/skills/do-document/references/api-reference.md +42 -0
- package/core/shared/skills/do-document/references/deep_research.md +18 -0
- package/core/shared/skills/do-document/references/embedded-research.md +11 -0
- package/core/shared/skills/do-document/references/implementation-flow.md +105 -0
- package/core/shared/skills/do-document/references/index_generator.md +9 -0
- package/core/shared/skills/do-document/references/user-guide.md +22 -0
- package/core/shared/skills/do-execute-plan/SKILL.md +261 -0
- package/core/shared/skills/do-execute-plan/references/handoff_record.md +57 -0
- package/core/shared/skills/do-execute-plan/references/parallel_dispatch.md +92 -0
- package/core/shared/skills/do-execute-plan/references/readiness_gate.md +155 -0
- package/core/shared/skills/do-execute-plan/references/run_position.md +63 -0
- package/core/shared/skills/do-execute-plan/references/scaffold.md +441 -0
- package/core/shared/skills/do-execute-plan/references/task_attempts.md +41 -0
- package/core/shared/skills/do-flow/SKILL.md +186 -0
- package/core/shared/skills/do-flow/references/task_classes.md +134 -0
- package/core/shared/skills/do-git/SKILL.md +115 -0
- package/core/shared/skills/do-git/references/hotfix-ritual.md +44 -0
- package/core/shared/skills/do-git/references/lifecycle-policy.md +54 -0
- package/core/shared/skills/do-git/references/release-ritual.md +64 -0
- package/core/shared/skills/do-implement/SKILL.md +222 -0
- package/core/shared/skills/do-plan/SKILL.md +219 -0
- package/core/shared/skills/do-test/SKILL.md +113 -0
- package/core/shared/templates/doflow/constitution-template.md +28 -0
- package/core/shared/templates/doflow/data-model-template.md +169 -0
- package/core/shared/templates/doflow/design-template.md +193 -0
- package/core/shared/templates/doflow/external-contract-template.md +35 -0
- package/core/shared/templates/doflow/intent-template.md +45 -0
- package/core/shared/templates/doflow/plan-template.md +151 -0
- package/core/shared/templates/doflow/question-log-template.md +51 -0
- package/core/shared/templates/doflow/requirement-template.md +126 -0
- package/core/shared/templates/doflow/specs-template.md +55 -0
- package/core/shared/templates/doflow/state-template.md +59 -0
- package/core/shared/workflows/do-flow-chain.md +17 -0
- package/package.json +46 -4
- package/src/adapters/antigravity/index.ts +631 -0
- package/src/adapters/claude/index.ts +548 -0
- package/src/adapters/claude/mcp.ts +94 -0
- package/src/adapters/codex/agents.ts +208 -0
- package/src/adapters/codex/config.ts +272 -0
- package/src/adapters/codex/hooks.ts +203 -0
- package/src/adapters/codex/index.ts +707 -0
- package/src/adapters/codex/mcp.ts +271 -0
- package/src/adapters/codex/native-projection.ts +34 -0
- package/src/adapters/copilot/index.ts +413 -0
- package/src/adapters/copy-tree.ts +620 -0
- package/src/adapters/gemini/hooks.ts +210 -0
- package/src/adapters/gemini/index.ts +390 -0
- package/src/adapters/hook-commands.ts +60 -0
- package/src/adapters/index.ts +106 -0
- package/src/adapters/kiro/index.ts +310 -0
- package/src/adapters/mcp-entries.ts +331 -0
- package/src/adapters/opencode/index.ts +466 -0
- package/src/adapters/pi/index.ts +279 -0
- package/src/adapters/pi/json-members.ts +185 -0
- package/src/adapters/pi/mcp.ts +373 -0
- package/src/adapters/resolve-source.ts +19 -0
- package/src/cli/commands/install.ts +218 -0
- package/src/cli/commands/list-backups.ts +21 -0
- package/src/cli/commands/reconcile.ts +120 -0
- package/src/cli/commands/remove.ts +82 -0
- package/src/cli/commands/rollback.ts +172 -0
- package/src/cli/commands/self-update.ts +33 -0
- package/src/cli/commands/status.ts +138 -0
- package/src/cli/commands/tools.ts +92 -0
- package/src/cli/commands/update.ts +162 -0
- package/src/cli/index.ts +568 -0
- package/src/cli/runtime-commands.ts +281 -0
- package/src/cli/shared.ts +218 -0
- package/src/helper/bash-helper.ts +34 -0
- package/src/helper/git.ts +24 -0
- package/src/helper/guardrails.ts +49 -0
- package/src/helper/harness-paths.ts +140 -0
- package/src/helper/marker-merge.ts +116 -0
- package/src/helper/prompt.ts +61 -0
- package/src/helper/repo-root.ts +29 -0
- package/src/helper/settings-merge.ts +151 -0
- package/src/helper/settings-scope.ts +33 -0
- package/src/helper/toml.ts +244 -0
- package/src/install/backup-set.ts +149 -0
- package/src/install/backup.ts +724 -0
- package/src/install/context.ts +58 -0
- package/src/install/manifest.ts +145 -0
- package/src/install/mcp.ts +254 -0
- package/src/install/paths.ts +84 -0
- package/src/install/targets.ts +90 -0
- package/src/install/tool-lifecycle.ts +151 -0
- package/src/lifecycle/bash-availability.ts +25 -0
- package/src/lifecycle/index.ts +812 -0
- package/src/lifecycle/mcp-index.ts +28 -0
- package/src/lifecycle/policies.ts +73 -0
- package/src/lifecycle/view.ts +175 -0
- package/src/registry/index.ts +611 -0
- package/src/release/sync-plugin-versions.ts +66 -0
- package/src/runtime/advice/cli.ts +283 -0
- package/src/runtime/advice/client.ts +324 -0
- package/src/runtime/advice/config.ts +189 -0
- package/src/runtime/advice/doctor.ts +169 -0
- package/src/runtime/advice/endpoint-guard.ts +134 -0
- package/src/runtime/advice/kinds.ts +154 -0
- package/src/runtime/advice/providers/ollama-systemone.ts +209 -0
- package/src/runtime/advice/record.ts +166 -0
- package/src/runtime/advice/registry.ts +170 -0
- package/src/runtime/advice/strength.ts +66 -0
- package/src/runtime/brief-tools.ts +342 -0
- package/src/runtime/c4-project.ts +371 -0
- package/src/runtime/capability-router.ts +484 -0
- package/src/runtime/checkouts.ts +170 -0
- package/src/runtime/claims.ts +468 -0
- package/src/runtime/cli-result.ts +55 -0
- package/src/runtime/cli.ts +678 -0
- package/src/runtime/command-detect.ts +516 -0
- package/src/runtime/context-pack.ts +492 -0
- package/src/runtime/decision-register.ts +493 -0
- package/src/runtime/evidence-ledger.ts +338 -0
- package/src/runtime/failure/capture.ts +272 -0
- package/src/runtime/failure/classifier.ts +68 -0
- package/src/runtime/failure/cli.ts +178 -0
- package/src/runtime/failure/home.ts +64 -0
- package/src/runtime/failure/store.ts +226 -0
- package/src/runtime/feature-resolve.ts +79 -0
- package/src/runtime/freshness.ts +177 -0
- package/src/runtime/health.ts +863 -0
- package/src/runtime/history-compactor.ts +237 -0
- package/src/runtime/implementation-gate.ts +321 -0
- package/src/runtime/inventory/coverage.ts +218 -0
- package/src/runtime/inventory/identity.ts +65 -0
- package/src/runtime/inventory/index.ts +705 -0
- package/src/runtime/inventory/precedence.ts +134 -0
- package/src/runtime/inventory/read-scopes.ts +131 -0
- package/src/runtime/inventory/siblings.ts +192 -0
- package/src/runtime/knowledge/chunker.ts +124 -0
- package/src/runtime/knowledge/hybrid.ts +149 -0
- package/src/runtime/knowledge/index-store.ts +145 -0
- package/src/runtime/knowledge/retrieval.ts +194 -0
- package/src/runtime/leak-scan.ts +185 -0
- package/src/runtime/lifecycle/cli.ts +276 -0
- package/src/runtime/lifecycle/event-store.ts +340 -0
- package/src/runtime/lifecycle/fold.ts +353 -0
- package/src/runtime/lifecycle/followup.ts +432 -0
- package/src/runtime/lifecycle/goal.ts +249 -0
- package/src/runtime/lifecycle/intent-writer.ts +86 -0
- package/src/runtime/lifecycle/overview.ts +292 -0
- package/src/runtime/lifecycle/release.ts +241 -0
- package/src/runtime/lifecycle/report-store.ts +221 -0
- package/src/runtime/lifecycle/retention.ts +212 -0
- package/src/runtime/lifecycle/root.ts +71 -0
- package/src/runtime/lifecycle/status.ts +353 -0
- package/src/runtime/lifecycle/store-upkeep.ts +393 -0
- package/src/runtime/locator-resolve.ts +158 -0
- package/src/runtime/mask.ts +210 -0
- package/src/runtime/mcp-consultations.ts +412 -0
- package/src/runtime/mcp-reach.ts +157 -0
- package/src/runtime/model-router.ts +153 -0
- package/src/runtime/outcome.ts +467 -0
- package/src/runtime/reach.ts +148 -0
- package/src/runtime/readiness-record.ts +150 -0
- package/src/runtime/readiness.ts +435 -0
- package/src/runtime/recovery.ts +282 -0
- package/src/runtime/research-request.ts +231 -0
- package/src/runtime/retrieval-plan.ts +578 -0
- package/src/runtime/scaffold/artifacts.ts +217 -0
- package/src/runtime/scaffold/fingerprint.ts +56 -0
- package/src/runtime/scaffold/generate.ts +911 -0
- package/src/runtime/scaffold/languages.ts +245 -0
- package/src/runtime/storage/cli.ts +64 -0
- package/src/runtime/storage/engine.ts +249 -0
- package/src/runtime/storage/registry.ts +130 -0
- package/src/runtime/storage/roots.ts +63 -0
- package/src/runtime/storage/rules.ts +282 -0
- package/src/runtime/storage/upkeep.ts +243 -0
- package/src/runtime/storage/work-status.ts +326 -0
- package/src/runtime/task-attempts.ts +415 -0
- package/src/runtime/task-classifier.ts +550 -0
- package/src/runtime/task-scope.ts +130 -0
- package/src/runtime/task-state.ts +176 -0
- package/src/runtime/trace/indicators.ts +235 -0
- package/src/runtime/trace/ledger.ts +626 -0
- package/src/runtime/trace/render.ts +76 -0
- package/src/runtime/trace/views.ts +459 -0
- package/src/runtime/verification/contract-runner.ts +341 -0
- package/src/runtime/verification/engine.ts +1461 -0
- package/src/runtime/verification/registry.ts +130 -0
- package/src/runtime/verification/scope-bound.ts +418 -0
- package/src/runtime/verification/test-selection.ts +172 -0
- package/src/runtime/workflow-engine.ts +588 -0
- package/src/runtime/workflow-orchestrator.ts +953 -0
- package/src/runtime/worktree.ts +340 -0
- package/src/state/index.ts +193 -0
- package/src/state/lockfile.ts +136 -0
- package/src/state/run-lock.ts +408 -0
- package/types/node-commonjs.d.ts +68 -0
- 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,48 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@khoavu882/doflow",
|
|
3
|
-
"version": "
|
|
4
|
-
"
|
|
5
|
-
"
|
|
6
|
-
|
|
3
|
+
"version": "2.0.0-beta.3",
|
|
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
|
+
"bench": "node bench/runner.js",
|
|
35
|
+
"drift": "node scripts/check-format-drift.js",
|
|
36
|
+
"version": "node src/release/sync-plugin-versions.ts && git add core/.codex-plugin/plugin.json core/.claude-plugin/plugin.json core/.plugin/plugin.json"
|
|
37
|
+
},
|
|
38
|
+
"files": [
|
|
39
|
+
"bin/",
|
|
40
|
+
"src/",
|
|
41
|
+
"core/",
|
|
42
|
+
"types/"
|
|
43
|
+
],
|
|
44
|
+
"publishConfig": {
|
|
45
|
+
"access": "public"
|
|
46
|
+
},
|
|
47
|
+
"license": "MIT"
|
|
48
|
+
}
|