drt-method 1.0.0
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/AGENTS.md +45 -0
- package/GETTING-STARTED.md +269 -0
- package/README.md +233 -0
- package/drt-method-1.0.0.tgz +0 -0
- package/drt-modules.yaml +1 -0
- package/package.json +51 -0
- package/scripts/install-from-github.ps1 +22 -0
- package/scripts/install-from-github.sh +17 -0
- package/src/core-skills/drt-advanced-elicitation/SKILL.md +142 -0
- package/src/core-skills/drt-advanced-elicitation/methods.csv +72 -0
- package/src/core-skills/drt-brainstorming/SKILL.md +80 -0
- package/src/core-skills/drt-brainstorming/assets/brain-icons.json +166 -0
- package/src/core-skills/drt-brainstorming/assets/brain-methods.csv +109 -0
- package/src/core-skills/drt-brainstorming/assets/brain-selector.html +326 -0
- package/src/core-skills/drt-brainstorming/customize.toml +84 -0
- package/src/core-skills/drt-brainstorming/references/converge.md +24 -0
- package/src/core-skills/drt-brainstorming/references/finalize.md +26 -0
- package/src/core-skills/drt-brainstorming/references/headless.md +54 -0
- package/src/core-skills/drt-brainstorming/references/in-chat-techniques.md +18 -0
- package/src/core-skills/drt-brainstorming/references/mode-autonomous.md +10 -0
- package/src/core-skills/drt-brainstorming/references/mode-facilitator.md +11 -0
- package/src/core-skills/drt-brainstorming/references/mode-partner.md +16 -0
- package/src/core-skills/drt-brainstorming/references/resume.md +5 -0
- package/src/core-skills/drt-brainstorming/scripts/brain.py +740 -0
- package/src/core-skills/drt-customize/SKILL.md +111 -0
- package/src/core-skills/drt-customize/scripts/list_customizable_skills.py +231 -0
- package/src/core-skills/drt-editorial-review-prose/SKILL.md +86 -0
- package/src/core-skills/drt-editorial-review-structure/SKILL.md +179 -0
- package/src/core-skills/drt-forge-idea/SKILL.md +107 -0
- package/src/core-skills/drt-forge-idea/customize.toml +42 -0
- package/src/core-skills/drt-forge-idea/scripts/resolve_personas.py +270 -0
- package/src/core-skills/drt-help/SKILL.md +75 -0
- package/src/core-skills/drt-index-docs/SKILL.md +66 -0
- package/src/core-skills/drt-party-mode/SKILL.md +60 -0
- package/src/core-skills/drt-party-mode/customize.toml +211 -0
- package/src/core-skills/drt-party-mode/references/create-party.md +70 -0
- package/src/core-skills/drt-party-mode/references/mode-agent-team.md +13 -0
- package/src/core-skills/drt-party-mode/references/mode-auto.md +13 -0
- package/src/core-skills/drt-party-mode/references/mode-subagent.md +31 -0
- package/src/core-skills/drt-party-mode/references/party-memory.md +51 -0
- package/src/core-skills/drt-party-mode/scripts/resolve_party.py +272 -0
- package/src/core-skills/drt-review-adversarial-general/SKILL.md +37 -0
- package/src/core-skills/drt-review-edge-case-hunter/SKILL.md +73 -0
- package/src/core-skills/drt-review-edge-case-hunter/references/deletion-check.md +14 -0
- package/src/core-skills/drt-review-verification-gap/SKILL.md +106 -0
- package/src/core-skills/drt-shard-doc/SKILL.md +105 -0
- package/src/core-skills/drt-spec/SKILL.md +160 -0
- package/src/core-skills/drt-spec/assets/headless-schemas.md +33 -0
- package/src/core-skills/drt-spec/assets/spec-template.md +49 -0
- package/src/core-skills/drt-spec/assets/stories-schema.md +44 -0
- package/src/core-skills/drt-spec/customize.toml +53 -0
- package/src/core-skills/module-help.csv +14 -0
- package/src/core-skills/module.yaml +33 -0
- package/src/drt-skills/1-analysis/drt-agent-analyst/SKILL.md +76 -0
- package/src/drt-skills/1-analysis/drt-agent-analyst/customize.toml +90 -0
- package/src/drt-skills/1-analysis/drt-agent-tech-writer/SKILL.md +76 -0
- package/src/drt-skills/1-analysis/drt-agent-tech-writer/customize.toml +81 -0
- package/src/drt-skills/1-analysis/drt-agent-tech-writer/explain-concept.md +20 -0
- package/src/drt-skills/1-analysis/drt-agent-tech-writer/mermaid-gen.md +20 -0
- package/src/drt-skills/1-analysis/drt-agent-tech-writer/validate-doc.md +19 -0
- package/src/drt-skills/1-analysis/drt-agent-tech-writer/write-document.md +20 -0
- package/src/drt-skills/1-analysis/drt-document-project/SKILL.md +62 -0
- package/src/drt-skills/1-analysis/drt-document-project/checklist.md +245 -0
- package/src/drt-skills/1-analysis/drt-document-project/customize.toml +41 -0
- package/src/drt-skills/1-analysis/drt-document-project/documentation-requirements.csv +12 -0
- package/src/drt-skills/1-analysis/drt-document-project/instructions.md +128 -0
- package/src/drt-skills/1-analysis/drt-document-project/templates/deep-dive-template.md +345 -0
- package/src/drt-skills/1-analysis/drt-document-project/templates/index-template.md +169 -0
- package/src/drt-skills/1-analysis/drt-document-project/templates/project-overview-template.md +103 -0
- package/src/drt-skills/1-analysis/drt-document-project/templates/project-scan-report-schema.json +160 -0
- package/src/drt-skills/1-analysis/drt-document-project/templates/source-tree-template.md +135 -0
- package/src/drt-skills/1-analysis/drt-document-project/workflows/deep-dive-instructions.md +300 -0
- package/src/drt-skills/1-analysis/drt-document-project/workflows/deep-dive-workflow.md +34 -0
- package/src/drt-skills/1-analysis/drt-document-project/workflows/full-scan-instructions.md +1111 -0
- package/src/drt-skills/1-analysis/drt-document-project/workflows/full-scan-workflow.md +34 -0
- package/src/drt-skills/1-analysis/drt-prfaq/SKILL.md +135 -0
- package/src/drt-skills/1-analysis/drt-prfaq/agents/artifact-analyzer.md +60 -0
- package/src/drt-skills/1-analysis/drt-prfaq/agents/web-researcher.md +49 -0
- package/src/drt-skills/1-analysis/drt-prfaq/assets/prfaq-template.md +62 -0
- package/src/drt-skills/1-analysis/drt-prfaq/bmad-manifest.json +16 -0
- package/src/drt-skills/1-analysis/drt-prfaq/customize.toml +41 -0
- package/src/drt-skills/1-analysis/drt-prfaq/references/customer-faq.md +55 -0
- package/src/drt-skills/1-analysis/drt-prfaq/references/internal-faq.md +51 -0
- package/src/drt-skills/1-analysis/drt-prfaq/references/press-release.md +60 -0
- package/src/drt-skills/1-analysis/drt-prfaq/references/verdict.md +83 -0
- package/src/drt-skills/1-analysis/drt-product-brief/SKILL.md +91 -0
- package/src/drt-skills/1-analysis/drt-product-brief/assets/brief-template.md +41 -0
- package/src/drt-skills/1-analysis/drt-product-brief/customize.toml +99 -0
- package/src/drt-skills/1-analysis/research/drt-domain-research/SKILL.md +96 -0
- package/src/drt-skills/1-analysis/research/drt-domain-research/customize.toml +41 -0
- package/src/drt-skills/1-analysis/research/drt-domain-research/domain-steps/step-01-init.md +137 -0
- package/src/drt-skills/1-analysis/research/drt-domain-research/domain-steps/step-02-domain-analysis.md +229 -0
- package/src/drt-skills/1-analysis/research/drt-domain-research/domain-steps/step-03-competitive-landscape.md +238 -0
- package/src/drt-skills/1-analysis/research/drt-domain-research/domain-steps/step-04-regulatory-focus.md +206 -0
- package/src/drt-skills/1-analysis/research/drt-domain-research/domain-steps/step-05-technical-trends.md +234 -0
- package/src/drt-skills/1-analysis/research/drt-domain-research/domain-steps/step-06-research-synthesis.md +450 -0
- package/src/drt-skills/1-analysis/research/drt-domain-research/research.template.md +29 -0
- package/src/drt-skills/1-analysis/research/drt-market-research/SKILL.md +96 -0
- package/src/drt-skills/1-analysis/research/drt-market-research/customize.toml +41 -0
- package/src/drt-skills/1-analysis/research/drt-market-research/research.template.md +29 -0
- package/src/drt-skills/1-analysis/research/drt-market-research/steps/step-01-init.md +184 -0
- package/src/drt-skills/1-analysis/research/drt-market-research/steps/step-02-customer-behavior.md +239 -0
- package/src/drt-skills/1-analysis/research/drt-market-research/steps/step-03-customer-pain-points.md +251 -0
- package/src/drt-skills/1-analysis/research/drt-market-research/steps/step-04-customer-decisions.md +261 -0
- package/src/drt-skills/1-analysis/research/drt-market-research/steps/step-05-competitive-analysis.md +173 -0
- package/src/drt-skills/1-analysis/research/drt-market-research/steps/step-06-research-completion.md +484 -0
- package/src/drt-skills/1-analysis/research/drt-technical-research/SKILL.md +96 -0
- package/src/drt-skills/1-analysis/research/drt-technical-research/customize.toml +41 -0
- package/src/drt-skills/1-analysis/research/drt-technical-research/research.template.md +29 -0
- package/src/drt-skills/1-analysis/research/drt-technical-research/technical-steps/step-01-init.md +137 -0
- package/src/drt-skills/1-analysis/research/drt-technical-research/technical-steps/step-02-technical-overview.md +239 -0
- package/src/drt-skills/1-analysis/research/drt-technical-research/technical-steps/step-03-integration-patterns.md +248 -0
- package/src/drt-skills/1-analysis/research/drt-technical-research/technical-steps/step-04-architectural-patterns.md +202 -0
- package/src/drt-skills/1-analysis/research/drt-technical-research/technical-steps/step-05-implementation-research.md +233 -0
- package/src/drt-skills/1-analysis/research/drt-technical-research/technical-steps/step-06-research-synthesis.md +493 -0
- package/src/drt-skills/2-plan-workflows/drt-agent-pm/SKILL.md +76 -0
- package/src/drt-skills/2-plan-workflows/drt-agent-pm/customize.toml +75 -0
- package/src/drt-skills/2-plan-workflows/drt-agent-ux-designer/SKILL.md +76 -0
- package/src/drt-skills/2-plan-workflows/drt-agent-ux-designer/customize.toml +60 -0
- package/src/drt-skills/2-plan-workflows/drt-create-prd/SKILL.md +30 -0
- package/src/drt-skills/2-plan-workflows/drt-create-prd/customize.toml +41 -0
- package/src/drt-skills/2-plan-workflows/drt-edit-prd/SKILL.md +30 -0
- package/src/drt-skills/2-plan-workflows/drt-edit-prd/customize.toml +42 -0
- package/src/drt-skills/2-plan-workflows/drt-prd/SKILL.md +92 -0
- package/src/drt-skills/2-plan-workflows/drt-prd/assets/headless-schemas.md +76 -0
- package/src/drt-skills/2-plan-workflows/drt-prd/assets/prd-template.md +165 -0
- package/src/drt-skills/2-plan-workflows/drt-prd/assets/prd-validation-checklist.md +135 -0
- package/src/drt-skills/2-plan-workflows/drt-prd/assets/validation-report-template.html +325 -0
- package/src/drt-skills/2-plan-workflows/drt-prd/customize.toml +147 -0
- package/src/drt-skills/2-plan-workflows/drt-prd/references/headless.md +39 -0
- package/src/drt-skills/2-plan-workflows/drt-prd/references/validate.md +97 -0
- package/src/drt-skills/2-plan-workflows/drt-ux/SKILL.md +90 -0
- package/src/drt-skills/2-plan-workflows/drt-ux/assets/color-themes.md +9 -0
- package/src/drt-skills/2-plan-workflows/drt-ux/assets/design-directions.md +9 -0
- package/src/drt-skills/2-plan-workflows/drt-ux/assets/design-example-editorial.md +158 -0
- package/src/drt-skills/2-plan-workflows/drt-ux/assets/design-example-mobile.md +93 -0
- package/src/drt-skills/2-plan-workflows/drt-ux/assets/design-example-shadcn.md +109 -0
- package/src/drt-skills/2-plan-workflows/drt-ux/assets/excalidraw-wireframe.md +19 -0
- package/src/drt-skills/2-plan-workflows/drt-ux/assets/experience-example-mobile.md +112 -0
- package/src/drt-skills/2-plan-workflows/drt-ux/assets/experience-example-shadcn.md +133 -0
- package/src/drt-skills/2-plan-workflows/drt-ux/assets/headless-schemas.md +84 -0
- package/src/drt-skills/2-plan-workflows/drt-ux/assets/key-screens.md +29 -0
- package/src/drt-skills/2-plan-workflows/drt-ux/assets/validation-report-template.html +319 -0
- package/src/drt-skills/2-plan-workflows/drt-ux/customize.toml +100 -0
- package/src/drt-skills/2-plan-workflows/drt-ux/references/creative-tools.md +19 -0
- package/src/drt-skills/2-plan-workflows/drt-ux/references/design-md-spec.md +50 -0
- package/src/drt-skills/2-plan-workflows/drt-ux/references/headless.md +37 -0
- package/src/drt-skills/2-plan-workflows/drt-ux/references/validate.md +115 -0
- package/src/drt-skills/2-plan-workflows/drt-validate-prd/SKILL.md +30 -0
- package/src/drt-skills/2-plan-workflows/drt-validate-prd/customize.toml +42 -0
- package/src/drt-skills/3-solutioning/drt-agent-architect/SKILL.md +76 -0
- package/src/drt-skills/3-solutioning/drt-agent-architect/customize.toml +65 -0
- package/src/drt-skills/3-solutioning/drt-architecture/SKILL.md +85 -0
- package/src/drt-skills/3-solutioning/drt-architecture/assets/spine-template.md +79 -0
- package/src/drt-skills/3-solutioning/drt-architecture/customize.toml +100 -0
- package/src/drt-skills/3-solutioning/drt-architecture/references/headless.md +26 -0
- package/src/drt-skills/3-solutioning/drt-architecture/references/reviewer-gate.md +13 -0
- package/src/drt-skills/3-solutioning/drt-architecture/scripts/lint_spine.py +257 -0
- package/src/drt-skills/3-solutioning/drt-check-implementation-readiness/SKILL.md +91 -0
- package/src/drt-skills/3-solutioning/drt-check-implementation-readiness/customize.toml +41 -0
- package/src/drt-skills/3-solutioning/drt-check-implementation-readiness/steps/step-01-document-discovery.md +179 -0
- package/src/drt-skills/3-solutioning/drt-check-implementation-readiness/steps/step-02-prd-analysis.md +168 -0
- package/src/drt-skills/3-solutioning/drt-check-implementation-readiness/steps/step-03-epic-coverage-validation.md +169 -0
- package/src/drt-skills/3-solutioning/drt-check-implementation-readiness/steps/step-04-ux-alignment.md +129 -0
- package/src/drt-skills/3-solutioning/drt-check-implementation-readiness/steps/step-05-epic-quality-review.md +241 -0
- package/src/drt-skills/3-solutioning/drt-check-implementation-readiness/steps/step-06-final-assessment.md +132 -0
- package/src/drt-skills/3-solutioning/drt-check-implementation-readiness/templates/readiness-report-template.md +4 -0
- package/src/drt-skills/3-solutioning/drt-create-architecture/SKILL.md +30 -0
- package/src/drt-skills/3-solutioning/drt-create-architecture/customize.toml +41 -0
- package/src/drt-skills/3-solutioning/drt-create-epics-and-stories/SKILL.md +93 -0
- package/src/drt-skills/3-solutioning/drt-create-epics-and-stories/customize.toml +41 -0
- package/src/drt-skills/3-solutioning/drt-create-epics-and-stories/steps/step-01-validate-prerequisites.md +263 -0
- package/src/drt-skills/3-solutioning/drt-create-epics-and-stories/steps/step-02-design-epics.md +242 -0
- package/src/drt-skills/3-solutioning/drt-create-epics-and-stories/steps/step-03-create-stories.md +255 -0
- package/src/drt-skills/3-solutioning/drt-create-epics-and-stories/steps/step-04-final-validation.md +143 -0
- package/src/drt-skills/3-solutioning/drt-create-epics-and-stories/templates/epics-template.md +61 -0
- package/src/drt-skills/3-solutioning/drt-generate-project-context/SKILL.md +81 -0
- package/src/drt-skills/3-solutioning/drt-generate-project-context/customize.toml +41 -0
- package/src/drt-skills/3-solutioning/drt-generate-project-context/project-context-template.md +21 -0
- package/src/drt-skills/3-solutioning/drt-generate-project-context/steps/step-01-discover.md +186 -0
- package/src/drt-skills/3-solutioning/drt-generate-project-context/steps/step-02-generate.md +321 -0
- package/src/drt-skills/3-solutioning/drt-generate-project-context/steps/step-03-complete.md +284 -0
- package/src/drt-skills/4-implementation/drt-agent-dev/SKILL.md +76 -0
- package/src/drt-skills/4-implementation/drt-agent-dev/customize.toml +95 -0
- package/src/drt-skills/4-implementation/drt-checkpoint-preview/SKILL.md +68 -0
- package/src/drt-skills/4-implementation/drt-checkpoint-preview/customize.toml +41 -0
- package/src/drt-skills/4-implementation/drt-checkpoint-preview/generate-trail.md +38 -0
- package/src/drt-skills/4-implementation/drt-checkpoint-preview/step-01-orientation.md +105 -0
- package/src/drt-skills/4-implementation/drt-checkpoint-preview/step-02-walkthrough.md +89 -0
- package/src/drt-skills/4-implementation/drt-checkpoint-preview/step-03-detail-pass.md +106 -0
- package/src/drt-skills/4-implementation/drt-checkpoint-preview/step-04-testing.md +74 -0
- package/src/drt-skills/4-implementation/drt-checkpoint-preview/step-05-wrapup.md +30 -0
- package/src/drt-skills/4-implementation/drt-code-review/SKILL.md +90 -0
- package/src/drt-skills/4-implementation/drt-code-review/customize.toml +93 -0
- package/src/drt-skills/4-implementation/drt-code-review/steps/step-01-gather-context.md +84 -0
- package/src/drt-skills/4-implementation/drt-code-review/steps/step-02-review.md +32 -0
- package/src/drt-skills/4-implementation/drt-code-review/steps/step-03-triage.md +50 -0
- package/src/drt-skills/4-implementation/drt-code-review/steps/step-04-present.md +132 -0
- package/src/drt-skills/4-implementation/drt-correct-course/SKILL.md +301 -0
- package/src/drt-skills/4-implementation/drt-correct-course/checklist.md +288 -0
- package/src/drt-skills/4-implementation/drt-correct-course/customize.toml +41 -0
- package/src/drt-skills/4-implementation/drt-create-story/SKILL.md +432 -0
- package/src/drt-skills/4-implementation/drt-create-story/checklist.md +357 -0
- package/src/drt-skills/4-implementation/drt-create-story/customize.toml +41 -0
- package/src/drt-skills/4-implementation/drt-create-story/discover-inputs.md +88 -0
- package/src/drt-skills/4-implementation/drt-create-story/template.md +49 -0
- package/src/drt-skills/4-implementation/drt-dev-auto/SKILL.md +123 -0
- package/src/drt-skills/4-implementation/drt-dev-auto/compile-epic-context.md +62 -0
- package/src/drt-skills/4-implementation/drt-dev-auto/customize.toml +108 -0
- package/src/drt-skills/4-implementation/drt-dev-auto/spec-template.md +98 -0
- package/src/drt-skills/4-implementation/drt-dev-auto/step-01-clarify-and-route.md +84 -0
- package/src/drt-skills/4-implementation/drt-dev-auto/step-02-plan.md +31 -0
- package/src/drt-skills/4-implementation/drt-dev-auto/step-03-implement.md +42 -0
- package/src/drt-skills/4-implementation/drt-dev-auto/step-04-review.md +95 -0
- package/src/drt-skills/4-implementation/drt-dev-story/SKILL.md +500 -0
- package/src/drt-skills/4-implementation/drt-dev-story/checklist.md +80 -0
- package/src/drt-skills/4-implementation/drt-dev-story/customize.toml +41 -0
- package/src/drt-skills/4-implementation/drt-implement-task/SKILL.md +101 -0
- package/src/drt-skills/4-implementation/drt-implement-task/assets/task-spec-template.md +60 -0
- package/src/drt-skills/4-implementation/drt-implement-task/customize.toml +17 -0
- package/src/drt-skills/4-implementation/drt-implement-task/steps/step-01-gather-intent.md +42 -0
- package/src/drt-skills/4-implementation/drt-implement-task/steps/step-02-plan-and-approve.md +43 -0
- package/src/drt-skills/4-implementation/drt-implement-task/steps/step-03-confirm-dependencies.md +38 -0
- package/src/drt-skills/4-implementation/drt-implement-task/steps/step-04-implement.md +42 -0
- package/src/drt-skills/4-implementation/drt-implement-task/steps/step-05-qc-test.md +31 -0
- package/src/drt-skills/4-implementation/drt-implement-task/steps/step-06-quality-review.md +30 -0
- package/src/drt-skills/4-implementation/drt-implement-task/steps/step-07-fix-findings.md +33 -0
- package/src/drt-skills/4-implementation/drt-implement-task/steps/step-08-complete.md +35 -0
- package/src/drt-skills/4-implementation/drt-qa-generate-e2e-tests/SKILL.md +176 -0
- package/src/drt-skills/4-implementation/drt-qa-generate-e2e-tests/checklist.md +33 -0
- package/src/drt-skills/4-implementation/drt-qa-generate-e2e-tests/customize.toml +41 -0
- package/src/drt-skills/4-implementation/drt-quick-dev/SKILL.md +13 -0
- package/src/drt-skills/4-implementation/drt-quick-dev/compile-epic-context.md +62 -0
- package/src/drt-skills/4-implementation/drt-quick-dev/customize.toml +83 -0
- package/src/drt-skills/4-implementation/drt-quick-dev/render.js +206 -0
- package/src/drt-skills/4-implementation/drt-quick-dev/spec-template.md +89 -0
- package/src/drt-skills/4-implementation/drt-quick-dev/step-01-clarify-and-route.md +103 -0
- package/src/drt-skills/4-implementation/drt-quick-dev/step-02-plan.md +47 -0
- package/src/drt-skills/4-implementation/drt-quick-dev/step-03-implement.md +45 -0
- package/src/drt-skills/4-implementation/drt-quick-dev/step-04-review.md +55 -0
- package/src/drt-skills/4-implementation/drt-quick-dev/step-05-present.md +78 -0
- package/src/drt-skills/4-implementation/drt-quick-dev/step-oneshot.md +78 -0
- package/src/drt-skills/4-implementation/drt-quick-dev/sync-sprint-status.md +19 -0
- package/src/drt-skills/4-implementation/drt-quick-dev/workflow.md +85 -0
- package/src/drt-skills/4-implementation/drt-retrospective/SKILL.md +1527 -0
- package/src/drt-skills/4-implementation/drt-retrospective/customize.toml +41 -0
- package/src/drt-skills/4-implementation/drt-sprint-planning/SKILL.md +319 -0
- package/src/drt-skills/4-implementation/drt-sprint-planning/checklist.md +34 -0
- package/src/drt-skills/4-implementation/drt-sprint-planning/customize.toml +41 -0
- package/src/drt-skills/4-implementation/drt-sprint-planning/sprint-status-template.yaml +69 -0
- package/src/drt-skills/4-implementation/drt-sprint-status/SKILL.md +311 -0
- package/src/drt-skills/4-implementation/drt-sprint-status/customize.toml +41 -0
- package/src/drt-skills/module-help.csv +32 -0
- package/src/drt-skills/module.yaml +95 -0
- package/src/scripts/lib/load-toml.js +43 -0
- package/src/scripts/lib/merge-utils.js +89 -0
- package/src/scripts/memlog.js +184 -0
- package/src/scripts/package.json +7 -0
- package/src/scripts/resolve-config.js +56 -0
- package/src/scripts/resolve-customization.js +77 -0
- package/tools/installer/cli-utils.js +53 -0
- package/tools/installer/commands/install.js +149 -0
- package/tools/installer/commands/status.js +65 -0
- package/tools/installer/commands/uninstall.js +167 -0
- package/tools/installer/core/config.js +73 -0
- package/tools/installer/core/existing-install.js +121 -0
- package/tools/installer/core/install-paths.js +132 -0
- package/tools/installer/core/installer.js +1762 -0
- package/tools/installer/core/legacy-warnings.js +151 -0
- package/tools/installer/core/manifest-generator.js +859 -0
- package/tools/installer/core/manifest.js +433 -0
- package/tools/installer/core/uv-check.js +97 -0
- package/tools/installer/core/wsl-node-check.js +109 -0
- package/tools/installer/drt-cli.js +104 -0
- package/tools/installer/file-ops.js +204 -0
- package/tools/installer/fs-native.js +116 -0
- package/tools/installer/ide/_config-driven.js +972 -0
- package/tools/installer/ide/manager.js +324 -0
- package/tools/installer/ide/platform-codes.js +80 -0
- package/tools/installer/ide/platform-codes.yaml +343 -0
- package/tools/installer/ide/shared/installed-skills.js +50 -0
- package/tools/installer/ide/shared/path-utils.js +217 -0
- package/tools/installer/ide/shared/skill-manifest.js +57 -0
- package/tools/installer/install-messages.yaml +29 -0
- package/tools/installer/list-options.js +210 -0
- package/tools/installer/message-loader.js +83 -0
- package/tools/installer/modules/channel-plan.js +203 -0
- package/tools/installer/modules/channel-resolver.js +241 -0
- package/tools/installer/modules/custom-module-manager.js +918 -0
- package/tools/installer/modules/external-manager.js +667 -0
- package/tools/installer/modules/module-help-schema.js +13 -0
- package/tools/installer/modules/official-modules.js +2257 -0
- package/tools/installer/modules/plugin-resolver.js +398 -0
- package/tools/installer/modules/version-resolver.js +336 -0
- package/tools/installer/project-root.js +224 -0
- package/tools/installer/prompts.js +852 -0
- package/tools/installer/set-overrides.js +330 -0
- package/tools/installer/ui.js +2090 -0
- package/tools/installer/yaml-format.js +245 -0
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# Compile Epic Context
|
|
2
|
+
|
|
3
|
+
**Task**
|
|
4
|
+
Given an epic number, the epics file, the planning artifacts directory, and a desired output path, compile a clean, focused, developer-ready context file (`epic-<N>-context.md`).
|
|
5
|
+
|
|
6
|
+
**Steps**
|
|
7
|
+
|
|
8
|
+
1. Read the epics file and extract the target epic's title, goal, and list of stories.
|
|
9
|
+
2. Scan the planning artifacts directory for the standard files (PRD, architecture, UX/design, product brief).
|
|
10
|
+
3. Pull only the information relevant to this epic.
|
|
11
|
+
4. Write the compiled context to the exact output path using the format below.
|
|
12
|
+
|
|
13
|
+
## Exact Output Format
|
|
14
|
+
|
|
15
|
+
Use these headings:
|
|
16
|
+
|
|
17
|
+
```markdown
|
|
18
|
+
# Epic {N} Context: {Epic Title}
|
|
19
|
+
|
|
20
|
+
<!-- Generated from planning artifacts. Regenerate with compile-epic-context if planning docs change. -->
|
|
21
|
+
|
|
22
|
+
## Goal
|
|
23
|
+
|
|
24
|
+
{One clear paragraph: what this epic achieves and why it matters.}
|
|
25
|
+
|
|
26
|
+
## Stories
|
|
27
|
+
|
|
28
|
+
- Story X.Y: Brief title only
|
|
29
|
+
- ...
|
|
30
|
+
|
|
31
|
+
## Requirements & Constraints
|
|
32
|
+
|
|
33
|
+
{Relevant functional/non-functional requirements and success criteria for this epic (describe by purpose, not source).}
|
|
34
|
+
|
|
35
|
+
## Technical Decisions
|
|
36
|
+
|
|
37
|
+
{Key architecture decisions, constraints, patterns, data models, and conventions relevant to this epic.}
|
|
38
|
+
|
|
39
|
+
## UX & Interaction Patterns
|
|
40
|
+
|
|
41
|
+
{Relevant UX flows, interaction patterns, and design constraints (omit section entirely if nothing relevant).}
|
|
42
|
+
|
|
43
|
+
## Cross-Story Dependencies
|
|
44
|
+
|
|
45
|
+
{Dependencies between stories in this epic or with other epics/systems (omit if none).}
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
## Rules
|
|
49
|
+
|
|
50
|
+
- **Scope aggressively.** Include only what a developer working on any story in this epic actually needs. When in doubt, leave it out — the developer can always read the full planning doc.
|
|
51
|
+
- **Describe by purpose, not by source.** Write "API responses must include pagination metadata" not "Per PRD section 3.2.1, pagination is required." Planning doc internals will change; the constraint won't.
|
|
52
|
+
- **No full copies.** Never quote source documents, section numbers, or paste large blocks verbatim. Always distill.
|
|
53
|
+
- **No story-level details.** The story list is for orientation only. Individual story specs handle the details.
|
|
54
|
+
- **Nothing derivable from the codebase.** Don't document what a developer can learn by reading the code.
|
|
55
|
+
- **Be concise and actionable.** Target 800–1500 tokens total. This file loads into drt-dev-auto's context alongside other material.
|
|
56
|
+
- **Never hallucinate content.** If source material doesn't say something, don't invent it.
|
|
57
|
+
- **Omit empty sections entirely**, except Goal and Stories, which are always required.
|
|
58
|
+
|
|
59
|
+
## Error handling
|
|
60
|
+
|
|
61
|
+
- **If the epics file is missing or the target epic is not found:** write nothing and report the problem to the calling agent. Goal and Stories cannot be populated without a usable epics file.
|
|
62
|
+
- **If planning artifacts are missing or empty:** still produce the file with Goal and Stories populated from the epics file. Under Requirements & Constraints, write: "Planning artifacts were unavailable; only epics-file context was used." Never hallucinate content to fill missing sections.
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
# DO NOT EDIT -- overwritten on every update.
|
|
2
|
+
#
|
|
3
|
+
# Default customization values for drt-dev-auto.
|
|
4
|
+
# Override in _drt/custom/drt-dev-auto.toml or
|
|
5
|
+
# _drt/custom/drt-dev-auto.user.toml.
|
|
6
|
+
#
|
|
7
|
+
# Merge rules:
|
|
8
|
+
# - Strings replace the default.
|
|
9
|
+
# - Lists append to the default list.
|
|
10
|
+
# - Tables merge key by key.
|
|
11
|
+
# - Arrays of tables merge by `id`: matching `id` replaces, new `id`s append.
|
|
12
|
+
|
|
13
|
+
[workflow]
|
|
14
|
+
|
|
15
|
+
# Extra instructions to run before config is loaded.
|
|
16
|
+
|
|
17
|
+
activation_steps_prepend = []
|
|
18
|
+
|
|
19
|
+
# Extra instructions to run after config is loaded and before step 01.
|
|
20
|
+
|
|
21
|
+
activation_steps_append = []
|
|
22
|
+
|
|
23
|
+
# Facts kept in context for the whole run.
|
|
24
|
+
# Entries are literal text or file references prefixed with "file:".
|
|
25
|
+
# File entries may use globs and are loaded during activation.
|
|
26
|
+
|
|
27
|
+
persistent_facts = [
|
|
28
|
+
"file:{project-root}/**/project-context.md",
|
|
29
|
+
]
|
|
30
|
+
|
|
31
|
+
# Instruction run by HALT after writing the terminal result.
|
|
32
|
+
# Empty means no extra terminal behavior.
|
|
33
|
+
|
|
34
|
+
on_complete = ""
|
|
35
|
+
|
|
36
|
+
# Handoff for the implementation subagent in step 03. The whole execution
|
|
37
|
+
# recipe — a subagent by default, but an override may run anything (e.g. an
|
|
38
|
+
# external coding tool via bash). {spec_file} is substituted at run time.
|
|
39
|
+
|
|
40
|
+
implementation_handoff = """
|
|
41
|
+
Launch a subagent with no prior conversation context, with this prompt:
|
|
42
|
+
|
|
43
|
+
> Read {spec_file} fully and implement it. The spec is the sole source of truth for this change; its Spec Change Log entries are binding constraints, not history.
|
|
44
|
+
>
|
|
45
|
+
> Guardrails:
|
|
46
|
+
>
|
|
47
|
+
> - Work in the current project. Before starting, load every file listed in the spec frontmatter `context:`.
|
|
48
|
+
> - Do not edit the spec file itself.
|
|
49
|
+
> - Do not revert or overwrite changes unrelated to this spec.
|
|
50
|
+
> - Run the verification described in the spec, plus focused checks for the code you touched.
|
|
51
|
+
>
|
|
52
|
+
> When done, report: files changed with one line each, verification commands run and their outcomes, any files changed beyond the spec's tasks and why each was needed, anything you could not complete and why, and residual risks.
|
|
53
|
+
"""
|
|
54
|
+
|
|
55
|
+
# Review layers for the review step. `instruction` is the layer's whole
|
|
56
|
+
# execution recipe — subagents by default, but an override may run anything
|
|
57
|
+
# (e.g. an external reviewer via bash). {diff_output} is substituted at run
|
|
58
|
+
# time. `when` (optional) gates a layer; empty `instruction` disables it.
|
|
59
|
+
|
|
60
|
+
[[workflow.review_layers]]
|
|
61
|
+
id = "blind-hunter"
|
|
62
|
+
name = "Blind Hunter"
|
|
63
|
+
instruction = """
|
|
64
|
+
Launch a subagent with no prior conversation context, with this prompt:
|
|
65
|
+
|
|
66
|
+
> Invoke the `drt-review-adversarial-general` skill on this diff:
|
|
67
|
+
>
|
|
68
|
+
> {diff_output}
|
|
69
|
+
"""
|
|
70
|
+
|
|
71
|
+
[[workflow.review_layers]]
|
|
72
|
+
id = "edge-case-hunter"
|
|
73
|
+
name = "Edge Case Hunter"
|
|
74
|
+
instruction = """
|
|
75
|
+
Launch a subagent with no prior conversation context, with this prompt:
|
|
76
|
+
|
|
77
|
+
> Invoke the `drt-review-edge-case-hunter` skill on this diff:
|
|
78
|
+
>
|
|
79
|
+
> {diff_output}
|
|
80
|
+
"""
|
|
81
|
+
|
|
82
|
+
[[workflow.review_layers]]
|
|
83
|
+
id = "verification-gap"
|
|
84
|
+
name = "Verification Gap Reviewer"
|
|
85
|
+
instruction = """
|
|
86
|
+
Launch a subagent with no prior conversation context, with this prompt:
|
|
87
|
+
|
|
88
|
+
> Invoke the `drt-review-verification-gap` skill on this diff:
|
|
89
|
+
>
|
|
90
|
+
> {diff_output}
|
|
91
|
+
"""
|
|
92
|
+
|
|
93
|
+
[[workflow.review_layers]]
|
|
94
|
+
id = "intent-alignment"
|
|
95
|
+
name = "Intent Alignment Auditor"
|
|
96
|
+
instruction = """
|
|
97
|
+
Launch a subagent with no prior conversation context, with this prompt:
|
|
98
|
+
|
|
99
|
+
> You are an intent-alignment auditor. You have no other context about how this change was produced. Here is the verbatim intent this work started from:
|
|
100
|
+
>
|
|
101
|
+
> {verbatim_intent}
|
|
102
|
+
>
|
|
103
|
+
> Here is the diff:
|
|
104
|
+
>
|
|
105
|
+
> {diff_output}
|
|
106
|
+
>
|
|
107
|
+
> Your task is strictly descriptive — do not prescribe additional work. Report: (1) the defensible readings of the intent, enumerated; (2) which reading this diff implements; (3) where the readings and the diff diverge — specifically, which surface the intent's expectations live at versus which surface the diff's changes and its tests exercise.
|
|
108
|
+
"""
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: '{title}'
|
|
3
|
+
type: 'feature' # feature | bugfix | refactor | chore
|
|
4
|
+
created: '{date}'
|
|
5
|
+
status: 'draft' # draft | ready-for-dev | in-progress | in-review | done | blocked
|
|
6
|
+
review_loop_iteration: 0 # incremented by step-04 before each review loopback
|
|
7
|
+
followup_review_recommended: false # set by step-04 on status: done from the final review pass significance judgment
|
|
8
|
+
context: [] # optional: `{project-root}/`-prefixed paths to project-wide standards/docs the implementation agent should load. Keep short — only what isn't already distilled into the spec body.
|
|
9
|
+
warnings: [] # optional: machine-readable warnings for orchestration, e.g. oversized, multiple-goals
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
<!-- Aim for 900–1600 tokens. If larger, add `oversized` to frontmatter `warnings` and continue.
|
|
13
|
+
Never over-specify "how" — use boundaries + examples instead.
|
|
14
|
+
Cohesive cross-layer stories (DB+BE+UI) stay in ONE file.
|
|
15
|
+
IMPORTANT: Remove all HTML comments when filling this template. -->
|
|
16
|
+
|
|
17
|
+
<intent-contract>
|
|
18
|
+
|
|
19
|
+
## Intent
|
|
20
|
+
|
|
21
|
+
<!-- What is broken or missing, and why it matters. Then the high-level approach — the "what", not the "how". -->
|
|
22
|
+
|
|
23
|
+
**Problem:** ONE_TO_TWO_SENTENCES
|
|
24
|
+
|
|
25
|
+
**Approach:** ONE_TO_TWO_SENTENCES
|
|
26
|
+
|
|
27
|
+
## Boundaries & Constraints
|
|
28
|
+
|
|
29
|
+
<!-- Three tiers: Always = invariant rules. Block If = decisions that cannot be made unattended. Never = out of scope + forbidden approaches. -->
|
|
30
|
+
|
|
31
|
+
**Always:** INVARIANT_RULES
|
|
32
|
+
|
|
33
|
+
**Block If:** DECISIONS_REQUIRING_HUMAN_INPUT
|
|
34
|
+
<!-- Agent: if any of these trigger during execution, HALT with status blocked and the blocking condition. -->
|
|
35
|
+
|
|
36
|
+
**Never:** NON_GOALS_AND_FORBIDDEN_APPROACHES
|
|
37
|
+
|
|
38
|
+
## I/O & Edge-Case Matrix
|
|
39
|
+
|
|
40
|
+
<!-- If no meaningful I/O scenarios exist, DELETE THIS ENTIRE SECTION. Do not write "N/A" or "None". -->
|
|
41
|
+
|
|
42
|
+
| Scenario | Input / State | Expected Output / Behavior | Error Handling |
|
|
43
|
+
|----------|--------------|---------------------------|----------------|
|
|
44
|
+
| HAPPY_PATH | INPUT | OUTCOME | No error expected |
|
|
45
|
+
| ERROR_CASE | INPUT | OUTCOME | ERROR_HANDLING |
|
|
46
|
+
|
|
47
|
+
</intent-contract>
|
|
48
|
+
|
|
49
|
+
## Code Map
|
|
50
|
+
|
|
51
|
+
<!-- Agent-populated during planning. Annotated paths prevent blind codebase searching. -->
|
|
52
|
+
|
|
53
|
+
- `FILE` -- ROLE_OR_RELEVANCE
|
|
54
|
+
- `FILE` -- ROLE_OR_RELEVANCE
|
|
55
|
+
|
|
56
|
+
## Tasks & Acceptance
|
|
57
|
+
|
|
58
|
+
<!-- Tasks: backtick-quoted file path -- action -- rationale. Prefer one task per file; group tightly-coupled changes when splitting would be artificial. -->
|
|
59
|
+
<!-- If an I/O Matrix is present, include a task to unit-test its edge cases. -->
|
|
60
|
+
<!-- AC covers system-level behaviors not captured by the I/O Matrix. Do not duplicate I/O scenarios here. -->
|
|
61
|
+
|
|
62
|
+
**Execution:**
|
|
63
|
+
- `FILE` -- ACTION -- RATIONALE
|
|
64
|
+
|
|
65
|
+
**Acceptance Criteria:**
|
|
66
|
+
- Given PRECONDITION, when ACTION, then EXPECTED_RESULT
|
|
67
|
+
|
|
68
|
+
## Spec Change Log
|
|
69
|
+
|
|
70
|
+
<!-- Append-only. Populated by step-04 during review loops. Do not modify or delete existing entries.
|
|
71
|
+
Each entry records: what finding triggered the change, what was amended, what known-bad state
|
|
72
|
+
the amendment avoids, and any KEEP instructions (what worked well and must survive re-derivation).
|
|
73
|
+
Empty until the first bad_spec loopback. -->
|
|
74
|
+
|
|
75
|
+
## Review Triage Log
|
|
76
|
+
|
|
77
|
+
<!-- Append-only. Populated by step-04 on EVERY review pass, including loopbacks and blocked exits.
|
|
78
|
+
Each entry records triage decision counts for intent_gap, bad_spec, patch, defer, and reject,
|
|
79
|
+
with per-category severity breakdowns using low/medium/high, plus the findings addressed in
|
|
80
|
+
that pass. Empty until the first review pass. -->
|
|
81
|
+
|
|
82
|
+
## Design Notes
|
|
83
|
+
|
|
84
|
+
<!-- If the approach is straightforward, DELETE THIS ENTIRE SECTION. Do not write "N/A" or "None". -->
|
|
85
|
+
<!-- Design rationale and golden examples only when non-obvious. Keep examples to 5–10 lines. -->
|
|
86
|
+
|
|
87
|
+
DESIGN_RATIONALE_AND_EXAMPLES
|
|
88
|
+
|
|
89
|
+
## Verification
|
|
90
|
+
|
|
91
|
+
<!-- If no build, test, or lint commands apply, DELETE THIS ENTIRE SECTION. Do not write "N/A" or "None". -->
|
|
92
|
+
<!-- How the agent confirms its own work. Prefer CLI commands. When no CLI check applies, state what to inspect manually. -->
|
|
93
|
+
|
|
94
|
+
**Commands:**
|
|
95
|
+
- `COMMAND` -- expected: SUCCESS_CRITERIA
|
|
96
|
+
|
|
97
|
+
**Manual checks (if no CLI):**
|
|
98
|
+
- WHAT_TO_INSPECT_AND_EXPECTED_STATE
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
---
|
|
2
|
+
deferred_work_file: '{implementation_artifacts}/deferred-work.md'
|
|
3
|
+
spec_file: '' # set at runtime once a route resolves it; some HALT branches exit before it is set
|
|
4
|
+
spec_folder: '' # set at runtime under folder+id dispatch only
|
|
5
|
+
story_id: '' # set at runtime under folder+id dispatch only
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Step 1: Clarify and Route
|
|
9
|
+
|
|
10
|
+
## RULES
|
|
11
|
+
|
|
12
|
+
- YOU MUST ALWAYS SPEAK OUTPUT in your Agent communication style with the config `{communication_language}`
|
|
13
|
+
- Treat the invocation intent as workflow input, not as a substitute for step-02 investigation and spec generation.
|
|
14
|
+
- **EARLY EXIT** means: stop this step immediately, then read and follow the target file. Return here only if a later step explicitly says to loop back.
|
|
15
|
+
|
|
16
|
+
## Intent check (do this first)
|
|
17
|
+
|
|
18
|
+
Use the invocation prompt as the intent.
|
|
19
|
+
|
|
20
|
+
If the invocation prompt explicitly points to an existing spec file with recognized `status` frontmatter, set `spec_file`, then **EARLY EXIT** to the appropriate step:
|
|
21
|
+
- `draft` → `./step-02-plan.md`
|
|
22
|
+
- `ready-for-dev` or `in-progress` → `./step-03-implement.md`
|
|
23
|
+
- `in-review` → `./step-04-review.md`
|
|
24
|
+
- `blocked` → HALT with status `blocked` and blocking condition `blocked spec supplied`.
|
|
25
|
+
- `done` → set `review_loop_iteration` to `0` in the frontmatter, then **EARLY EXIT** to `./step-04-review.md` for a fresh review pass. (A `done` spec is a completed run, so this starts a follow-up review, not a resumption.)
|
|
26
|
+
|
|
27
|
+
If the invocation prompt instead supplies a spec folder and a story id, with no specific spec file path, this is a **folder+id dispatch**: set `spec_folder` (a `{project-root}`-relative or absolute path) and `story_id` from the prompt. Any further prompt text (e.g. `invoke_dev_with` guidance the caller appended) is additional planning context to carry into step-02 — not a competing description of what to implement.
|
|
28
|
+
|
|
29
|
+
Read `{spec_folder}/stories.yaml`. If the file does not exist or fails to parse, HALT with status `blocked` and blocking condition `no stories.yaml found`. Find the entry whose `id` equals `{story_id}`; if none matches, HALT with status `blocked` and blocking condition `story id not found in stories.yaml`. Take only that entry's `title` and `description` — never read the checkpoint fields or `invoke_dev_with`; those are the caller's orchestration fields, not dev-auto's.
|
|
30
|
+
|
|
31
|
+
Look for files matching `{spec_folder}/stories/{story_id}-*.md` (id-prefix match — story ids are prefix-free, so at most one should match):
|
|
32
|
+
- **If more than one matches**, HALT with status `blocked` and blocking condition `ambiguous story file match`.
|
|
33
|
+
- **If exactly one matches**, set `spec_file` to that path.
|
|
34
|
+
- `draft` (planning was interrupted mid-flight): accumulate cross-story context before resuming — load every other file matching `{spec_folder}/stories/*.md` (every match except `{spec_file}` itself), regardless of `status`, and carry forward each one's **Code Map**, **Design Notes**, **Spec Change Log**, **Tasks & Acceptance** checklist state, and **Auto Run Result** details, where present, as additional planning context for step-02. Then **EARLY EXIT** to `./step-02-plan.md`.
|
|
35
|
+
- Any other recognized `status`: **EARLY EXIT** using the same routing as above, including the `review_loop_iteration` reset for `done`. One difference: a `blocked` story HALTs with blocking condition `story already blocked`, not `blocked spec supplied` — the caller did not supply this file; dev-auto found it by id.
|
|
36
|
+
- `status` missing or unrecognized: HALT with status `blocked` and blocking condition `unrecognized status in existing story file`.
|
|
37
|
+
- **If none matches**, this is the first dispatch for `{story_id}`. The entry's `title` and `description` are the resolved intent. If `{spec_folder}/SPEC.md` does not exist, HALT with status `blocked` and blocking condition `no epic spec found`. Otherwise load it and the files listed in its `companions:` frontmatter as planning context, then accumulate cross-story context the same way as the `draft` case above — load every file matching `{spec_folder}/stories/*.md` (none yet exists for `{story_id}` at this point, so nothing is excluded), regardless of `status`, carrying forward the same fields, where present, as additional planning context for step-02. Then continue to INSTRUCTIONS item 3 below — not `step-03-implement.md`, item 3 of the numbered list in this file (items 1 and 2 do not apply — context and intent are already resolved; item 1.A.5's previous-story continuity scan in particular never runs here, since folder+id dispatch already skips items 1 and 2 entirely — the cross-story accumulation above is its replacement for this dispatch mode).
|
|
38
|
+
|
|
39
|
+
One `stories.yaml` entry per invocation: never read another entry, and never advance to a different story id regardless of outcome.
|
|
40
|
+
|
|
41
|
+
Otherwise, treat the invocation prompt as starting intent. This may be a story ID, ticket ID, file path, short description, or longer free-form intent. Do not infer workflow state from non-spec files.
|
|
42
|
+
If the invocation prompt does not contain enough intent to identify what to implement, HALT with status `blocked` and blocking condition `unclear intent`.
|
|
43
|
+
|
|
44
|
+
## INSTRUCTIONS
|
|
45
|
+
|
|
46
|
+
1. Load context.
|
|
47
|
+
- List files in `{planning_artifacts}` and `{implementation_artifacts}`.
|
|
48
|
+
- If the invocation prompt points to an unformatted spec or intent file, ingest that file. Do not scan for unrelated intent files.
|
|
49
|
+
- **Determine context strategy.** Using the intent and the artifact listing, infer whether the current work is a story from an epic. Do not rely on filename patterns or regex — reason about the intent, the listing, and any epics file content together.
|
|
50
|
+
|
|
51
|
+
**A) Epic story path** — if the intent is clearly an epic story:
|
|
52
|
+
|
|
53
|
+
1. Identify the epic number `{epic_num}` and (if present) the story number `{story_num}`. If you can't identify an epic number, use path B.
|
|
54
|
+
|
|
55
|
+
2. **Check for a valid cached epic context.** Look for `{implementation_artifacts}/epic-<N>-context.md` (where `<N>` is the epic number). A file is **valid** when it exists, is non-empty, starts with `# Epic <N> Context:` (with the correct epic number), and no file in `{planning_artifacts}` is newer.
|
|
56
|
+
- **If valid:** load it as the primary planning context. Do not load raw planning docs (PRD, architecture, UX, etc.).
|
|
57
|
+
- **If missing, empty, or invalid:** compile it in the next bullet.
|
|
58
|
+
|
|
59
|
+
3. **Compile epic context if needed.** If no valid cached epic context was loaded, produce `{implementation_artifacts}/epic-<N>-context.md` by spawning a subagent with `./compile-epic-context.md` as its prompt. Pass it the epic number, the epics file path, the `{planning_artifacts}` directory, and the output path `{implementation_artifacts}/epic-<N>-context.md`.
|
|
60
|
+
|
|
61
|
+
4. **Verify if compiled.** If epic context was compiled, verify the output file exists, is non-empty, and starts with `# Epic <N> Context:`. If valid, load it. If verification fails, HALT with status `blocked` and blocking condition `context compilation verification failed`.
|
|
62
|
+
|
|
63
|
+
5. **Previous story continuity.** Regardless of which context source succeeded above, scan `{implementation_artifacts}` for specs from the same epic with `status: done` and a lower story number. Load the most recent one (highest story number below current). Extract its **Code Map**, **Design Notes**, **Spec Change Log**, and **task list** as continuity context for step-02 planning. If no `done` spec is found but an `in-review` spec exists for the same epic with a lower story number, HALT with status `blocked` and blocking condition `missing previous-story continuity decision`.
|
|
64
|
+
|
|
65
|
+
**B) Freeform path** — if the intent is not an epic story:
|
|
66
|
+
- Planning artifacts are the output of DRT phases 1-3. Typical files include:
|
|
67
|
+
- **PRD** (`*prd*`) — product requirements and success criteria
|
|
68
|
+
- **Architecture** (`*architecture*`) — technical design decisions and constraints
|
|
69
|
+
- **UX/Design** (`*ux*`) — user experience and interaction design
|
|
70
|
+
- **Epics** (`*epic*`) — feature breakdown into implementable stories
|
|
71
|
+
- **Product Brief** (`*brief*`) — project vision and scope
|
|
72
|
+
- Scan the listing for files matching these patterns. If any look relevant to the current intent, load them selectively — you don't need all of them, but you need the right constraints and requirements rather than guessing from code alone.
|
|
73
|
+
2. Resolve intent from the invocation prompt and loaded artifacts. Do not fantasize or leave open questions. If the intent cannot be resolved, HALT with status `blocked` and the unresolved questions as blocking condition.
|
|
74
|
+
3. Version control sanity check. Is the working tree clean? Does the current branch make sense for this intent — considering its name and recent history? Under folder+id dispatch, judge the branch against the epic spec, not the story title: one branch usually carries all of an epic's stories. If the tree is dirty or the branch is an obvious mismatch, HALT with status `blocked` and that condition as blocking condition. If version control is unavailable, skip this check.
|
|
75
|
+
4. Multi-goal warning. If the intent appears to contain multiple independently shippable goals, carry `multiple-goals` forward so step-02 can add it to `{spec_file}` frontmatter `warnings`. Do not split or block.
|
|
76
|
+
5. Route:
|
|
77
|
+
|
|
78
|
+
**Folder+id dispatch:** derive a valid kebab-case slug from the entry's `title` (and `description` if needed) — the same kebab-casing convention as below, but never prefixed with `{story_id}`, since the id is already the filename's separate leading segment. Set `spec_file` = `{spec_folder}/stories/{story_id}-{slug}.md`. The id already disambiguates: no `{implementation_artifacts}` fallback, no `-2`/`-3` suffixing.
|
|
79
|
+
|
|
80
|
+
**Otherwise:** derive a valid kebab-case slug from the clarified intent. If the intent references a tracking identifier (story number, issue number, ticket ID), lead the slug with it (e.g. `3-2-digest-delivery`, `gh-47-fix-auth`). If `{implementation_artifacts}/spec-{slug}.md` already exists: if its status is `draft`, treat it as the same work and resume it (set `spec_file` to that path, **EARLY EXIT** → `./step-02-plan.md`); otherwise append `-2`, `-3`, etc. Set `spec_file` = `{implementation_artifacts}/spec-{slug}.md`.
|
|
81
|
+
|
|
82
|
+
## NEXT
|
|
83
|
+
|
|
84
|
+
Read fully and follow `./step-02-plan.md`
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
---
|
|
2
|
+
deferred_work_file: '{implementation_artifacts}/deferred-work.md'
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Step 2: Plan
|
|
6
|
+
|
|
7
|
+
## RULES
|
|
8
|
+
|
|
9
|
+
- YOU MUST ALWAYS SPEAK OUTPUT in your Agent communication style with the config `{communication_language}`
|
|
10
|
+
- No human interaction: do not ask questions or wait for approval in this step.
|
|
11
|
+
|
|
12
|
+
## INSTRUCTIONS
|
|
13
|
+
|
|
14
|
+
1. Draft resume check. If `{spec_file}` exists with `status: draft`, read it and capture the verbatim `<intent-contract>...</intent-contract>` block as `preserved_intent_contract`. Otherwise `preserved_intent_contract` is empty.
|
|
15
|
+
2. Investigate codebase. _Read the code yourself for narrow, localized tasks. Isolate deep exploration in subagents: instruct them to give you distilled summaries only, and plan from those summaries._
|
|
16
|
+
3. Read `./spec-template.md` fully. Fill it out based on the intent and investigation. If `{preserved_intent_contract}` is non-empty, substitute it for the `<intent-contract>` block in your filled spec before writing. Write the result to `{spec_file}`.
|
|
17
|
+
4. Self-review against READY FOR DEVELOPMENT standard.
|
|
18
|
+
5. If intent gaps exist, do not fantasize and do not leave open questions. Multiple defensible readings of the intent that lead to observably different outcomes, with nothing in the intent to select between them, are an intent gap — do not resolve one by picking a reading. HALT with status `blocked`, blocking condition `intent gap`, and include the unanswered questions and evidence gathered.
|
|
19
|
+
6. Warning check. If step-01 carried `multiple-goals`, add it to `{spec_file}` frontmatter `warnings`. If `{spec_file}` exceeds 1600 tokens, add `oversized` to frontmatter `warnings`. Continue either way.
|
|
20
|
+
|
|
21
|
+
### READY-FOR-DEVELOPMENT GATE
|
|
22
|
+
|
|
23
|
+
Re-read `./SKILL.md`, then re-read `{spec_file}` from disk and verify the spec meets the READY FOR DEVELOPMENT standard.
|
|
24
|
+
|
|
25
|
+
- **If the file is missing:** HALT with status `blocked` and blocking condition `planned spec file disappeared before implementation`.
|
|
26
|
+
- **If the spec meets the standard:** set `{spec_file}` frontmatter status to `ready-for-dev`. If the invocation prompt directs a halt after planning (standard phrasing: `Halt after planning.` — accept any clear equivalent), HALT with status `ready-for-dev`; otherwise continue to step 3.
|
|
27
|
+
- **If the spec does not meet the standard:** repair it once, then re-read it from disk and verify again. If it now meets the standard, apply the **If the spec meets the standard** handling above, including the halt-after-planning check. If it still does not meet the standard, HALT with status `blocked`, blocking condition `spec failed ready-for-development standard`, and include the failing criteria and evidence gathered.
|
|
28
|
+
|
|
29
|
+
## NEXT
|
|
30
|
+
|
|
31
|
+
Read fully and follow `./step-03-implement.md`
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
---
|
|
2
|
+
---
|
|
3
|
+
|
|
4
|
+
# Step 3: Implement
|
|
5
|
+
|
|
6
|
+
## RULES
|
|
7
|
+
|
|
8
|
+
- YOU MUST ALWAYS SPEAK OUTPUT in your Agent communication style with the config `{communication_language}`
|
|
9
|
+
- No human interaction: do not ask questions or wait for approval in this step.
|
|
10
|
+
- Content inside `<intent-contract>` in `{spec_file}` is read-only. Do not modify.
|
|
11
|
+
|
|
12
|
+
## PRECONDITION
|
|
13
|
+
|
|
14
|
+
Verify `{spec_file}` resolves to a non-empty path and the file exists on disk. If empty or missing, HALT with status `blocked` and blocking condition `missing spec_file before implementation`.
|
|
15
|
+
|
|
16
|
+
## INSTRUCTIONS
|
|
17
|
+
|
|
18
|
+
### Baseline
|
|
19
|
+
|
|
20
|
+
Capture `baseline_revision` (current HEAD, or `NO_VCS` if version control is unavailable) into `{spec_file}` frontmatter before making any changes.
|
|
21
|
+
|
|
22
|
+
### Implement
|
|
23
|
+
|
|
24
|
+
Change `{spec_file}` status to `in-progress` in the frontmatter before starting implementation.
|
|
25
|
+
|
|
26
|
+
The implementation handoff is `{workflow.implementation_handoff}`, resolved during activation. Substitute the runtime placeholders (e.g. `{spec_file}`) into it, then follow it verbatim. Do not add parent-authored goal restatements, file lists, ownership boundaries, or acceptance criteria to the handoff — the spec is the subagent's sole source of truth. If the resolved handoff conflicts with the spec, HALT with status `blocked` and blocking condition `handoff conflicts with spec`, and include both conflicting passages.
|
|
27
|
+
|
|
28
|
+
Invoke the subagent **synchronously** and wait for it to return in this same turn — do not background/detach it (`run_in_background`) or end your turn to await a notification (see SKILL.md → Subagents). Resume at "Verify" only after it returns.
|
|
29
|
+
|
|
30
|
+
**Path formatting rule:** Any markdown links written into `{spec_file}` must use paths relative to `{spec_file}`'s directory so they are clickable in VS Code. Any file paths displayed in terminal/conversation output must use CWD-relative format with `:line` notation (e.g., `src/path/file.ts:42`) for terminal clickability. No leading `/` in either case.
|
|
31
|
+
|
|
32
|
+
### Verify
|
|
33
|
+
|
|
34
|
+
After the implementation subagent returns: if it reported unfinished work, finish it before proceeding. Run the commands in `{spec_file}`'s `## Verification` section (or perform its manual checks). If verification fails and the failure cannot be fixed, HALT with status `blocked`, blocking condition `implementation verification failed`, and include the failing command or check and reason. Acceptance criteria are judged at review, not here.
|
|
35
|
+
|
|
36
|
+
### Matrix Test Audit
|
|
37
|
+
|
|
38
|
+
If `{spec_file}`'s intent-contract contains an I/O & Edge-Case Matrix, verify every matrix row is covered by at least one test that verifies its expected behavior, and that each covering test ran and passed in the verification output. A covering test that exists but did not run — unregistered, filtered out, skipped, or disabled — counts as missing. If a test disagrees with the matrix, never edit the expectation to match the code: fix the code, or if the matrix row itself is ambiguous, HALT with status `blocked` and blocking condition `matrix ambiguity`. If the audit cannot otherwise be satisfied, HALT with status `blocked` and blocking condition `matrix test audit failed`.
|
|
39
|
+
|
|
40
|
+
## NEXT
|
|
41
|
+
|
|
42
|
+
Read fully and follow `./step-04-review.md`
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
---
|
|
2
|
+
deferred_work_file: '{implementation_artifacts}/deferred-work.md'
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Step 4: Review
|
|
6
|
+
|
|
7
|
+
## RULES
|
|
8
|
+
|
|
9
|
+
- YOU MUST ALWAYS SPEAK OUTPUT in your Agent communication style with the config `{communication_language}`
|
|
10
|
+
- No human interaction: do not ask questions or wait for approval in this step.
|
|
11
|
+
- All review subagents must run at the same model capability as the current session.
|
|
12
|
+
|
|
13
|
+
## INSTRUCTIONS
|
|
14
|
+
|
|
15
|
+
Change `{spec_file}` status to `in-review` in the frontmatter before continuing.
|
|
16
|
+
|
|
17
|
+
### Construct Diff
|
|
18
|
+
|
|
19
|
+
Read `{baseline_revision}` from `{spec_file}` frontmatter. If `{baseline_revision}` is missing or `NO_VCS`, use best effort to determine what changed. Otherwise, construct `{diff_output}` covering all changes — tracked and untracked — since `{baseline_revision}`.
|
|
20
|
+
|
|
21
|
+
Do NOT `git add` anything — this is read-only inspection.
|
|
22
|
+
|
|
23
|
+
### Review
|
|
24
|
+
|
|
25
|
+
The review layers are `{workflow.review_layers}`, resolved during activation.
|
|
26
|
+
|
|
27
|
+
Skip every layer whose `instruction` is empty or missing — that is how an override disables a default layer — and every layer whose `when` condition (if present) does not hold in the current context. If no layers remain, HALT with status `blocked` and blocking condition `no active review layers`.
|
|
28
|
+
|
|
29
|
+
Runtime placeholders: `{diff_output}` is the diff constructed above. `{verbatim_intent}` is the invocation intent exactly as this run received it at step-01; if the run started from an existing spec file rather than a fresh intent, it is the spec's `<intent-contract>` block instead.
|
|
30
|
+
|
|
31
|
+
Execute all remaining layers in parallel wherever their execution methods allow: substitute the runtime placeholders (e.g. `{diff_output}`) into each layer's `instruction`, then follow it verbatim. Spawn every reviewer subagent before reading or reacting to any of their output; begin collection and triage only once all are launched.
|
|
32
|
+
|
|
33
|
+
### Classify
|
|
34
|
+
|
|
35
|
+
1. Deduplicate only findings with the same claim and same required action. Then evaluate each remaining finding independently. Do not reject a finding because a related finding was rejected.
|
|
36
|
+
2. Assign severity to each finding by consequence for the artifact's main consumer (software user, document reader, etc).
|
|
37
|
+
Disregard any severity assigned by a reviewing subagent. Review subagents operate under by-design information asymmetry and do not have enough context to set final severity for this workflow.
|
|
38
|
+
- `low`: none or cosmetic
|
|
39
|
+
- `medium`: tolerable
|
|
40
|
+
- `high`: intolerable
|
|
41
|
+
3. Route each finding into exactly one triage category. The first three categories are **this story's problem** — caused or exposed by the current change. The last two are **not this story's problem**.
|
|
42
|
+
Scope authority: a finding may be routed to defer or reject *as out of scope* only on the authority of the intent itself. The spec's scope language, the plan, and the diff's own shape are not admissible scope authorities — if only they exclude a finding, treat it as evidence against the chosen reading (intent_gap or bad_spec), not as out of scope.
|
|
43
|
+
- **intent_gap** — caused by the change; cannot be resolved from the spec because the captured intent is incomplete. Do not infer intent unless there is exactly one possible reading.
|
|
44
|
+
- **bad_spec** — caused by the change, including direct deviations from spec. The spec should have been clear enough to prevent it. When in doubt between bad_spec and patch, prefer bad_spec — a spec-level fix is more likely to produce coherent code.
|
|
45
|
+
- **patch** — caused by the change; trivially fixable without human input. Just part of the diff.
|
|
46
|
+
- **defer** — pre-existing issue not caused by this story, surfaced incidentally by the review. Collect for later focused attention.
|
|
47
|
+
- **reject** — noise. Drop silently. When unsure between defer and reject, prefer reject — only defer findings you are confident are real.
|
|
48
|
+
4. Append a new entry to the `## Review Triage Log` section in `{spec_file}`, in this format:
|
|
49
|
+
```markdown
|
|
50
|
+
### {date} — Review pass
|
|
51
|
+
- intent_gap: count
|
|
52
|
+
- bad_spec: count
|
|
53
|
+
- patch: count
|
|
54
|
+
- defer: count
|
|
55
|
+
- reject: count
|
|
56
|
+
- addressed_findings:
|
|
57
|
+
- `[high|medium|low]` `[patch|bad_spec]` <finding summary and action taken in this pass>
|
|
58
|
+
```
|
|
59
|
+
Where `count` is either just `0`, or total with breakdown by severity `N: (high Nhigh, medium Nmedium, low Nlow)`.
|
|
60
|
+
If no patch was fixed and no bad_spec repair loopback was triggered in this pass, write:
|
|
61
|
+
```markdown
|
|
62
|
+
- addressed_findings:
|
|
63
|
+
- none
|
|
64
|
+
```
|
|
65
|
+
5. Process findings in cascading order. If intent_gap exists, lower findings are moot; follow the intent_gap branch below. If bad_spec exists, lower findings are moot since code will be re-derived. If neither exists, process patch and defer normally. Before each bad_spec loopback, read `{spec_file}` frontmatter `review_loop_iteration` (missing means `0`), increment it by 1, and write it back. If it exceeds 5, append the triage-log entry for this pass with `addressed_findings: none`, then HALT with status `blocked` and blocking condition `review repair loop exceeded 5 iterations (non-convergence)`.
|
|
66
|
+
- **intent_gap** — Root cause is inside `<intent-contract>`. Save the attempted change as a patch file in `{implementation_artifacts}` and reference it from the triage-log entry, then revert code changes. Append the triage-log entry for this pass with `addressed_findings: none`, then HALT with status `blocked`, blocking condition `intent gap`, and include the unresolved questions and the saved patch path.
|
|
67
|
+
- **bad_spec** — Root cause is outside `<intent-contract>`. Do not modify content inside `<intent-contract>`. Before reverting code: extract KEEP instructions for positive preservation (what worked well and must survive re-derivation). Revert code changes. Read the `## Spec Change Log` in `{spec_file}` and strictly respect all logged constraints when amending the sections outside `<intent-contract>` that contain the root cause. Append a new change-log entry recording: the triggering finding, what was amended, the known-bad state avoided, and the KEEP instructions. Append the triage-log entry for this pass, listing every bad_spec finding that triggered the spec amendment and implementation loopback under `addressed_findings`. Read fully and follow `./step-03-implement.md` to re-derive the code, then this step will run again.
|
|
68
|
+
- **patch** — Auto-fix. These are the only findings that survive loopbacks. After auto-fixing, append the triage-log entry for this pass, listing every patch fixed in this pass under `addressed_findings`.
|
|
69
|
+
- **defer** — Append one new entry to `{deferred_work_file}` using this format. Do not modify existing entries or look for duplicates.
|
|
70
|
+
```markdown
|
|
71
|
+
- source_spec: `{spec_file}`
|
|
72
|
+
summary: <one sentence>
|
|
73
|
+
evidence: <why this is real>
|
|
74
|
+
```
|
|
75
|
+
- **reject** — Drop silently.
|
|
76
|
+
|
|
77
|
+
## Finalize
|
|
78
|
+
|
|
79
|
+
Prepare `Auto Run Result` details:
|
|
80
|
+
- Summary of implemented change
|
|
81
|
+
- Files changed with one-line descriptions
|
|
82
|
+
- Review findings breakdown: patches applied, items deferred, items rejected
|
|
83
|
+
- Follow-up review recommendation: `true` when the final review pass made review-driven changes significant enough to benefit from an independent follow-up review; otherwise `false`. Use judgment, not a fixed numeric threshold. Base the judgment on the final pass's triage log and fixes, including patched-finding volume, consequence/severity, breadth, behavior/API/security/data impact, and implementation complexity. Many low-severity patched findings can be significant by volume. Do not recommend follow-up for only a few localized low-consequence fixes.
|
|
84
|
+
- Verification performed, including command outcomes or manual inspection notes
|
|
85
|
+
- Any residual risks
|
|
86
|
+
|
|
87
|
+
Set `{spec_file}` frontmatter `followup_review_recommended` from the judgment above.
|
|
88
|
+
|
|
89
|
+
If version control is available, commit every file in the reviewed diff — tracked and untracked. Do not push. After committing, verify the commit contains each file from the reviewed diff; if any is missing, add it and amend before proceeding. Anything still visible in `git status --porcelain` is by definition not part of the change: leave it in place — do not commit, delete, or gitignore it — and list it under `Auto Run Result` as residual artifacts.
|
|
90
|
+
|
|
91
|
+
Capture `final_revision` (current HEAD after committing, or `NO_VCS` if version control is unavailable) into `{spec_file}` frontmatter.
|
|
92
|
+
|
|
93
|
+
Set `{spec_file}` frontmatter `status: done`.
|
|
94
|
+
|
|
95
|
+
HALT with status `done`.
|