prizmkit 1.0.111 → 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.
@@ -1,5 +1,5 @@
1
1
  {
2
- "frameworkVersion": "1.0.111",
3
- "bundledAt": "2026-03-26T05:28:57.400Z",
4
- "bundledFrom": "dacaffd"
2
+ "frameworkVersion": "1.0.112",
3
+ "bundledAt": "2026-03-26T06:44:08.682Z",
4
+ "bundledFrom": "a59fa27"
5
5
  }
@@ -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 -A 2>/dev/null || true
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 -A 2>/dev/null || true
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. **Incremental commits when possible** — If a feature has multiple independent tasks, commit after each completed task rather than one big commit at the end.
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 all doc changes: `git add .prizm-docs/`
155
+ 3. Stage doc changes: `git add .prizm-docs/`
156
+ ⚠️ Do NOT commit here. Only stage.
149
157
 
150
- Doc maintenance pass condition (pipeline-enforced): `.prizm-docs/` changed in the final commit.
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
- **4b. Commit** — Run `/prizmkit-committer` → `feat({{FEATURE_ID}}): {{FEATURE_TITLE}}`, do NOT push
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
- **4c. Final Clean Check** — Verify repository is clean:
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
- - Before exiting, commit your feature code via `/prizmkit-committer`the pipeline runner auto-commits any remaining files after session exit
208
- - When staging leftover files in the final clean check, always use explicit file names NEVER use `git add -A`
212
+ - Do NOT run `git add`/`git commit` during Phase 1-3all changes are committed once in Phase 4
213
+ - If any files remain after the commit, amend the existing commitdo 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. **Incremental commits when possible** — If a feature has multiple independent tasks, commit after each completed task rather than one big commit at the end.
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 all doc changes: `git add .prizm-docs/`
197
+ 3. Stage doc changes: `git add .prizm-docs/`
198
+ ⚠️ Do NOT commit here. Only stage.
196
199
 
197
- Doc maintenance pass condition (pipeline-enforced): `.prizm-docs/` changed in the final commit.
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
- **5b. Commit** — Run `/prizmkit-committer` → `feat({{FEATURE_ID}}): {{FEATURE_TITLE}}`, do NOT push
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
- **5c. Final Clean Check** — Verify repository is clean:
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
- - Before exiting, commit your feature code via `/prizmkit-committer`the pipeline runner auto-commits any remaining files after session exit
259
- - When staging leftover files in the final clean check, always use explicit file names NEVER use `git add -A`
258
+ - Do NOT run `git add`/`git commit` during Phase 1-4all changes are committed once in Phase 5
259
+ - If any files remain after the commit, amend the existing commitdo 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. **Incremental commits when possible** — If a feature has multiple independent tasks, commit after each completed task rather than one big commit at the end.
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 6c** (do NOT run /prizmkit-committer, do NOT run git reset, do NOT stage or unstage anything). Proceed directly to Final Clean Check.
365
- - If no existing commit → proceed normally with 6a6c.
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 6b6d.
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 all doc changes: `git add .prizm-docs/`
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.** Run `/prizmkit-committer` `feat({{FEATURE_ID}}): {{FEATURE_TITLE}}`, do NOT push
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 status --short
378
+ git add <specific-files-created-or-modified>
379
+ git add .prizm-docs/
385
380
  ```
386
381
 
387
- **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`.
388
-
389
- 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:
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 add <specific-file-1> <specific-file-2>
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
- - Before exiting, commit your feature code via `/prizmkit-committer`the pipeline runner auto-commits any remaining files after session exit
438
- - When staging leftover files in the final clean check, always use explicit file names NEVER use `git add -A`
435
+ - Do NOT run `git add`/`git commit` during Phase 1-5all changes are committed once in Phase 6
436
+ - If any files remain after the commit, amend the existing commitdo 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
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.0.111",
2
+ "version": "1.0.112",
3
3
  "skills": {
4
4
  "prizm-kit": {
5
5
  "description": "Full-lifecycle dev toolkit. Covers spec-driven development, Prizm context docs, code quality, debugging, deployment, and knowledge management.",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "prizmkit",
3
- "version": "1.0.111",
3
+ "version": "1.0.112",
4
4
  "description": "Create a new PrizmKit-powered project with clean initialization — no framework dev files, just what you need.",
5
5
  "type": "module",
6
6
  "bin": {