prizmkit 1.1.107 → 1.1.108

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.
Files changed (78) hide show
  1. package/bin/create-prizmkit.js +4 -0
  2. package/bundled/VERSION.json +3 -3
  3. package/bundled/dev-pipeline/prizmkit_runtime/config.py +81 -14
  4. package/bundled/dev-pipeline/prizmkit_runtime/heartbeat.py +19 -8
  5. package/bundled/dev-pipeline/prizmkit_runtime/interoperability.py +0 -1
  6. package/bundled/dev-pipeline/prizmkit_runtime/launch_profiles.py +18 -0
  7. package/bundled/dev-pipeline/prizmkit_runtime/runner_bookkeeping.py +22 -2
  8. package/bundled/dev-pipeline/prizmkit_runtime/runner_recovery.py +3 -1
  9. package/bundled/dev-pipeline/prizmkit_runtime/runners.py +20 -1
  10. package/bundled/dev-pipeline/prizmkit_runtime/sessions.py +151 -30
  11. package/bundled/dev-pipeline/scripts/continuation.py +0 -1
  12. package/bundled/dev-pipeline/scripts/generate-bootstrap-prompt.py +6 -46
  13. package/bundled/dev-pipeline/scripts/generate-bugfix-prompt.py +7 -34
  14. package/bundled/dev-pipeline/scripts/generate-refactor-prompt.py +40 -33
  15. package/bundled/dev-pipeline/scripts/utils.py +123 -0
  16. package/bundled/dev-pipeline/templates/agent-prompts/critic-plan-challenge.md +4 -3
  17. package/bundled/dev-pipeline/templates/bootstrap-prompt.md +1 -1
  18. package/bundled/dev-pipeline/templates/bootstrap-tier1.md +8 -7
  19. package/bundled/dev-pipeline/templates/bootstrap-tier2.md +25 -36
  20. package/bundled/dev-pipeline/templates/bootstrap-tier3.md +16 -31
  21. package/bundled/dev-pipeline/templates/bugfix-bootstrap-prompt.md +4 -16
  22. package/bundled/dev-pipeline/templates/refactor-bootstrap-prompt.md +3 -15
  23. package/bundled/dev-pipeline/templates/sections/checkpoint-system.md +14 -48
  24. package/bundled/dev-pipeline/templates/sections/context-budget-rules.md +7 -13
  25. package/bundled/dev-pipeline/templates/sections/feature-context.md +0 -4
  26. package/bundled/dev-pipeline/templates/sections/phase-browser-verification-auto.md +0 -7
  27. package/bundled/dev-pipeline/templates/sections/phase-browser-verification-opencli.md +0 -7
  28. package/bundled/dev-pipeline/templates/sections/phase-browser-verification.md +0 -7
  29. package/bundled/dev-pipeline/templates/sections/phase-commit-full.md +0 -14
  30. package/bundled/dev-pipeline/templates/sections/phase-commit.md +0 -14
  31. package/bundled/dev-pipeline/templates/sections/phase-context-snapshot-agent-suffix.md +0 -7
  32. package/bundled/dev-pipeline/templates/sections/phase-context-snapshot-base.md +0 -2
  33. package/bundled/dev-pipeline/templates/sections/phase-context-snapshot-lite-suffix.md +0 -7
  34. package/bundled/dev-pipeline/templates/sections/phase-critic-plan-full.md +6 -8
  35. package/bundled/dev-pipeline/templates/sections/phase-critic-plan.md +3 -7
  36. package/bundled/dev-pipeline/templates/sections/phase-implement-agent.md +0 -7
  37. package/bundled/dev-pipeline/templates/sections/phase-implement-full.md +0 -7
  38. package/bundled/dev-pipeline/templates/sections/phase-implement-lite.md +0 -7
  39. package/bundled/dev-pipeline/templates/sections/phase-plan-agent.md +2 -9
  40. package/bundled/dev-pipeline/templates/sections/phase-plan-lite.md +1 -8
  41. package/bundled/dev-pipeline/templates/sections/phase-prizmkit-test.md +15 -16
  42. package/bundled/dev-pipeline/templates/sections/phase-review-agent.md +0 -7
  43. package/bundled/dev-pipeline/templates/sections/phase-review-full.md +0 -7
  44. package/bundled/dev-pipeline/templates/sections/phase-specify-plan-full.md +2 -9
  45. package/bundled/dev-pipeline/templates/sections/phase0-init.md +0 -7
  46. package/bundled/dev-pipeline/templates/sections/phase0-test-baseline.md +2 -15
  47. package/bundled/dev-pipeline/tests/conftest.py +0 -1
  48. package/bundled/dev-pipeline/tests/test_generate_bootstrap_prompt.py +350 -23
  49. package/bundled/dev-pipeline/tests/test_generate_bugfix_prompt.py +36 -17
  50. package/bundled/dev-pipeline/tests/test_generate_refactor_prompt.py +117 -14
  51. package/bundled/dev-pipeline/tests/test_python_runner_parity.py +79 -2
  52. package/bundled/dev-pipeline/tests/test_unified_cli.py +658 -13
  53. package/bundled/skills/_metadata.json +4 -4
  54. package/bundled/skills/app-planner/SKILL.md +1 -1
  55. package/bundled/skills/app-planner/references/architecture-decisions.md +1 -1
  56. package/bundled/skills/bug-fix-workflow/SKILL.md +174 -128
  57. package/bundled/skills/bug-planner/SKILL.md +101 -15
  58. package/bundled/skills/bug-planner/references/severity-rules.md +20 -8
  59. package/bundled/skills/feature-planner/SKILL.md +87 -8
  60. package/bundled/skills/feature-planner/assets/planning-guide.md +34 -10
  61. package/bundled/skills/feature-workflow/SKILL.md +100 -81
  62. package/bundled/skills/{prizm-kit → prizmkit}/SKILL.md +1 -1
  63. package/bundled/skills/prizmkit-code-review/SKILL.md +1 -1
  64. package/bundled/skills/refactor-planner/SKILL.md +88 -7
  65. package/bundled/skills/refactor-planner/references/fast-path.md +2 -1
  66. package/bundled/skills/refactor-planner/references/planning-phases.md +29 -11
  67. package/bundled/skills/refactor-workflow/SKILL.md +116 -57
  68. package/bundled/templates/project-memory-template.md +1 -1
  69. package/package.json +1 -1
  70. package/src/ai-cli-launch.js +194 -0
  71. package/src/config.js +26 -14
  72. package/src/index.js +11 -44
  73. package/src/platforms.js +10 -3
  74. package/src/prompts.js +60 -2
  75. package/src/scaffold.js +26 -14
  76. package/bundled/dev-pipeline/scripts/prizmkit-test-gate.py +0 -446
  77. package/bundled/dev-pipeline/templates/sections/log-size-awareness.md +0 -20
  78. package/bundled/dev-pipeline/tests/test_prizmkit_test_gate.py +0 -107
