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,101 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: drt-implement-task
|
|
3
|
+
description: 'Full coding task flow — clarify intent, approve plan, confirm dependencies, implement, QC, code review, fix loop. Use when the user says implement this task or start coding.'
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Implement Task Workflow
|
|
7
|
+
|
|
8
|
+
**Goal:** Take a coding task from intent through approved plan, dependency confirmation, implementation, QC, quality review, and bug-fix loops.
|
|
9
|
+
|
|
10
|
+
Subagents, when available, are an important part of this workflow. Use them as directed. If you need explicit user permission to run subagents, ask once for the whole run.
|
|
11
|
+
|
|
12
|
+
## Conventions
|
|
13
|
+
|
|
14
|
+
- Bare paths resolve from the skill root.
|
|
15
|
+
- `{skill-root}` resolves to this skill's installed directory (where `customize.toml` lives).
|
|
16
|
+
- `{project-root}`-prefixed paths resolve from the project working directory.
|
|
17
|
+
- `{skill-name}` resolves to the skill directory's basename.
|
|
18
|
+
|
|
19
|
+
## READY FOR DEVELOPMENT STANDARD
|
|
20
|
+
|
|
21
|
+
A task spec is ready when:
|
|
22
|
+
|
|
23
|
+
- **Actionable**: Every task has a file path and specific action.
|
|
24
|
+
- **Logical**: Tasks ordered by dependency.
|
|
25
|
+
- **Testable**: All ACs use Given/When/Then.
|
|
26
|
+
- **Complete**: No placeholders or TBDs.
|
|
27
|
+
- **Sufficient**: No known requirement, acceptance, dependency, or implementation gaps remain unresolved.
|
|
28
|
+
- **Coherent**: No unresolved ambiguities or internal contradictions.
|
|
29
|
+
|
|
30
|
+
## On Activation
|
|
31
|
+
|
|
32
|
+
### Step 1: Resolve the Workflow Block
|
|
33
|
+
|
|
34
|
+
Run: `node {project-root}/_drt/scripts/resolve-customization.js --skill {skill-root} --key workflow`
|
|
35
|
+
|
|
36
|
+
**If the script fails**, resolve the `workflow` block yourself by reading these three files in base → team → user order and applying the same structural merge rules as the resolver:
|
|
37
|
+
|
|
38
|
+
1. `{skill-root}/customize.toml` — defaults
|
|
39
|
+
2. `{project-root}/_drt/custom/{skill-name}.toml` — team overrides
|
|
40
|
+
3. `{project-root}/_drt/custom/{skill-name}.user.toml` — personal overrides
|
|
41
|
+
|
|
42
|
+
Any missing file is skipped. Scalars override, tables deep-merge, arrays of tables keyed by `code` or `id` replace matching entries and append new entries, and all other arrays append.
|
|
43
|
+
|
|
44
|
+
### Step 2: Execute Prepend Steps
|
|
45
|
+
|
|
46
|
+
Execute each entry in `{workflow.activation_steps_prepend}` in order before proceeding.
|
|
47
|
+
|
|
48
|
+
### Step 3: Load Persistent Facts
|
|
49
|
+
|
|
50
|
+
Treat every entry in `{workflow.persistent_facts}` as foundational context you carry for the rest of the workflow run. Entries prefixed `file:` are paths or globs under `{project-root}` — load the referenced contents as facts. All other entries are facts verbatim.
|
|
51
|
+
|
|
52
|
+
### Step 4: Load Config
|
|
53
|
+
|
|
54
|
+
Load config from `{project-root}/_drt/drt/config.yaml` and resolve:
|
|
55
|
+
|
|
56
|
+
- `project_name`, `planning_artifacts`, `implementation_artifacts`, `user_name`
|
|
57
|
+
- `communication_language`, `document_output_language`, `user_skill_level`
|
|
58
|
+
- `date` as system-generated current datetime
|
|
59
|
+
- `sprint_status` = `{implementation_artifacts}/sprint-status.yaml`
|
|
60
|
+
- `max_review_loops` = `{workflow.max_review_loops}` (default 3 if unset)
|
|
61
|
+
- YOU MUST ALWAYS SPEAK OUTPUT in your Agent communication style with the config `{communication_language}`
|
|
62
|
+
|
|
63
|
+
### Step 5: Greet the User
|
|
64
|
+
|
|
65
|
+
Greet `{user_name}`, speaking in `{communication_language}`.
|
|
66
|
+
|
|
67
|
+
### Step 6: Execute Append Steps
|
|
68
|
+
|
|
69
|
+
Execute each entry in `{workflow.activation_steps_append}` in order.
|
|
70
|
+
|
|
71
|
+
Activation is complete. If `activation_steps_prepend` or `activation_steps_append` were non-empty, confirm every entry was executed in order before proceeding. Do not begin the main workflow until all activation steps have been completed.
|
|
72
|
+
|
|
73
|
+
## WORKFLOW ARCHITECTURE
|
|
74
|
+
|
|
75
|
+
This uses **step-file architecture** for disciplined execution:
|
|
76
|
+
|
|
77
|
+
- **Micro-file Design**: Each step is self-contained and followed exactly
|
|
78
|
+
- **Just-In-Time Loading**: Only load the current step file
|
|
79
|
+
- **Sequential Enforcement**: Complete steps in order, no skipping
|
|
80
|
+
- **State Tracking**: Persist progress via spec frontmatter and in-memory variables
|
|
81
|
+
- **Append-Only Building**: Build artifacts incrementally
|
|
82
|
+
|
|
83
|
+
### Step Processing Rules
|
|
84
|
+
|
|
85
|
+
1. **READ COMPLETELY**: Read the entire step file before acting
|
|
86
|
+
2. **FOLLOW SEQUENCE**: Execute sections in order
|
|
87
|
+
3. **WAIT FOR INPUT**: Halt at checkpoints and wait for human
|
|
88
|
+
4. **LOAD NEXT**: When directed, read fully and follow the next step file
|
|
89
|
+
|
|
90
|
+
### Critical Rules (NO EXCEPTIONS)
|
|
91
|
+
|
|
92
|
+
- **NEVER** load multiple step files simultaneously
|
|
93
|
+
- **ALWAYS** read entire step file before execution
|
|
94
|
+
- **NEVER** skip steps or optimize the sequence
|
|
95
|
+
- **ALWAYS** follow the exact instructions in the step file
|
|
96
|
+
- **NEVER** proceed past a plan or dependency checkpoint without explicit user approval
|
|
97
|
+
- **ALWAYS** halt at checkpoints and wait for human input
|
|
98
|
+
|
|
99
|
+
## FIRST STEP
|
|
100
|
+
|
|
101
|
+
Read fully and follow: `./steps/step-01-gather-intent.md`
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: '{title}'
|
|
3
|
+
type: 'feature'
|
|
4
|
+
created: '{date}'
|
|
5
|
+
status: 'draft'
|
|
6
|
+
review_loop_iteration: 0
|
|
7
|
+
approved_dependencies: []
|
|
8
|
+
context: []
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
<frozen-after-approval reason="human-owned intent — do not modify unless human renegotiates">
|
|
12
|
+
|
|
13
|
+
## Intent
|
|
14
|
+
|
|
15
|
+
**Problem:** ONE_TO_TWO_SENTENCES
|
|
16
|
+
|
|
17
|
+
**Approach:** ONE_TO_TWO_SENTENCES
|
|
18
|
+
|
|
19
|
+
## Boundaries & Constraints
|
|
20
|
+
|
|
21
|
+
**Always:** INVARIANT_RULES
|
|
22
|
+
|
|
23
|
+
**Ask First:** DECISIONS_REQUIRING_HUMAN_APPROVAL
|
|
24
|
+
|
|
25
|
+
**Never:** NON_GOALS_AND_FORBIDDEN_APPROACHES
|
|
26
|
+
|
|
27
|
+
## I/O & Edge-Case Matrix
|
|
28
|
+
|
|
29
|
+
| Scenario | Input / State | Expected Output / Behavior | Error Handling |
|
|
30
|
+
|----------|--------------|---------------------------|----------------|
|
|
31
|
+
| HAPPY_PATH | INPUT | OUTCOME | N/A |
|
|
32
|
+
| ERROR_CASE | INPUT | OUTCOME | ERROR_HANDLING |
|
|
33
|
+
|
|
34
|
+
</frozen-after-approval>
|
|
35
|
+
|
|
36
|
+
## Code Map
|
|
37
|
+
|
|
38
|
+
- `FILE` -- ROLE_OR_RELEVANCE
|
|
39
|
+
|
|
40
|
+
## Tasks & Acceptance
|
|
41
|
+
|
|
42
|
+
**Execution:**
|
|
43
|
+
- [ ] `FILE` -- ACTION -- RATIONALE
|
|
44
|
+
|
|
45
|
+
**Acceptance Criteria:**
|
|
46
|
+
- Given PRECONDITION, when ACTION, then EXPECTED_RESULT
|
|
47
|
+
|
|
48
|
+
## Spec Change Log
|
|
49
|
+
|
|
50
|
+
## Design Notes
|
|
51
|
+
|
|
52
|
+
DESIGN_RATIONALE_AND_EXAMPLES
|
|
53
|
+
|
|
54
|
+
## Verification
|
|
55
|
+
|
|
56
|
+
**Commands:**
|
|
57
|
+
- `COMMAND` -- expected: SUCCESS_CRITERIA
|
|
58
|
+
|
|
59
|
+
**Manual checks (if no CLI):**
|
|
60
|
+
- WHAT_TO_INSPECT_AND_EXPECTED_STATE
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# DO NOT EDIT -- overwritten on every update.
|
|
2
|
+
#
|
|
3
|
+
# Workflow customization surface for drt-implement-task.
|
|
4
|
+
|
|
5
|
+
[workflow]
|
|
6
|
+
|
|
7
|
+
activation_steps_prepend = []
|
|
8
|
+
|
|
9
|
+
activation_steps_append = []
|
|
10
|
+
|
|
11
|
+
persistent_facts = [
|
|
12
|
+
"file:{project-root}/**/project-context.md",
|
|
13
|
+
]
|
|
14
|
+
|
|
15
|
+
max_review_loops = 3
|
|
16
|
+
|
|
17
|
+
on_complete = ""
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
---
|
|
2
|
+
task_summary: ''
|
|
3
|
+
spec_file: ''
|
|
4
|
+
route: ''
|
|
5
|
+
story_file: ''
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Step 1: Gather Intent
|
|
9
|
+
|
|
10
|
+
## RULES
|
|
11
|
+
|
|
12
|
+
- YOU MUST ALWAYS SPEAK OUTPUT in your Agent communication style with the config `{communication_language}`
|
|
13
|
+
- The prompt that triggered this workflow IS the intent — not a hint.
|
|
14
|
+
- Do not modify any files in this step except when resuming an existing task spec.
|
|
15
|
+
|
|
16
|
+
## INSTRUCTIONS
|
|
17
|
+
|
|
18
|
+
1. **Resume check.** Scan `{implementation_artifacts}` for `task-*.md` files. If the user did not specify a new task and active specs exist, list them with status and HALT. Ask which to resume or `[N]` for new.
|
|
19
|
+
|
|
20
|
+
Resume routing by `status` in frontmatter:
|
|
21
|
+
- `draft` → set `{spec_file}`, **EARLY EXIT** → `./step-02-plan-and-approve.md`
|
|
22
|
+
- `ready-for-dev` → set `{spec_file}`, **EARLY EXIT** → `./step-03-confirm-dependencies.md`
|
|
23
|
+
- `in-progress` → set `{spec_file}`, **EARLY EXIT** → `./step-04-implement.md`
|
|
24
|
+
- `in-review` → set `{spec_file}`, **EARLY EXIT** → `./step-06-quality-review.md`
|
|
25
|
+
|
|
26
|
+
2. **Story path — delegate.** Check in order — stop when matched:
|
|
27
|
+
|
|
28
|
+
**Tier 1 — Explicit story path.** User passed a story file path → verify it exists. Set `{story_file}`, `{route}` = `story`. Invoke the `drt-dev-story` skill with that story path. When dev-story completes, offer `drt-code-review`. **STOP** this workflow.
|
|
29
|
+
|
|
30
|
+
**Tier 2 — Sprint tracking.** If `{sprint_status}` exists, scan `development_status` for the first story with status `ready-for-dev` or `in-progress`. If exactly one found, suggest it and HALT: `[Y] Yes, use this story` | `[N] No, continue task flow`. On Yes → set `{route}` = `story`, invoke `drt-dev-story`. **STOP** this workflow.
|
|
31
|
+
|
|
32
|
+
3. **Capture task intent.** From the user's message and recent conversation:
|
|
33
|
+
- Set `{task_summary}` to a one-paragraph summary of what to build or fix.
|
|
34
|
+
- If intent is ambiguous, HALT with up to 3 numbered questions. Re-ask only unanswered questions until clear.
|
|
35
|
+
|
|
36
|
+
4. **Optional deepen.** If intent is thin (no problem statement, no success criteria), mention that `drt-brainstorming` or `drt-advanced-elicitation` in a fresh session can help — but do not require them to proceed.
|
|
37
|
+
|
|
38
|
+
5. **Initialize spec.** Derive kebab-case `{slug}` from `{task_summary}` (lead with issue/ticket ID if mentioned). Set `{spec_file}` = `{implementation_artifacts}/task-{slug}.md`. If file exists with `status: done`, append `-2`, `-3`, etc. Set `{route}` = `task`.
|
|
39
|
+
|
|
40
|
+
## NEXT
|
|
41
|
+
|
|
42
|
+
Read fully and follow `./step-02-plan-and-approve.md`
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
---
|
|
2
|
+
---
|
|
3
|
+
|
|
4
|
+
# Step 2: Plan and Approve
|
|
5
|
+
|
|
6
|
+
## RULES
|
|
7
|
+
|
|
8
|
+
- YOU MUST ALWAYS SPEAK OUTPUT in your Agent communication style with the config `{communication_language}`
|
|
9
|
+
- Do not proceed to implementation until the user explicitly approves the plan.
|
|
10
|
+
- No intermediate approvals beyond CHECKPOINT 1.
|
|
11
|
+
|
|
12
|
+
## INSTRUCTIONS
|
|
13
|
+
|
|
14
|
+
1. **Draft resume.** If `{spec_file}` exists with `status: draft`, read it and capture the verbatim `<frozen-after-approval>...</frozen-after-approval>` block as `preserved_intent`. Otherwise `preserved_intent` is empty.
|
|
15
|
+
|
|
16
|
+
2. **Investigate codebase.** Isolate deep exploration in subagents where available. Instruct subagents to return distilled summaries only.
|
|
17
|
+
|
|
18
|
+
3. **Write spec.** Read `./assets/task-spec-template.md` fully. Fill it from `{task_summary}` and investigation. Resolve `date` to current system date. If `preserved_intent` is non-empty, replace the `<frozen-after-approval>` block with `preserved_intent` before writing. Write to `{spec_file}` with `status: draft`.
|
|
19
|
+
|
|
20
|
+
4. **Self-review** against READY FOR DEVELOPMENT STANDARD (defined in SKILL.md).
|
|
21
|
+
|
|
22
|
+
5. If gaps remain, HALT and ask the user numbered questions. Do not fantasize or leave open questions.
|
|
23
|
+
|
|
24
|
+
6. **Token check.** If spec exceeds ~1600 tokens, HALT: `[S] Split` | `[K] Keep full spec`. On S, defer secondary goals to `{implementation_artifacts}/deferred-work.md` and rewrite spec for main goal only.
|
|
25
|
+
|
|
26
|
+
### CHECKPOINT 1
|
|
27
|
+
|
|
28
|
+
Present plan summary. Display `{spec_file}` as a CWD-relative clickable path.
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
Before approving, you can open the spec file in an editor or ask me to change it. You can also use `drt-advanced-elicitation`, `drt-party-mode`, or `drt-code-review` in another session to avoid context bloat.
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
HALT and ask: `[A] Approve` | `[E] Edit`
|
|
37
|
+
|
|
38
|
+
- **A**: Re-read `{spec_file}` from disk. If missing, HALT and STOP. If changed since you wrote it, acknowledge edits and use the updated version. Set `status: ready-for-dev`. Everything inside `<frozen-after-approval>` is now locked.
|
|
39
|
+
- **E**: Apply user changes, then return to CHECKPOINT 1.
|
|
40
|
+
|
|
41
|
+
## NEXT
|
|
42
|
+
|
|
43
|
+
Read fully and follow `./step-03-confirm-dependencies.md`
|
package/src/drt-skills/4-implementation/drt-implement-task/steps/step-03-confirm-dependencies.md
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
---
|
|
2
|
+
---
|
|
3
|
+
|
|
4
|
+
# Step 3: Confirm Dependencies
|
|
5
|
+
|
|
6
|
+
## RULES
|
|
7
|
+
|
|
8
|
+
- YOU MUST ALWAYS SPEAK OUTPUT in your Agent communication style with the config `{communication_language}`
|
|
9
|
+
- Do not install packages or modify lockfiles until the user approves.
|
|
10
|
+
- Do not proceed to implementation without passing this checkpoint when new dependencies are needed.
|
|
11
|
+
|
|
12
|
+
## INSTRUCTIONS
|
|
13
|
+
|
|
14
|
+
1. Read `{spec_file}` Tasks section and Code Map.
|
|
15
|
+
|
|
16
|
+
2. Scan existing manifests: `package.json`, `package-lock.json`, `pnpm-lock.yaml`, `pyproject.toml`, `requirements.txt`, `go.mod`, `Cargo.toml`, `Gemfile`, or equivalents present in the project.
|
|
17
|
+
|
|
18
|
+
3. List **new dependencies** required for this task: package name, version (or range), reason, and alternative if any.
|
|
19
|
+
|
|
20
|
+
4. If no new dependencies are needed:
|
|
21
|
+
- Set `approved_dependencies: []` in `{spec_file}` frontmatter.
|
|
22
|
+
- Proceed to NEXT.
|
|
23
|
+
|
|
24
|
+
5. If new dependencies are needed, present a table:
|
|
25
|
+
|
|
26
|
+
| Package | Version | Reason |
|
|
27
|
+
|---------|---------|--------|
|
|
28
|
+
|
|
29
|
+
**CHECKPOINT 2** — HALT and ask: `[A] Approve all` | `[P] Approve partial` (user lists which) | `[R] Reject — revise plan`
|
|
30
|
+
|
|
31
|
+
- **A** or **P**: Write approved packages to `approved_dependencies` in frontmatter. Only then run install commands (`npm install`, `pip install`, etc.) for approved packages.
|
|
32
|
+
- **R**: Return to `./step-02-plan-and-approve.md` with user feedback.
|
|
33
|
+
|
|
34
|
+
6. If implementation later requires a dependency **not** in `approved_dependencies`, HALT and return to this step.
|
|
35
|
+
|
|
36
|
+
## NEXT
|
|
37
|
+
|
|
38
|
+
Read fully and follow `./step-04-implement.md`
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
---
|
|
2
|
+
---
|
|
3
|
+
|
|
4
|
+
# Step 4: Implement
|
|
5
|
+
|
|
6
|
+
## RULES
|
|
7
|
+
|
|
8
|
+
- YOU MUST ALWAYS SPEAK OUTPUT in your Agent communication style with the config `{communication_language}`
|
|
9
|
+
- Red, green, refactor — in that order.
|
|
10
|
+
- No push. No remote ops.
|
|
11
|
+
- Content inside `<frozen-after-approval>` is read-only. Do not modify.
|
|
12
|
+
- Execute tasks in the order written in the spec.
|
|
13
|
+
|
|
14
|
+
## PRECONDITION
|
|
15
|
+
|
|
16
|
+
Verify `{spec_file}` exists and `status` is `ready-for-dev` or `in-progress`. If not, HALT.
|
|
17
|
+
|
|
18
|
+
## INSTRUCTIONS
|
|
19
|
+
|
|
20
|
+
1. Capture `baseline_commit` (current HEAD, or `NO_VCS` if unavailable) into `{spec_file}` frontmatter.
|
|
21
|
+
|
|
22
|
+
2. Set `status: in-progress` in frontmatter before making code changes.
|
|
23
|
+
|
|
24
|
+
3. If `{spec_file}` has a non-empty `context:` list in frontmatter, load those files before implementation.
|
|
25
|
+
|
|
26
|
+
4. For each task in **Execution** (unchecked):
|
|
27
|
+
- Write FAILING tests first for the task functionality.
|
|
28
|
+
- Confirm tests fail before implementation.
|
|
29
|
+
- Implement minimal code to make tests pass.
|
|
30
|
+
- Run tests to confirm they pass.
|
|
31
|
+
- Refactor while keeping tests green.
|
|
32
|
+
- Mark task `[x]` in the spec.
|
|
33
|
+
|
|
34
|
+
5. Verify every Acceptance Criterion is satisfied.
|
|
35
|
+
|
|
36
|
+
6. If a new dependency is needed beyond `approved_dependencies`, HALT and return to `./step-03-confirm-dependencies.md`.
|
|
37
|
+
|
|
38
|
+
7. If 3 consecutive implementation failures occur on the same task, HALT and ask for guidance.
|
|
39
|
+
|
|
40
|
+
## NEXT
|
|
41
|
+
|
|
42
|
+
Read fully and follow `./step-05-qc-test.md`
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
---
|
|
2
|
+
---
|
|
3
|
+
|
|
4
|
+
# Step 5: QC Test
|
|
5
|
+
|
|
6
|
+
## RULES
|
|
7
|
+
|
|
8
|
+
- YOU MUST ALWAYS SPEAK OUTPUT in your Agent communication style with the config `{communication_language}`
|
|
9
|
+
- Do not proceed to code review while tests are failing.
|
|
10
|
+
|
|
11
|
+
## INSTRUCTIONS
|
|
12
|
+
|
|
13
|
+
1. Read **Verification** section in `{spec_file}`. If empty, infer test and lint commands from project structure and `project-context.md`.
|
|
14
|
+
|
|
15
|
+
2. Run the **full existing test suite** (regression check).
|
|
16
|
+
|
|
17
|
+
3. Run **new tests** introduced for this task.
|
|
18
|
+
|
|
19
|
+
4. Run lint/format if the project has standard scripts.
|
|
20
|
+
|
|
21
|
+
5. Present results: pass/fail per command, failing output summarized.
|
|
22
|
+
|
|
23
|
+
6. **If any check fails** → return to `./step-04-implement.md` to fix. Do not proceed.
|
|
24
|
+
|
|
25
|
+
7. **If all pass:**
|
|
26
|
+
- Set `status: in-review` in `{spec_file}` frontmatter.
|
|
27
|
+
- Mention that `drt-qa-generate-e2e-tests` is available if the user wants automated API/E2E coverage before review.
|
|
28
|
+
|
|
29
|
+
## NEXT
|
|
30
|
+
|
|
31
|
+
Read fully and follow `./step-06-quality-review.md`
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
---
|
|
2
|
+
review_findings_count: 0
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Step 6: Quality Review
|
|
6
|
+
|
|
7
|
+
## RULES
|
|
8
|
+
|
|
9
|
+
- YOU MUST ALWAYS SPEAK OUTPUT in your Agent communication style with the config `{communication_language}`
|
|
10
|
+
- Delegate adversarial review to `drt-code-review` — do not duplicate review layers here.
|
|
11
|
+
|
|
12
|
+
## INSTRUCTIONS
|
|
13
|
+
|
|
14
|
+
1. Increment `review_loop_iteration` in `{spec_file}` frontmatter before invoking review.
|
|
15
|
+
|
|
16
|
+
2. Invoke the **`drt-code-review`** skill with:
|
|
17
|
+
- `{spec_file}` as the spec/story context
|
|
18
|
+
- Diff since `baseline_commit` in frontmatter (or uncommitted changes if `NO_VCS`)
|
|
19
|
+
|
|
20
|
+
3. Let `drt-code-review` complete its triage and present findings. Collect counts: `decision_needed`, `patch`, `defer`, `dismiss`.
|
|
21
|
+
|
|
22
|
+
4. Set `{review_findings_count}` = number of unresolved `patch` + `decision_needed` findings after CR completes.
|
|
23
|
+
|
|
24
|
+
5. Routing:
|
|
25
|
+
- If `decision_needed` or `patch` findings remain → **NEXT** → `./step-07-fix-findings.md`
|
|
26
|
+
- If clean (zero patch/decision_needed) or only defer/dismiss → **NEXT** → `./step-08-complete.md`
|
|
27
|
+
|
|
28
|
+
## NEXT
|
|
29
|
+
|
|
30
|
+
If findings need fixing, read fully and follow `./step-07-fix-findings.md`. Otherwise read fully and follow `./step-08-complete.md`.
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
---
|
|
2
|
+
---
|
|
3
|
+
|
|
4
|
+
# Step 7: Fix Findings
|
|
5
|
+
|
|
6
|
+
## RULES
|
|
7
|
+
|
|
8
|
+
- YOU MUST ALWAYS SPEAK OUTPUT in your Agent communication style with the config `{communication_language}`
|
|
9
|
+
- Resolve `decision_needed` findings before applying `patch` fixes.
|
|
10
|
+
|
|
11
|
+
## INSTRUCTIONS
|
|
12
|
+
|
|
13
|
+
1. **Decision-needed.** For each `decision_needed` finding from code review, present detail and options. HALT until the user decides. Each resolved item becomes `patch`, `defer`, or dismissed.
|
|
14
|
+
|
|
15
|
+
2. **Patch findings.** HALT and ask:
|
|
16
|
+
|
|
17
|
+
> **How would you like to handle the patch findings?**
|
|
18
|
+
> 1. **Apply every patch** — fix all now
|
|
19
|
+
> 2. **Walk through each** — show details before deciding
|
|
20
|
+
> 3. **Leave as action items** — keep in spec, stop here
|
|
21
|
+
|
|
22
|
+
- **Apply every patch** or **Walk through**: fix code, check off items in spec Review Findings section if present.
|
|
23
|
+
- **Leave as action items**: set spec `status: in-progress`, proceed to step 8 with open items noted.
|
|
24
|
+
|
|
25
|
+
3. **Loop guard.** Read `review_loop_iteration` from `{spec_file}` frontmatter. If it exceeds `{max_review_loops}` and unresolved `high` or `medium` findings remain, HALT. Offer `drt-correct-course` or user override to continue.
|
|
26
|
+
|
|
27
|
+
4. After fixes applied, return to `./step-05-qc-test.md` then `./step-06-quality-review.md` for another review round.
|
|
28
|
+
|
|
29
|
+
5. When review is clean or only defer items remain, proceed to step 8.
|
|
30
|
+
|
|
31
|
+
## NEXT
|
|
32
|
+
|
|
33
|
+
After QC and re-review pass, read fully and follow `./step-08-complete.md`
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
---
|
|
2
|
+
---
|
|
3
|
+
|
|
4
|
+
# Step 8: Complete
|
|
5
|
+
|
|
6
|
+
## RULES
|
|
7
|
+
|
|
8
|
+
- YOU MUST ALWAYS SPEAK OUTPUT in your Agent communication style with the config `{communication_language}`
|
|
9
|
+
|
|
10
|
+
## INSTRUCTIONS
|
|
11
|
+
|
|
12
|
+
1. If no unresolved `patch` or `decision_needed` findings remain, set `status: done` in `{spec_file}` frontmatter.
|
|
13
|
+
|
|
14
|
+
2. Present completion summary:
|
|
15
|
+
- Task title and `{spec_file}` path
|
|
16
|
+
- Files changed (CWD-relative paths with `:line` where helpful)
|
|
17
|
+
- Test results from final QC pass
|
|
18
|
+
- Review rounds (`review_loop_iteration`)
|
|
19
|
+
- Deferred items count
|
|
20
|
+
|
|
21
|
+
3. Offer next steps:
|
|
22
|
+
|
|
23
|
+
> **What would you like to do next?**
|
|
24
|
+
> 1. **Start another task** — run `drt-implement-task` again
|
|
25
|
+
> 2. **Run code review again** — `drt-code-review`
|
|
26
|
+
> 3. **Ask what's next** — `drt-help`
|
|
27
|
+
> 4. **Done**
|
|
28
|
+
|
|
29
|
+
HALT and wait for user choice.
|
|
30
|
+
|
|
31
|
+
## On Complete
|
|
32
|
+
|
|
33
|
+
Run: `node {project-root}/_drt/scripts/resolve-customization.js --skill {skill-root} --key workflow.on_complete`
|
|
34
|
+
|
|
35
|
+
If the resolved `workflow.on_complete` is non-empty, follow it as the final terminal instruction before exiting.
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: drt-qa-generate-e2e-tests
|
|
3
|
+
description: 'Generate end to end automated tests for existing features. Use when the user says "create qa automated tests for [feature]"'
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# QA Generate E2E Tests Workflow
|
|
7
|
+
|
|
8
|
+
**Goal:** Generate automated API and E2E tests for implemented code.
|
|
9
|
+
|
|
10
|
+
**Your Role:** You are a QA automation engineer. You generate tests ONLY — no code review or story validation (use the `drt-code-review` skill for that).
|
|
11
|
+
|
|
12
|
+
## Conventions
|
|
13
|
+
|
|
14
|
+
- Bare paths (e.g. `checklist.md`) resolve from the skill root.
|
|
15
|
+
- `{skill-root}` resolves to this skill's installed directory (where `customize.toml` lives).
|
|
16
|
+
- `{project-root}`-prefixed paths resolve from the project working directory.
|
|
17
|
+
- `{skill-name}` resolves to the skill directory's basename.
|
|
18
|
+
|
|
19
|
+
## On Activation
|
|
20
|
+
|
|
21
|
+
### Step 1: Resolve the Workflow Block
|
|
22
|
+
|
|
23
|
+
Run: `node {project-root}/_drt/scripts/resolve-customization.js --skill {skill-root} --key workflow`
|
|
24
|
+
|
|
25
|
+
**If the script fails**, resolve the `workflow` block yourself by reading these three files in base → team → user order and applying the same structural merge rules as the resolver:
|
|
26
|
+
|
|
27
|
+
1. `{skill-root}/customize.toml` — defaults
|
|
28
|
+
2. `{project-root}/_drt/custom/{skill-name}.toml` — team overrides
|
|
29
|
+
3. `{project-root}/_drt/custom/{skill-name}.user.toml` — personal overrides
|
|
30
|
+
|
|
31
|
+
Any missing file is skipped. Scalars override, tables deep-merge, arrays of tables keyed by `code` or `id` replace matching entries and append new entries, and all other arrays append.
|
|
32
|
+
|
|
33
|
+
### Step 2: Execute Prepend Steps
|
|
34
|
+
|
|
35
|
+
Execute each entry in `{workflow.activation_steps_prepend}` in order before proceeding.
|
|
36
|
+
|
|
37
|
+
### Step 3: Load Persistent Facts
|
|
38
|
+
|
|
39
|
+
Treat every entry in `{workflow.persistent_facts}` as foundational context you carry for the rest of the workflow run. Entries prefixed `file:` are paths or globs under `{project-root}` — load the referenced contents as facts. All other entries are facts verbatim.
|
|
40
|
+
|
|
41
|
+
### Step 4: Load Config
|
|
42
|
+
|
|
43
|
+
Load config from `{project-root}/_drt/drt/config.yaml` and resolve:
|
|
44
|
+
|
|
45
|
+
- `project_name`, `user_name`
|
|
46
|
+
- `communication_language`, `document_output_language`
|
|
47
|
+
- `implementation_artifacts`
|
|
48
|
+
- `date` as system-generated current datetime
|
|
49
|
+
- YOU MUST ALWAYS SPEAK OUTPUT in your Agent communication style with the config `{communication_language}`
|
|
50
|
+
|
|
51
|
+
### Step 5: Greet the User
|
|
52
|
+
|
|
53
|
+
Greet `{user_name}`, speaking in `{communication_language}`.
|
|
54
|
+
|
|
55
|
+
### Step 6: Execute Append Steps
|
|
56
|
+
|
|
57
|
+
Execute each entry in `{workflow.activation_steps_append}` in order.
|
|
58
|
+
|
|
59
|
+
Activation is complete. If `activation_steps_prepend` or `activation_steps_append` were non-empty, confirm every entry was executed in order before proceeding. Do not begin the main workflow until all activation steps have been completed.
|
|
60
|
+
|
|
61
|
+
## Paths
|
|
62
|
+
|
|
63
|
+
- `test_dir` = `{project-root}/tests`
|
|
64
|
+
- `source_dir` = `{project-root}`
|
|
65
|
+
- `default_output_file` = `{implementation_artifacts}/tests/test-summary.md`
|
|
66
|
+
|
|
67
|
+
## Execution
|
|
68
|
+
|
|
69
|
+
### Step 0: Detect Test Framework
|
|
70
|
+
|
|
71
|
+
Check project for existing test framework:
|
|
72
|
+
|
|
73
|
+
- Look for `package.json` dependencies (playwright, jest, vitest, cypress, etc.)
|
|
74
|
+
- Check for existing test files to understand patterns
|
|
75
|
+
- Use whatever test framework the project already has
|
|
76
|
+
- If no framework exists:
|
|
77
|
+
- Analyze source code to determine project type (React, Vue, Node API, etc.)
|
|
78
|
+
- Search online for current recommended test framework for that stack
|
|
79
|
+
- Suggest the meta framework and use it (or ask user to confirm)
|
|
80
|
+
|
|
81
|
+
### Step 1: Identify Features
|
|
82
|
+
|
|
83
|
+
Ask user what to test:
|
|
84
|
+
|
|
85
|
+
- Specific feature/component name
|
|
86
|
+
- Directory to scan (e.g., `src/components/`)
|
|
87
|
+
- Or auto-discover features in the codebase
|
|
88
|
+
|
|
89
|
+
### Step 2: Generate API Tests (if applicable)
|
|
90
|
+
|
|
91
|
+
For API endpoints/services, generate tests that:
|
|
92
|
+
|
|
93
|
+
- Test status codes (200, 400, 404, 500)
|
|
94
|
+
- Validate response structure
|
|
95
|
+
- Cover happy path + 1-2 error cases
|
|
96
|
+
- Use project's existing test framework patterns
|
|
97
|
+
|
|
98
|
+
### Step 3: Generate E2E Tests (if UI exists)
|
|
99
|
+
|
|
100
|
+
For UI features, generate tests that:
|
|
101
|
+
|
|
102
|
+
- Test user workflows end-to-end
|
|
103
|
+
- Use semantic locators (roles, labels, text)
|
|
104
|
+
- Focus on user interactions (clicks, form fills, navigation)
|
|
105
|
+
- Assert visible outcomes
|
|
106
|
+
- Keep tests linear and simple
|
|
107
|
+
- Follow project's existing test patterns
|
|
108
|
+
|
|
109
|
+
### Step 4: Run Tests
|
|
110
|
+
|
|
111
|
+
Execute tests to verify they pass (use project's test command).
|
|
112
|
+
|
|
113
|
+
If failures occur, fix them immediately.
|
|
114
|
+
|
|
115
|
+
### Step 5: Create Summary
|
|
116
|
+
|
|
117
|
+
Output markdown summary:
|
|
118
|
+
|
|
119
|
+
```markdown
|
|
120
|
+
# Test Automation Summary
|
|
121
|
+
|
|
122
|
+
## Generated Tests
|
|
123
|
+
|
|
124
|
+
### API Tests
|
|
125
|
+
- [x] tests/api/endpoint.spec.ts - Endpoint validation
|
|
126
|
+
|
|
127
|
+
### E2E Tests
|
|
128
|
+
- [x] tests/e2e/feature.spec.ts - User workflow
|
|
129
|
+
|
|
130
|
+
## Coverage
|
|
131
|
+
- API endpoints: 5/10 covered
|
|
132
|
+
- UI features: 3/8 covered
|
|
133
|
+
|
|
134
|
+
## Next Steps
|
|
135
|
+
- Run tests in CI
|
|
136
|
+
- Add more edge cases as needed
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
## Keep It Simple
|
|
140
|
+
|
|
141
|
+
**Do:**
|
|
142
|
+
|
|
143
|
+
- Use standard test framework APIs
|
|
144
|
+
- Focus on happy path + critical errors
|
|
145
|
+
- Write readable, maintainable tests
|
|
146
|
+
- Run tests to verify they pass
|
|
147
|
+
|
|
148
|
+
**Avoid:**
|
|
149
|
+
|
|
150
|
+
- Complex fixture composition
|
|
151
|
+
- Over-engineering
|
|
152
|
+
- Unnecessary abstractions
|
|
153
|
+
|
|
154
|
+
**For Advanced Features:**
|
|
155
|
+
|
|
156
|
+
If the project needs:
|
|
157
|
+
|
|
158
|
+
- Risk-based test strategy
|
|
159
|
+
- Test design planning
|
|
160
|
+
- Quality gates and NFR assessment
|
|
161
|
+
- Comprehensive coverage analysis
|
|
162
|
+
- Advanced testing patterns and utilities
|
|
163
|
+
|
|
164
|
+
> **Install Test Architect (TEA) module**: <https://drt-method.github.io/drt-method-test-architecture-enterprise/>
|
|
165
|
+
|
|
166
|
+
## Output
|
|
167
|
+
|
|
168
|
+
Save summary to: `{default_output_file}`
|
|
169
|
+
|
|
170
|
+
**Done!** Tests generated and verified. Validate against `./checklist.md`.
|
|
171
|
+
|
|
172
|
+
## On Complete
|
|
173
|
+
|
|
174
|
+
Run: `node {project-root}/_drt/scripts/resolve-customization.js --skill {skill-root} --key workflow.on_complete`
|
|
175
|
+
|
|
176
|
+
If the resolved `workflow.on_complete` is non-empty, follow it as the final terminal instruction before exiting.
|