@accelerationguy/accel 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/CLAUDE.md +19 -0
- package/LICENSE +33 -0
- package/README.md +275 -0
- package/bin/install.js +661 -0
- package/docs/getting-started.md +164 -0
- package/docs/module-guide.md +139 -0
- package/modules/drive/LICENSE +21 -0
- package/modules/drive/PAUL-VS-GSD.md +171 -0
- package/modules/drive/README.md +555 -0
- package/modules/drive/assets/terminal.svg +67 -0
- package/modules/drive/bin/install.js +210 -0
- package/modules/drive/integration.js +76 -0
- package/modules/drive/package.json +38 -0
- package/modules/drive/src/commands/add-phase.md +36 -0
- package/modules/drive/src/commands/apply.md +83 -0
- package/modules/drive/src/commands/assumptions.md +37 -0
- package/modules/drive/src/commands/audit.md +57 -0
- package/modules/drive/src/commands/complete-milestone.md +36 -0
- package/modules/drive/src/commands/config.md +175 -0
- package/modules/drive/src/commands/consider-issues.md +41 -0
- package/modules/drive/src/commands/discover.md +48 -0
- package/modules/drive/src/commands/discuss-milestone.md +33 -0
- package/modules/drive/src/commands/discuss.md +34 -0
- package/modules/drive/src/commands/flows.md +73 -0
- package/modules/drive/src/commands/handoff.md +201 -0
- package/modules/drive/src/commands/help.md +525 -0
- package/modules/drive/src/commands/init.md +54 -0
- package/modules/drive/src/commands/map-codebase.md +34 -0
- package/modules/drive/src/commands/milestone.md +34 -0
- package/modules/drive/src/commands/pause.md +44 -0
- package/modules/drive/src/commands/plan-fix.md +216 -0
- package/modules/drive/src/commands/plan.md +36 -0
- package/modules/drive/src/commands/progress.md +138 -0
- package/modules/drive/src/commands/register.md +29 -0
- package/modules/drive/src/commands/remove-phase.md +37 -0
- package/modules/drive/src/commands/research-phase.md +209 -0
- package/modules/drive/src/commands/research.md +47 -0
- package/modules/drive/src/commands/resume.md +49 -0
- package/modules/drive/src/commands/status.md +78 -0
- package/modules/drive/src/commands/unify.md +87 -0
- package/modules/drive/src/commands/verify.md +60 -0
- package/modules/drive/src/references/checkpoints.md +234 -0
- package/modules/drive/src/references/context-management.md +219 -0
- package/modules/drive/src/references/git-strategy.md +206 -0
- package/modules/drive/src/references/loop-phases.md +254 -0
- package/modules/drive/src/references/plan-format.md +263 -0
- package/modules/drive/src/references/quality-principles.md +152 -0
- package/modules/drive/src/references/research-quality-control.md +247 -0
- package/modules/drive/src/references/sonarqube-integration.md +244 -0
- package/modules/drive/src/references/specialized-workflow-integration.md +186 -0
- package/modules/drive/src/references/subagent-criteria.md +179 -0
- package/modules/drive/src/references/tdd.md +219 -0
- package/modules/drive/src/references/work-units.md +161 -0
- package/modules/drive/src/rules/commands.md +108 -0
- package/modules/drive/src/rules/references.md +107 -0
- package/modules/drive/src/rules/style.md +123 -0
- package/modules/drive/src/rules/templates.md +51 -0
- package/modules/drive/src/rules/workflows.md +133 -0
- package/modules/drive/src/templates/CONTEXT.md +88 -0
- package/modules/drive/src/templates/DEBUG.md +164 -0
- package/modules/drive/src/templates/DISCOVERY.md +148 -0
- package/modules/drive/src/templates/HANDOFF.md +77 -0
- package/modules/drive/src/templates/ISSUES.md +93 -0
- package/modules/drive/src/templates/MILESTONES.md +167 -0
- package/modules/drive/src/templates/PLAN.md +328 -0
- package/modules/drive/src/templates/PROJECT.md +219 -0
- package/modules/drive/src/templates/RESEARCH.md +130 -0
- package/modules/drive/src/templates/ROADMAP.md +328 -0
- package/modules/drive/src/templates/SPECIAL-FLOWS.md +70 -0
- package/modules/drive/src/templates/STATE.md +210 -0
- package/modules/drive/src/templates/SUMMARY.md +221 -0
- package/modules/drive/src/templates/UAT-ISSUES.md +139 -0
- package/modules/drive/src/templates/codebase/architecture.md +259 -0
- package/modules/drive/src/templates/codebase/concerns.md +329 -0
- package/modules/drive/src/templates/codebase/conventions.md +311 -0
- package/modules/drive/src/templates/codebase/integrations.md +284 -0
- package/modules/drive/src/templates/codebase/stack.md +190 -0
- package/modules/drive/src/templates/codebase/structure.md +287 -0
- package/modules/drive/src/templates/codebase/testing.md +484 -0
- package/modules/drive/src/templates/config.md +181 -0
- package/modules/drive/src/templates/milestone-archive.md +236 -0
- package/modules/drive/src/templates/milestone-context.md +190 -0
- package/modules/drive/src/templates/paul-json.md +147 -0
- package/modules/drive/src/vector-config/PAUL +26 -0
- package/modules/drive/src/vector-config/PAUL.manifest +11 -0
- package/modules/drive/src/workflows/apply-phase.md +393 -0
- package/modules/drive/src/workflows/audit-plan.md +344 -0
- package/modules/drive/src/workflows/complete-milestone.md +479 -0
- package/modules/drive/src/workflows/configure-special-flows.md +283 -0
- package/modules/drive/src/workflows/consider-issues.md +172 -0
- package/modules/drive/src/workflows/create-milestone.md +268 -0
- package/modules/drive/src/workflows/debug.md +292 -0
- package/modules/drive/src/workflows/discovery.md +187 -0
- package/modules/drive/src/workflows/discuss-milestone.md +245 -0
- package/modules/drive/src/workflows/discuss-phase.md +231 -0
- package/modules/drive/src/workflows/init-project.md +698 -0
- package/modules/drive/src/workflows/map-codebase.md +459 -0
- package/modules/drive/src/workflows/pause-work.md +259 -0
- package/modules/drive/src/workflows/phase-assumptions.md +181 -0
- package/modules/drive/src/workflows/plan-phase.md +385 -0
- package/modules/drive/src/workflows/quality-gate.md +263 -0
- package/modules/drive/src/workflows/register-manifest.md +107 -0
- package/modules/drive/src/workflows/research.md +241 -0
- package/modules/drive/src/workflows/resume-project.md +200 -0
- package/modules/drive/src/workflows/roadmap-management.md +334 -0
- package/modules/drive/src/workflows/transition-phase.md +368 -0
- package/modules/drive/src/workflows/unify-phase.md +290 -0
- package/modules/drive/src/workflows/verify-work.md +241 -0
- package/modules/forge/README.md +281 -0
- package/modules/forge/bin/install.js +200 -0
- package/modules/forge/package.json +32 -0
- package/modules/forge/skillsmith/rules/checklists-rules.md +42 -0
- package/modules/forge/skillsmith/rules/context-rules.md +43 -0
- package/modules/forge/skillsmith/rules/entry-point-rules.md +44 -0
- package/modules/forge/skillsmith/rules/frameworks-rules.md +43 -0
- package/modules/forge/skillsmith/rules/tasks-rules.md +52 -0
- package/modules/forge/skillsmith/rules/templates-rules.md +43 -0
- package/modules/forge/skillsmith/skillsmith.md +82 -0
- package/modules/forge/skillsmith/tasks/audit.md +277 -0
- package/modules/forge/skillsmith/tasks/discover.md +145 -0
- package/modules/forge/skillsmith/tasks/distill.md +276 -0
- package/modules/forge/skillsmith/tasks/scaffold.md +349 -0
- package/modules/forge/specs/checklists.md +193 -0
- package/modules/forge/specs/context.md +223 -0
- package/modules/forge/specs/entry-point.md +320 -0
- package/modules/forge/specs/frameworks.md +228 -0
- package/modules/forge/specs/rules.md +245 -0
- package/modules/forge/specs/tasks.md +344 -0
- package/modules/forge/specs/templates.md +335 -0
- package/modules/forge/terminal.svg +70 -0
- package/modules/ignition/README.md +245 -0
- package/modules/ignition/bin/install.js +184 -0
- package/modules/ignition/checklists/planning-quality.md +55 -0
- package/modules/ignition/data/application/config.md +21 -0
- package/modules/ignition/data/application/guide.md +51 -0
- package/modules/ignition/data/application/skill-loadout.md +11 -0
- package/modules/ignition/data/campaign/config.md +18 -0
- package/modules/ignition/data/campaign/guide.md +36 -0
- package/modules/ignition/data/campaign/skill-loadout.md +10 -0
- package/modules/ignition/data/client/config.md +18 -0
- package/modules/ignition/data/client/guide.md +36 -0
- package/modules/ignition/data/client/skill-loadout.md +11 -0
- package/modules/ignition/data/utility/config.md +18 -0
- package/modules/ignition/data/utility/guide.md +31 -0
- package/modules/ignition/data/utility/skill-loadout.md +8 -0
- package/modules/ignition/data/workflow/config.md +19 -0
- package/modules/ignition/data/workflow/guide.md +41 -0
- package/modules/ignition/data/workflow/skill-loadout.md +10 -0
- package/modules/ignition/integration.js +54 -0
- package/modules/ignition/package.json +35 -0
- package/modules/ignition/seed.md +81 -0
- package/modules/ignition/tasks/add-type.md +164 -0
- package/modules/ignition/tasks/graduate.md +182 -0
- package/modules/ignition/tasks/ideate.md +221 -0
- package/modules/ignition/tasks/launch.md +137 -0
- package/modules/ignition/tasks/status.md +71 -0
- package/modules/ignition/templates/planning-application.md +193 -0
- package/modules/ignition/templates/planning-campaign.md +138 -0
- package/modules/ignition/templates/planning-client.md +149 -0
- package/modules/ignition/templates/planning-utility.md +112 -0
- package/modules/ignition/templates/planning-workflow.md +125 -0
- package/modules/ignition/terminal.svg +74 -0
- package/modules/mission-control/CONTEXT-CONTINUITY-SPEC.md +293 -0
- package/modules/mission-control/CONTEXT-ENGINEERING-GUIDE.md +282 -0
- package/modules/mission-control/README.md +91 -0
- package/modules/mission-control/assets/terminal.svg +80 -0
- package/modules/mission-control/examples/entities.example.json +133 -0
- package/modules/mission-control/examples/projects.example.json +318 -0
- package/modules/mission-control/examples/state.example.json +183 -0
- package/modules/mission-control/examples/vector.example.json +245 -0
- package/modules/mission-control/mission-control/checklists/install-verification.md +46 -0
- package/modules/mission-control/mission-control/frameworks/framework-registry.md +83 -0
- package/modules/mission-control/mission-control/mission-control.md +83 -0
- package/modules/mission-control/mission-control/tasks/insights.md +73 -0
- package/modules/mission-control/mission-control/tasks/install.md +194 -0
- package/modules/mission-control/mission-control/tasks/status.md +125 -0
- package/modules/mission-control/schemas/entities.schema.json +89 -0
- package/modules/mission-control/schemas/projects.schema.json +221 -0
- package/modules/mission-control/schemas/state.schema.json +108 -0
- package/modules/mission-control/schemas/vector.schema.json +200 -0
- package/modules/momentum/README.md +678 -0
- package/modules/momentum/bin/install.js +563 -0
- package/modules/momentum/integration.js +131 -0
- package/modules/momentum/package.json +42 -0
- package/modules/momentum/schemas/entities.schema.json +89 -0
- package/modules/momentum/schemas/projects.schema.json +221 -0
- package/modules/momentum/schemas/state.schema.json +108 -0
- package/modules/momentum/src/commands/audit-claude-md.md +31 -0
- package/modules/momentum/src/commands/audit.md +33 -0
- package/modules/momentum/src/commands/groom.md +35 -0
- package/modules/momentum/src/commands/history.md +27 -0
- package/modules/momentum/src/commands/pulse.md +33 -0
- package/modules/momentum/src/commands/scaffold.md +33 -0
- package/modules/momentum/src/commands/status.md +28 -0
- package/modules/momentum/src/commands/surface-convert.md +35 -0
- package/modules/momentum/src/commands/surface-create.md +34 -0
- package/modules/momentum/src/commands/surface-list.md +27 -0
- package/modules/momentum/src/commands/vector-hygiene.md +33 -0
- package/modules/momentum/src/framework/context/momentum-principles.md +71 -0
- package/modules/momentum/src/framework/frameworks/audit-strategies.md +53 -0
- package/modules/momentum/src/framework/frameworks/satellite-registration.md +44 -0
- package/modules/momentum/src/framework/tasks/audit-claude-md.md +68 -0
- package/modules/momentum/src/framework/tasks/audit.md +64 -0
- package/modules/momentum/src/framework/tasks/groom.md +164 -0
- package/modules/momentum/src/framework/tasks/history.md +34 -0
- package/modules/momentum/src/framework/tasks/pulse.md +83 -0
- package/modules/momentum/src/framework/tasks/scaffold.md +202 -0
- package/modules/momentum/src/framework/tasks/status.md +35 -0
- package/modules/momentum/src/framework/tasks/surface-convert.md +143 -0
- package/modules/momentum/src/framework/tasks/surface-create.md +184 -0
- package/modules/momentum/src/framework/tasks/surface-list.md +42 -0
- package/modules/momentum/src/framework/tasks/vector-hygiene.md +160 -0
- package/modules/momentum/src/framework/templates/workspace-json.md +96 -0
- package/modules/momentum/src/hooks/_template.py +129 -0
- package/modules/momentum/src/hooks/active-hook.py +178 -0
- package/modules/momentum/src/hooks/backlog-hook.py +115 -0
- package/modules/momentum/src/hooks/mission-control-insights.py +169 -0
- package/modules/momentum/src/hooks/momentum-pulse-check.py +351 -0
- package/modules/momentum/src/hooks/operator.py +53 -0
- package/modules/momentum/src/hooks/psmm-injector.py +67 -0
- package/modules/momentum/src/hooks/satellite-detection.py +248 -0
- package/modules/momentum/src/packages/momentum-mcp/index.js +119 -0
- package/modules/momentum/src/packages/momentum-mcp/package.json +10 -0
- package/modules/momentum/src/packages/momentum-mcp/tools/entities.js +226 -0
- package/modules/momentum/src/packages/momentum-mcp/tools/operator.js +106 -0
- package/modules/momentum/src/packages/momentum-mcp/tools/projects.js +322 -0
- package/modules/momentum/src/packages/momentum-mcp/tools/psmm.js +206 -0
- package/modules/momentum/src/packages/momentum-mcp/tools/state.js +199 -0
- package/modules/momentum/src/packages/momentum-mcp/tools/surfaces.js +404 -0
- package/modules/momentum/src/skill/momentum.md +111 -0
- package/modules/momentum/src/tasks/groom.md +164 -0
- package/modules/momentum/src/templates/operator.json +66 -0
- package/modules/momentum/src/templates/workspace.json +111 -0
- package/modules/momentum/terminal.svg +77 -0
- package/modules/radar/README.md +1552 -0
- package/modules/radar/commands/audit.md +233 -0
- package/modules/radar/commands/guardrails.md +194 -0
- package/modules/radar/commands/init.md +207 -0
- package/modules/radar/commands/playbook.md +176 -0
- package/modules/radar/commands/remediate.md +156 -0
- package/modules/radar/commands/report.md +172 -0
- package/modules/radar/commands/resume.md +176 -0
- package/modules/radar/commands/status.md +148 -0
- package/modules/radar/commands/transform.md +205 -0
- package/modules/radar/commands/validate.md +177 -0
- package/modules/radar/docs/ARCHITECTURE.md +336 -0
- package/modules/radar/docs/GETTING-STARTED.md +287 -0
- package/modules/radar/docs/standards/agents.md +197 -0
- package/modules/radar/docs/standards/commands.md +250 -0
- package/modules/radar/docs/standards/domains.md +191 -0
- package/modules/radar/docs/standards/personas.md +211 -0
- package/modules/radar/docs/standards/rules.md +218 -0
- package/modules/radar/docs/standards/runtime.md +445 -0
- package/modules/radar/docs/standards/schemas.md +269 -0
- package/modules/radar/docs/standards/tools.md +273 -0
- package/modules/radar/docs/standards/workflows.md +254 -0
- package/modules/radar/docs/terminal.svg +72 -0
- package/modules/radar/docs/validation/convention-compliance-report.md +183 -0
- package/modules/radar/docs/validation/cross-reference-report.md +195 -0
- package/modules/radar/docs/validation/validation-summary.md +118 -0
- package/modules/radar/docs/validation/version-manifest.yaml +363 -0
- package/modules/radar/install.sh +711 -0
- package/modules/radar/integration.js +53 -0
- package/modules/radar/src/core/agents/architect.md +25 -0
- package/modules/radar/src/core/agents/compliance-officer.md +25 -0
- package/modules/radar/src/core/agents/data-engineer.md +25 -0
- package/modules/radar/src/core/agents/devils-advocate.md +22 -0
- package/modules/radar/src/core/agents/performance-engineer.md +25 -0
- package/modules/radar/src/core/agents/principal-engineer.md +23 -0
- package/modules/radar/src/core/agents/reality-gap-analyst.md +22 -0
- package/modules/radar/src/core/agents/security-engineer.md +25 -0
- package/modules/radar/src/core/agents/senior-app-engineer.md +25 -0
- package/modules/radar/src/core/agents/sre.md +25 -0
- package/modules/radar/src/core/agents/staff-engineer.md +23 -0
- package/modules/radar/src/core/agents/test-engineer.md +25 -0
- package/modules/radar/src/core/personas/architect.md +111 -0
- package/modules/radar/src/core/personas/compliance-officer.md +104 -0
- package/modules/radar/src/core/personas/data-engineer.md +113 -0
- package/modules/radar/src/core/personas/devils-advocate.md +105 -0
- package/modules/radar/src/core/personas/performance-engineer.md +119 -0
- package/modules/radar/src/core/personas/principal-engineer.md +119 -0
- package/modules/radar/src/core/personas/reality-gap-analyst.md +111 -0
- package/modules/radar/src/core/personas/security-engineer.md +108 -0
- package/modules/radar/src/core/personas/senior-app-engineer.md +111 -0
- package/modules/radar/src/core/personas/sre.md +117 -0
- package/modules/radar/src/core/personas/staff-engineer.md +109 -0
- package/modules/radar/src/core/personas/test-engineer.md +109 -0
- package/modules/radar/src/core/workflows/disagreement-resolution.md +183 -0
- package/modules/radar/src/core/workflows/phase-0-context.md +148 -0
- package/modules/radar/src/core/workflows/phase-1-reconnaissance.md +169 -0
- package/modules/radar/src/core/workflows/phase-2-domain-audits.md +190 -0
- package/modules/radar/src/core/workflows/phase-3-cross-domain.md +177 -0
- package/modules/radar/src/core/workflows/phase-4-adversarial-review.md +165 -0
- package/modules/radar/src/core/workflows/phase-5-report.md +189 -0
- package/modules/radar/src/core/workflows/phase-checkpoint.md +222 -0
- package/modules/radar/src/core/workflows/session-handoff.md +152 -0
- package/modules/radar/src/domains/00-context.md +201 -0
- package/modules/radar/src/domains/01-architecture.md +248 -0
- package/modules/radar/src/domains/02-data.md +224 -0
- package/modules/radar/src/domains/03-correctness.md +230 -0
- package/modules/radar/src/domains/04-security.md +274 -0
- package/modules/radar/src/domains/05-compliance.md +228 -0
- package/modules/radar/src/domains/06-testing.md +228 -0
- package/modules/radar/src/domains/07-reliability.md +246 -0
- package/modules/radar/src/domains/08-performance.md +247 -0
- package/modules/radar/src/domains/09-maintainability.md +271 -0
- package/modules/radar/src/domains/10-operability.md +250 -0
- package/modules/radar/src/domains/11-change-risk.md +246 -0
- package/modules/radar/src/domains/12-team-risk.md +221 -0
- package/modules/radar/src/domains/13-risk-synthesis.md +202 -0
- package/modules/radar/src/rules/agent-boundaries.md +78 -0
- package/modules/radar/src/rules/disagreement-protocol.md +76 -0
- package/modules/radar/src/rules/epistemic-hygiene.md +78 -0
- package/modules/radar/src/schemas/confidence.md +185 -0
- package/modules/radar/src/schemas/disagreement.md +238 -0
- package/modules/radar/src/schemas/finding.md +287 -0
- package/modules/radar/src/schemas/report-section.md +150 -0
- package/modules/radar/src/schemas/signal.md +108 -0
- package/modules/radar/src/tools/checkov.md +463 -0
- package/modules/radar/src/tools/git-history.md +581 -0
- package/modules/radar/src/tools/gitleaks.md +447 -0
- package/modules/radar/src/tools/grype.md +611 -0
- package/modules/radar/src/tools/semgrep.md +378 -0
- package/modules/radar/src/tools/sonarqube.md +550 -0
- package/modules/radar/src/tools/syft.md +539 -0
- package/modules/radar/src/tools/trivy.md +439 -0
- package/modules/radar/src/transform/agents/change-risk-modeler.md +24 -0
- package/modules/radar/src/transform/agents/execution-validator.md +24 -0
- package/modules/radar/src/transform/agents/guardrail-generator.md +24 -0
- package/modules/radar/src/transform/agents/pedagogy-agent.md +24 -0
- package/modules/radar/src/transform/agents/remediation-architect.md +24 -0
- package/modules/radar/src/transform/personas/change-risk-modeler.md +95 -0
- package/modules/radar/src/transform/personas/execution-validator.md +95 -0
- package/modules/radar/src/transform/personas/guardrail-generator.md +103 -0
- package/modules/radar/src/transform/personas/pedagogy-agent.md +105 -0
- package/modules/radar/src/transform/personas/remediation-architect.md +95 -0
- package/modules/radar/src/transform/rules/change-risk-rules.md +87 -0
- package/modules/radar/src/transform/rules/safety-governance.md +87 -0
- package/modules/radar/src/transform/schemas/change-risk.md +139 -0
- package/modules/radar/src/transform/schemas/intervention-level.md +207 -0
- package/modules/radar/src/transform/schemas/playbook.md +205 -0
- package/modules/radar/src/transform/schemas/verification-plan.md +134 -0
- package/modules/radar/src/transform/workflows/phase-6-remediation.md +148 -0
- package/modules/radar/src/transform/workflows/phase-7-risk-validation.md +161 -0
- package/modules/radar/src/transform/workflows/phase-8-execution-planning.md +159 -0
- package/modules/radar/src/transform/workflows/transform-safety.md +158 -0
- package/modules/vector/.vector-template/sessions/.gitkeep +0 -0
- package/modules/vector/.vector-template/vector.json +72 -0
- package/modules/vector/AUDIT-CLAUDEMD.md +154 -0
- package/modules/vector/INSTALL.md +185 -0
- package/modules/vector/LICENSE +21 -0
- package/modules/vector/README.md +409 -0
- package/modules/vector/VECTOR-BLOCK.md +57 -0
- package/modules/vector/assets/terminal.svg +68 -0
- package/modules/vector/bin/install.js +455 -0
- package/modules/vector/bin/migrate-v1-to-v2.sh +492 -0
- package/modules/vector/commands/help.md +46 -0
- package/modules/vector/hooks/vector-hook.py +775 -0
- package/modules/vector/mcp/index.js +118 -0
- package/modules/vector/mcp/package.json +10 -0
- package/modules/vector/mcp/tools/decisions.js +269 -0
- package/modules/vector/mcp/tools/domains.js +361 -0
- package/modules/vector/mcp/tools/staging.js +252 -0
- package/modules/vector/mcp/tools/vector-json.js +647 -0
- package/modules/vector/package.json +38 -0
- package/modules/vector/schemas/vector.schema.json +237 -0
- package/package.json +39 -0
- package/shared/branding/branding.js +70 -0
- package/shared/config/defaults.json +59 -0
- package/shared/events/README.md +175 -0
- package/shared/events/event-bus.js +134 -0
- package/shared/events/event_bus.py +255 -0
- package/shared/events/integrations.js +161 -0
- package/shared/events/schemas/audit-complete.schema.json +21 -0
- package/shared/events/schemas/phase-progress.schema.json +23 -0
- package/shared/events/schemas/plan-created.schema.json +21 -0
|
@@ -0,0 +1,484 @@
|
|
|
1
|
+
# Testing Patterns Template
|
|
2
|
+
|
|
3
|
+
Template for `.drive/codebase/TESTING.md` - captures test framework and patterns.
|
|
4
|
+
|
|
5
|
+
**Purpose:** Document how tests are written and run. Guide for adding tests that match existing patterns.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## File Template
|
|
10
|
+
|
|
11
|
+
```markdown
|
|
12
|
+
# Testing Patterns
|
|
13
|
+
|
|
14
|
+
**Analysis Date:** [YYYY-MM-DD]
|
|
15
|
+
|
|
16
|
+
## Test Framework
|
|
17
|
+
|
|
18
|
+
**Runner:**
|
|
19
|
+
- [Framework: e.g., "Jest 29.x", "Vitest 1.x"]
|
|
20
|
+
- [Config: e.g., "jest.config.js in project root"]
|
|
21
|
+
|
|
22
|
+
**Assertion Library:**
|
|
23
|
+
- [Library: e.g., "built-in expect", "chai"]
|
|
24
|
+
- [Matchers: e.g., "toBe, toEqual, toThrow"]
|
|
25
|
+
|
|
26
|
+
**Run Commands:**
|
|
27
|
+
```bash
|
|
28
|
+
[e.g., "npm test" or "npm run test"] # Run all tests
|
|
29
|
+
[e.g., "npm test -- --watch"] # Watch mode
|
|
30
|
+
[e.g., "npm test -- path/to/file.test.ts"] # Single file
|
|
31
|
+
[e.g., "npm run test:coverage"] # Coverage report
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Test File Organization
|
|
35
|
+
|
|
36
|
+
**Location:**
|
|
37
|
+
- [Pattern: e.g., "*.test.ts alongside source files"]
|
|
38
|
+
- [Alternative: e.g., "__tests__/ directory" or "separate tests/ tree"]
|
|
39
|
+
|
|
40
|
+
**Naming:**
|
|
41
|
+
- [Unit tests: e.g., "module-name.test.ts"]
|
|
42
|
+
- [Integration: e.g., "feature-name.integration.test.ts"]
|
|
43
|
+
- [E2E: e.g., "user-flow.e2e.test.ts"]
|
|
44
|
+
|
|
45
|
+
**Structure:**
|
|
46
|
+
```
|
|
47
|
+
[Show actual directory pattern, e.g.:
|
|
48
|
+
src/
|
|
49
|
+
lib/
|
|
50
|
+
utils.ts
|
|
51
|
+
utils.test.ts
|
|
52
|
+
services/
|
|
53
|
+
user-service.ts
|
|
54
|
+
user-service.test.ts
|
|
55
|
+
]
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
## Test Structure
|
|
59
|
+
|
|
60
|
+
**Suite Organization:**
|
|
61
|
+
```typescript
|
|
62
|
+
[Show actual pattern used, e.g.:
|
|
63
|
+
|
|
64
|
+
describe('ModuleName', () => {
|
|
65
|
+
describe('functionName', () => {
|
|
66
|
+
it('should handle success case', () => {
|
|
67
|
+
// arrange
|
|
68
|
+
// act
|
|
69
|
+
// assert
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
it('should handle error case', () => {
|
|
73
|
+
// test code
|
|
74
|
+
});
|
|
75
|
+
});
|
|
76
|
+
});
|
|
77
|
+
]
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
**Patterns:**
|
|
81
|
+
- [Setup: e.g., "beforeEach for shared setup, avoid beforeAll"]
|
|
82
|
+
- [Teardown: e.g., "afterEach to clean up, restore mocks"]
|
|
83
|
+
- [Structure: e.g., "arrange/act/assert pattern required"]
|
|
84
|
+
|
|
85
|
+
## Mocking
|
|
86
|
+
|
|
87
|
+
**Framework:**
|
|
88
|
+
- [Tool: e.g., "Jest built-in mocking", "Vitest vi", "Sinon"]
|
|
89
|
+
- [Import mocking: e.g., "vi.mock() at top of file"]
|
|
90
|
+
|
|
91
|
+
**Patterns:**
|
|
92
|
+
```typescript
|
|
93
|
+
[Show actual mocking pattern, e.g.:
|
|
94
|
+
|
|
95
|
+
// Mock external dependency
|
|
96
|
+
vi.mock('./external-service', () => ({
|
|
97
|
+
fetchData: vi.fn()
|
|
98
|
+
}));
|
|
99
|
+
|
|
100
|
+
// Mock in test
|
|
101
|
+
const mockFetch = vi.mocked(fetchData);
|
|
102
|
+
mockFetch.mockResolvedValue({ data: 'test' });
|
|
103
|
+
]
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
**What to Mock:**
|
|
107
|
+
- [e.g., "External APIs, file system, database"]
|
|
108
|
+
- [e.g., "Time/dates (use vi.useFakeTimers)"]
|
|
109
|
+
- [e.g., "Network calls (use mock fetch)"]
|
|
110
|
+
|
|
111
|
+
**What NOT to Mock:**
|
|
112
|
+
- [e.g., "Pure functions, utilities"]
|
|
113
|
+
- [e.g., "Internal business logic"]
|
|
114
|
+
|
|
115
|
+
## Fixtures and Factories
|
|
116
|
+
|
|
117
|
+
**Test Data:**
|
|
118
|
+
```typescript
|
|
119
|
+
[Show pattern for creating test data, e.g.:
|
|
120
|
+
|
|
121
|
+
// Factory pattern
|
|
122
|
+
function createTestUser(overrides?: Partial<User>): User {
|
|
123
|
+
return {
|
|
124
|
+
id: 'test-id',
|
|
125
|
+
name: 'Test User',
|
|
126
|
+
email: 'test@example.com',
|
|
127
|
+
...overrides
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
// Fixture file
|
|
132
|
+
// tests/fixtures/users.ts
|
|
133
|
+
export const mockUsers = [/* ... */];
|
|
134
|
+
]
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
**Location:**
|
|
138
|
+
- [e.g., "tests/fixtures/ for shared fixtures"]
|
|
139
|
+
- [e.g., "factory functions in test file or tests/factories/"]
|
|
140
|
+
|
|
141
|
+
## Coverage
|
|
142
|
+
|
|
143
|
+
**Requirements:**
|
|
144
|
+
- [Target: e.g., "80% line coverage", "no specific target"]
|
|
145
|
+
- [Enforcement: e.g., "CI blocks <80%", "coverage for awareness only"]
|
|
146
|
+
|
|
147
|
+
**Configuration:**
|
|
148
|
+
- [Tool: e.g., "built-in coverage via --coverage flag"]
|
|
149
|
+
- [Exclusions: e.g., "exclude *.test.ts, config files"]
|
|
150
|
+
|
|
151
|
+
**View Coverage:**
|
|
152
|
+
```bash
|
|
153
|
+
[e.g., "npm run test:coverage"]
|
|
154
|
+
[e.g., "open coverage/index.html"]
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
## Test Types
|
|
158
|
+
|
|
159
|
+
**Unit Tests:**
|
|
160
|
+
- [Scope: e.g., "test single function/class in isolation"]
|
|
161
|
+
- [Mocking: e.g., "mock all external dependencies"]
|
|
162
|
+
- [Speed: e.g., "must run in <1s per test"]
|
|
163
|
+
|
|
164
|
+
**Integration Tests:**
|
|
165
|
+
- [Scope: e.g., "test multiple modules together"]
|
|
166
|
+
- [Mocking: e.g., "mock external services, use real internal modules"]
|
|
167
|
+
- [Setup: e.g., "use test database, ignition data"]
|
|
168
|
+
|
|
169
|
+
**E2E Tests:**
|
|
170
|
+
- [Framework: e.g., "Playwright for E2E"]
|
|
171
|
+
- [Scope: e.g., "test full user flows"]
|
|
172
|
+
- [Location: e.g., "e2e/ directory separate from unit tests"]
|
|
173
|
+
|
|
174
|
+
## Common Patterns
|
|
175
|
+
|
|
176
|
+
**Async Testing:**
|
|
177
|
+
```typescript
|
|
178
|
+
[Show pattern, e.g.:
|
|
179
|
+
|
|
180
|
+
it('should handle async operation', async () => {
|
|
181
|
+
const result = await asyncFunction();
|
|
182
|
+
expect(result).toBe('expected');
|
|
183
|
+
});
|
|
184
|
+
]
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
**Error Testing:**
|
|
188
|
+
```typescript
|
|
189
|
+
[Show pattern, e.g.:
|
|
190
|
+
|
|
191
|
+
it('should throw on invalid input', () => {
|
|
192
|
+
expect(() => functionCall()).toThrow('error message');
|
|
193
|
+
});
|
|
194
|
+
|
|
195
|
+
// Async error
|
|
196
|
+
it('should reject on failure', async () => {
|
|
197
|
+
await expect(asyncCall()).rejects.toThrow('error message');
|
|
198
|
+
});
|
|
199
|
+
]
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
**Snapshot Testing:**
|
|
203
|
+
- [Usage: e.g., "for React components only" or "not used"]
|
|
204
|
+
- [Location: e.g., "__snapshots__/ directory"]
|
|
205
|
+
|
|
206
|
+
---
|
|
207
|
+
|
|
208
|
+
*Testing analysis: [date]*
|
|
209
|
+
*Update when test patterns change*
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
---
|
|
213
|
+
|
|
214
|
+
## Good Example
|
|
215
|
+
|
|
216
|
+
```markdown
|
|
217
|
+
# Testing Patterns
|
|
218
|
+
|
|
219
|
+
**Analysis Date:** 2025-01-20
|
|
220
|
+
|
|
221
|
+
## Test Framework
|
|
222
|
+
|
|
223
|
+
**Runner:**
|
|
224
|
+
- Vitest 1.0.4
|
|
225
|
+
- Config: vitest.config.ts in project root
|
|
226
|
+
|
|
227
|
+
**Assertion Library:**
|
|
228
|
+
- Vitest built-in expect
|
|
229
|
+
- Matchers: toBe, toEqual, toThrow, toMatchObject
|
|
230
|
+
|
|
231
|
+
**Run Commands:**
|
|
232
|
+
```bash
|
|
233
|
+
npm test # Run all tests
|
|
234
|
+
npm test -- --watch # Watch mode
|
|
235
|
+
npm test -- path/to/file.test.ts # Single file
|
|
236
|
+
npm run test:coverage # Coverage report
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
## Test File Organization
|
|
240
|
+
|
|
241
|
+
**Location:**
|
|
242
|
+
- *.test.ts alongside source files
|
|
243
|
+
- No separate tests/ directory
|
|
244
|
+
|
|
245
|
+
**Naming:**
|
|
246
|
+
- unit-name.test.ts for all tests
|
|
247
|
+
- No distinction between unit/integration in filename
|
|
248
|
+
|
|
249
|
+
**Structure:**
|
|
250
|
+
```
|
|
251
|
+
src/
|
|
252
|
+
lib/
|
|
253
|
+
parser.ts
|
|
254
|
+
parser.test.ts
|
|
255
|
+
services/
|
|
256
|
+
install-service.ts
|
|
257
|
+
install-service.test.ts
|
|
258
|
+
bin/
|
|
259
|
+
install.ts
|
|
260
|
+
(no test - integration tested via CLI)
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
## Test Structure
|
|
264
|
+
|
|
265
|
+
**Suite Organization:**
|
|
266
|
+
```typescript
|
|
267
|
+
import { describe, it, expect, beforeEach, afterEach, vi } from 'vitest';
|
|
268
|
+
|
|
269
|
+
describe('ModuleName', () => {
|
|
270
|
+
describe('functionName', () => {
|
|
271
|
+
beforeEach(() => {
|
|
272
|
+
// reset state
|
|
273
|
+
});
|
|
274
|
+
|
|
275
|
+
it('should handle valid input', () => {
|
|
276
|
+
// arrange
|
|
277
|
+
const input = createTestInput();
|
|
278
|
+
|
|
279
|
+
// act
|
|
280
|
+
const result = functionName(input);
|
|
281
|
+
|
|
282
|
+
// assert
|
|
283
|
+
expect(result).toEqual(expectedOutput);
|
|
284
|
+
});
|
|
285
|
+
|
|
286
|
+
it('should throw on invalid input', () => {
|
|
287
|
+
expect(() => functionName(null)).toThrow('Invalid input');
|
|
288
|
+
});
|
|
289
|
+
});
|
|
290
|
+
});
|
|
291
|
+
```
|
|
292
|
+
|
|
293
|
+
**Patterns:**
|
|
294
|
+
- Use beforeEach for per-test setup, avoid beforeAll
|
|
295
|
+
- Use afterEach to restore mocks: vi.restoreAllMocks()
|
|
296
|
+
- Explicit arrange/act/assert comments in complex tests
|
|
297
|
+
- One assertion focus per test (but multiple expects OK)
|
|
298
|
+
|
|
299
|
+
## Mocking
|
|
300
|
+
|
|
301
|
+
**Framework:**
|
|
302
|
+
- Vitest built-in mocking (vi)
|
|
303
|
+
- Module mocking via vi.mock() at top of test file
|
|
304
|
+
|
|
305
|
+
**Patterns:**
|
|
306
|
+
```typescript
|
|
307
|
+
import { vi } from 'vitest';
|
|
308
|
+
import { externalFunction } from './external';
|
|
309
|
+
|
|
310
|
+
// Mock module
|
|
311
|
+
vi.mock('./external', () => ({
|
|
312
|
+
externalFunction: vi.fn()
|
|
313
|
+
}));
|
|
314
|
+
|
|
315
|
+
describe('test suite', () => {
|
|
316
|
+
it('mocks function', () => {
|
|
317
|
+
const mockFn = vi.mocked(externalFunction);
|
|
318
|
+
mockFn.mockReturnValue('mocked result');
|
|
319
|
+
|
|
320
|
+
// test code using mocked function
|
|
321
|
+
|
|
322
|
+
expect(mockFn).toHaveBeenCalledWith('expected arg');
|
|
323
|
+
});
|
|
324
|
+
});
|
|
325
|
+
```
|
|
326
|
+
|
|
327
|
+
**What to Mock:**
|
|
328
|
+
- File system operations (fs-extra)
|
|
329
|
+
- Child process execution (child_process.exec)
|
|
330
|
+
- External API calls
|
|
331
|
+
- Environment variables (process.env)
|
|
332
|
+
|
|
333
|
+
**What NOT to Mock:**
|
|
334
|
+
- Internal pure functions
|
|
335
|
+
- Simple utilities (string manipulation, array helpers)
|
|
336
|
+
- TypeScript types
|
|
337
|
+
|
|
338
|
+
## Fixtures and Factories
|
|
339
|
+
|
|
340
|
+
**Test Data:**
|
|
341
|
+
```typescript
|
|
342
|
+
// Factory functions in test file
|
|
343
|
+
function createTestConfig(overrides?: Partial<Config>): Config {
|
|
344
|
+
return {
|
|
345
|
+
targetDir: '/tmp/test',
|
|
346
|
+
global: false,
|
|
347
|
+
...overrides
|
|
348
|
+
};
|
|
349
|
+
}
|
|
350
|
+
|
|
351
|
+
// Shared fixtures in tests/fixtures/
|
|
352
|
+
// tests/fixtures/sample-command.md
|
|
353
|
+
export const sampleCommand = `---
|
|
354
|
+
description: Test command
|
|
355
|
+
---
|
|
356
|
+
Content here`;
|
|
357
|
+
```
|
|
358
|
+
|
|
359
|
+
**Location:**
|
|
360
|
+
- Factory functions: define in test file near usage
|
|
361
|
+
- Shared fixtures: tests/fixtures/ (for multi-file test data)
|
|
362
|
+
- Mock data: inline in test when simple, factory when complex
|
|
363
|
+
|
|
364
|
+
## Coverage
|
|
365
|
+
|
|
366
|
+
**Requirements:**
|
|
367
|
+
- No enforced coverage target
|
|
368
|
+
- Coverage tracked for awareness
|
|
369
|
+
- Focus on critical paths (parsers, service logic)
|
|
370
|
+
|
|
371
|
+
**Configuration:**
|
|
372
|
+
- Vitest coverage via c8 (built-in)
|
|
373
|
+
- Excludes: *.test.ts, bin/install.ts, config files
|
|
374
|
+
|
|
375
|
+
**View Coverage:**
|
|
376
|
+
```bash
|
|
377
|
+
npm run test:coverage
|
|
378
|
+
open coverage/index.html
|
|
379
|
+
```
|
|
380
|
+
|
|
381
|
+
## Test Types
|
|
382
|
+
|
|
383
|
+
**Unit Tests:**
|
|
384
|
+
- Test single function in isolation
|
|
385
|
+
- Mock all external dependencies (fs, child_process)
|
|
386
|
+
- Fast: each test <100ms
|
|
387
|
+
- Examples: parser.test.ts, validator.test.ts
|
|
388
|
+
|
|
389
|
+
**Integration Tests:**
|
|
390
|
+
- Test multiple modules together
|
|
391
|
+
- Mock only external boundaries (file system, process)
|
|
392
|
+
- Examples: install-service.test.ts (tests service + parser)
|
|
393
|
+
|
|
394
|
+
**E2E Tests:**
|
|
395
|
+
- Not currently used
|
|
396
|
+
- CLI integration tested manually
|
|
397
|
+
|
|
398
|
+
## Common Patterns
|
|
399
|
+
|
|
400
|
+
**Async Testing:**
|
|
401
|
+
```typescript
|
|
402
|
+
it('should handle async operation', async () => {
|
|
403
|
+
const result = await asyncFunction();
|
|
404
|
+
expect(result).toBe('expected');
|
|
405
|
+
});
|
|
406
|
+
```
|
|
407
|
+
|
|
408
|
+
**Error Testing:**
|
|
409
|
+
```typescript
|
|
410
|
+
it('should throw on invalid input', () => {
|
|
411
|
+
expect(() => parse(null)).toThrow('Cannot parse null');
|
|
412
|
+
});
|
|
413
|
+
|
|
414
|
+
// Async error
|
|
415
|
+
it('should reject on file not found', async () => {
|
|
416
|
+
await expect(readConfig('invalid.txt')).rejects.toThrow('ENOENT');
|
|
417
|
+
});
|
|
418
|
+
```
|
|
419
|
+
|
|
420
|
+
**File System Mocking:**
|
|
421
|
+
```typescript
|
|
422
|
+
import { vi } from 'vitest';
|
|
423
|
+
import * as fs from 'fs-extra';
|
|
424
|
+
|
|
425
|
+
vi.mock('fs-extra');
|
|
426
|
+
|
|
427
|
+
it('mocks file system', () => {
|
|
428
|
+
vi.mocked(fs.readFile).mockResolvedValue('file content');
|
|
429
|
+
// test code
|
|
430
|
+
});
|
|
431
|
+
```
|
|
432
|
+
|
|
433
|
+
**Snapshot Testing:**
|
|
434
|
+
- Not used in this codebase
|
|
435
|
+
- Prefer explicit assertions for clarity
|
|
436
|
+
|
|
437
|
+
---
|
|
438
|
+
|
|
439
|
+
*Testing analysis: 2025-01-20*
|
|
440
|
+
*Update when test patterns change*
|
|
441
|
+
```
|
|
442
|
+
|
|
443
|
+
---
|
|
444
|
+
|
|
445
|
+
## Guidelines
|
|
446
|
+
|
|
447
|
+
**What belongs in TESTING.md:**
|
|
448
|
+
- Test framework and runner configuration
|
|
449
|
+
- Test file location and naming patterns
|
|
450
|
+
- Test structure (describe/it, beforeEach patterns)
|
|
451
|
+
- Mocking approach and examples
|
|
452
|
+
- Fixture/factory patterns
|
|
453
|
+
- Coverage requirements
|
|
454
|
+
- How to run tests (commands)
|
|
455
|
+
- Common testing patterns in actual code
|
|
456
|
+
|
|
457
|
+
**What does NOT belong here:**
|
|
458
|
+
- Specific test cases (defer to actual test files)
|
|
459
|
+
- Technology choices (that's STACK.md)
|
|
460
|
+
- CI/CD setup (that's deployment docs)
|
|
461
|
+
|
|
462
|
+
**When filling this template:**
|
|
463
|
+
- Check package.json scripts for test commands
|
|
464
|
+
- Find test config file (jest.config.js, vitest.config.ts)
|
|
465
|
+
- Read 3-5 existing test files to identify patterns
|
|
466
|
+
- Look for test utilities in tests/ or test-utils/
|
|
467
|
+
- Check for coverage configuration
|
|
468
|
+
- Document actual patterns used, not ideal patterns
|
|
469
|
+
|
|
470
|
+
**Useful for phase planning when:**
|
|
471
|
+
- Adding new features (write matching tests)
|
|
472
|
+
- Refactoring (maintain test patterns)
|
|
473
|
+
- Fixing bugs (add regression tests)
|
|
474
|
+
- Understanding verification approach
|
|
475
|
+
- Setting up test infrastructure
|
|
476
|
+
|
|
477
|
+
**Analysis approach:**
|
|
478
|
+
- Check package.json for test framework and scripts
|
|
479
|
+
- Read test config file for coverage, setup
|
|
480
|
+
- Examine test file organization (collocated vs separate)
|
|
481
|
+
- Review 5 test files for patterns (mocking, structure, assertions)
|
|
482
|
+
- Look for test utilities, fixtures, factories
|
|
483
|
+
- Note any test types (unit, integration, e2e)
|
|
484
|
+
- Document commands for running tests
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
# Project Config Template
|
|
2
|
+
|
|
3
|
+
Template for `.drive/config.md` - project-specific configuration and integrations.
|
|
4
|
+
|
|
5
|
+
**Purpose:** Store project settings and optional integration flags. Allows Drive to adapt behavior based on available tools.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## File Template
|
|
10
|
+
|
|
11
|
+
```markdown
|
|
12
|
+
# Project Config
|
|
13
|
+
|
|
14
|
+
**Project:** [project-name]
|
|
15
|
+
**Created:** [YYYY-MM-DD]
|
|
16
|
+
|
|
17
|
+
## Project Settings
|
|
18
|
+
|
|
19
|
+
```yaml
|
|
20
|
+
project:
|
|
21
|
+
name: [project-name]
|
|
22
|
+
version: [current-version or "0.0.0"]
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## Integrations
|
|
26
|
+
|
|
27
|
+
Optional integrations that enhance Drive functionality.
|
|
28
|
+
|
|
29
|
+
### SonarQube
|
|
30
|
+
|
|
31
|
+
Code quality scanning and static analysis.
|
|
32
|
+
|
|
33
|
+
```yaml
|
|
34
|
+
sonarqube:
|
|
35
|
+
enabled: false
|
|
36
|
+
project_key: [project-key] # Must match sonar-project.properties
|
|
37
|
+
server_url: http://localhost:9000 # Optional, for reference
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
**When enabled:**
|
|
41
|
+
- `/drive:quality-gate` runs scans and updates CONCERNS.md
|
|
42
|
+
- Quality metrics inform planning decisions
|
|
43
|
+
- Issues feed into tech debt tracking
|
|
44
|
+
|
|
45
|
+
**Requirements:**
|
|
46
|
+
- SonarQube server running (local or cloud)
|
|
47
|
+
- `sonar-project.properties` in project root
|
|
48
|
+
- SonarQube MCP server configured
|
|
49
|
+
|
|
50
|
+
### Enterprise Plan Audit
|
|
51
|
+
|
|
52
|
+
Architectural review gate between PLAN and APPLY phases.
|
|
53
|
+
|
|
54
|
+
```yaml
|
|
55
|
+
enterprise_plan_audit:
|
|
56
|
+
enabled: false
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
**When enabled:**
|
|
60
|
+
- `/drive:plan` suggests running `/drive:audit` before APPLY
|
|
61
|
+
- `/drive:audit` performs enterprise-grade architectural review
|
|
62
|
+
- Must-have and strongly-recommended findings auto-applied to plan
|
|
63
|
+
- Audit report saved alongside PLAN.md as `{NN}-{PP}-AUDIT.md`
|
|
64
|
+
|
|
65
|
+
**Requirements:**
|
|
66
|
+
- No external dependencies (runs within Claude Code session)
|
|
67
|
+
- Best suited for commercial, regulated, or enterprise-grade projects
|
|
68
|
+
|
|
69
|
+
### Future Integrations
|
|
70
|
+
|
|
71
|
+
Reserved for future use:
|
|
72
|
+
|
|
73
|
+
```yaml
|
|
74
|
+
# linting:
|
|
75
|
+
# enabled: false
|
|
76
|
+
# config_file: .eslintrc
|
|
77
|
+
|
|
78
|
+
# testing:
|
|
79
|
+
# enabled: false
|
|
80
|
+
# coverage_threshold: 80
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
## Preferences
|
|
84
|
+
|
|
85
|
+
Optional user preferences for Drive behavior.
|
|
86
|
+
|
|
87
|
+
```yaml
|
|
88
|
+
preferences:
|
|
89
|
+
auto_commit: false # Auto-commit after successful tasks
|
|
90
|
+
verbose_output: false # Show detailed step output
|
|
91
|
+
parallel_agents: false # Allow parallel agent spawning (advanced)
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
*Config created: [timestamp]*
|
|
97
|
+
*Edit anytime - changes take effect on next command*
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
---
|
|
101
|
+
|
|
102
|
+
## Good Example
|
|
103
|
+
|
|
104
|
+
```markdown
|
|
105
|
+
# Project Config
|
|
106
|
+
|
|
107
|
+
**Project:** expense-tracker
|
|
108
|
+
**Created:** 2026-01-28
|
|
109
|
+
|
|
110
|
+
## Project Settings
|
|
111
|
+
|
|
112
|
+
```yaml
|
|
113
|
+
project:
|
|
114
|
+
name: expense-tracker
|
|
115
|
+
version: 0.2.0
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
## Integrations
|
|
119
|
+
|
|
120
|
+
### SonarQube
|
|
121
|
+
|
|
122
|
+
```yaml
|
|
123
|
+
sonarqube:
|
|
124
|
+
enabled: true
|
|
125
|
+
project_key: expense-tracker
|
|
126
|
+
server_url: http://localhost:9000
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
### Enterprise Plan Audit
|
|
130
|
+
|
|
131
|
+
```yaml
|
|
132
|
+
enterprise_plan_audit:
|
|
133
|
+
enabled: false
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
### Future Integrations
|
|
137
|
+
|
|
138
|
+
```yaml
|
|
139
|
+
# linting:
|
|
140
|
+
# enabled: false
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
## Preferences
|
|
144
|
+
|
|
145
|
+
```yaml
|
|
146
|
+
preferences:
|
|
147
|
+
auto_commit: false
|
|
148
|
+
verbose_output: false
|
|
149
|
+
parallel_agents: false
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
---
|
|
153
|
+
|
|
154
|
+
*Config created: 2026-01-28*
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
---
|
|
158
|
+
|
|
159
|
+
## Guidelines
|
|
160
|
+
|
|
161
|
+
**What belongs in config.md:**
|
|
162
|
+
- Project identification (name, version)
|
|
163
|
+
- Integration toggles (enabled/disabled flags)
|
|
164
|
+
- Integration-specific settings (project keys, URLs)
|
|
165
|
+
- User preferences for Drive behavior
|
|
166
|
+
|
|
167
|
+
**What does NOT belong here:**
|
|
168
|
+
- Sensitive credentials (use environment variables)
|
|
169
|
+
- Build configuration (use native config files)
|
|
170
|
+
- Project requirements (that's PROJECT.md)
|
|
171
|
+
- Roadmap information (that's ROADMAP.md)
|
|
172
|
+
|
|
173
|
+
**When to create config.md:**
|
|
174
|
+
- During `/drive:init` if user enables integrations
|
|
175
|
+
- Manually when adding integrations later
|
|
176
|
+
- Not required for basic Drive usage
|
|
177
|
+
|
|
178
|
+
**Git behavior:**
|
|
179
|
+
- Can be committed (no secrets)
|
|
180
|
+
- Or gitignored if preferences are personal
|
|
181
|
+
- Recommend: commit integration flags, gitignore preferences
|