@@ -52,21 +52,18 @@ You are running in **headless non-interactive mode** with a FINITE context windo
52
52
 
53
53
  1. **context-snapshot.md is your single source of truth** — After Phase 1-2 builds it, ALWAYS read context-snapshot.md instead of re-reading individual source files
54
54
  2. **Never re-read your own writes** — After you create/modify a file, do NOT read it back to verify. Trust your write was correct.
55
- 3. **Stay focused** — Do NOT explore code unrelated to this feature. No curiosity-driven reads.
55
+ 3. **Never re-read unmodified files** — Once you have read a file into context, do NOT read it again unless it was modified by an Edit/Write operation after your last read. Use `grep -n '<pattern>' <file>` or `sed -n '<start>,<end>p' <file>` for targeted line lookups instead of full-file Read. Before issuing a Read, ask yourself: "Have I read this file before, and has it changed since?" If the answer is "no, it hasn't changed" — do NOT read it. This applies to all files including those summarized in context-snapshot.md Section 4. Subagents (Critic, Reviewer) must receive context-snapshot.md and rely on it rather than independently re-reading the same files the orchestrator already read.
56
+ 4. **Stay focused** — Do NOT explore code unrelated to this feature. No curiosity-driven reads.
56
57
  4. **One task at a time** — In Phase 4 (implement), complete and test one task before starting the next.
57
58
  5. **Minimize tool output** — Never load full command output into context. First capture to a temp file (`cmd 2>&1 | tee /tmp/out.txt | tail -20`), then scan the head/tail to identify relevant fields, and use targeted filtering (`grep`, `sed`, `awk`) to extract only the information needed for the current task. Only read the filtered result — never the raw full output.
58
59
  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`.
59
60
  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.
60
- 8. **Scaffold / generated file awareness** — Files created by scaffolding tools are boilerplate. Tag them, record in context-snapshot.md, NEVER re-read. Edit directly without reading first.
61
61
  9. **Package version verification (BLOCKING)** — Verify dependency versions via registry query before writing them. NEVER guess.
62
62
  10. **Build artifact hygiene** — After build/compile, ensure output is in `.gitignore`.
63
63
  11. **Read offset safety (BLOCKING)** — If Read returns "shorter than offset"/"File is empty"/"Wasted call" — do NOT retry same offset. Run `wc -l <file>` to get real line count, then `sed -n` for exact range. 2 consecutive offset errors → STOP Reading that file. Never guess offsets — `grep -n '<anchor>'` first.
64
64
 
65
65
  ---
66
66
 
67
- {{LOG_SIZE_AWARENESS}}
68
- ---
69
-
70
67
  ## PrizmKit Directory Convention
71
68
 
72
69
  ```
@@ -97,14 +94,6 @@ If any agent times out:
97
94
  - **CP-0**: Verify `.prizmkit/prizm-docs/root.prizm`, `.prizmkit/config.json` exist
98
95
  {{END_IF_INIT_NEEDED}}
99
96
  {{IF_INIT_DONE}}
100
- ### Phase 0: Detect Test Commands
101
-
102
- **Step 1 — Detect test commands**: You know this project's tech stack. Identify ALL test commands that apply (e.g., `go test ./...`, `npm test`, `cargo test`, `pytest`, `make test`, etc.). Record them as `TEST_CMDS`.
103
-
104
- **Step 2 — Do not run tests yet**: This phase only records the commands that will be used by the post-review PrizmKit Test gate. Test execution happens after code review.
105
-
106
- > **Test Output Rule**: When the post-review gate runs, capture test output to a temp file (`tee /tmp/test-out.txt`). Then grep the file instead of re-running the suite.
107
- {{END_IF_INIT_DONE}}
108
97
 
109
98
  ### Step 1: Initialize
110
99
 
@@ -176,7 +165,7 @@ If `EXISTING_CODE` is non-empty: your spec/plan/tasks must reflect this existing
176
165
  ls .prizmkit/specs/{{FEATURE_SLUG}}/spec.md .prizmkit/specs/{{FEATURE_SLUG}}/plan.md 2>/dev/null
