prizmkit 1.0.110 → 1.0.112
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/bundled/VERSION.json +3 -3
- package/bundled/dev-pipeline/run.sh +8 -2
- package/bundled/dev-pipeline/templates/bootstrap-tier1.md +24 -18
- package/bundled/dev-pipeline/templates/bootstrap-tier2.md +19 -18
- package/bundled/dev-pipeline/templates/bootstrap-tier3.md +22 -23
- package/bundled/skills/_metadata.json +1 -1
- package/bundled/skills/app-planner/SKILL.md +49 -0
- package/package.json +1 -1
package/bundled/VERSION.json
CHANGED
|
@@ -218,7 +218,7 @@ spawn_and_wait_session() {
|
|
|
218
218
|
uncommitted=$(git -C "$project_root" status --porcelain 2>/dev/null | head -1 || true)
|
|
219
219
|
if [[ -n "$uncommitted" ]]; then
|
|
220
220
|
log_warn "Session exited cleanly but produced no commits (uncommitted changes found) — auto-committing..."
|
|
221
|
-
git -C "$project_root" add -
|
|
221
|
+
git -C "$project_root" add -u 2>/dev/null || true
|
|
222
222
|
if git -C "$project_root" commit --no-verify -m "chore($feature_id): auto-commit session work" 2>/dev/null; then
|
|
223
223
|
log_info "Auto-commit succeeded"
|
|
224
224
|
session_status="success"
|
|
@@ -241,7 +241,7 @@ spawn_and_wait_session() {
|
|
|
241
241
|
dirty_files=$(git -C "$project_root" status --porcelain 2>/dev/null || true)
|
|
242
242
|
if [[ -n "$dirty_files" ]]; then
|
|
243
243
|
log_info "Auto-committing remaining session artifacts..."
|
|
244
|
-
git -C "$project_root" add -
|
|
244
|
+
git -C "$project_root" add -u 2>/dev/null || true
|
|
245
245
|
git -C "$project_root" commit --no-verify --amend --no-edit -a 2>/dev/null \
|
|
246
246
|
|| git -C "$project_root" commit --no-verify -m "chore($feature_id): include remaining session artifacts" 2>/dev/null \
|
|
247
247
|
|| true
|
|
@@ -314,6 +314,12 @@ sys.exit(1)
|
|
|
314
314
|
log_error "feature-list.json may be out of sync. Manual intervention needed."
|
|
315
315
|
}
|
|
316
316
|
|
|
317
|
+
# Commit feature status update (pipeline management commit)
|
|
318
|
+
if ! git -C "$project_root" diff --quiet feature-list.json 2>/dev/null; then
|
|
319
|
+
git -C "$project_root" add feature-list.json
|
|
320
|
+
git -C "$project_root" commit --no-verify -m "chore($feature_id): update feature status" 2>/dev/null || true
|
|
321
|
+
fi
|
|
322
|
+
|
|
317
323
|
# Return status via global variable (avoids $() swallowing stdout)
|
|
318
324
|
_SPAWN_RESULT="$session_status"
|
|
319
325
|
}
|
|
@@ -40,7 +40,7 @@ You are running in headless mode with a FINITE context window. Exceeding it will
|
|
|
40
40
|
3. **Stay focused** — Do NOT explore code unrelated to this feature. No curiosity-driven reads.
|
|
41
41
|
4. **One task at a time** — In Phase 3 (implement), complete and test one task before starting the next.
|
|
42
42
|
5. **Minimize tool output** — When running commands, use `| head -20` or `| tail -20` to limit output. Never dump entire test suites or logs.
|
|
43
|
-
6. **
|
|
43
|
+
6. **No intermediate commits** — Do NOT run `git add`/`git commit` during Phase 1-3. All changes are committed once at the end in Phase 4 via `/prizmkit-committer`.
|
|
44
44
|
7. **Capture test output once** — When running the test suite, always use `$TEST_CMD 2>&1 | tee /tmp/test-out.txt | tail -20`. Then grep `/tmp/test-out.txt` for details. Never re-run the suite just to apply a different filter.
|
|
45
45
|
|
|
46
46
|
---
|
|
@@ -109,6 +109,13 @@ If plan.md missing, write it directly:
|
|
|
109
109
|
|
|
110
110
|
### Phase 3: Implement + Test
|
|
111
111
|
|
|
112
|
+
**Build artifacts**: After any build/compile command (`go build`, `npm run build`, `tsc`, etc.), ensure the output binary or build directory is in `.gitignore`:
|
|
113
|
+
```bash
|
|
114
|
+
# Example for Go
|
|
115
|
+
grep -q '^/binary-name$' .gitignore || echo '/binary-name' >> .gitignore
|
|
116
|
+
```
|
|
117
|
+
Never commit compiled binaries, build output, or generated artifacts.
|
|
118
|
+
|
|
112
119
|
**Before starting**: detect the test command and record baseline:
|
|
113
120
|
```bash
|
|
114
121
|
# Try in order, use first that exits 0
|
|
@@ -140,33 +147,31 @@ Files changed/created: [list]
|
|
|
140
147
|
Key decisions: [list]
|
|
141
148
|
```
|
|
142
149
|
|
|
143
|
-
### Phase 4: Architecture Sync & Commit
|
|
150
|
+
### Phase 4: Architecture Sync & Commit (SINGLE COMMIT)
|
|
144
151
|
|
|
145
152
|
**4a.** Run `/prizmkit-retrospective` — maintains `.prizm-docs/` (architecture index):
|
|
146
153
|
1. **Structural sync**: Use `git diff --cached --name-status` to locate changed modules, update KEY_FILES/INTERFACES/DEPENDENCIES/file counts in affected `.prizm-docs/` files
|
|
147
154
|
2. **Architecture knowledge** (feature sessions only): Extract TRAPS/RULES/DECISIONS from completed work into `.prizm-docs/`
|
|
148
|
-
3. Stage
|
|
155
|
+
3. Stage doc changes: `git add .prizm-docs/`
|
|
156
|
+
⚠️ Do NOT commit here. Only stage.
|
|
149
157
|
|
|
150
|
-
|
|
158
|
+
**4b.** Stage all feature code explicitly (NEVER use `git add -A` or `git add .`):
|
|
159
|
+
```bash
|
|
160
|
+
git add <specific-files-created-or-modified>
|
|
161
|
+
git add .prizm-docs/
|
|
162
|
+
```
|
|
151
163
|
|
|
152
|
-
**
|
|
164
|
+
**4c.** Run `/prizmkit-committer` → THE ONLY commit for this feature:
|
|
165
|
+
`feat({{FEATURE_ID}}): {{FEATURE_TITLE}}`
|
|
166
|
+
This single commit includes: feature code + tests + .prizm-docs/ updates. Do NOT push.
|
|
153
167
|
- MANDATORY: commit must be done via `/prizmkit-committer` skill. Do NOT run manual `git add`/`git commit` as a substitute.
|
|
154
168
|
- Do NOT run `update-feature-status.py` here — the pipeline runner handles feature-list.json updates automatically after session exit.
|
|
155
169
|
|
|
156
|
-
**
|
|
157
|
-
|
|
170
|
+
**4d.** Final verification:
|
|
158
171
|
```bash
|
|
159
172
|
git status --short
|
|
160
173
|
```
|
|
161
|
-
|
|
162
|
-
**Note**: The pipeline runner will auto-commit any remaining dirty files after your session exits. You do NOT need to manually commit pipeline state files (`dev-pipeline/state/`) or runtime logs — just focus on committing your feature code via `/prizmkit-committer`.
|
|
163
|
-
|
|
164
|
-
If any feature-related source files remain uncommitted, stage them **explicitly by name** (do NOT use `git add -A`) and create a follow-up commit:
|
|
165
|
-
|
|
166
|
-
```bash
|
|
167
|
-
git add <specific-file-1> <specific-file-2>
|
|
168
|
-
git commit -m "chore({{FEATURE_ID}}): include session artifacts"
|
|
169
|
-
```
|
|
174
|
+
Working tree MUST be clean after this step. If any feature-related files remain, stage them into the SAME commit via `git add <file> && git commit --amend --no-edit`, do NOT create a separate commit.
|
|
170
175
|
|
|
171
176
|
## Critical Paths
|
|
172
177
|
|
|
@@ -204,5 +209,6 @@ rm -f .prizmkit/specs/{{FEATURE_SLUG}}/failure-log.md
|
|
|
204
209
|
- MANDATORY skills: `/prizmkit-retrospective`, `/prizmkit-committer` — never skip these
|
|
205
210
|
- Build context-snapshot.md FIRST; use it throughout instead of re-reading files
|
|
206
211
|
- `/prizmkit-committer` is mandatory — do NOT skip the commit phase, and do NOT replace it with manual git commit commands
|
|
207
|
-
-
|
|
208
|
-
-
|
|
212
|
+
- Do NOT run `git add`/`git commit` during Phase 1-3 — all changes are committed once in Phase 4
|
|
213
|
+
- If any files remain after the commit, amend the existing commit — do NOT create a follow-up commit
|
|
214
|
+
- When staging files, always use explicit file names — NEVER use `git add -A` or `git add .`
|
|
@@ -40,7 +40,7 @@ You are running in headless mode with a FINITE context window. Exceeding it will
|
|
|
40
40
|
3. **Stay focused** — Do NOT explore code unrelated to this feature. No curiosity-driven reads.
|
|
41
41
|
4. **One task at a time** — In Phase 3 (implement), complete and test one task before starting the next.
|
|
42
42
|
5. **Minimize tool output** — When running commands, use `| head -20` or `| tail -20` to limit output. Never dump entire test suites or logs.
|
|
43
|
-
6. **
|
|
43
|
+
6. **No intermediate commits** — Do NOT run `git add`/`git commit` during Phase 1-4. All changes are committed once at the end in Phase 5 via `/prizmkit-committer`.
|
|
44
44
|
7. **Capture test output once** — When running the test suite, always use `$TEST_CMD 2>&1 | tee /tmp/test-out.txt | tail -20`. Then grep `/tmp/test-out.txt` for details. Never re-run the suite just to apply a different filter.
|
|
45
45
|
|
|
46
46
|
---
|
|
@@ -130,6 +130,8 @@ If either missing, write them yourself:
|
|
|
130
130
|
|
|
131
131
|
### Phase 3: Implement — Dev Subagent
|
|
132
132
|
|
|
133
|
+
**Build artifacts rule** (passed to Dev): After any build/compile command (`go build`, `npm run build`, `tsc`, etc.), ensure the output binary or build directory is in `.gitignore`. Never commit compiled binaries, build output, or generated artifacts.
|
|
134
|
+
|
|
133
135
|
Spawn Dev subagent (Agent tool, subagent_type="prizm-dev-team-dev", run_in_background=false).
|
|
134
136
|
|
|
135
137
|
Prompt:
|
|
@@ -187,33 +189,31 @@ If GATE:MISSING — send message to Reviewer (re-spawn if needed): "Write the '#
|
|
|
187
189
|
|
|
188
190
|
**CP-2**: Tests pass, verdict is not NEEDS_FIXES.
|
|
189
191
|
|
|
190
|
-
### Phase 5: Architecture Sync & Commit
|
|
192
|
+
### Phase 5: Architecture Sync & Commit (SINGLE COMMIT)
|
|
191
193
|
|
|
192
194
|
**5a.** Run `/prizmkit-retrospective` — maintains `.prizm-docs/` (architecture index):
|
|
193
195
|
1. **Structural sync**: Use `git diff --cached --name-status` to locate changed modules, update KEY_FILES/INTERFACES/DEPENDENCIES/file counts in affected `.prizm-docs/` files
|
|
194
196
|
2. **Architecture knowledge** (feature sessions only): Extract TRAPS/RULES/DECISIONS from completed work into `.prizm-docs/`
|
|
195
|
-
3. Stage
|
|
197
|
+
3. Stage doc changes: `git add .prizm-docs/`
|
|
198
|
+
⚠️ Do NOT commit here. Only stage.
|
|
196
199
|
|
|
197
|
-
|
|
200
|
+
**5b.** Stage all feature code explicitly (NEVER use `git add -A` or `git add .`):
|
|
201
|
+
```bash
|
|
202
|
+
git add <specific-files-created-or-modified>
|
|
203
|
+
git add .prizm-docs/
|
|
204
|
+
```
|
|
198
205
|
|
|
199
|
-
**
|
|
206
|
+
**5c.** Run `/prizmkit-committer` → THE ONLY commit for this feature:
|
|
207
|
+
`feat({{FEATURE_ID}}): {{FEATURE_TITLE}}`
|
|
208
|
+
This single commit includes: feature code + tests + .prizm-docs/ updates. Do NOT push.
|
|
200
209
|
- MANDATORY: commit must be done via `/prizmkit-committer` skill. Do NOT run manual `git add`/`git commit` as a substitute.
|
|
201
210
|
- Do NOT run `update-feature-status.py` here — the pipeline runner handles feature-list.json updates automatically after session exit.
|
|
202
211
|
|
|
203
|
-
**
|
|
204
|
-
|
|
212
|
+
**5d.** Final verification:
|
|
205
213
|
```bash
|
|
206
214
|
git status --short
|
|
207
215
|
```
|
|
208
|
-
|
|
209
|
-
**Note**: The pipeline runner will auto-commit any remaining dirty files after your session exits. You do NOT need to manually commit pipeline state files (`dev-pipeline/state/`) or runtime logs — just focus on committing your feature code via `/prizmkit-committer`.
|
|
210
|
-
|
|
211
|
-
If any feature-related source files remain uncommitted, stage them **explicitly by name** (do NOT use `git add -A`) and create a follow-up commit:
|
|
212
|
-
|
|
213
|
-
```bash
|
|
214
|
-
git add <specific-file-1> <specific-file-2>
|
|
215
|
-
git commit -m "chore({{FEATURE_ID}}): include session artifacts"
|
|
216
|
-
```
|
|
216
|
+
Working tree MUST be clean after this step. If any feature-related files remain, stage them into the SAME commit via `git add <file> && git commit --amend --no-edit`, do NOT create a separate commit.
|
|
217
217
|
|
|
218
218
|
## Critical Paths
|
|
219
219
|
|
|
@@ -255,6 +255,7 @@ rm -f .prizmkit/specs/{{FEATURE_SLUG}}/failure-log.md
|
|
|
255
255
|
- Gate checks enforce Implementation Log and Review Notes are written before proceeding
|
|
256
256
|
- Do NOT use `run_in_background=true` when spawning subagents
|
|
257
257
|
- `/prizmkit-committer` is mandatory, and must not be replaced with manual git commit commands
|
|
258
|
-
-
|
|
259
|
-
-
|
|
258
|
+
- Do NOT run `git add`/`git commit` during Phase 1-4 — all changes are committed once in Phase 5
|
|
259
|
+
- If any files remain after the commit, amend the existing commit — do NOT create a follow-up commit
|
|
260
|
+
- When staging files, always use explicit file names — NEVER use `git add -A` or `git add .`
|
|
260
261
|
- On timeout: check snapshot + git diff HEAD → model:lite → remaining steps only → max 2 retries per phase → orchestrator fallback
|
|
@@ -72,7 +72,7 @@ You are running in headless mode with a FINITE context window. Exceeding it will
|
|
|
72
72
|
3. **Stay focused** — Do NOT explore code unrelated to this feature. No curiosity-driven reads.
|
|
73
73
|
4. **One task at a time** — In Phase 4 (implement), complete and test one task before starting the next.
|
|
74
74
|
5. **Minimize tool output** — When running commands, use `| head -20` or `| tail -20` to limit output. Never dump entire test suites or logs.
|
|
75
|
-
6. **
|
|
75
|
+
6. **No intermediate commits** — Do NOT run `git add`/`git commit` during Phase 1-5. All changes are committed once at the end in Phase 6 via `/prizmkit-committer`.
|
|
76
76
|
7. **Batch independent operations** — Issue multiple independent `Write`/`Read` calls in a single message turn when they have no dependencies. Combine multiple `mkdir -p` into one command. Never run `npm test` twice just to apply a different grep filter — capture output to `/tmp/test-out.txt` once and grep the file.
|
|
77
77
|
|
|
78
78
|
---
|
|
@@ -231,6 +231,8 @@ Wait for Reviewer to return.
|
|
|
231
231
|
|
|
232
232
|
### Phase 4: Implement — Dev Agent
|
|
233
233
|
|
|
234
|
+
**Build artifacts rule** (passed to Dev): After any build/compile command (`go build`, `npm run build`, `tsc`, etc.), ensure the output binary or build directory is in `.gitignore`. Never commit compiled binaries, build output, or generated artifacts.
|
|
235
|
+
|
|
234
236
|
Before spawning Dev, check plan.md Tasks section:
|
|
235
237
|
```bash
|
|
236
238
|
grep -c '^\- \[ \]' .prizmkit/specs/{{FEATURE_SLUG}}/plan.md 2>/dev/null || echo 0
|
|
@@ -339,7 +341,7 @@ If GATE:MISSING — send message to Reviewer (re-spawn if needed): "Write the '#
|
|
|
339
341
|
**CP-3**: Integration tests pass, verdict is not NEEDS_FIXES.
|
|
340
342
|
|
|
341
343
|
|
|
342
|
-
### Phase 6: Retrospective & Commit — DO NOT SKIP
|
|
344
|
+
### Phase 6: Retrospective & Commit (SINGLE COMMIT) — DO NOT SKIP
|
|
343
345
|
|
|
344
346
|
{{IF_MODE_SELF_EVOLVE}}
|
|
345
347
|
**Framework Validation Gate (self-evolve mode)**:
|
|
@@ -361,37 +363,33 @@ bash {{VALIDATOR_SCRIPTS_DIR}}/validate-framework.sh
|
|
|
361
363
|
```bash
|
|
362
364
|
git log --oneline | grep "{{FEATURE_ID}}" | head -3
|
|
363
365
|
```
|
|
364
|
-
- If a commit for `{{FEATURE_ID}}` already exists → **skip
|
|
365
|
-
- If no existing commit → proceed normally with
|
|
366
|
+
- If a commit for `{{FEATURE_ID}}` already exists → **skip 6d** (do NOT run /prizmkit-committer, do NOT run git reset, do NOT stage or unstage anything). Proceed directly to 6e Final verification.
|
|
367
|
+
- If no existing commit → proceed normally with 6b–6d.
|
|
366
368
|
|
|
367
369
|
**6b.** Run `/prizmkit-retrospective` (**before commit**, maintains `.prizm-docs/` architecture index):
|
|
368
370
|
- **Structural sync**: update KEY_FILES/INTERFACES/DEPENDENCIES/file counts for changed modules
|
|
369
371
|
- **Architecture knowledge** (feature sessions only): extract TRAPS, RULES, DECISIONS from completed work into `.prizm-docs/`
|
|
370
|
-
- Stage
|
|
372
|
+
- Stage doc changes: `git add .prizm-docs/`
|
|
373
|
+
⚠️ Do NOT commit here. Only stage.
|
|
371
374
|
- **For bug-fix sessions**: structural sync only, skip knowledge injection unless a genuinely new pitfall was discovered
|
|
372
375
|
|
|
373
|
-
**6c.**
|
|
374
|
-
|
|
375
|
-
**6d.** MANDATORY: commit must be done via `/prizmkit-committer` skill. Do NOT run manual `git add`/`git commit` as a substitute.
|
|
376
|
-
|
|
377
|
-
**6e.** Do NOT run `update-feature-status.py` here — the pipeline runner handles feature-list.json updates automatically after session exit.
|
|
378
|
-
|
|
379
|
-
### Final Clean Check (before exit)
|
|
380
|
-
|
|
381
|
-
Verify repository is clean:
|
|
382
|
-
|
|
376
|
+
**6c.** Stage all feature code explicitly (NEVER use `git add -A` or `git add .`):
|
|
383
377
|
```bash
|
|
384
|
-
git
|
|
378
|
+
git add <specific-files-created-or-modified>
|
|
379
|
+
git add .prizm-docs/
|
|
385
380
|
```
|
|
386
381
|
|
|
387
|
-
**
|
|
388
|
-
|
|
389
|
-
|
|
382
|
+
**6d.** Run `/prizmkit-committer` → THE ONLY commit for this feature:
|
|
383
|
+
`feat({{FEATURE_ID}}): {{FEATURE_TITLE}}`
|
|
384
|
+
This single commit includes: feature code + tests + .prizm-docs/ updates. Do NOT push.
|
|
385
|
+
- MANDATORY: commit must be done via `/prizmkit-committer` skill. Do NOT run manual `git add`/`git commit` as a substitute.
|
|
386
|
+
- Do NOT run `update-feature-status.py` here — the pipeline runner handles feature-list.json updates automatically after session exit.
|
|
390
387
|
|
|
388
|
+
**6e.** Final verification:
|
|
391
389
|
```bash
|
|
392
|
-
git
|
|
393
|
-
git commit -m "chore({{FEATURE_ID}}): include session artifacts"
|
|
390
|
+
git status --short
|
|
394
391
|
```
|
|
392
|
+
Working tree MUST be clean after this step. If any feature-related files remain, stage them into the SAME commit via `git add <file> && git commit --amend --no-edit`, do NOT create a separate commit.
|
|
395
393
|
|
|
396
394
|
## Critical Paths
|
|
397
395
|
|
|
@@ -434,6 +432,7 @@ rm -f .prizmkit/specs/{{FEATURE_SLUG}}/failure-log.md
|
|
|
434
432
|
- Gate checks enforce Implementation Log and Review Notes are written before proceeding
|
|
435
433
|
- Do NOT use `run_in_background=true` when spawning agents
|
|
436
434
|
- Commit phase must use `/prizmkit-committer`; do NOT replace with manual git commit commands
|
|
437
|
-
-
|
|
438
|
-
-
|
|
435
|
+
- Do NOT run `git add`/`git commit` during Phase 1-5 — all changes are committed once in Phase 6
|
|
436
|
+
- If any files remain after the commit, amend the existing commit — do NOT create a follow-up commit
|
|
437
|
+
- When staging files, always use explicit file names — NEVER use `git add -A` or `git add .`
|
|
439
438
|
- On timeout: check snapshot → model:lite → remaining steps only → max 2 retries → orchestrator fallback
|
|
@@ -130,6 +130,55 @@ Checkpoints catch cascading errors early — skipping one means the next phase b
|
|
|
130
130
|
|
|
131
131
|
**Resume Detection**: See §Resume Support for checkpoint-based resumption.
|
|
132
132
|
|
|
133
|
+
## Architecture Decision Capture
|
|
134
|
+
|
|
135
|
+
During planning, key **framework-level** architectural decisions may emerge. When they do, capture them in the project instruction file so all future AI sessions have this context.
|
|
136
|
+
|
|
137
|
+
### What Qualifies (ALL must apply)
|
|
138
|
+
|
|
139
|
+
Only capture decisions that are **framework-shaping** — NOT individual feature details. Qualifying categories:
|
|
140
|
+
|
|
141
|
+
| Category | Examples |
|
|
142
|
+
|----------|----------|
|
|
143
|
+
| Tech stack choices | PostgreSQL over MongoDB, React over Vue, Node.js runtime |
|
|
144
|
+
| Communication patterns | REST vs GraphQL, WebSocket vs SSE vs polling |
|
|
145
|
+
| Architectural patterns | Monorepo, microservices, monolith, event-driven |
|
|
146
|
+
| Data model strategies | Relational vs document, event sourcing, CQRS |
|
|
147
|
+
| Security architecture | JWT vs session, OAuth provider, RBAC model |
|
|
148
|
+
|
|
149
|
+
**Do NOT capture**: individual feature implementation details, UI component choices, specific API endpoint designs, or anything scoped to a single feature.
|
|
150
|
+
|
|
151
|
+
**This is conditional** — most planning sessions will NOT produce architecture decisions. Only capture when genuinely impactful decisions are made during the discussion.
|
|
152
|
+
|
|
153
|
+
### When to Capture
|
|
154
|
+
|
|
155
|
+
After Phase 5 (DAG verification), before Phase 6 (JSON generation). At this point decisions are settled.
|
|
156
|
+
|
|
157
|
+
### How to Capture
|
|
158
|
+
|
|
159
|
+
1. **Detect platform** — determine which project instruction file to update:
|
|
160
|
+
- `.claude/` directory exists → append to `CLAUDE.md`
|
|
161
|
+
- `.codebuddy/` directory exists → append to `CODEBUDDY.md`
|
|
162
|
+
- Both exist → append to both
|
|
163
|
+
- Neither exists → skip (no project instruction file)
|
|
164
|
+
|
|
165
|
+
2. **Check for existing section** — read the target file and look for `### Architecture Decisions` heading:
|
|
166
|
+
- If heading exists → append new entries below it (avoid duplicates with existing entries)
|
|
167
|
+
- If heading does not exist → create it at the end of the file
|
|
168
|
+
|
|
169
|
+
3. **Format** — one line per decision, no feature IDs:
|
|
170
|
+
```markdown
|
|
171
|
+
### Architecture Decisions
|
|
172
|
+
- WebSocket for real-time: sub-second latency required for collaboration features
|
|
173
|
+
- PostgreSQL: relational data model with complex queries, ACID compliance needed
|
|
174
|
+
- Monorepo structure: shared types between frontend and backend
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
4. **User confirmation** — before writing, show the collected decisions and ask:
|
|
178
|
+
> "These architecture decisions were identified during planning. Record them to [CLAUDE.md / CODEBUDDY.md]? (Y/n)"
|
|
179
|
+
|
|
180
|
+
If user declines, skip without further prompting.
|
|
181
|
+
|
|
133
182
|
## Fast Path — Incremental Shortcuts
|
|
134
183
|
|
|
135
184
|
For simple incremental planning, skip detailed Phase 2-3 analysis to accelerate delivery:
|