red64-cli 0.1.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/README.md +454 -0
- package/dist/cli/parseArgs.d.ts +16 -0
- package/dist/cli/parseArgs.d.ts.map +1 -0
- package/dist/cli/parseArgs.js +172 -0
- package/dist/cli/parseArgs.js.map +1 -0
- package/dist/cli/validateFlags.d.ts +22 -0
- package/dist/cli/validateFlags.d.ts.map +1 -0
- package/dist/cli/validateFlags.js +24 -0
- package/dist/cli/validateFlags.js.map +1 -0
- package/dist/cli.d.ts +7 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +90 -0
- package/dist/cli.js.map +1 -0
- package/dist/components/App.d.ts +20 -0
- package/dist/components/App.d.ts.map +1 -0
- package/dist/components/App.js +35 -0
- package/dist/components/App.js.map +1 -0
- package/dist/components/CommandRouter.d.ts +21 -0
- package/dist/components/CommandRouter.d.ts.map +1 -0
- package/dist/components/CommandRouter.js +30 -0
- package/dist/components/CommandRouter.js.map +1 -0
- package/dist/components/GlobalConfig.d.ts +26 -0
- package/dist/components/GlobalConfig.d.ts.map +1 -0
- package/dist/components/GlobalConfig.js +30 -0
- package/dist/components/GlobalConfig.js.map +1 -0
- package/dist/components/index.d.ts +9 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/index.js +9 -0
- package/dist/components/index.js.map +1 -0
- package/dist/components/init/CompleteStep.d.ts +11 -0
- package/dist/components/init/CompleteStep.d.ts.map +1 -0
- package/dist/components/init/CompleteStep.js +15 -0
- package/dist/components/init/CompleteStep.js.map +1 -0
- package/dist/components/init/ErrorStep.d.ts +14 -0
- package/dist/components/init/ErrorStep.d.ts.map +1 -0
- package/dist/components/init/ErrorStep.js +36 -0
- package/dist/components/init/ErrorStep.js.map +1 -0
- package/dist/components/init/FetchStep.d.ts +15 -0
- package/dist/components/init/FetchStep.d.ts.map +1 -0
- package/dist/components/init/FetchStep.js +33 -0
- package/dist/components/init/FetchStep.js.map +1 -0
- package/dist/components/init/SetupStep.d.ts +14 -0
- package/dist/components/init/SetupStep.d.ts.map +1 -0
- package/dist/components/init/SetupStep.js +78 -0
- package/dist/components/init/SetupStep.js.map +1 -0
- package/dist/components/init/SteeringStep.d.ts +12 -0
- package/dist/components/init/SteeringStep.d.ts.map +1 -0
- package/dist/components/init/SteeringStep.js +43 -0
- package/dist/components/init/SteeringStep.js.map +1 -0
- package/dist/components/init/WelcomeStep.d.ts +12 -0
- package/dist/components/init/WelcomeStep.d.ts.map +1 -0
- package/dist/components/init/WelcomeStep.js +52 -0
- package/dist/components/init/WelcomeStep.js.map +1 -0
- package/dist/components/init/index.d.ts +11 -0
- package/dist/components/init/index.d.ts.map +1 -0
- package/dist/components/init/index.js +10 -0
- package/dist/components/init/index.js.map +1 -0
- package/dist/components/init/types.d.ts +98 -0
- package/dist/components/init/types.d.ts.map +1 -0
- package/dist/components/init/types.js +6 -0
- package/dist/components/init/types.js.map +1 -0
- package/dist/components/screens/AbortScreen.d.ts +14 -0
- package/dist/components/screens/AbortScreen.d.ts.map +1 -0
- package/dist/components/screens/AbortScreen.js +181 -0
- package/dist/components/screens/AbortScreen.js.map +1 -0
- package/dist/components/screens/ApprovalScreen.d.ts +24 -0
- package/dist/components/screens/ApprovalScreen.d.ts.map +1 -0
- package/dist/components/screens/ApprovalScreen.js +82 -0
- package/dist/components/screens/ApprovalScreen.js.map +1 -0
- package/dist/components/screens/HelpScreen.d.ts +20 -0
- package/dist/components/screens/HelpScreen.d.ts.map +1 -0
- package/dist/components/screens/HelpScreen.js +70 -0
- package/dist/components/screens/HelpScreen.js.map +1 -0
- package/dist/components/screens/InitScreen.d.ts +15 -0
- package/dist/components/screens/InitScreen.d.ts.map +1 -0
- package/dist/components/screens/InitScreen.js +420 -0
- package/dist/components/screens/InitScreen.js.map +1 -0
- package/dist/components/screens/ListScreen.d.ts +14 -0
- package/dist/components/screens/ListScreen.d.ts.map +1 -0
- package/dist/components/screens/ListScreen.js +57 -0
- package/dist/components/screens/ListScreen.js.map +1 -0
- package/dist/components/screens/ProgressScreen.d.ts +26 -0
- package/dist/components/screens/ProgressScreen.d.ts.map +1 -0
- package/dist/components/screens/ProgressScreen.js +64 -0
- package/dist/components/screens/ProgressScreen.js.map +1 -0
- package/dist/components/screens/ResumeScreen.d.ts +14 -0
- package/dist/components/screens/ResumeScreen.d.ts.map +1 -0
- package/dist/components/screens/ResumeScreen.js +108 -0
- package/dist/components/screens/ResumeScreen.js.map +1 -0
- package/dist/components/screens/ScreenProps.d.ts +12 -0
- package/dist/components/screens/ScreenProps.d.ts.map +1 -0
- package/dist/components/screens/ScreenProps.js +5 -0
- package/dist/components/screens/ScreenProps.js.map +1 -0
- package/dist/components/screens/StartScreen.d.ts +26 -0
- package/dist/components/screens/StartScreen.d.ts.map +1 -0
- package/dist/components/screens/StartScreen.js +1021 -0
- package/dist/components/screens/StartScreen.js.map +1 -0
- package/dist/components/screens/StatusScreen.d.ts +14 -0
- package/dist/components/screens/StatusScreen.d.ts.map +1 -0
- package/dist/components/screens/StatusScreen.js +115 -0
- package/dist/components/screens/StatusScreen.js.map +1 -0
- package/dist/components/screens/index.d.ts +15 -0
- package/dist/components/screens/index.d.ts.map +1 -0
- package/dist/components/screens/index.js +12 -0
- package/dist/components/screens/index.js.map +1 -0
- package/dist/components/ui/ErrorBoundary.d.ts +34 -0
- package/dist/components/ui/ErrorBoundary.d.ts.map +1 -0
- package/dist/components/ui/ErrorBoundary.js +37 -0
- package/dist/components/ui/ErrorBoundary.js.map +1 -0
- package/dist/components/ui/ErrorDisplay.d.ts +20 -0
- package/dist/components/ui/ErrorDisplay.d.ts.map +1 -0
- package/dist/components/ui/ErrorDisplay.js +12 -0
- package/dist/components/ui/ErrorDisplay.js.map +1 -0
- package/dist/components/ui/ErrorRecoveryPrompt.d.ts +30 -0
- package/dist/components/ui/ErrorRecoveryPrompt.d.ts.map +1 -0
- package/dist/components/ui/ErrorRecoveryPrompt.js +66 -0
- package/dist/components/ui/ErrorRecoveryPrompt.js.map +1 -0
- package/dist/components/ui/FeatureSidebar.d.ts +27 -0
- package/dist/components/ui/FeatureSidebar.d.ts.map +1 -0
- package/dist/components/ui/FeatureSidebar.js +166 -0
- package/dist/components/ui/FeatureSidebar.js.map +1 -0
- package/dist/components/ui/FlowTable.d.ts +21 -0
- package/dist/components/ui/FlowTable.d.ts.map +1 -0
- package/dist/components/ui/FlowTable.js +105 -0
- package/dist/components/ui/FlowTable.js.map +1 -0
- package/dist/components/ui/Header.d.ts +20 -0
- package/dist/components/ui/Header.d.ts.map +1 -0
- package/dist/components/ui/Header.js +11 -0
- package/dist/components/ui/Header.js.map +1 -0
- package/dist/components/ui/OutputRegion.d.ts +20 -0
- package/dist/components/ui/OutputRegion.d.ts.map +1 -0
- package/dist/components/ui/OutputRegion.js +14 -0
- package/dist/components/ui/OutputRegion.js.map +1 -0
- package/dist/components/ui/PhaseProgressView.d.ts +23 -0
- package/dist/components/ui/PhaseProgressView.d.ts.map +1 -0
- package/dist/components/ui/PhaseProgressView.js +117 -0
- package/dist/components/ui/PhaseProgressView.js.map +1 -0
- package/dist/components/ui/ProgressBar.d.ts +20 -0
- package/dist/components/ui/ProgressBar.d.ts.map +1 -0
- package/dist/components/ui/ProgressBar.js +12 -0
- package/dist/components/ui/ProgressBar.js.map +1 -0
- package/dist/components/ui/SelectMenu.d.ts +27 -0
- package/dist/components/ui/SelectMenu.d.ts.map +1 -0
- package/dist/components/ui/SelectMenu.js +21 -0
- package/dist/components/ui/SelectMenu.js.map +1 -0
- package/dist/components/ui/Spinner.d.ts +18 -0
- package/dist/components/ui/Spinner.d.ts.map +1 -0
- package/dist/components/ui/Spinner.js +10 -0
- package/dist/components/ui/Spinner.js.map +1 -0
- package/dist/components/ui/StatusLine.d.ts +21 -0
- package/dist/components/ui/StatusLine.d.ts.map +1 -0
- package/dist/components/ui/StatusLine.js +30 -0
- package/dist/components/ui/StatusLine.js.map +1 -0
- package/dist/components/ui/index.d.ts +16 -0
- package/dist/components/ui/index.d.ts.map +1 -0
- package/dist/components/ui/index.js +16 -0
- package/dist/components/ui/index.js.map +1 -0
- package/dist/services/AgentInvoker.d.ts +20 -0
- package/dist/services/AgentInvoker.d.ts.map +1 -0
- package/dist/services/AgentInvoker.js +282 -0
- package/dist/services/AgentInvoker.js.map +1 -0
- package/dist/services/BranchService.d.ts +28 -0
- package/dist/services/BranchService.d.ts.map +1 -0
- package/dist/services/BranchService.js +114 -0
- package/dist/services/BranchService.js.map +1 -0
- package/dist/services/CacheService.d.ts +57 -0
- package/dist/services/CacheService.d.ts.map +1 -0
- package/dist/services/CacheService.js +208 -0
- package/dist/services/CacheService.js.map +1 -0
- package/dist/services/ClaudeErrorDetector.d.ts +45 -0
- package/dist/services/ClaudeErrorDetector.d.ts.map +1 -0
- package/dist/services/ClaudeErrorDetector.js +207 -0
- package/dist/services/ClaudeErrorDetector.js.map +1 -0
- package/dist/services/ClaudeHealthCheck.d.ts +37 -0
- package/dist/services/ClaudeHealthCheck.d.ts.map +1 -0
- package/dist/services/ClaudeHealthCheck.js +197 -0
- package/dist/services/ClaudeHealthCheck.js.map +1 -0
- package/dist/services/CommitService.d.ts +36 -0
- package/dist/services/CommitService.d.ts.map +1 -0
- package/dist/services/CommitService.js +159 -0
- package/dist/services/CommitService.js.map +1 -0
- package/dist/services/ConfigService.d.ts +49 -0
- package/dist/services/ConfigService.d.ts.map +1 -0
- package/dist/services/ConfigService.js +57 -0
- package/dist/services/ConfigService.js.map +1 -0
- package/dist/services/DockerRunner.d.ts +45 -0
- package/dist/services/DockerRunner.d.ts.map +1 -0
- package/dist/services/DockerRunner.js +170 -0
- package/dist/services/DockerRunner.js.map +1 -0
- package/dist/services/ExtendedFlowStateMachine.d.ts +31 -0
- package/dist/services/ExtendedFlowStateMachine.d.ts.map +1 -0
- package/dist/services/ExtendedFlowStateMachine.js +302 -0
- package/dist/services/ExtendedFlowStateMachine.js.map +1 -0
- package/dist/services/FeatureValidator.d.ts +26 -0
- package/dist/services/FeatureValidator.d.ts.map +1 -0
- package/dist/services/FeatureValidator.js +48 -0
- package/dist/services/FeatureValidator.js.map +1 -0
- package/dist/services/FlowStateMachine.d.ts +26 -0
- package/dist/services/FlowStateMachine.d.ts.map +1 -0
- package/dist/services/FlowStateMachine.js +177 -0
- package/dist/services/FlowStateMachine.js.map +1 -0
- package/dist/services/GitHubService.d.ts +72 -0
- package/dist/services/GitHubService.d.ts.map +1 -0
- package/dist/services/GitHubService.js +150 -0
- package/dist/services/GitHubService.js.map +1 -0
- package/dist/services/GitStatusChecker.d.ts +29 -0
- package/dist/services/GitStatusChecker.d.ts.map +1 -0
- package/dist/services/GitStatusChecker.js +127 -0
- package/dist/services/GitStatusChecker.js.map +1 -0
- package/dist/services/PRCreatorService.d.ts +59 -0
- package/dist/services/PRCreatorService.d.ts.map +1 -0
- package/dist/services/PRCreatorService.js +212 -0
- package/dist/services/PRCreatorService.js.map +1 -0
- package/dist/services/PRStatusFetcher.d.ts +39 -0
- package/dist/services/PRStatusFetcher.d.ts.map +1 -0
- package/dist/services/PRStatusFetcher.js +144 -0
- package/dist/services/PRStatusFetcher.js.map +1 -0
- package/dist/services/PhaseExecutor.d.ts +29 -0
- package/dist/services/PhaseExecutor.d.ts.map +1 -0
- package/dist/services/PhaseExecutor.js +125 -0
- package/dist/services/PhaseExecutor.js.map +1 -0
- package/dist/services/SpecInitService.d.ts +33 -0
- package/dist/services/SpecInitService.d.ts.map +1 -0
- package/dist/services/SpecInitService.js +168 -0
- package/dist/services/SpecInitService.js.map +1 -0
- package/dist/services/StateStore.d.ts +24 -0
- package/dist/services/StateStore.d.ts.map +1 -0
- package/dist/services/StateStore.js +171 -0
- package/dist/services/StateStore.js.map +1 -0
- package/dist/services/TaskParser.d.ts +44 -0
- package/dist/services/TaskParser.d.ts.map +1 -0
- package/dist/services/TaskParser.js +167 -0
- package/dist/services/TaskParser.js.map +1 -0
- package/dist/services/TaskRunner.d.ts +52 -0
- package/dist/services/TaskRunner.d.ts.map +1 -0
- package/dist/services/TaskRunner.js +135 -0
- package/dist/services/TaskRunner.js.map +1 -0
- package/dist/services/TemplateService.d.ts +73 -0
- package/dist/services/TemplateService.d.ts.map +1 -0
- package/dist/services/TemplateService.js +263 -0
- package/dist/services/TemplateService.js.map +1 -0
- package/dist/services/WorktreeService.d.ts +51 -0
- package/dist/services/WorktreeService.d.ts.map +1 -0
- package/dist/services/WorktreeService.js +204 -0
- package/dist/services/WorktreeService.js.map +1 -0
- package/dist/services/index.d.ts +25 -0
- package/dist/services/index.d.ts.map +1 -0
- package/dist/services/index.js +25 -0
- package/dist/services/index.js.map +1 -0
- package/dist/types/extended-flow.d.ts +167 -0
- package/dist/types/extended-flow.d.ts.map +1 -0
- package/dist/types/extended-flow.js +103 -0
- package/dist/types/extended-flow.js.map +1 -0
- package/dist/types/index.d.ts +210 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +28 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/git.d.ts +41 -0
- package/dist/utils/git.d.ts.map +1 -0
- package/dist/utils/git.js +68 -0
- package/dist/utils/git.js.map +1 -0
- package/dist/utils/index.d.ts +6 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +6 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/paths.d.ts +30 -0
- package/dist/utils/paths.d.ts.map +1 -0
- package/dist/utils/paths.js +43 -0
- package/dist/utils/paths.js.map +1 -0
- package/framework/.red64/settings/rules/design-discovery-full.md +93 -0
- package/framework/.red64/settings/rules/design-discovery-light.md +49 -0
- package/framework/.red64/settings/rules/design-principles.md +182 -0
- package/framework/.red64/settings/rules/design-review.md +110 -0
- package/framework/.red64/settings/rules/ears-format.md +49 -0
- package/framework/.red64/settings/rules/gap-analysis.md +144 -0
- package/framework/.red64/settings/rules/steering-principles.md +90 -0
- package/framework/.red64/settings/rules/tasks-generation.md +131 -0
- package/framework/.red64/settings/rules/tasks-parallel-analysis.md +34 -0
- package/framework/.red64/settings/templates/flow-state.json +48 -0
- package/framework/.red64/settings/templates/specs/design.md +276 -0
- package/framework/.red64/settings/templates/specs/init.json +24 -0
- package/framework/.red64/settings/templates/specs/requirements-init.md +9 -0
- package/framework/.red64/settings/templates/specs/requirements.md +26 -0
- package/framework/.red64/settings/templates/specs/research.md +61 -0
- package/framework/.red64/settings/templates/specs/tasks.md +21 -0
- package/framework/.red64/settings/templates/steering/product.md +18 -0
- package/framework/.red64/settings/templates/steering/structure.md +41 -0
- package/framework/.red64/settings/templates/steering/tech.md +45 -0
- package/framework/.red64/settings/templates/steering-custom/api-standards.md +69 -0
- package/framework/.red64/settings/templates/steering-custom/authentication.md +67 -0
- package/framework/.red64/settings/templates/steering-custom/database.md +46 -0
- package/framework/.red64/settings/templates/steering-custom/deployment.md +54 -0
- package/framework/.red64/settings/templates/steering-custom/error-handling.md +59 -0
- package/framework/.red64/settings/templates/steering-custom/security.md +55 -0
- package/framework/.red64/settings/templates/steering-custom/testing.md +47 -0
- package/framework/agents/claude/.claude/agents/red64/spec-design.md +174 -0
- package/framework/agents/claude/.claude/agents/red64/spec-impl.md +120 -0
- package/framework/agents/claude/.claude/agents/red64/spec-requirements.md +102 -0
- package/framework/agents/claude/.claude/agents/red64/spec-tasks.md +141 -0
- package/framework/agents/claude/.claude/agents/red64/steering-custom.md +147 -0
- package/framework/agents/claude/.claude/agents/red64/steering.md +163 -0
- package/framework/agents/claude/.claude/agents/red64/validate-design.md +98 -0
- package/framework/agents/claude/.claude/agents/red64/validate-gap.md +99 -0
- package/framework/agents/claude/.claude/agents/red64/validate-impl.md +146 -0
- package/framework/agents/claude/.claude/commands/red64/spec-design.md +64 -0
- package/framework/agents/claude/.claude/commands/red64/spec-impl.md +68 -0
- package/framework/agents/claude/.claude/commands/red64/spec-init.md +65 -0
- package/framework/agents/claude/.claude/commands/red64/spec-quick.md +360 -0
- package/framework/agents/claude/.claude/commands/red64/spec-requirements.md +62 -0
- package/framework/agents/claude/.claude/commands/red64/spec-status.md +87 -0
- package/framework/agents/claude/.claude/commands/red64/spec-tasks.md +75 -0
- package/framework/agents/claude/.claude/commands/red64/steering-custom.md +59 -0
- package/framework/agents/claude/.claude/commands/red64/steering.md +62 -0
- package/framework/agents/claude/.claude/commands/red64/validate-design.md +59 -0
- package/framework/agents/claude/.claude/commands/red64/validate-gap.md +53 -0
- package/framework/agents/claude/.claude/commands/red64/validate-impl.md +68 -0
- package/framework/agents/claude/docs/CLAUDE.md +45 -0
- package/framework/agents/codex/.codex/agents/red64/spec-design.md +174 -0
- package/framework/agents/codex/.codex/agents/red64/spec-impl.md +120 -0
- package/framework/agents/codex/.codex/agents/red64/spec-requirements.md +102 -0
- package/framework/agents/codex/.codex/agents/red64/spec-tasks.md +141 -0
- package/framework/agents/codex/.codex/agents/red64/steering-custom.md +147 -0
- package/framework/agents/codex/.codex/agents/red64/steering.md +163 -0
- package/framework/agents/codex/.codex/agents/red64/validate-design.md +98 -0
- package/framework/agents/codex/.codex/agents/red64/validate-gap.md +99 -0
- package/framework/agents/codex/.codex/agents/red64/validate-impl.md +146 -0
- package/framework/agents/codex/.codex/commands/red64/spec-design.md +64 -0
- package/framework/agents/codex/.codex/commands/red64/spec-impl.md +68 -0
- package/framework/agents/codex/.codex/commands/red64/spec-init.md +65 -0
- package/framework/agents/codex/.codex/commands/red64/spec-quick.md +360 -0
- package/framework/agents/codex/.codex/commands/red64/spec-requirements.md +62 -0
- package/framework/agents/codex/.codex/commands/red64/spec-status.md +87 -0
- package/framework/agents/codex/.codex/commands/red64/spec-tasks.md +75 -0
- package/framework/agents/codex/.codex/commands/red64/steering-custom.md +59 -0
- package/framework/agents/codex/.codex/commands/red64/steering.md +62 -0
- package/framework/agents/codex/.codex/commands/red64/validate-design.md +59 -0
- package/framework/agents/codex/.codex/commands/red64/validate-gap.md +53 -0
- package/framework/agents/codex/.codex/commands/red64/validate-impl.md +68 -0
- package/framework/agents/codex/docs/AGENTS.md +68 -0
- package/framework/agents/gemini/commands.toml +607 -0
- package/framework/agents/gemini/docs/GEMINI.md +45 -0
- package/framework/stacks/generic/product.md +27 -0
- package/framework/stacks/generic/structure.md +46 -0
- package/framework/stacks/generic/tech.md +47 -0
- package/framework/stacks/node/product.md +27 -0
- package/framework/stacks/node/structure.md +82 -0
- package/framework/stacks/node/tech.md +63 -0
- package/framework/stacks/python/product.md +27 -0
- package/framework/stacks/python/structure.md +78 -0
- package/framework/stacks/python/tech.md +64 -0
- package/framework/stacks/react/product.md +27 -0
- package/framework/stacks/react/structure.md +76 -0
- package/framework/stacks/react/tech.md +65 -0
- package/package.json +47 -0
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
# Task Generation Rules
|
|
2
|
+
|
|
3
|
+
## Core Principles
|
|
4
|
+
|
|
5
|
+
### 1. Natural Language Descriptions
|
|
6
|
+
Focus on capabilities and outcomes, not code structure.
|
|
7
|
+
|
|
8
|
+
**Describe**:
|
|
9
|
+
- What functionality to achieve
|
|
10
|
+
- Business logic and behavior
|
|
11
|
+
- Features and capabilities
|
|
12
|
+
- Domain language and concepts
|
|
13
|
+
- Data relationships and workflows
|
|
14
|
+
|
|
15
|
+
**Avoid**:
|
|
16
|
+
- File paths and directory structure
|
|
17
|
+
- Function/method names and signatures
|
|
18
|
+
- Type definitions and interfaces
|
|
19
|
+
- Class names and API contracts
|
|
20
|
+
- Specific data structures
|
|
21
|
+
|
|
22
|
+
**Rationale**: Implementation details (files, methods, types) are defined in design.md. Tasks describe the functional work to be done.
|
|
23
|
+
|
|
24
|
+
### 2. Task Integration & Progression
|
|
25
|
+
|
|
26
|
+
**Every task must**:
|
|
27
|
+
- Build on previous outputs (no orphaned code)
|
|
28
|
+
- Connect to the overall system (no hanging features)
|
|
29
|
+
- Progress incrementally (no big jumps in complexity)
|
|
30
|
+
- Validate core functionality early in sequence
|
|
31
|
+
- Respect architecture boundaries defined in design.md (Architecture Pattern & Boundary Map)
|
|
32
|
+
- Honor interface contracts documented in design.md
|
|
33
|
+
- Use major task summaries sparingly—omit detail bullets if the work is fully captured by child tasks.
|
|
34
|
+
|
|
35
|
+
**End with integration tasks** to wire everything together.
|
|
36
|
+
|
|
37
|
+
### 3. Flexible Task Sizing
|
|
38
|
+
|
|
39
|
+
**Guidelines**:
|
|
40
|
+
- **Major tasks**: As many sub-tasks as logically needed (group by cohesion)
|
|
41
|
+
- **Sub-tasks**: 1-3 hours each, 3-10 details per sub-task
|
|
42
|
+
- Balance between too granular and too broad
|
|
43
|
+
|
|
44
|
+
**Don't force arbitrary numbers** - let logical grouping determine structure.
|
|
45
|
+
|
|
46
|
+
### 4. Requirements Mapping
|
|
47
|
+
|
|
48
|
+
**End each task detail section with**:
|
|
49
|
+
- `_Requirements: X.X, Y.Y_` listing **only numeric requirement IDs** (comma-separated). Never append descriptive text, parentheses, translations, or free-form labels.
|
|
50
|
+
- For cross-cutting requirements, list every relevant requirement ID. All requirements MUST have numeric IDs in requirements.md. If an ID is missing, stop and correct requirements.md before generating tasks.
|
|
51
|
+
- Reference components/interfaces from design.md when helpful (e.g., `_Contracts: AuthService API`)
|
|
52
|
+
|
|
53
|
+
### 5. Code-Only Focus
|
|
54
|
+
|
|
55
|
+
**Include ONLY**:
|
|
56
|
+
- Coding tasks (implementation)
|
|
57
|
+
- Testing tasks (unit, integration, E2E)
|
|
58
|
+
- Technical setup tasks (infrastructure, configuration)
|
|
59
|
+
|
|
60
|
+
**Exclude**:
|
|
61
|
+
- Deployment tasks
|
|
62
|
+
- Documentation tasks
|
|
63
|
+
- User testing
|
|
64
|
+
- Marketing/business activities
|
|
65
|
+
|
|
66
|
+
### Optional Test Coverage Tasks
|
|
67
|
+
|
|
68
|
+
- When the design already guarantees functional coverage and rapid MVP delivery is prioritized, mark purely test-oriented follow-up work (e.g., baseline rendering/unit tests) as **optional** using the `- [ ]*` checkbox form.
|
|
69
|
+
- Only apply the optional marker when the sub-task directly references acceptance criteria from requirements.md in its detail bullets.
|
|
70
|
+
- Never mark implementation work or integration-critical verification as optional—reserve `*` for auxiliary/deferrable test coverage that can be revisited post-MVP.
|
|
71
|
+
|
|
72
|
+
## Task Hierarchy Rules
|
|
73
|
+
|
|
74
|
+
### Maximum 2 Levels
|
|
75
|
+
- **Level 1**: Major tasks (1, 2, 3, 4...)
|
|
76
|
+
- **Level 2**: Sub-tasks (1.1, 1.2, 2.1, 2.2...)
|
|
77
|
+
- **No deeper nesting** (no 1.1.1)
|
|
78
|
+
- If a major task would contain only a single actionable item, collapse the structure and promote the sub-task to the major level (e.g., replace `1.1` with `1.`).
|
|
79
|
+
- When a major task exists purely as a container, keep the checkbox description concise and avoid duplicating detailed bullets—reserve specifics for its sub-tasks.
|
|
80
|
+
|
|
81
|
+
### Sequential Numbering
|
|
82
|
+
- Major tasks MUST increment: 1, 2, 3, 4, 5...
|
|
83
|
+
- Sub-tasks reset per major task: 1.1, 1.2, then 2.1, 2.2...
|
|
84
|
+
- Never repeat major task numbers
|
|
85
|
+
|
|
86
|
+
### Parallel Analysis (default)
|
|
87
|
+
- Assume parallel analysis is enabled unless explicitly disabled (e.g. `--sequential` flag).
|
|
88
|
+
- Identify tasks that can run concurrently when **all** conditions hold:
|
|
89
|
+
- No data dependency on other pending tasks
|
|
90
|
+
- No shared file or resource contention
|
|
91
|
+
- No prerequisite review/approval from another task
|
|
92
|
+
- Validate that identified parallel tasks operate within separate boundaries defined in the Architecture Pattern & Boundary Map.
|
|
93
|
+
- Confirm API/event contracts from design.md do not overlap in ways that cause conflicts.
|
|
94
|
+
- Append `(P)` immediately after the task number for each parallel-capable task:
|
|
95
|
+
- Example: `- [ ] 2.1 (P) Build background worker`
|
|
96
|
+
- Apply to both major tasks and sub-tasks when appropriate.
|
|
97
|
+
- If sequential mode is requested, omit `(P)` markers entirely.
|
|
98
|
+
- Group parallel tasks logically (same parent when possible) and highlight any ordering caveats in detail bullets.
|
|
99
|
+
- Explicitly call out dependencies that prevent `(P)` even when tasks look similar.
|
|
100
|
+
|
|
101
|
+
### Checkbox Format
|
|
102
|
+
```markdown
|
|
103
|
+
- [ ] 1. Major task description
|
|
104
|
+
- [ ] 1.1 Sub-task description
|
|
105
|
+
- Detail item 1
|
|
106
|
+
- Detail item 2
|
|
107
|
+
- _Requirements: X.X_
|
|
108
|
+
|
|
109
|
+
- [ ] 1.2 Sub-task description
|
|
110
|
+
- Detail items...
|
|
111
|
+
- _Requirements: Y.Y_
|
|
112
|
+
|
|
113
|
+
- [ ] 1.3 Sub-task description
|
|
114
|
+
- Detail items...
|
|
115
|
+
- _Requirements: Z.Z, W.W_
|
|
116
|
+
|
|
117
|
+
- [ ] 2. Next major task (NOT 1 again!)
|
|
118
|
+
- [ ] 2.1 Sub-task...
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
## Requirements Coverage
|
|
122
|
+
|
|
123
|
+
**Mandatory Check**:
|
|
124
|
+
- ALL requirements from requirements.md MUST be covered
|
|
125
|
+
- Cross-reference every requirement ID with task mappings
|
|
126
|
+
- If gaps found: Return to requirements or design phase
|
|
127
|
+
- No requirement should be left without corresponding tasks
|
|
128
|
+
|
|
129
|
+
Use `N.M`-style numeric requirement IDs where `N` is the top-level requirement number from requirements.md (for example, Requirement 1 → 1.1, 1.2; Requirement 2 → 2.1, 2.2), and `M` is a local index within that requirement group.
|
|
130
|
+
|
|
131
|
+
Document any intentionally deferred requirements with rationale.
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# Parallel Task Analysis Rules
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
Provide a consistent way to identify implementation tasks that can be safely executed in parallel while generating `tasks.md`.
|
|
5
|
+
|
|
6
|
+
## When to Consider Tasks Parallel
|
|
7
|
+
Only mark a task as parallel-capable when **all** of the following are true:
|
|
8
|
+
|
|
9
|
+
1. **No data dependency** on pending tasks.
|
|
10
|
+
2. **No conflicting files or shared mutable resources** are touched.
|
|
11
|
+
3. **No prerequisite review/approval** from another task is required beforehand.
|
|
12
|
+
4. **Environment/setup work** needed by this task is already satisfied or covered within the task itself.
|
|
13
|
+
|
|
14
|
+
## Marking Convention
|
|
15
|
+
- Append `(P)` immediately after the numeric identifier for each qualifying task.
|
|
16
|
+
- Example: `- [ ] 2.1 (P) Build background worker for emails`
|
|
17
|
+
- Apply `(P)` to both major tasks and sub-tasks when appropriate.
|
|
18
|
+
- If sequential execution is requested (e.g. via `--sequential` flag), omit `(P)` markers entirely.
|
|
19
|
+
- Keep `(P)` **outside** of checkbox brackets to avoid confusion with completion state.
|
|
20
|
+
|
|
21
|
+
## Grouping & Ordering Guidelines
|
|
22
|
+
- Group parallel tasks under the same parent whenever the work belongs to the same theme.
|
|
23
|
+
- List obvious prerequisites or caveats in the detail bullets (e.g., "Requires schema migration from 1.2").
|
|
24
|
+
- When two tasks look similar but are not parallel-safe, call out the blocking dependency explicitly.
|
|
25
|
+
- Skip marking container-only major tasks (those without their own actionable detail bullets) with `(P)`—evaluate parallel execution at the sub-task level instead.
|
|
26
|
+
|
|
27
|
+
## Quality Checklist
|
|
28
|
+
Before marking a task with `(P)`, ensure you have:
|
|
29
|
+
|
|
30
|
+
- Verified that running this task concurrently will not create merge or deployment conflicts.
|
|
31
|
+
- Captured any shared state expectations in the detail bullets.
|
|
32
|
+
- Confirmed that the implementation can be tested independently.
|
|
33
|
+
|
|
34
|
+
If any check fails, **do not** mark the task with `(P)` and explain the dependency in the task details.
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
{
|
|
2
|
+
"feature": "{{FEATURE_NAME}}",
|
|
3
|
+
"description": "{{PROJECT_DESCRIPTION}}",
|
|
4
|
+
"branch": "feature/{{FEATURE_NAME}}",
|
|
5
|
+
"worktree": "worktrees/{{FEATURE_NAME}}",
|
|
6
|
+
"phase": "initialized",
|
|
7
|
+
"phases": {
|
|
8
|
+
"init": {
|
|
9
|
+
"completed": false,
|
|
10
|
+
"commit": null
|
|
11
|
+
},
|
|
12
|
+
"requirements": {
|
|
13
|
+
"completed": false,
|
|
14
|
+
"approved": false,
|
|
15
|
+
"commit": null
|
|
16
|
+
},
|
|
17
|
+
"design": {
|
|
18
|
+
"completed": false,
|
|
19
|
+
"approved": false,
|
|
20
|
+
"commit": null
|
|
21
|
+
},
|
|
22
|
+
"tasks": {
|
|
23
|
+
"completed": false,
|
|
24
|
+
"approved": false,
|
|
25
|
+
"commit": null
|
|
26
|
+
},
|
|
27
|
+
"implementation": {
|
|
28
|
+
"completed": false,
|
|
29
|
+
"tasks_completed": [],
|
|
30
|
+
"tasks_remaining": [],
|
|
31
|
+
"commits": []
|
|
32
|
+
},
|
|
33
|
+
"validation": {
|
|
34
|
+
"completed": false,
|
|
35
|
+
"passed": false,
|
|
36
|
+
"commit": null
|
|
37
|
+
},
|
|
38
|
+
"pr": {
|
|
39
|
+
"created": false,
|
|
40
|
+
"url": null,
|
|
41
|
+
"number": null,
|
|
42
|
+
"merged": false,
|
|
43
|
+
"merge_commit": null
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
"created_at": "{{TIMESTAMP}}",
|
|
47
|
+
"updated_at": "{{TIMESTAMP}}"
|
|
48
|
+
}
|
|
@@ -0,0 +1,276 @@
|
|
|
1
|
+
# Design Document Template
|
|
2
|
+
|
|
3
|
+
---
|
|
4
|
+
**Purpose**: Provide sufficient detail to ensure implementation consistency across different implementers, preventing interpretation drift.
|
|
5
|
+
|
|
6
|
+
**Approach**:
|
|
7
|
+
- Include essential sections that directly inform implementation decisions
|
|
8
|
+
- Omit optional sections unless critical to preventing implementation errors
|
|
9
|
+
- Match detail level to feature complexity
|
|
10
|
+
- Use diagrams and tables over lengthy prose
|
|
11
|
+
|
|
12
|
+
**Warning**: Approaching 1000 lines indicates excessive feature complexity that may require design simplification.
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
> Sections may be reordered (e.g., surfacing Requirements Traceability earlier or moving Data Models nearer Architecture) when it improves clarity. Within each section, keep the flow **Summary → Scope → Decisions → Impacts/Risks** so reviewers can scan consistently.
|
|
16
|
+
|
|
17
|
+
## Overview
|
|
18
|
+
2-3 paragraphs max
|
|
19
|
+
**Purpose**: This feature delivers [specific value] to [target users].
|
|
20
|
+
**Users**: [Target user groups] will utilize this for [specific workflows].
|
|
21
|
+
**Impact** (if applicable): Changes the current [system state] by [specific modifications].
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
### Goals
|
|
25
|
+
- Primary objective 1
|
|
26
|
+
- Primary objective 2
|
|
27
|
+
- Success criteria
|
|
28
|
+
|
|
29
|
+
### Non-Goals
|
|
30
|
+
- Explicitly excluded functionality
|
|
31
|
+
- Future considerations outside current scope
|
|
32
|
+
- Integration points deferred
|
|
33
|
+
|
|
34
|
+
## Architecture
|
|
35
|
+
|
|
36
|
+
> Reference detailed discovery notes in `research.md` only for background; keep design.md self-contained for reviewers by capturing all decisions and contracts here.
|
|
37
|
+
> Capture key decisions in text and let diagrams carry structural detail—avoid repeating the same information in prose.
|
|
38
|
+
|
|
39
|
+
### Existing Architecture Analysis (if applicable)
|
|
40
|
+
When modifying existing systems:
|
|
41
|
+
- Current architecture patterns and constraints
|
|
42
|
+
- Existing domain boundaries to be respected
|
|
43
|
+
- Integration points that must be maintained
|
|
44
|
+
- Technical debt addressed or worked around
|
|
45
|
+
|
|
46
|
+
### Architecture Pattern & Boundary Map
|
|
47
|
+
**RECOMMENDED**: Include Mermaid diagram showing the chosen architecture pattern and system boundaries (required for complex features, optional for simple additions)
|
|
48
|
+
|
|
49
|
+
**Architecture Integration**:
|
|
50
|
+
- Selected pattern: [name and brief rationale]
|
|
51
|
+
- Domain/feature boundaries: [how responsibilities are separated to avoid conflicts]
|
|
52
|
+
- Existing patterns preserved: [list key patterns]
|
|
53
|
+
- New components rationale: [why each is needed]
|
|
54
|
+
- Steering compliance: [principles maintained]
|
|
55
|
+
|
|
56
|
+
### Technology Stack
|
|
57
|
+
|
|
58
|
+
| Layer | Choice / Version | Role in Feature | Notes |
|
|
59
|
+
|-------|------------------|-----------------|-------|
|
|
60
|
+
| Frontend / CLI | | | |
|
|
61
|
+
| Backend / Services | | | |
|
|
62
|
+
| Data / Storage | | | |
|
|
63
|
+
| Messaging / Events | | | |
|
|
64
|
+
| Infrastructure / Runtime | | | |
|
|
65
|
+
|
|
66
|
+
> Keep rationale concise here and, when more depth is required (trade-offs, benchmarks), add a short summary plus pointer to the Supporting References section and `research.md` for raw investigation notes.
|
|
67
|
+
|
|
68
|
+
## System Flows
|
|
69
|
+
|
|
70
|
+
Provide only the diagrams needed to explain non-trivial flows. Use pure Mermaid syntax. Common patterns:
|
|
71
|
+
- Sequence (multi-party interactions)
|
|
72
|
+
- Process / state (branching logic or lifecycle)
|
|
73
|
+
- Data / event flow (pipelines, async messaging)
|
|
74
|
+
|
|
75
|
+
Skip this section entirely for simple CRUD changes.
|
|
76
|
+
> Describe flow-level decisions (e.g., gating conditions, retries) briefly after the diagram instead of restating each step.
|
|
77
|
+
|
|
78
|
+
## Requirements Traceability
|
|
79
|
+
|
|
80
|
+
Use this section for complex or compliance-sensitive features where requirements span multiple domains. Straightforward 1:1 mappings can rely on the Components summary table.
|
|
81
|
+
|
|
82
|
+
Map each requirement ID (e.g., `2.1`) to the design elements that realize it.
|
|
83
|
+
|
|
84
|
+
| Requirement | Summary | Components | Interfaces | Flows |
|
|
85
|
+
|-------------|---------|------------|------------|-------|
|
|
86
|
+
| 1.1 | | | | |
|
|
87
|
+
| 1.2 | | | | |
|
|
88
|
+
|
|
89
|
+
> Omit this section only when a single component satisfies a single requirement without cross-cutting concerns.
|
|
90
|
+
|
|
91
|
+
## Components and Interfaces
|
|
92
|
+
|
|
93
|
+
Provide a quick reference before diving into per-component details.
|
|
94
|
+
|
|
95
|
+
- Summaries can be a table or compact list. Example table:
|
|
96
|
+
| Component | Domain/Layer | Intent | Req Coverage | Key Dependencies (P0/P1) | Contracts |
|
|
97
|
+
|-----------|--------------|--------|--------------|--------------------------|-----------|
|
|
98
|
+
| ExampleComponent | UI | Displays XYZ | 1, 2 | GameProvider (P0), MapPanel (P1) | Service, State |
|
|
99
|
+
- Only components introducing new boundaries (e.g., logic hooks, external integrations, persistence) require full detail blocks. Simple presentation components can rely on the summary row plus a short Implementation Note.
|
|
100
|
+
|
|
101
|
+
Group detailed blocks by domain or architectural layer. For each detailed component, list requirement IDs as `2.1, 2.3` (omit “Requirement”). When multiple UI components share the same contract, reference a base interface/props definition instead of duplicating code blocks.
|
|
102
|
+
|
|
103
|
+
### [Domain / Layer]
|
|
104
|
+
|
|
105
|
+
#### [Component Name]
|
|
106
|
+
|
|
107
|
+
| Field | Detail |
|
|
108
|
+
|-------|--------|
|
|
109
|
+
| Intent | 1-line description of the responsibility |
|
|
110
|
+
| Requirements | 2.1, 2.3 |
|
|
111
|
+
| Owner / Reviewers | (optional) |
|
|
112
|
+
|
|
113
|
+
**Responsibilities & Constraints**
|
|
114
|
+
- Primary responsibility
|
|
115
|
+
- Domain boundary and transaction scope
|
|
116
|
+
- Data ownership / invariants
|
|
117
|
+
|
|
118
|
+
**Dependencies**
|
|
119
|
+
- Inbound: Component/service name — purpose (Criticality)
|
|
120
|
+
- Outbound: Component/service name — purpose (Criticality)
|
|
121
|
+
- External: Service/library — purpose (Criticality)
|
|
122
|
+
|
|
123
|
+
Summarize external dependency findings here; deeper investigation (API signatures, rate limits, migration notes) lives in `research.md`.
|
|
124
|
+
|
|
125
|
+
**Contracts**: Service [ ] / API [ ] / Event [ ] / Batch [ ] / State [ ] ← check only the ones that apply.
|
|
126
|
+
|
|
127
|
+
##### Service Interface
|
|
128
|
+
```typescript
|
|
129
|
+
interface [ComponentName]Service {
|
|
130
|
+
methodName(input: InputType): Result<OutputType, ErrorType>;
|
|
131
|
+
}
|
|
132
|
+
```
|
|
133
|
+
- Preconditions:
|
|
134
|
+
- Postconditions:
|
|
135
|
+
- Invariants:
|
|
136
|
+
|
|
137
|
+
##### API Contract
|
|
138
|
+
| Method | Endpoint | Request | Response | Errors |
|
|
139
|
+
|--------|----------|---------|----------|--------|
|
|
140
|
+
| POST | /api/resource | CreateRequest | Resource | 400, 409, 500 |
|
|
141
|
+
|
|
142
|
+
##### Event Contract
|
|
143
|
+
- Published events:
|
|
144
|
+
- Subscribed events:
|
|
145
|
+
- Ordering / delivery guarantees:
|
|
146
|
+
|
|
147
|
+
##### Batch / Job Contract
|
|
148
|
+
- Trigger:
|
|
149
|
+
- Input / validation:
|
|
150
|
+
- Output / destination:
|
|
151
|
+
- Idempotency & recovery:
|
|
152
|
+
|
|
153
|
+
##### State Management
|
|
154
|
+
- State model:
|
|
155
|
+
- Persistence & consistency:
|
|
156
|
+
- Concurrency strategy:
|
|
157
|
+
|
|
158
|
+
**Implementation Notes**
|
|
159
|
+
- Integration:
|
|
160
|
+
- Validation:
|
|
161
|
+
- Risks:
|
|
162
|
+
|
|
163
|
+
## Data Models
|
|
164
|
+
|
|
165
|
+
Focus on the portions of the data landscape that change with this feature.
|
|
166
|
+
|
|
167
|
+
### Domain Model
|
|
168
|
+
- Aggregates and transactional boundaries
|
|
169
|
+
- Entities, value objects, domain events
|
|
170
|
+
- Business rules & invariants
|
|
171
|
+
- Optional Mermaid diagram for complex relationships
|
|
172
|
+
|
|
173
|
+
### Logical Data Model
|
|
174
|
+
|
|
175
|
+
**Structure Definition**:
|
|
176
|
+
- Entity relationships and cardinality
|
|
177
|
+
- Attributes and their types
|
|
178
|
+
- Natural keys and identifiers
|
|
179
|
+
- Referential integrity rules
|
|
180
|
+
|
|
181
|
+
**Consistency & Integrity**:
|
|
182
|
+
- Transaction boundaries
|
|
183
|
+
- Cascading rules
|
|
184
|
+
- Temporal aspects (versioning, audit)
|
|
185
|
+
|
|
186
|
+
### Physical Data Model
|
|
187
|
+
**When to include**: When implementation requires specific storage design decisions
|
|
188
|
+
|
|
189
|
+
**For Relational Databases**:
|
|
190
|
+
- Table definitions with data types
|
|
191
|
+
- Primary/foreign keys and constraints
|
|
192
|
+
- Indexes and performance optimizations
|
|
193
|
+
- Partitioning strategy for scale
|
|
194
|
+
|
|
195
|
+
**For Document Stores**:
|
|
196
|
+
- Collection structures
|
|
197
|
+
- Embedding vs referencing decisions
|
|
198
|
+
- Sharding key design
|
|
199
|
+
- Index definitions
|
|
200
|
+
|
|
201
|
+
**For Event Stores**:
|
|
202
|
+
- Event schema definitions
|
|
203
|
+
- Stream aggregation strategies
|
|
204
|
+
- Snapshot policies
|
|
205
|
+
- Projection definitions
|
|
206
|
+
|
|
207
|
+
**For Key-Value/Wide-Column Stores**:
|
|
208
|
+
- Key design patterns
|
|
209
|
+
- Column families or value structures
|
|
210
|
+
- TTL and compaction strategies
|
|
211
|
+
|
|
212
|
+
### Data Contracts & Integration
|
|
213
|
+
|
|
214
|
+
**API Data Transfer**
|
|
215
|
+
- Request/response schemas
|
|
216
|
+
- Validation rules
|
|
217
|
+
- Serialization format (JSON, Protobuf, etc.)
|
|
218
|
+
|
|
219
|
+
**Event Schemas**
|
|
220
|
+
- Published event structures
|
|
221
|
+
- Schema versioning strategy
|
|
222
|
+
- Backward/forward compatibility rules
|
|
223
|
+
|
|
224
|
+
**Cross-Service Data Management**
|
|
225
|
+
- Distributed transaction patterns (Saga, 2PC)
|
|
226
|
+
- Data synchronization strategies
|
|
227
|
+
- Eventual consistency handling
|
|
228
|
+
|
|
229
|
+
Skip subsections that are not relevant to this feature.
|
|
230
|
+
|
|
231
|
+
## Error Handling
|
|
232
|
+
|
|
233
|
+
### Error Strategy
|
|
234
|
+
Concrete error handling patterns and recovery mechanisms for each error type.
|
|
235
|
+
|
|
236
|
+
### Error Categories and Responses
|
|
237
|
+
**User Errors** (4xx): Invalid input → field-level validation; Unauthorized → auth guidance; Not found → navigation help
|
|
238
|
+
**System Errors** (5xx): Infrastructure failures → graceful degradation; Timeouts → circuit breakers; Exhaustion → rate limiting
|
|
239
|
+
**Business Logic Errors** (422): Rule violations → condition explanations; State conflicts → transition guidance
|
|
240
|
+
|
|
241
|
+
**Process Flow Visualization** (when complex business logic exists):
|
|
242
|
+
Include Mermaid flowchart only for complex error scenarios with business workflows.
|
|
243
|
+
|
|
244
|
+
### Monitoring
|
|
245
|
+
Error tracking, logging, and health monitoring implementation.
|
|
246
|
+
|
|
247
|
+
## Testing Strategy
|
|
248
|
+
|
|
249
|
+
### Default sections (adapt names/sections to fit the domain)
|
|
250
|
+
- Unit Tests: 3–5 items from core functions/modules (e.g., auth methods, subscription logic)
|
|
251
|
+
- Integration Tests: 3–5 cross-component flows (e.g., webhook handling, notifications)
|
|
252
|
+
- E2E/UI Tests (if applicable): 3–5 critical user paths (e.g., forms, dashboards)
|
|
253
|
+
- Performance/Load (if applicable): 3–4 items (e.g., concurrency, high-volume ops)
|
|
254
|
+
|
|
255
|
+
## Optional Sections (include when relevant)
|
|
256
|
+
|
|
257
|
+
### Security Considerations
|
|
258
|
+
_Use this section for features handling auth, sensitive data, external integrations, or user permissions. Capture only decisions unique to this feature; defer baseline controls to steering docs._
|
|
259
|
+
- Threat modeling, security controls, compliance requirements
|
|
260
|
+
- Authentication and authorization patterns
|
|
261
|
+
- Data protection and privacy considerations
|
|
262
|
+
|
|
263
|
+
### Performance & Scalability
|
|
264
|
+
_Use this section when performance targets, high load, or scaling concerns exist. Record only feature-specific targets or trade-offs and rely on steering documents for general practices._
|
|
265
|
+
- Target metrics and measurement strategies
|
|
266
|
+
- Scaling approaches (horizontal/vertical)
|
|
267
|
+
- Caching strategies and optimization techniques
|
|
268
|
+
|
|
269
|
+
### Migration Strategy
|
|
270
|
+
Include a Mermaid flowchart showing migration phases when schema/data movement is required.
|
|
271
|
+
- Phase breakdown, rollback triggers, validation checkpoints
|
|
272
|
+
|
|
273
|
+
## Supporting References (Optional)
|
|
274
|
+
- Create this section only when keeping the information in the main body would hurt readability (e.g., very long TypeScript definitions, vendor option matrices, exhaustive schema tables). Keep decision-making context in the main sections so the design stays self-contained.
|
|
275
|
+
- Link to the supporting references from the main text instead of inlining large snippets.
|
|
276
|
+
- Background research notes and comparisons continue to live in `research.md`, but their conclusions must be summarized in the main design.
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
{
|
|
2
|
+
"feature_name": "{{FEATURE_NAME}}",
|
|
3
|
+
"created_at": "{{TIMESTAMP}}",
|
|
4
|
+
"updated_at": "{{TIMESTAMP}}",
|
|
5
|
+
"language": "en",
|
|
6
|
+
"phase": "initialized",
|
|
7
|
+
"approvals": {
|
|
8
|
+
"requirements": {
|
|
9
|
+
"generated": false,
|
|
10
|
+
"approved": false
|
|
11
|
+
},
|
|
12
|
+
"design": {
|
|
13
|
+
"generated": false,
|
|
14
|
+
"approved": false
|
|
15
|
+
},
|
|
16
|
+
"tasks": {
|
|
17
|
+
"generated": false,
|
|
18
|
+
"approved": false
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
"ready_for_implementation": false
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# Requirements Document
|
|
2
|
+
|
|
3
|
+
## Introduction
|
|
4
|
+
{{INTRODUCTION}}
|
|
5
|
+
|
|
6
|
+
## Requirements
|
|
7
|
+
|
|
8
|
+
### Requirement 1: {{REQUIREMENT_AREA_1}}
|
|
9
|
+
<!-- Requirement headings MUST include a leading numeric ID only (for example: "Requirement 1: ...", "1. Overview", "2 Feature: ..."). Alphabetic IDs like "Requirement A" are not allowed. -->
|
|
10
|
+
**Objective:** As a {{ROLE}}, I want {{CAPABILITY}}, so that {{BENEFIT}}
|
|
11
|
+
|
|
12
|
+
#### Acceptance Criteria
|
|
13
|
+
1. When [event], the [system] shall [response/action]
|
|
14
|
+
2. If [trigger], then the [system] shall [response/action]
|
|
15
|
+
3. While [precondition], the [system] shall [response/action]
|
|
16
|
+
4. Where [feature is included], the [system] shall [response/action]
|
|
17
|
+
5. The [system] shall [response/action]
|
|
18
|
+
|
|
19
|
+
### Requirement 2: {{REQUIREMENT_AREA_2}}
|
|
20
|
+
**Objective:** As a {{ROLE}}, I want {{CAPABILITY}}, so that {{BENEFIT}}
|
|
21
|
+
|
|
22
|
+
#### Acceptance Criteria
|
|
23
|
+
1. When [event], the [system] shall [response/action]
|
|
24
|
+
2. When [event] and [condition], the [system] shall [response/action]
|
|
25
|
+
|
|
26
|
+
<!-- Additional requirements follow the same pattern -->
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
# Research & Design Decisions Template
|
|
2
|
+
|
|
3
|
+
---
|
|
4
|
+
**Purpose**: Capture discovery findings, architectural investigations, and rationale that inform the technical design.
|
|
5
|
+
|
|
6
|
+
**Usage**:
|
|
7
|
+
- Log research activities and outcomes during the discovery phase.
|
|
8
|
+
- Document design decision trade-offs that are too detailed for `design.md`.
|
|
9
|
+
- Provide references and evidence for future audits or reuse.
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## Summary
|
|
13
|
+
- **Feature**: `<feature-name>`
|
|
14
|
+
- **Discovery Scope**: New Feature / Extension / Simple Addition / Complex Integration
|
|
15
|
+
- **Key Findings**:
|
|
16
|
+
- Finding 1
|
|
17
|
+
- Finding 2
|
|
18
|
+
- Finding 3
|
|
19
|
+
|
|
20
|
+
## Research Log
|
|
21
|
+
Document notable investigation steps and their outcomes. Group entries by topic for readability.
|
|
22
|
+
|
|
23
|
+
### [Topic or Question]
|
|
24
|
+
- **Context**: What triggered this investigation?
|
|
25
|
+
- **Sources Consulted**: Links, documentation, API references, benchmarks
|
|
26
|
+
- **Findings**: Concise bullet points summarizing the insights
|
|
27
|
+
- **Implications**: How this affects architecture, contracts, or implementation
|
|
28
|
+
|
|
29
|
+
_Repeat the subsection for each major topic._
|
|
30
|
+
|
|
31
|
+
## Architecture Pattern Evaluation
|
|
32
|
+
List candidate patterns or approaches that were considered. Use the table format where helpful.
|
|
33
|
+
|
|
34
|
+
| Option | Description | Strengths | Risks / Limitations | Notes |
|
|
35
|
+
|--------|-------------|-----------|---------------------|-------|
|
|
36
|
+
| Hexagonal | Ports & adapters abstraction around core domain | Clear boundaries, testable core | Requires adapter layer build-out | Aligns with existing steering principle X |
|
|
37
|
+
|
|
38
|
+
## Design Decisions
|
|
39
|
+
Record major decisions that influence `design.md`. Focus on choices with significant trade-offs.
|
|
40
|
+
|
|
41
|
+
### Decision: `<Title>`
|
|
42
|
+
- **Context**: Problem or requirement driving the decision
|
|
43
|
+
- **Alternatives Considered**:
|
|
44
|
+
1. Option A — short description
|
|
45
|
+
2. Option B — short description
|
|
46
|
+
- **Selected Approach**: What was chosen and how it works
|
|
47
|
+
- **Rationale**: Why this approach fits the current project context
|
|
48
|
+
- **Trade-offs**: Benefits vs. compromises
|
|
49
|
+
- **Follow-up**: Items to verify during implementation or testing
|
|
50
|
+
|
|
51
|
+
_Repeat the subsection for each decision._
|
|
52
|
+
|
|
53
|
+
## Risks & Mitigations
|
|
54
|
+
- Risk 1 — Proposed mitigation
|
|
55
|
+
- Risk 2 — Proposed mitigation
|
|
56
|
+
- Risk 3 — Proposed mitigation
|
|
57
|
+
|
|
58
|
+
## References
|
|
59
|
+
Provide canonical links and citations (official docs, standards, ADRs, internal guidelines).
|
|
60
|
+
- [Title](https://example.com) — brief note on relevance
|
|
61
|
+
- ...
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# Implementation Plan
|
|
2
|
+
|
|
3
|
+
## Task Format Template
|
|
4
|
+
|
|
5
|
+
Use whichever pattern fits the work breakdown:
|
|
6
|
+
|
|
7
|
+
### Major task only
|
|
8
|
+
- [ ] {{NUMBER}}. {{TASK_DESCRIPTION}}{{PARALLEL_MARK}}
|
|
9
|
+
- {{DETAIL_ITEM_1}} *(Include details only when needed. If the task stands alone, omit bullet items.)*
|
|
10
|
+
- _Requirements: {{REQUIREMENT_IDS}}_
|
|
11
|
+
|
|
12
|
+
### Major + Sub-task structure
|
|
13
|
+
- [ ] {{MAJOR_NUMBER}}. {{MAJOR_TASK_SUMMARY}}
|
|
14
|
+
- [ ] {{MAJOR_NUMBER}}.{{SUB_NUMBER}} {{SUB_TASK_DESCRIPTION}}{{SUB_PARALLEL_MARK}}
|
|
15
|
+
- {{DETAIL_ITEM_1}}
|
|
16
|
+
- {{DETAIL_ITEM_2}}
|
|
17
|
+
- _Requirements: {{REQUIREMENT_IDS}}_ *(IDs only; do not add descriptions or parentheses.)*
|
|
18
|
+
|
|
19
|
+
> **Parallel marker**: Append ` (P)` only to tasks that can be executed in parallel. Omit the marker when running in `--sequential` mode.
|
|
20
|
+
>
|
|
21
|
+
> **Optional test coverage**: When a sub-task is deferrable test work tied to acceptance criteria, mark the checkbox as `- [ ]*` and explain the referenced requirements in the detail bullets.
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# Product Overview
|
|
2
|
+
|
|
3
|
+
[Brief description of what this product does and who it serves]
|
|
4
|
+
|
|
5
|
+
## Core Capabilities
|
|
6
|
+
|
|
7
|
+
[3-5 key capabilities, not exhaustive features]
|
|
8
|
+
|
|
9
|
+
## Target Use Cases
|
|
10
|
+
|
|
11
|
+
[Primary scenarios this product addresses]
|
|
12
|
+
|
|
13
|
+
## Value Proposition
|
|
14
|
+
|
|
15
|
+
[What makes this product unique or valuable]
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
_Focus on patterns and purpose, not exhaustive feature lists_
|