177
166
  ```
178
167
 
179
- - spec.md missing: Run `/prizmkit-plan` → generate spec.md. Resolve any `[NEEDS CLARIFICATION]` markers using the feature description do NOT pause for interactive input.
168
+ - spec.md missing: Run `/prizmkit-plan` → generate spec.md. Resolve uncertain requirements from the feature description, existing code, and conservative existing-project patterns.
180
169
  - plan.md missing: Run `/prizmkit-plan` → generate plan.md (architecture, components, interface design, data model, testing strategy, risk assessment, and Tasks section with `[ ]` checkboxes)
181
170
 
182
171
  > All files go under `.prizmkit/specs/{{FEATURE_SLUG}}/`. Confirm each with `ls` after writing.
@@ -185,14 +174,14 @@ ls .prizmkit/specs/{{FEATURE_SLUG}}/spec.md .prizmkit/specs/{{FEATURE_SLUG}}/pla
185
174
  Before proceeding past CP-1, verify:
186
175
  1. Plan.md Data Model section references existing schema/model files (scan for `*.prisma`, `*.sql`, `migrations/`, `models/`, `*.entity.*` files; read them if not already in context-snapshot)
187
176
  2. All new tables/fields follow existing naming conventions, ID strategy, timestamp patterns, and constraint style
188
- 3. No `[NEEDS CLARIFICATION]` remains in Data Model section — resolve by reading existing code and making a conservative choice that matches existing patterns. Document the resolution in plan.md.
177
+ 3. No unresolved data model uncertainty remains in the Data Model section — resolve by reading existing code and making a conservative choice that matches existing patterns. Document the resolution in plan.md.
189
178
  4. If a DB design decision genuinely cannot be resolved from existing code alone, document the assumption made and flag it in the Implementation Log for user review.
190
179
 
191
180
  **CP-1**: Both spec.md and plan.md exist.
192
181
 
193
182
  ### Phase 3: Analyze — Reviewer Agent
194
183
 
195
- Spawn Reviewer agent (Agent tool, subagent_type="prizm-dev-team-reviewer", mode="plan", run_in_background=false).
184
+ Spawn Reviewer agent (Agent tool, subagent_type="prizm-dev-team-reviewer", mode="plan", run_in_background=false, isolation=default/no worktree). Do not request worktree isolation; this prevents AI tool-created `.claude/worktrees/...` subagent worktrees. PrizmKit pipeline-managed linked git worktrees under `.prizmkit/state/worktrees/...` are separate and controlled by `USE_WORKTREE`.
196
185
 
197
186
  Spawn failure cap: for team/config/lock errors, retry at most once for this Reviewer spawn. If the second attempt fails, do not poll for report artifacts; fix/check the plan inline or write `failure-log.md` before stopping for recovery.
198
187
 
@@ -221,7 +210,7 @@ If CRITIC:MISSING — skip Phase 3.5 entirely and proceed to Phase 4. Log: "Crit
221
210
 
222
211
  **If {{CRITIC_COUNT}} = 1 → Single Critic** (skip to CP-2.5 after this):
223
212
 
224
- Spawn Critic agent (Agent tool, subagent_type="prizm-dev-team-critic", mode="plan", run_in_background=false).
213
+ Spawn Critic agent (Agent tool, subagent_type="prizm-dev-team-critic", mode="plan", run_in_background=false, isolation=default/no worktree). Do not request worktree isolation; this prevents AI tool-created `.claude/worktrees/...` subagent worktrees. PrizmKit pipeline-managed linked git worktrees under `.prizmkit/state/worktrees/...` are separate and controlled by `USE_WORKTREE`.
225
214
 
226
215
  Spawn failure cap: for team/config/lock errors, retry at most once for this Critic spawn. If the second attempt fails, do not poll for challenge reports; perform the plan challenge inline and record the fallback.
227
216
 
@@ -229,16 +218,17 @@ Prompt:
229
218
  > "Read {{CRITIC_SUBAGENT_PATH}}. For feature {{FEATURE_ID}} (slug: {{FEATURE_SLUG}}):
230
219
  > **MODE: Plan Challenge**
231
220
  > 1. Read `.prizmkit/specs/{{FEATURE_SLUG}}/context-snapshot.md` FIRST — Section 3 has TRAPS/RULES, Section 4 has file manifest.
232
- > 2. Read `.prizmkit/prizm-docs/root.prizm` and relevant L1/L2 docs for affected modules.
233
- > 3. Read existing source files in the modules this plan touches.
234
- > 4. Challenge plan.md against the project's existing architecture, patterns, and style.
221
+ > 2. Use context-snapshot.md as the shared source of truth. Do not create or enter AI tool-created `.claude/worktrees/...` subagent worktrees; use default/no worktree isolation and do not request worktree isolation.
222
+ > 3. PrizmKit pipeline-managed linked git worktrees under `.prizmkit/state/worktrees/...` are a separate runner feature controlled by `USE_WORKTREE`; do not confuse them with AI tool-created `.claude/worktrees/...`.
223
+ > 4. Read additional `.prizmkit/prizm-docs/` or source excerpts only when needed to verify a specific challenge.
224
+ > 5. Challenge plan.md against the project's existing architecture, patterns, and style.
235
225
  > Write `.prizmkit/specs/{{FEATURE_SLUG}}/challenge-report.md` with findings (or 'No significant challenges')."
236
226
 
237
227
  **If {{CRITIC_COUNT}} = 3 → Multi-Critic Voting** (skip Single Critic above):
238
228
 
239
229
  **IMPORTANT**: Spawn all 3 Critics in PARALLEL (issue all 3 Agent tool calls in the SAME message turn). Do NOT wait for one before spawning the next.
240
230
 
241
- Spawn Critic-A, Critic-B, Critic-C simultaneously (each with mode="plan", run_in_background=false):
231
+ Spawn Critic-A, Critic-B, Critic-C simultaneously (each with mode="plan", run_in_background=false, isolation=default/no worktree). Do not request worktree isolation; this prevents AI tool-created `.claude/worktrees/...` subagent worktrees. PrizmKit pipeline-managed linked git worktrees under `.prizmkit/state/worktrees/...` are separate and controlled by `USE_WORKTREE`:
242
232
 
243
233
  Critic-A prompt (append to base prompt above):
244
234
  > "**Focus Lens: Architecture & Scalability.** Prioritize: architectural pattern fit, scalability implications, over-engineering risks, component boundary design.
@@ -307,15 +297,6 @@ For each Verification Gate from the Task Contract, write one evidence line to Im
307
297
 
308
298
  **CP-2**: All tasks `[x]`, Implementation Log written with Gate Evidence, and blocked gates documented in `failure-log.md`. Test execution is deferred until after code review.
309
299
 
310
- **Checkpoint update**:
311
- ```bash
312
- python3 $PIPELINE_DIR/scripts/update-checkpoint.py \
313
- --checkpoint-path .prizmkit/specs/{{FEATURE_SLUG}}/workflow-checkpoint.json \
314
- --step prizmkit-implement \
315
- --status completed
316
- ```
317
-
318
-
319
300
  ### Review — Code Review
320
301
 
321
302
  Review the completed implementation before the scoped feature test gate runs. Use `artifact_dir=.prizmkit/specs/{{FEATURE_SLUG}}/` so the code-review skill can read spec, plan, context snapshot, implementation log, and current diff artifacts. Do not require or read a prior `/prizmkit-test` report here; test generation and test-fix looping happen in the next phase.
@@ -345,7 +326,11 @@ Read `review-report.md` and check the Verdict:
345
326
 
346
327
  Run `/prizmkit-test scope=this-change artifact_dir=.prizmkit/specs/{{FEATURE_SLUG}}/` after review and before commit.
347
328
 
348
- Before invoking the skill, create `.prizmkit/specs/{{FEATURE_SLUG}}/.prizmkit-test-started` so stale reports are ignored.
329
+ Before invoking the skill, create a current-run marker so stale reports are ignored:
330
+ ```bash
331
+ mkdir -p .prizmkit/specs/{{FEATURE_SLUG}}
332
+ touch .prizmkit/specs/{{FEATURE_SLUG}}/.prizmkit-test-started
333
+ ```
349
334
 
350
335
  Gate requirements:
351
336
  - Generate or update tests only for this feature's changed files, changed public interfaces, and acceptance criteria.
@@ -40,20 +40,17 @@ You are the **bug fix session agent**. Fix Bug {{BUG_ID}}: "{{BUG_TITLE}}".
40
40
 
41
41
  {{GLOBAL_CONTEXT}}
42
42
 
43
- ### Project Conventions
44
-
45
- > Read {{PLATFORM_CONVENTIONS}} for project-level coding standards, architecture decisions, and development rules.
46
43
 
47
44
  ## ⚠️ Context Budget Rules (CRITICAL)
48
45
 
49
46
  0. **NON-INTERACTIVE MODE** — NEVER ask for confirmation. Proceed autonomously.
50
47
  1. **context-snapshot.md is your single source of truth** — After it is built, read context-snapshot.md instead of re-reading individual source files.
51
48
  2. **Never re-read your own writes** — Trust your write was correct.
52
- 3. **Stay focused** — Do NOT explore code unrelated to this bug.
49
+ 3. **Never re-read unmodified files** — Once you have read a file into context, do NOT read it again unless it was modified by an Edit/Write after your last read. Use `grep -n` or `sed -n` for targeted lookups instead of full-file Read. Before issuing a Read, ask: "Have I read this file before, and has it changed since?" If no — do NOT read it. Subagents must rely on context-snapshot.md rather than re-reading files the orchestrator already read.
50
+ 4. **Stay focused** — Do NOT explore code unrelated to this bug.
53
51
  4. **Minimize tool output** — Capture to temp file, scan head/tail, filter with grep/sed/awk. Never load full output.
54
52
  5. **No intermediate commits** — All changes committed once at the end via `/prizmkit-committer`.
55
53
 
56
- {{LOG_SIZE_AWARENESS}}
57
54
  ## Bug Fix Artifacts Directory
58
55
 
59
56
  ```
