create-sdd-project 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +204 -0
- package/bin/cli.js +44 -0
- package/lib/config.js +106 -0
- package/lib/generator.js +313 -0
- package/lib/wizard.js +224 -0
- package/package.json +41 -0
- package/template/.claude/agents/backend-developer.md +60 -0
- package/template/.claude/agents/backend-planner.md +65 -0
- package/template/.claude/agents/code-review-specialist.md +65 -0
- package/template/.claude/agents/database-architect.md +68 -0
- package/template/.claude/agents/frontend-developer.md +68 -0
- package/template/.claude/agents/frontend-planner.md +65 -0
- package/template/.claude/agents/production-code-validator.md +102 -0
- package/template/.claude/agents/qa-engineer.md +70 -0
- package/template/.claude/agents/spec-creator.md +72 -0
- package/template/.claude/commands/.gitkeep +0 -0
- package/template/.claude/hooks/quick-scan.sh +111 -0
- package/template/.claude/settings.json +29 -0
- package/template/.claude/skills/bug-workflow/SKILL.md +108 -0
- package/template/.claude/skills/development-workflow/SKILL.md +194 -0
- package/template/.claude/skills/development-workflow/references/branching-strategy.md +59 -0
- package/template/.claude/skills/development-workflow/references/complexity-guide.md +89 -0
- package/template/.claude/skills/development-workflow/references/failure-handling.md +174 -0
- package/template/.claude/skills/development-workflow/references/pr-template.md +80 -0
- package/template/.claude/skills/development-workflow/references/sprint-init-template.md +82 -0
- package/template/.claude/skills/development-workflow/references/ticket-template.md +71 -0
- package/template/.claude/skills/development-workflow/references/workflow-example.md +87 -0
- package/template/.claude/skills/project-memory/SKILL.md +152 -0
- package/template/.claude/skills/project-memory/references/bugs_template.md +41 -0
- package/template/.claude/skills/project-memory/references/decisions_template.md +67 -0
- package/template/.claude/skills/project-memory/references/key_facts_template.md +81 -0
- package/template/.env.example +17 -0
- package/template/.gemini/agents/backend-developer.md +31 -0
- package/template/.gemini/agents/backend-planner.md +34 -0
- package/template/.gemini/agents/code-review-specialist.md +44 -0
- package/template/.gemini/agents/database-architect.md +35 -0
- package/template/.gemini/agents/frontend-developer.md +31 -0
- package/template/.gemini/agents/frontend-planner.md +34 -0
- package/template/.gemini/agents/production-code-validator.md +32 -0
- package/template/.gemini/agents/qa-engineer.md +23 -0
- package/template/.gemini/agents/spec-creator.md +24 -0
- package/template/.gemini/settings.json +5 -0
- package/template/.gemini/styles/default.md +19 -0
- package/template/AGENTS.md +67 -0
- package/template/CLAUDE.md +19 -0
- package/template/GEMINI.md +10 -0
- package/template/ai-specs/specs/backend-standards.mdc +214 -0
- package/template/ai-specs/specs/base-standards.mdc +157 -0
- package/template/ai-specs/specs/documentation-standards.mdc +68 -0
- package/template/ai-specs/specs/frontend-standards.mdc +226 -0
- package/template/docs/project_notes/bugs.md +18 -0
- package/template/docs/project_notes/decisions.md +18 -0
- package/template/docs/project_notes/key_facts.md +52 -0
- package/template/docs/project_notes/pending-improvements.md +50 -0
- package/template/docs/project_notes/sprint-0-tracker.md +66 -0
- package/template/docs/specs/api-spec.yaml +114 -0
- package/template/docs/specs/ui-components.md +77 -0
- package/template/docs/tickets/.gitkeep +0 -0
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: development-workflow
|
|
3
|
+
description: "Orchestrates the complete development workflow for each task. Invoke with: 'start task B0.1', 'show sprint progress', 'next task', or 'init sprint N'."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Development Workflow Skill
|
|
7
|
+
|
|
8
|
+
## Quick Reference
|
|
9
|
+
|
|
10
|
+
0. **Spec** — `spec-creator` drafts/updates specs → SPEC APPROVAL (Std/Cplx)
|
|
11
|
+
1. **Setup** — Branch, ticket, sprint tracker → TICKET APPROVAL (Std/Cplx)
|
|
12
|
+
2. **Plan** — Planner agent writes implementation plan → PLAN APPROVAL (Std/Cplx)
|
|
13
|
+
3. **Implement** — Developer agent, TDD, real-time spec sync
|
|
14
|
+
4. **Finalize** — Tests/lint/build, `production-code-validator` → COMMIT APPROVAL
|
|
15
|
+
5. **Review** — PR, `code-review-specialist`, `qa-engineer` (Std/Cplx) → MERGE APPROVAL
|
|
16
|
+
6. **Complete** — Clean up, update tracker
|
|
17
|
+
|
|
18
|
+
**Step flow:** Simple: 1→3→4→5→6 | Standard: 0→1→2→3→4→5(+QA)→6 | Complex: 0→1(+ADR)→2→3→4→5(+QA)→6
|
|
19
|
+
|
|
20
|
+
## Commands
|
|
21
|
+
|
|
22
|
+
- `start task B0.1` — Begin working on a specific task
|
|
23
|
+
- `next task` — Start the next pending task in current sprint
|
|
24
|
+
- `show sprint progress` — View sprint completion status
|
|
25
|
+
- `init sprint N` — Initialize a new sprint tracker
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## On Skill Start
|
|
30
|
+
|
|
31
|
+
1. Read the sprint tracker (`docs/project_notes/sprint-X-tracker.md`) → **Active Session** section for context recovery
|
|
32
|
+
2. Read `CLAUDE.md` section 2 → **Autonomy Level**
|
|
33
|
+
3. Read `docs/project_notes/key_facts.md` → **Branching Strategy**
|
|
34
|
+
4. If resuming an active task → continue from the step recorded in the tracker's Active Session
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## Autonomy & Checkpoints
|
|
39
|
+
|
|
40
|
+
Read the **Autonomy Level** from `CLAUDE.md` section 2.
|
|
41
|
+
|
|
42
|
+
| Checkpoint | L1 Full Control | L2 Trusted | L3 Autopilot | L4 Full Auto |
|
|
43
|
+
|------------|:-:|:-:|:-:|:-:|
|
|
44
|
+
| Spec Approval (Step 0) | Required | Auto | Auto | Auto |
|
|
45
|
+
| Ticket Approval (Step 1) | Required | Auto | Auto | Auto |
|
|
46
|
+
| Plan Approval (Step 2) | Required | Required | Auto | Auto |
|
|
47
|
+
| Commit Approval (Step 4) | Required | Auto | Auto | Auto |
|
|
48
|
+
| Merge Approval (Step 5) | Required | Required | Required | Auto |
|
|
49
|
+
|
|
50
|
+
- **Auto** = proceed without asking; log in sprint tracker → "Auto-Approved Decisions" table
|
|
51
|
+
- **Required** = ask user explicitly; do NOT continue without approval
|
|
52
|
+
- **Quality gates always run** regardless of level (tests, lint, build, validators)
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## Task Complexity
|
|
57
|
+
|
|
58
|
+
Ask user to classify complexity before starting. See `references/complexity-guide.md`.
|
|
59
|
+
|
|
60
|
+
| Tier | Spec | Ticket | Plan | QA |
|
|
61
|
+
|------|:----:|:------:|:----:|:--:|
|
|
62
|
+
| Simple | Skip | Skip | Skip | Skip |
|
|
63
|
+
| Standard | Yes | Yes | Yes | Yes |
|
|
64
|
+
| Complex | Yes | Yes + ADR | Yes | Yes |
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
## Step 0: Spec (Standard/Complex only)
|
|
69
|
+
|
|
70
|
+
1. Use Task tool with `spec-creator` agent
|
|
71
|
+
2. Agent updates global spec files (`api-spec.yaml`, `ui-components.md`) and Zod schemas in `shared/src/schemas/` if applicable
|
|
72
|
+
3. Agent writes spec summary into the ticket's `## Spec` section
|
|
73
|
+
|
|
74
|
+
**→ CHECKPOINT: Spec Approval** — Update tracker: step `0/6 (Spec)`
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
## Step 1: Setup
|
|
79
|
+
|
|
80
|
+
**Determine base branch** from `key_facts.md` → `branching-strategy`:
|
|
81
|
+
- **github-flow** → base from `main`
|
|
82
|
+
- **gitflow** → base from `develop`
|
|
83
|
+
|
|
84
|
+
See `references/branching-strategy.md` for details.
|
|
85
|
+
|
|
86
|
+
1. Verify sprint tracker exists, no active task, dependencies met
|
|
87
|
+
2. Create feature branch: `feature/sprint<N>-<task-id>-<short-description>`
|
|
88
|
+
3. **Std/Cplx:** Generate ticket from `references/ticket-template.md` → fill `## Spec` section
|
|
89
|
+
4. **Complex:** Also review `decisions.md` for related ADRs
|
|
90
|
+
5. Update sprint tracker → Active Session: task, step `1/6 (Setup)`, branch, complexity
|
|
91
|
+
|
|
92
|
+
**→ CHECKPOINT: Ticket Approval** (Std/Cplx only — Simple skips to Step 3)
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
## Step 2: Plan (Standard/Complex only)
|
|
97
|
+
|
|
98
|
+
1. Use Task tool with planner agent (`backend-planner` for B*.*, `frontend-planner` for F*.*)
|
|
99
|
+
2. Agent writes Implementation Plan into ticket's `## Implementation Plan`
|
|
100
|
+
3. Update tracker: step `2/6 (Plan)`
|
|
101
|
+
|
|
102
|
+
**→ CHECKPOINT: Plan Approval**
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
## Step 3: Implement
|
|
107
|
+
|
|
108
|
+
**Simple:** Implement directly with TDD. **Std/Cplx:** Use developer agent (`backend-developer` / `frontend-developer`).
|
|
109
|
+
|
|
110
|
+
**TDD Cycle:** Failing test → Minimum code to pass → Refactor → Repeat
|
|
111
|
+
|
|
112
|
+
**Update specs IN REAL TIME (do not wait until Finalize):**
|
|
113
|
+
- API endpoints → `docs/specs/api-spec.yaml` (MANDATORY)
|
|
114
|
+
- DB schema → Zod schemas in `shared/src/schemas/` (MANDATORY)
|
|
115
|
+
- UI components → `docs/specs/ui-components.md` (MANDATORY)
|
|
116
|
+
- Env variables → `.env.example` | ADRs → `decisions.md`
|
|
117
|
+
|
|
118
|
+
**Spec deviation** → document in sprint tracker Active Session and ask for approval.
|
|
119
|
+
|
|
120
|
+
Update tracker: step `3/6 (Implement)`, context summary.
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
124
|
+
## Step 4: Finalize
|
|
125
|
+
|
|
126
|
+
1. Run quality gates: `npm test` → `npm run lint` → `npm run build`
|
|
127
|
+
2. **Std/Cplx:** Run `production-code-validator` via Task tool — **do NOT skip**
|
|
128
|
+
3. Update ticket: mark acceptance criteria `[x]`, Definition of Done `[x]`
|
|
129
|
+
4. Provide change summary: files created/modified, key review points
|
|
130
|
+
|
|
131
|
+
**→ CHECKPOINT: Commit Approval**
|
|
132
|
+
|
|
133
|
+
**Commit format:** `<type>(<scope>): <description>` + `Co-Authored-By: Claude <noreply@anthropic.com>`
|
|
134
|
+
|
|
135
|
+
Update tracker: step `4/6 (Finalize)`
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
## Step 5: Review
|
|
140
|
+
|
|
141
|
+
**Target branch** from `key_facts.md` → same as base branch (Step 1).
|
|
142
|
+
|
|
143
|
+
1. Push branch, create PR (use `references/pr-template.md`)
|
|
144
|
+
2. **Std/Cplx:** Run `code-review-specialist` via Task tool — **do NOT skip**
|
|
145
|
+
3. **Std/Cplx:** Also run `qa-engineer` via Task tool
|
|
146
|
+
4. **Merge:** Features/bugfixes → squash; Releases/hotfixes → merge commit
|
|
147
|
+
|
|
148
|
+
**→ CHECKPOINT: Merge Approval**
|
|
149
|
+
|
|
150
|
+
Update tracker: step `5/6 (Review)`
|
|
151
|
+
|
|
152
|
+
---
|
|
153
|
+
|
|
154
|
+
## Step 6: Complete
|
|
155
|
+
|
|
156
|
+
1. Delete feature branch (local + remote)
|
|
157
|
+
2. Update sprint tracker: task → Completed, add to Completion Log, update progress %
|
|
158
|
+
3. Record bugs in `bugs.md`, decisions in `decisions.md`
|
|
159
|
+
4. Clear Active Session → "No active work"
|
|
160
|
+
|
|
161
|
+
---
|
|
162
|
+
|
|
163
|
+
## Agents
|
|
164
|
+
|
|
165
|
+
| Agent | Step | Scope |
|
|
166
|
+
|-------|------|-------|
|
|
167
|
+
| `spec-creator` | 0 | Draft/update specs |
|
|
168
|
+
| `backend-planner` / `frontend-planner` | 2 | Implementation plan |
|
|
169
|
+
| `backend-developer` / `frontend-developer` | 3 | TDD implementation |
|
|
170
|
+
| `production-code-validator` | 4 | Pre-commit validation |
|
|
171
|
+
| `code-review-specialist` | 5 | Pre-merge review |
|
|
172
|
+
| `qa-engineer` | 5 | Edge cases, spec verification (Std/Cplx) |
|
|
173
|
+
| `database-architect` | Any | Schema, migrations, queries |
|
|
174
|
+
|
|
175
|
+
## References
|
|
176
|
+
|
|
177
|
+
- `references/ticket-template.md` — Ticket format
|
|
178
|
+
- `references/pr-template.md` — PR template
|
|
179
|
+
- `references/branching-strategy.md` — Branching guide
|
|
180
|
+
- `references/sprint-init-template.md` — New sprint initialization
|
|
181
|
+
- `references/complexity-guide.md` — Complexity classification
|
|
182
|
+
- `references/workflow-example.md` — Full worked example
|
|
183
|
+
- `references/failure-handling.md` — Recovery & rollbacks
|
|
184
|
+
|
|
185
|
+
## Constraints
|
|
186
|
+
|
|
187
|
+
- **One task at a time** — never start a new task before completing current
|
|
188
|
+
- **TDD mandatory** — all code needs tests
|
|
189
|
+
- **Type safety** — fully typed, no `any`
|
|
190
|
+
- **English only** — all technical artifacts
|
|
191
|
+
- **Memory first** — check `project_notes/` before changes
|
|
192
|
+
- **Sprint tracker** — keep Active Session updated at every step
|
|
193
|
+
- **Correct agents** — Backend → `backend-planner` + `backend-developer`, Frontend → `frontend-planner` + `frontend-developer`
|
|
194
|
+
- **Correct base branch** — check `key_facts.md` before creating branches
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
# Branching Strategy — Extended Guide
|
|
2
|
+
|
|
3
|
+
For branch tables and merge strategy, see `base-standards.mdc` § Git Conventions.
|
|
4
|
+
|
|
5
|
+
## Visual Flows
|
|
6
|
+
|
|
7
|
+
### GitHub Flow
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
main ────●────●────●────●────●──── (always deployable)
|
|
11
|
+
\ / \ /
|
|
12
|
+
\/ \/
|
|
13
|
+
feature/ feature/
|
|
14
|
+
B1.1 B1.2
|
|
15
|
+
tag: v0.1.0
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
### GitFlow
|
|
19
|
+
|
|
20
|
+
```
|
|
21
|
+
main ─────●──────────────────●──── (releases only)
|
|
22
|
+
\ /
|
|
23
|
+
develop ────●──●──●──●──●──●───── (integration)
|
|
24
|
+
\ / \ /
|
|
25
|
+
\/ \/
|
|
26
|
+
feature feature
|
|
27
|
+
\
|
|
28
|
+
release/v1.0
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Decision Guide
|
|
32
|
+
|
|
33
|
+
| Question | GitHub Flow | GitFlow |
|
|
34
|
+
|----------|:-----------:|:-------:|
|
|
35
|
+
| Solo dev or small team? | Yes | |
|
|
36
|
+
| MVP / early stage? | Yes | |
|
|
37
|
+
| Continuous deployment? | Yes | |
|
|
38
|
+
| Multiple devs in parallel? | | Yes |
|
|
39
|
+
| Formal release cycles? | | Yes |
|
|
40
|
+
| Staging + QA environment? | | Yes |
|
|
41
|
+
|
|
42
|
+
**Start with GitHub Flow. Switch to GitFlow when you need a `develop` branch.**
|
|
43
|
+
|
|
44
|
+
## Migrating GitHub Flow → GitFlow
|
|
45
|
+
|
|
46
|
+
1. Update `key_facts.md`: `branching-strategy: gitflow`
|
|
47
|
+
2. Create develop: `git checkout main && git pull && git checkout -b develop && git push -u origin develop`
|
|
48
|
+
3. Set develop as default branch in GitHub settings
|
|
49
|
+
4. Protect both `main` and `develop`
|
|
50
|
+
5. All new feature branches base from `develop`
|
|
51
|
+
|
|
52
|
+
## Tag Convention
|
|
53
|
+
|
|
54
|
+
`vMAJOR.MINOR.PATCH` — Breaking=MAJOR, Feature=MINOR, Fix=PATCH, Pre-release=`-beta.1`
|
|
55
|
+
|
|
56
|
+
## Branch Protection (Recommended)
|
|
57
|
+
|
|
58
|
+
- **GitHub Flow** — `main`: require PR, require status checks (tests/lint/build), require 1 approval
|
|
59
|
+
- **GitFlow** — `main`: same + no direct push. `develop`: require PR + status checks
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
# Task Complexity Guide
|
|
2
|
+
|
|
3
|
+
## How to Ask About Complexity
|
|
4
|
+
|
|
5
|
+
Before starting any task, ask the user to classify its complexity using **context-aware options**:
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
"What complexity level for [TASK-ID] ([Task Name])?"
|
|
9
|
+
|
|
10
|
+
1. Simple (Recommended if applicable)
|
|
11
|
+
[Specific description of what "simple" means for THIS task]
|
|
12
|
+
|
|
13
|
+
2. Standard
|
|
14
|
+
[Specific description of what "standard" means for THIS task]
|
|
15
|
+
|
|
16
|
+
3. Complex / Skip / Alternative
|
|
17
|
+
[Context-aware third option]
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Examples
|
|
21
|
+
|
|
22
|
+
**Example 1 - Task might be already done:**
|
|
23
|
+
```
|
|
24
|
+
What complexity level for B1.5 (Implement refresh token rotation)?
|
|
25
|
+
|
|
26
|
+
1. Simple (Recommended)
|
|
27
|
+
Verify existing implementation in B1.3, add tests if missing
|
|
28
|
+
|
|
29
|
+
2. Standard
|
|
30
|
+
Add additional rotation logic or edge cases
|
|
31
|
+
|
|
32
|
+
3. Skip B1.5
|
|
33
|
+
Already done in B1.3, move to B1.6 (auth controller)
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
**Example 2 - Standard new feature:**
|
|
37
|
+
```
|
|
38
|
+
What complexity level for B1.4 (Create auth middleware)?
|
|
39
|
+
|
|
40
|
+
1. Simple
|
|
41
|
+
Straightforward middleware, minimal logic
|
|
42
|
+
|
|
43
|
+
2. Standard (Recommended)
|
|
44
|
+
JWT verification, role checking, error handling
|
|
45
|
+
|
|
46
|
+
3. Complex
|
|
47
|
+
Multiple middleware types, extensive edge cases
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## Discussion Option
|
|
51
|
+
|
|
52
|
+
The user always has the option to **discuss the task** instead of selecting a complexity level:
|
|
53
|
+
|
|
54
|
+
- Clarifying doubts about what the task involves
|
|
55
|
+
- Discussing if a task should be split or combined
|
|
56
|
+
- Exploring alternative approaches
|
|
57
|
+
- Understanding dependencies better
|
|
58
|
+
|
|
59
|
+
When presenting complexity options, remind the user they can select "Chat about this" or type a custom response.
|
|
60
|
+
|
|
61
|
+
## Why Context-Aware Options?
|
|
62
|
+
|
|
63
|
+
- Helps user understand what each level means **for this specific task**
|
|
64
|
+
- Allows suggesting "Skip" when a task might be redundant
|
|
65
|
+
- Provides recommendations based on task analysis
|
|
66
|
+
- Enables discussion via "Chat about this" option
|
|
67
|
+
|
|
68
|
+
## Interaction with Autonomy Level
|
|
69
|
+
|
|
70
|
+
Complexity and Autonomy Level combine to determine the effective workflow overhead:
|
|
71
|
+
|
|
72
|
+
| Combination | Effect |
|
|
73
|
+
|-------------|--------|
|
|
74
|
+
| Simple + Any Level | Minimal overhead (branch → TDD → commit → PR) |
|
|
75
|
+
| Standard + L1 | Maximum oversight (5 checkpoints) |
|
|
76
|
+
| Standard + L2 | Balanced (Plan + Merge checkpoints only) |
|
|
77
|
+
| Standard + L3-4 | Fast execution, quality gates + QA still enforced |
|
|
78
|
+
| Complex + L1 | Full ceremony (all checkpoints + QA + ADR) |
|
|
79
|
+
| Complex + L3-4 | Fast but with QA engineer + ADR |
|
|
80
|
+
|
|
81
|
+
**Note:** The user can override the autonomy level per-task. E.g., "use level 1 for this task" forces all checkpoints regardless of the project-level setting.
|
|
82
|
+
|
|
83
|
+
## Generic Fallback (only if no context available)
|
|
84
|
+
|
|
85
|
+
```
|
|
86
|
+
- Simple (install library, basic config, copy template)
|
|
87
|
+
- Standard (new endpoint, component, small feature)
|
|
88
|
+
- Complex (complete feature, significant refactor, external integration)
|
|
89
|
+
```
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
# Failure Handling & Rollback Guide
|
|
2
|
+
|
|
3
|
+
## Types of Failures
|
|
4
|
+
|
|
5
|
+
| Failure Type | When It Happens | Severity |
|
|
6
|
+
|--------------|-----------------|----------|
|
|
7
|
+
| Test Failure | Tests don't pass | Medium |
|
|
8
|
+
| Validation Failure | production-code-validator finds issues | Medium |
|
|
9
|
+
| Build Failure | Code doesn't compile | High |
|
|
10
|
+
| Dependency Block | Waiting on another task | Low |
|
|
11
|
+
| External Block | Waiting on external resource | Medium |
|
|
12
|
+
| Critical Bug | Discovered during development | High |
|
|
13
|
+
| Scope Creep | Task is bigger than expected | Medium |
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## Failure Recovery Procedures
|
|
18
|
+
|
|
19
|
+
### Test Failure
|
|
20
|
+
|
|
21
|
+
**Recovery:**
|
|
22
|
+
1. **Identify** failing tests
|
|
23
|
+
2. **Analyze** root cause
|
|
24
|
+
3. **Fix** the code (not the test, unless test is wrong)
|
|
25
|
+
4. **Re-run** all tests
|
|
26
|
+
5. **Continue** workflow
|
|
27
|
+
|
|
28
|
+
**Do NOT:**
|
|
29
|
+
- Skip failing tests
|
|
30
|
+
- Delete tests to make them pass
|
|
31
|
+
- Disable tests temporarily
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
### Validation Failure (production-code-validator)
|
|
36
|
+
|
|
37
|
+
**Recovery:**
|
|
38
|
+
1. **Review** all issues reported
|
|
39
|
+
2. **Prioritize** by severity (CRITICAL first)
|
|
40
|
+
3. **Fix** each issue
|
|
41
|
+
4. **Re-run** validator
|
|
42
|
+
5. **Continue** only when clean
|
|
43
|
+
|
|
44
|
+
**Common Fixes:**
|
|
45
|
+
|
|
46
|
+
| Issue | Fix |
|
|
47
|
+
|-------|-----|
|
|
48
|
+
| console.log | Remove or use proper logger |
|
|
49
|
+
| TODO/FIXME | Complete the task or create new ticket |
|
|
50
|
+
| Hardcoded URL | Use environment variable |
|
|
51
|
+
| Hardcoded secret | Use secrets manager |
|
|
52
|
+
| Empty catch block | Add proper error handling |
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
### Build/Compile Failure
|
|
57
|
+
|
|
58
|
+
**Recovery:**
|
|
59
|
+
1. **Read** error messages carefully
|
|
60
|
+
2. **Fix** type errors first
|
|
61
|
+
3. **Check** imports and paths
|
|
62
|
+
4. **Rebuild** incrementally
|
|
63
|
+
5. **Run** tests after fix
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
### Dependency Block
|
|
68
|
+
|
|
69
|
+
**Recovery:**
|
|
70
|
+
1. **Identify** the blocking task/resource
|
|
71
|
+
2. **Document** the block in sprint tracker "Active Task" section
|
|
72
|
+
3. **Options:**
|
|
73
|
+
- Wait for blocker to resolve
|
|
74
|
+
- Switch to different task
|
|
75
|
+
- Create mock/stub to continue
|
|
76
|
+
|
|
77
|
+
**Update sprint tracker:**
|
|
78
|
+
- Change task status to Blocked
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
### Critical Bug Discovered
|
|
83
|
+
|
|
84
|
+
**Recovery:**
|
|
85
|
+
1. **Document** the bug immediately
|
|
86
|
+
2. **Assess** impact and priority
|
|
87
|
+
3. **Decide:**
|
|
88
|
+
- Fix now (if blocking current task)
|
|
89
|
+
- Create ticket for later (if not blocking)
|
|
90
|
+
4. **If fixing:** Complete fix before continuing task
|
|
91
|
+
|
|
92
|
+
**Update bugs.md** with the new bug entry.
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
### Scope Creep
|
|
97
|
+
|
|
98
|
+
**Recovery:**
|
|
99
|
+
1. **Stop** expanding scope
|
|
100
|
+
2. **Document** what was discovered
|
|
101
|
+
3. **Options:**
|
|
102
|
+
- Complete minimal viable task
|
|
103
|
+
- Split into multiple tasks
|
|
104
|
+
- Discuss with team
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
## Rollback Procedures
|
|
109
|
+
|
|
110
|
+
### When to Rollback
|
|
111
|
+
|
|
112
|
+
- Breaking changes merged to main
|
|
113
|
+
- Critical bug in production
|
|
114
|
+
- Failed deployment
|
|
115
|
+
- Data corruption
|
|
116
|
+
|
|
117
|
+
### Git Rollback
|
|
118
|
+
|
|
119
|
+
**Undo last commit (not pushed):**
|
|
120
|
+
```bash
|
|
121
|
+
git reset --soft HEAD~1 # Keep changes staged
|
|
122
|
+
git reset --hard HEAD~1 # Discard changes
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
**Revert pushed commit:**
|
|
126
|
+
```bash
|
|
127
|
+
git revert <commit-hash>
|
|
128
|
+
git push
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
### Database Rollback
|
|
132
|
+
|
|
133
|
+
<!-- CONFIG: Adjust for your ORM -->
|
|
134
|
+
```bash
|
|
135
|
+
npx prisma migrate reset # Reset to initial state
|
|
136
|
+
npx prisma migrate deploy # Reapply migrations
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
---
|
|
140
|
+
|
|
141
|
+
## Status Codes Reference
|
|
142
|
+
|
|
143
|
+
| Status | Meaning | Action |
|
|
144
|
+
|--------|---------|--------|
|
|
145
|
+
| In Progress | Normal work | Continue |
|
|
146
|
+
| Paused | Temporarily stopped | Can resume |
|
|
147
|
+
| Blocked | Waiting on dependency | Resolve block |
|
|
148
|
+
| Failed | Critical failure | Rollback/fix |
|
|
149
|
+
| Abandoned | No longer needed | Clean up |
|
|
150
|
+
| Completed | Successfully done | Next task |
|
|
151
|
+
|
|
152
|
+
---
|
|
153
|
+
|
|
154
|
+
## Prevention Strategies
|
|
155
|
+
|
|
156
|
+
### Avoid Test Failures
|
|
157
|
+
- Write tests first (TDD)
|
|
158
|
+
- Run tests frequently
|
|
159
|
+
- Use watch mode during development
|
|
160
|
+
|
|
161
|
+
### Avoid Validation Failures
|
|
162
|
+
- Use linter during development
|
|
163
|
+
- Check code before commit
|
|
164
|
+
- Follow code standards from start
|
|
165
|
+
|
|
166
|
+
### Avoid Blocks
|
|
167
|
+
- Check dependencies before starting
|
|
168
|
+
- Communicate with team early
|
|
169
|
+
- Use mocks when possible
|
|
170
|
+
|
|
171
|
+
### Avoid Scope Creep
|
|
172
|
+
- Understand requirements fully before starting
|
|
173
|
+
- Ask questions early
|
|
174
|
+
- Timebox exploration
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
# Pull Request Template
|
|
2
|
+
|
|
3
|
+
## Target Branch
|
|
4
|
+
|
|
5
|
+
Read `key_facts.md` → `branching-strategy`:
|
|
6
|
+
- **github-flow** → `--base main`
|
|
7
|
+
- **gitflow** → `--base develop` (features/bugfixes), `--base main` (releases/hotfixes)
|
|
8
|
+
|
|
9
|
+
## Create PR
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
gh pr create --base main --title "<type>(<scope>): <description>" --body "$(cat <<'EOF'
|
|
13
|
+
## Summary
|
|
14
|
+
|
|
15
|
+
[One paragraph: what this PR does and why]
|
|
16
|
+
|
|
17
|
+
## Task Reference
|
|
18
|
+
|
|
19
|
+
- **Task:** [B0.1] | **Sprint:** [0]
|
|
20
|
+
- **Ticket:** [docs/tickets/task-id.md]
|
|
21
|
+
|
|
22
|
+
## Changes
|
|
23
|
+
|
|
24
|
+
- [Change 1]
|
|
25
|
+
- [Change 2]
|
|
26
|
+
|
|
27
|
+
## Testing
|
|
28
|
+
|
|
29
|
+
- [x] Unit tests passing
|
|
30
|
+
- [x] Integration tests passing (if applicable)
|
|
31
|
+
- [x] Validated with production-code-validator
|
|
32
|
+
|
|
33
|
+
## Checklist
|
|
34
|
+
|
|
35
|
+
- [ ] Code follows project standards
|
|
36
|
+
- [ ] No console.log or debug statements
|
|
37
|
+
- [ ] No hardcoded values
|
|
38
|
+
- [ ] Types are complete (no `any`)
|
|
39
|
+
- [ ] Specs updated (api-spec.yaml / ui-components.md / shared schemas)
|
|
40
|
+
- [ ] Documentation updated (if applicable)
|
|
41
|
+
|
|
42
|
+
## Related Issues
|
|
43
|
+
|
|
44
|
+
Closes #issue_number (if applicable)
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
Generated with Claude Code
|
|
48
|
+
EOF
|
|
49
|
+
)"
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## Merge Strategy
|
|
53
|
+
|
|
54
|
+
| Branch type | Strategy | Command |
|
|
55
|
+
|-------------|----------|---------|
|
|
56
|
+
| Features / Bugfixes | Squash and merge | `gh pr merge --squash` |
|
|
57
|
+
| Releases / Hotfixes | Merge commit | `gh pr merge --merge` |
|
|
58
|
+
|
|
59
|
+
## After Merge
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
# Delete branch and return to base
|
|
63
|
+
gh pr close --delete-branch
|
|
64
|
+
# github-flow → git checkout main && git pull
|
|
65
|
+
# gitflow → git checkout develop && git pull
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
## Commit Types
|
|
69
|
+
|
|
70
|
+
feat, fix, docs, style, refactor, test, chore
|
|
71
|
+
|
|
72
|
+
## Merge Conflicts
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
git checkout main && git pull
|
|
76
|
+
git checkout <feature-branch>
|
|
77
|
+
git rebase main
|
|
78
|
+
# Resolve conflicts → git add <file> → git rebase --continue
|
|
79
|
+
git push --force-with-lease # Only on your own feature branches
|
|
80
|
+
```
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
# Sprint Initialization Template
|
|
2
|
+
|
|
3
|
+
Use this template when running `init sprint N`.
|
|
4
|
+
|
|
5
|
+
## How to Initialize
|
|
6
|
+
|
|
7
|
+
1. Copy template below to `docs/project_notes/sprint-{N}-tracker.md`
|
|
8
|
+
2. Read the sprint section from your project plan — extract goal, backend tasks (B*.*), frontend tasks (F*.*)
|
|
9
|
+
3. Set dates (start + 2 weeks)
|
|
10
|
+
4. Use `start task B0.1` to begin
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## Template
|
|
15
|
+
|
|
16
|
+
```markdown
|
|
17
|
+
# Sprint {N}: {Sprint Title}
|
|
18
|
+
|
|
19
|
+
**Period:** YYYY-MM-DD to YYYY-MM-DD
|
|
20
|
+
**Goal:** {Sprint goal}
|
|
21
|
+
**Progress:** 0/{total} tasks (0%)
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## Active Session
|
|
26
|
+
|
|
27
|
+
> **Read this section first** when starting a new session or after context compaction.
|
|
28
|
+
|
|
29
|
+
**Last Updated:** —
|
|
30
|
+
|
|
31
|
+
| Field | Value |
|
|
32
|
+
|-------|-------|
|
|
33
|
+
| **Current Task** | None |
|
|
34
|
+
| **Step** | — |
|
|
35
|
+
| **Branch** | — |
|
|
36
|
+
| **Complexity** | — |
|
|
37
|
+
| **Ticket** | — |
|
|
38
|
+
|
|
39
|
+
**Context:** _No active work._
|
|
40
|
+
|
|
41
|
+
**Next Actions:**
|
|
42
|
+
1. —
|
|
43
|
+
|
|
44
|
+
**Open Questions:** _None._
|
|
45
|
+
|
|
46
|
+
**Auto-Approved Decisions (this session):**
|
|
47
|
+
|
|
48
|
+
| Step | Decision | Rationale |
|
|
49
|
+
|------|----------|-----------|
|
|
50
|
+
| — | — | — |
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## Tasks
|
|
55
|
+
|
|
56
|
+
### Backend
|
|
57
|
+
|
|
58
|
+
| # | Task | Status | Notes |
|
|
59
|
+
|---|------|--------|-------|
|
|
60
|
+
{backend_tasks}
|
|
61
|
+
|
|
62
|
+
### Frontend
|
|
63
|
+
|
|
64
|
+
| # | Task | Status | Notes |
|
|
65
|
+
|---|------|--------|-------|
|
|
66
|
+
{frontend_tasks}
|
|
67
|
+
|
|
68
|
+
**Status Legend:** ⬚ Pending | 🔄 In Progress | ✅ Complete | ⏸️ Blocked | ❌ Cancelled
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
## Completion Log
|
|
73
|
+
|
|
74
|
+
| Date | Task | Commit | Notes |
|
|
75
|
+
|------|------|--------|-------|
|
|
76
|
+
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
## Sprint Notes
|
|
80
|
+
|
|
81
|
+
_Key learnings, issues, or observations._
|
|
82
|
+
```
|