@@ -64,16 +61,7 @@ You are the **bug fix session agent**. Fix Bug {{BUG_ID}}: "{{BUG_TITLE}}".
64
61
  └── fix-report.md ← Final bug resolution report
65
62
  ```
66
63
 
67
- ## Workflow Checkpoint System
68
-
69
- **Path**: `{{CHECKPOINT_PATH}}`
70
-
71
- **Rules**:
72
- 1. **Before each step**: Read `workflow-checkpoint.json`, verify the previous step is `"completed"`. If not, complete it first.
73
- 2. **Starting a step**: Update to `status: "in_progress"`.
74
- 3. **After step completes**: Update to `status: "completed"`.
75
- 4. **On failure**: Set to `status: "failed"` and continue if possible.
76
- 5. **On resume**: Skip `"completed"` steps. Start from first `"pending"` or `"in_progress"` step.
64
+ {{CHECKPOINT_SYSTEM}}
77
65
 
78
66
  ---
79
67
 
@@ -138,7 +126,7 @@ Run `/prizmkit-plan` with `artifact_dir=.prizmkit/bugfix/{{BUG_ID}}/`:
138
126
  - The spec.md should capture: root cause, impact scope, behavior that must be preserved
139
127
  - The plan.md Tasks section **MUST start with a reproduction test task** — a test that FAILS with current code (RED state), proving the bug exists
140
128
  - Subsequent tasks implement the minimal fix to make the test pass (GREEN state)
141
- - Resolve any `[NEEDS CLARIFICATION]` markers autonomously do NOT pause
129
+ - Resolve uncertain fix details autonomously from the bug report, failing behavior, existing code, and conservative existing-project patterns.
142
130
 
143
131
  {{IF_BROWSER_INTERACTION}}
144
132
  - **Browser Verification**: If the bug is UI-reproducible, plan.md should reference the Browser Verification Protocol above instead of redefining browser steps.
@@ -61,9 +61,6 @@ You are the **refactor session orchestrator**. Execute Refactor {{REFACTOR_ID}}:
61
61
 
62
62
  {{GLOBAL_CONTEXT}}
63
63
 
64
- ### Project Conventions
65
-
66
- > Read {{PLATFORM_CONVENTIONS}} for project-level coding standards, architecture decisions, and development rules.
67
64
 
68
65
  ## Refactor Artifacts Directory
69
66
 
@@ -78,7 +75,6 @@ You are the **refactor session orchestrator**. Execute Refactor {{REFACTOR_ID}}:
78
75
 
79
76
  ## Execution Instructions
80
77
 
81
- {{LOG_SIZE_AWARENESS}}
82
78
  **YOU are the orchestrator. Execute each phase by spawning the appropriate team agent with run_in_background=false.**
83
79
 
84
80
  **Agent spawn failure policy (all Agent tool calls)**:
@@ -88,15 +84,7 @@ You are the **refactor session orchestrator**. Execute Refactor {{REFACTOR_ID}}:
88
84
  - Any recovery exception must be recorded in the required report or session status so downstream runs know the normal team path was unavailable.
89
85
  - Apply the same cap to any re-spawn for report repair or resume prompts; do not burn multiple minutes on identical team/config/lock failures.
90
86
 
91
- ## Workflow Checkpoint System
92
-
93
- A checkpoint file tracks your progress through this workflow:
94
-
95
- **Path**: `{{CHECKPOINT_PATH}}`
96
-
97
- **How to use**:
98
- 1. **Before each step**: Read `workflow-checkpoint.json`, verify the previous step has `status: "completed"` or `status: "skipped"`. If not, complete it first.
99
- 2. **After completing a step**: Update the step's `status` to `"completed"` in `workflow-checkpoint.json`.
87
+ {{CHECKPOINT_SYSTEM}}
100
88
 
101
89
  ### Step 1: Initialize
102
90
 
@@ -129,7 +117,7 @@ Run `/prizmkit-plan` with `artifact_dir=.prizmkit/refactor/{{REFACTOR_ID}}/`:
129
117
  - Every task ends with "run test suite to verify behavior preserved"
130
118
  - Rollback strategy
131
119
 
132
- Resolve any `[NEEDS CLARIFICATION]` markers using the refactor description do NOT pause for interactive input.
120
+ Resolve uncertain refactor details from the refactor description, existing code, and conservative existing-project patterns.
133
121
 
134
122
  {{IF_BROWSER_INTERACTION}}
135
123
 
@@ -185,7 +173,7 @@ Evidence must cover affected UI render, primary user interactions, behavior-sens
185
173
 
186
174
  {{END_IF_BROWSER_INTERACTION}}
187
175
 
188
- 7. If the refactor involves multiple files: update durable checkpoints/artifacts at the midpoint, minimize output, and rely on runner continuation if context overflow occurs. In an interactive Claude Code session operated manually outside the headless pipeline, `/compact` may be used as an optional convenience only.
176
+ 7. If the refactor involves multiple files: update durable checkpoints/artifacts at the midpoint, minimize output, and rely on runner continuation if context overflow occurs.
189
177
  8. After all tasks complete, run the full test suite one final time
190
178
  "
191
179
  - **Wait for Dev to return**
@@ -4,63 +4,29 @@ A checkpoint file tracks your progress through this workflow:
4
4
 
5
5
  **Path**: `{{CHECKPOINT_PATH}}`
6
6
 
7
- ### Rules
8
-
9
- 1. **Before each skill**: Read `workflow-checkpoint.json`, verify the previous step has `status: "completed"` or `status: "skipped"`. If it is still `"pending"` or `"in_progress"`, you MUST complete it first before moving on.
10
-
11
- 2. **Starting a skill**: Use the update script to set the current step to `status: "in_progress"`.
12
-
13
- 3. **After each skill completes**: Use the update script to set the current step to `status: "completed"`.
14
-
15
- 4. **On failure**: Use the update script to set the step to `status: "failed"` and continue to the next step if possible, or halt and write failure-log.md.
7
+ ### Checkpoint Update Helper
16
8
 
17
- 5. **On session exit**: The checkpoint file reflects your actual progress. Do NOT manually set future steps to "completed".
18
-
19
- ### Checkpoint Update Pattern
20
-
21
- **IMPORTANT: NEVER hand-write or edit `workflow-checkpoint.json` directly. Always use the update script.**
22
-
23
- After completing each skill, run:
9
+ Use this helper to update checkpoint status. Do not hand-edit `workflow-checkpoint.json` directly.
24
10
 
25
11
  ```bash
26
- python3 $PIPELINE_DIR/scripts/update-checkpoint.py \
12
+ python3 .prizmkit/dev-pipeline/scripts/update-checkpoint.py \
27
13
  --checkpoint-path {{CHECKPOINT_PATH}} \
28
- --step <SKILL_NAME> \
29
- --status completed
14
+ --step <step-id-or-skill-name> \
15
+ --status <in_progress|completed|failed|skipped> \
16
+ --note "<optional note>"
30
17
  ```
31
18
 
32
- For example, after completing `prizmkit-implement`:
33
- ```bash
34
- python3 $PIPELINE_DIR/scripts/update-checkpoint.py \
35
- --checkpoint-path {{CHECKPOINT_PATH}} \
36
- --step prizmkit-implement \
37
- --status completed
38
- ```
19
+ - Use the step `skill` value such as `prizmkit-implement`, or the step id such as `S04`.
20
+ - Omit `--note` when there is no useful failure or handoff note.
39
21
 
40
- Before starting the next skill:
41
- ```bash
42
- python3 $PIPELINE_DIR/scripts/update-checkpoint.py \
43
- --checkpoint-path {{CHECKPOINT_PATH}} \
44
- --step <NEXT_SKILL_NAME> \
45
- --status in_progress
46
- ```
22
+ ### Rules
47
23
 
48
- On failure:
49
- ```bash
50
- python3 $PIPELINE_DIR/scripts/update-checkpoint.py \
51
- --checkpoint-path {{CHECKPOINT_PATH}} \
52
- --step <SKILL_NAME> \
53
- --status failed \
54
- --note "brief failure reason"
55
- ```
24
+ 1. **Before each skill**: Read `workflow-checkpoint.json`, verify the previous step has `status: "completed"` or `status: "skipped"`. If it is still `"pending"` or `"in_progress"`, complete it first before moving on.
56
25
 
57
- The script outputs JSON: `{"ok": true, ...}` on success, `{"ok": false, "error": "..."}` on failure.
26
+ 2. **Starting a skill**: Use the checkpoint update helper to mark the current step as `status: "in_progress"`.
58
27
 
59
- ### Resume Behavior
28
+ 3. **After each skill completes**: Use the checkpoint update helper to mark the current step as `status: "completed"`.
60
29
 
61
- **Checkpoint is the primary source of truth for resume.** On retry sessions:
30
+ 4. **On failure**: Use the checkpoint update helper to mark the step as `status: "failed"`, write `failure-log.md` with the reason, and continue only when the workflow rules allow it.
62
31
 
63
- 1. Read `workflow-checkpoint.json` steps already `"completed"` or `"skipped"` are skipped
64
- 2. Start from the first `"pending"` or `"in_progress"` step
65
- 3. If `failure-log.md` exists, read it for diagnostic context (why the previous session failed, what approach to try differently) — but do NOT use it to determine which step to resume from
66
- 4. If `workflow-checkpoint.json` is missing or corrupted, fall back to `failure-log.md` + the resume phase as the legacy mechanism
32
+ 5. **On session exit**: The checkpoint file reflects your actual progress. Do NOT manually set future steps to `"completed"`.
@@ -6,18 +6,12 @@ You are running in **headless non-interactive mode** with a FINITE context windo
6
6
 
7
7
  1. **context-snapshot.md is your single source of truth** — After it is built, ALWAYS read context-snapshot.md instead of re-reading individual source files
8
8
  2. **Never re-read your own writes** — After you create/modify a file, do NOT read it back to verify. Trust your write was correct.
9
- 3. **Stay focused** — Do NOT explore code unrelated to this feature. No curiosity-driven reads.
10
- 4. **One task at a time** Complete and test one task before starting the next.
11
- 5. **Minimize tool output** — Never load full command output into context. First capture to a temp file (`cmd 2>&1 | tee /tmp/out.txt | tail -20`), then scan the head/tail to identify relevant fields, and use targeted filtering (`grep`, `sed`, `awk`) to extract only the information needed for the current task. Only read the filtered result — never the raw full output.
12
- 6. **No intermediate commits** — Do NOT run `git add`/`git commit` during implementation phases. All changes are committed once at the end via `/prizmkit-committer`.
13
- 7. **Capture test output once** — When running test suites during the post-review gate, capture with `<test-command> 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.
14
- 8. **Scaffold / generated file awareness (CRITICAL)** — When you run a scaffolding tool or package manager init command (`npm init`, `npx create-*`, `vite create`, `cargo init`, `go mod init`, `rails new`, `django-admin startproject`, `npx shadcn-ui init`, etc.), the output files are **generated boilerplate**. You MUST:
15
- - Identify and mentally tag all files created by the tool as "scaffold files"
16
- - Record the list of scaffold-generated files in context-snapshot.md under a `### Scaffold Files (do not re-read)` section
17
- - **NEVER re-read scaffold files** after initial creation. Their content is standard boilerplate — you already know what they contain from the tool that generated them
18
- - If you need to modify a scaffold file, make the edit directly without reading it first (you know the standard template content)
19
- - This applies equally to `node_modules/`, `package-lock.json`, generated config files (`tsconfig.json`, `vite.config.ts`, `tailwind.config.js`, `.eslintrc`, etc.) produced by init commands
20
- - When passing context to subagents, explicitly tell them which files are scaffold-generated so they skip reading them too
9
+ 3. **Never re-read unmodified files** — Once you have read a file into context, do NOT read it again unless it was modified by an Edit/Write operation after your last read. Use `grep -n '<pattern>' <file>` or `sed -n '<start>,<end>p' <file>` for targeted line lookups instead of full-file Read. Before issuing a Read, ask yourself: "Have I read this file before, and has it changed since?" If the answer is "no, it hasn't changed" — do NOT read it. This applies to all files including those summarized in context-snapshot.md Section 4. Subagents (Critic, Reviewer) must receive context-snapshot.md and rely on it rather than independently re-reading the same files the orchestrator already read.
10
+ 4. **Stay focused** Do NOT explore code unrelated to this feature. No curiosity-driven reads.
11
+ 5. **One task at a time** Complete and test one task before starting the next.
12
+ 6. **Minimize tool output** — Never load full command output into context. First capture to a temp file (`cmd 2>&1 | tee /tmp/out.txt | tail -20`), then scan the head/tail to identify relevant fields, and use targeted filtering (`grep`, `sed`, `awk`) to extract only the information needed for the current task. Only read the filtered result never the raw full output.
13
+ 7. **No intermediate commits** — Do NOT run `git add`/`git commit` during implementation phases. All changes are committed once at the end via `/prizmkit-committer`.
14
+ 8. **Capture test output once** — When running test suites during the post-review gate, capture with `<test-command> 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.
21
15
  9. **Package version verification (HARD CONSTRAINT — BLOCKING)** — Before writing ANY dependency version in `package.json`, `requirements.txt`, `Cargo.toml`, `go.mod`, `Gemfile`, `pyproject.toml`, or any other dependency manifest:
22
16
  - You MUST verify the real version exists by querying the package registry first:
23
17
  - npm/Node.js: `npm view <package> dist-tags.latest 2>/dev/null`
@@ -32,4 +26,4 @@ You are running in **headless non-interactive mode** with a FINITE context windo
32
26
  - **This is a BLOCKING gate**: do NOT run `npm install` / `pip install` / `cargo build` / `go mod tidy` until ALL versions in the manifest have been verified or use open constraints
33
27
  - Batch version lookups: query multiple packages in parallel to save time (e.g., run multiple `npm view` commands concurrently)
34
28
  10. **Build artifact hygiene** — After any build/compile command (`go build`, `npm run build`, `tsc`, etc.), ensure the output binary, build directory, generated bundle, or cache directory is ignored by git before the commit phase. Never commit compiled binaries, build output, or generated artifacts.
35
- 11. **Read offset safety (BLOCKING)** — If Read returns "shorter than offset"/"File is empty"/"Wasted call" — do NOT retry same offset. Run `wc -l <file>` to get real line count, then `sed -n` for exact range. 2 consecutive offset errors → STOP Reading that file. Never guess offsets — `grep -n '<anchor>'` first.
29
+ 11. **Read offset safety (BLOCKING)** — If Read returns "shorter than offset"/"File is empty"/"Wasted call" — do NOT retry same offset. Run `wc -l <file>` to get real line count, then `sed -n '<start>,<end>p' <file>` for exact range. 2 consecutive offset errors → STOP Reading that file. Never guess offsets — `grep -n '<anchor>'` first.
@@ -14,8 +14,4 @@ Use this material according to the following priority:
14
14
  ### App Global Context
15
15
 
16
16
  {{GLOBAL_CONTEXT}}
17
-
18
- ### Project Conventions
19
-
20
- > Read {{PLATFORM_CONVENTIONS}} for project-level coding standards and architecture decisions.
21
17
  </feature-context>
@@ -141,10 +141,3 @@ Append results to `context-snapshot.md`:
141
141
  If verification fails, log the failure details but continue to commit. Failures do NOT block the commit, but you MUST attempt verification and MUST clean up the dev server.
142
142
 
143
143
 
144
- **Checkpoint update**: Run the update script to set step `browser-verification` to `"completed"`:
145
- ```bash
146
- python3 $PIPELINE_DIR/scripts/update-checkpoint.py \
147
- --checkpoint-path {{CHECKPOINT_PATH}} \
148
- --step browser-verification \
149
- --status completed
150
- ```
@@ -121,10 +121,3 @@ Append results to `context-snapshot.md`:
121
121
  If verification fails, log the failure details but continue to commit. Failures do NOT block the commit, but you MUST attempt verification and MUST clean up the dev server.
122
122
 
123
123
 
124
- **Checkpoint update**: Run the update script to set step `browser-verification` to `"completed"`:
125
- ```bash
126
- python3 $PIPELINE_DIR/scripts/update-checkpoint.py \
127
- --checkpoint-path {{CHECKPOINT_PATH}} \
128
- --step browser-verification \
129
- --status completed
130
- ```
@@ -143,10 +143,3 @@ Browser cleanup: confirmed
143
143
  If verification fails, log the failure details but continue to commit. Failures do NOT block the commit, but you MUST attempt verification and MUST clean up the dev server.
144
144
 
145
145
 
146
- **Checkpoint update**: Run the update script to set step `browser-verification` to `"completed"`:
147
- ```bash
148
- python3 $PIPELINE_DIR/scripts/update-checkpoint.py \
149
- --checkpoint-path {{CHECKPOINT_PATH}} \
150
- --step browser-verification \
151
- --status completed
152
- ```
@@ -55,20 +55,6 @@ Rules for writing completion notes:
55
55
  - If this feature has no downstream dependents, still write the summary (it serves as documentation)
56
56
 
57
57
 
58
- **Checkpoint update**: After `/prizmkit-retrospective` completes, run the update script to set step `prizmkit-retrospective` to `"completed"`:
59
- ```bash
60
- python3 $PIPELINE_DIR/scripts/update-checkpoint.py \
61
- --checkpoint-path {{CHECKPOINT_PATH}} \
62
- --step prizmkit-retrospective \
63
- --status completed
64
- ```
65
- After `/prizmkit-committer` completes, set step `prizmkit-committer` to `"completed"`:
66
- ```bash
67
- python3 $PIPELINE_DIR/scripts/update-checkpoint.py \
68
- --checkpoint-path {{CHECKPOINT_PATH}} \
69
- --step prizmkit-committer \
70
- --status completed
71
- ```
72
58
 
73
59
  ### TERMINAL STOP — Commit Completed
74
60
 
@@ -48,20 +48,6 @@ Rules for writing completion notes:
48
48
  - If this feature has no downstream dependents, still write the summary (it serves as documentation)
49
49
 
50
50
 
51
- **Checkpoint update**: After `/prizmkit-retrospective` completes, run the update script to set step `prizmkit-retrospective` to `"completed"`:
52
- ```bash
53
- python3 $PIPELINE_DIR/scripts/update-checkpoint.py \
54
- --checkpoint-path {{CHECKPOINT_PATH}} \
55
- --step prizmkit-retrospective \
56
- --status completed
57
- ```
58
- After `/prizmkit-committer` completes, set step `prizmkit-committer` to `"completed"`:
59
- ```bash
60
- python3 $PIPELINE_DIR/scripts/update-checkpoint.py \
61
- --checkpoint-path {{CHECKPOINT_PATH}} \
62
- --step prizmkit-committer \
63
- --status completed
64
- ```
65
51
 
66
52
  ### TERMINAL STOP — Commit Completed
67
53
 
@@ -22,10 +22,3 @@
22
22
  - <trap entries extracted from L1/L2 docs>
23
23
 
24
24
 
25
- **Checkpoint update**: Run the update script to set step `context-snapshot` to `"completed"`:
26
- ```bash
27
- python3 $PIPELINE_DIR/scripts/update-checkpoint.py \
28
- --checkpoint-path {{CHECKPOINT_PATH}} \
29
- --step context-snapshot \
30
- --status completed
31
- ```
@@ -10,5 +10,3 @@ If MISSING — build it now:
10
10
  3. Write `.prizmkit/specs/{{FEATURE_SLUG}}/context-snapshot.md`:
11
11
  - **Section 1 — Feature Brief**: 2-3 line feature description from Task Contract
12
12
  - **Section 2 — Verification Gates**: gate checklist from Task Contract
13
- - **Section 3 — Key TRAPS & RULES**: extract only relevant TRAPS/RULES from prizm-docs that apply to files in this scope. Do NOT copy full L0/L1/L2 content.
14
- - **Section 4 — File Manifest**: file path, why needed, key interfaces. Format: Files to Modify | Files for Reference tables.
@@ -10,10 +10,3 @@
10
10
  |------|-----------|----------------|
11
11
 
12
12
 
13
- **Checkpoint update**: Run the update script to set step `context-snapshot` to `"completed"`:
14
- ```bash
15
- python3 $PIPELINE_DIR/scripts/update-checkpoint.py \
16
- --checkpoint-path {{CHECKPOINT_PATH}} \
17
- --step context-snapshot \
18
- --status completed
19
- ```
@@ -26,13 +26,18 @@ If CRITIC:MISSING — skip this phase entirely and proceed. Log: "Critic agent n
26
26
  | subagent_type | prizm-dev-team-critic |
27
27
  | mode | plan |
28
28
  | run_in_background | false |
29
+ | isolation | default/no worktree; do not request worktree isolation |
30
+
31
+ No-worktree boundary: this prevents AI tool-created `.claude/worktrees/...` subagent worktrees. It does not disable PrizmKit pipeline-managed linked git worktrees under `.prizmkit/state/worktrees/...`, which are controlled separately by `USE_WORKTREE`.
29
32
 
30
33
  **Prompt**:
31
34
  > {{AGENT_PROMPT_CRITIC_PLAN_CHALLENGE}}
32
35
 
33
36
  **If {{CRITIC_COUNT}} = 3 → Multi-Critic Voting** (skip Single Critic above):
34
37
 
35
- Spawn 3 Critic agents in PARALLEL (issue all 3 Agent tool calls in the SAME message turn). Do NOT wait for one before spawning the next. Each with mode="plan", run_in_background=false:
38
+ Spawn 3 Critic agents in PARALLEL (issue all 3 Agent tool calls in the SAME message turn). Do NOT wait for one before spawning the next. Each with mode="plan", run_in_background=false, and default/no worktree isolation; do not request worktree isolation.
39
+
40
+ No-worktree boundary: default/no worktree isolation prevents AI tool-created `.claude/worktrees/...` subagent worktrees. It does not disable PrizmKit pipeline-managed linked git worktrees under `.prizmkit/state/worktrees/...`, which are controlled separately by `USE_WORKTREE`.
36
41
 
37
42
  Critic-A prompt (append to base prompt above):
38
43
  > "**Focus Lens: Architecture & Scalability.** Prioritize: architectural pattern fit, scalability implications, over-engineering risks, component boundary design.
@@ -54,10 +59,3 @@ After all critics return, read all 3 reports:
54
59
  **CP-2.5**: Plan challenges reviewed and resolved.
55
60
 
56
61
 
57
- **Checkpoint update**: Run the update script to set step `critic-plan-review` to `"completed"`:
58
- ```bash
59
- python3 $PIPELINE_DIR/scripts/update-checkpoint.py \
60
- --checkpoint-path {{CHECKPOINT_PATH}} \
61
- --step critic-plan-review \
62
- --status completed
63
- ```
@@ -12,6 +12,9 @@ If CRITIC:MISSING — skip this phase entirely and proceed. Log: "Critic agent n
12
12
  | subagent_type | prizm-dev-team-critic |
13
13
  | mode | plan |
14
14
  | run_in_background | false |
15
+ | isolation | default/no worktree; do not request worktree isolation |
16
+
17
+ No-worktree boundary: this prevents AI tool-created `.claude/worktrees/...` subagent worktrees. It does not disable PrizmKit pipeline-managed linked git worktrees under `.prizmkit/state/worktrees/...`, which are controlled separately by `USE_WORKTREE`.
15
18
 
16
19
  **Prompt**:
17
20
  > {{AGENT_PROMPT_CRITIC_PLAN_CHALLENGE}}
@@ -33,10 +36,3 @@ Wait for Critic to return.
33
36
  **CP-2.5**: Plan challenges reviewed and resolved.
34
37
 
35
38
 
36
- **Checkpoint update**: Run the update script to set step `critic-plan-review` to `"completed"`:
37
- ```bash
38
- python3 $PIPELINE_DIR/scripts/update-checkpoint.py \
39
- --checkpoint-path {{CHECKPOINT_PATH}} \
40
- --step critic-plan-review \
41
- --status completed
42
- ```
@@ -43,10 +43,3 @@ For each Verification Gate from the Task Contract, write one evidence line to Im
43
43
 
44
44
  **CP-2**: All tasks `[x]`, Implementation Log written with Gate Evidence, and blocked gates documented in `failure-log.md`. Test execution is deferred until after code review.
45
45
 
46
- **Checkpoint update**:
47
- ```bash
48
- python3 $PIPELINE_DIR/scripts/update-checkpoint.py \
49
- --checkpoint-path {{CHECKPOINT_PATH}} \
50
- --step prizmkit-implement \
51
- --status completed
52
- ```
@@ -43,10 +43,3 @@ For each Verification Gate from the Task Contract, write one evidence line to Im
43
43
 
44
44
  **CP-2**: All tasks `[x]`, Implementation Log written with Gate Evidence, and blocked gates documented in `failure-log.md`. Test execution is deferred until after code review.
45
45
 
46
- **Checkpoint update**:
47
- ```bash
48
- python3 $PIPELINE_DIR/scripts/update-checkpoint.py \
49
- --checkpoint-path {{CHECKPOINT_PATH}} \
50
- --step prizmkit-implement \
51
- --status completed
52
- ```
@@ -21,10 +21,3 @@
21
21
  **CP-2**: Implementation may proceed only when all tasks are `[x]` and blocked gates are documented in `failure-log.md`. Test execution is deferred until after code review.
22
22
 
23
23
 
24
- **Checkpoint update**: Run the update script to set step `prizmkit-implement` to `"completed"`:
25
- ```bash
26
- python3 $PIPELINE_DIR/scripts/update-checkpoint.py \
27
- --checkpoint-path {{CHECKPOINT_PATH}} \
28
- --step prizmkit-implement \
29
- --status completed
30
- ```
@@ -6,22 +6,15 @@ ls .prizmkit/specs/{{FEATURE_SLUG}}/plan.md 2>/dev/null
6
6
 
7
7
  If missing, run `/prizmkit-plan` with `artifact_dir=.prizmkit/specs/{{FEATURE_SLUG}}/` to generate `plan.md`:
8
8
  - The plan.md should include: architecture — components, interfaces, data flow, files to create/modify, testing approach, and a Tasks section with `[ ]` checkboxes ordered by dependency.
9
- - Resolve any `[NEEDS CLARIFICATION]` markers using the feature description do NOT pause for interactive input.
9
+ - Resolve uncertain requirements from the feature description, existing code, and conservative existing-project patterns.
10
10
 
11
11
  **Database Design Gate** (if feature involves data persistence — new tables, schema changes, new entities):
12
12
  Before proceeding past CP-1, verify:
13
13
  1. Plan.md Data Model section references existing schema/model files (scan for `*.prisma`, `*.sql`, `migrations/`, `models/`, `*.entity.*` files; read them if not already in context-snapshot)
14
14
  2. All new tables/fields follow existing naming conventions, ID strategy, timestamp patterns, and constraint style
15
- 3. No `[NEEDS CLARIFICATION]` remains in Data Model section — resolve by reading existing code and making a conservative choice that matches existing patterns. Document the resolution in plan.md.
15
+ 3. No unresolved data model uncertainty remains in the Data Model section — resolve by reading existing code and making a conservative choice that matches existing patterns. Document the resolution in plan.md.
16
16
  4. If a DB design decision genuinely cannot be resolved from existing code alone, document the assumption made and flag it in the Implementation Log for user review.
17
17
 
18
18
  **CP-1**: plan.md exists with Tasks section.
19
19
 
20
20
 
21
- **Checkpoint update**: Run the update script to set step `prizmkit-plan` to `"completed"`:
22
- ```bash
23
- python3 $PIPELINE_DIR/scripts/update-checkpoint.py \
24
- --checkpoint-path {{CHECKPOINT_PATH}} \
25
- --step prizmkit-plan \
26
- --status completed
27
- ```
@@ -7,7 +7,7 @@ ls .prizmkit/specs/{{FEATURE_SLUG}}/ 2>/dev/null
7
7
  If plan.md missing, run `/prizmkit-plan` with `artifact_dir=.prizmkit/specs/{{FEATURE_SLUG}}/`:
8
8
  - Pass the Objective and Verification Gates from the Task Contract as input
9
9
  - The plan.md should include: key components, data flow, files to create/modify, and a Tasks section with `[ ]` checkboxes (each task = one implementable unit). Keep under 80 lines.
10
- - Resolve any `[NEEDS CLARIFICATION]` markers using the feature description do NOT pause for interactive input.
10
+ - Resolve uncertain requirements from the feature description, existing code, and conservative existing-project patterns.
11
11
 
12
12
  **Database Design Gate** (if feature involves data persistence — new tables, schema changes, new entities):
13
13
  Before proceeding past CP-1:
@@ -18,10 +18,3 @@ Before proceeding past CP-1:
18
18
  **CP-1**: plan.md exists with Tasks section.
19
19
 
20
20
 
21
- **Checkpoint update**: Run the update script to set step `prizmkit-plan` to `"completed"`:
22
- ```bash
23
- python3 $PIPELINE_DIR/scripts/update-checkpoint.py \
24
- --checkpoint-path {{CHECKPOINT_PATH}} \
25
- --step prizmkit-plan \
26
- --status completed
27
- ```