prizmkit 1.1.113 → 1.1.115

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 (91) hide show
  1. package/bundled/VERSION.json +3 -3
  2. package/bundled/dev-pipeline/.env.example +0 -1
  3. package/bundled/dev-pipeline/README.md +4 -6
  4. package/bundled/dev-pipeline/SCHEMA_ANALYSIS.md +40 -518
  5. package/bundled/dev-pipeline/assets/prizm-dev-team-integration.md +27 -99
  6. package/bundled/dev-pipeline/prizmkit_runtime/checkpoint_state.py +283 -0
  7. package/bundled/dev-pipeline/prizmkit_runtime/daemon.py +3 -13
  8. package/bundled/dev-pipeline/prizmkit_runtime/heartbeat.py +0 -1
  9. package/bundled/dev-pipeline/prizmkit_runtime/runner_classification.py +25 -31
  10. package/bundled/dev-pipeline/prizmkit_runtime/runner_models.py +0 -8
  11. package/bundled/dev-pipeline/prizmkit_runtime/runner_prompts.py +0 -3
  12. package/bundled/dev-pipeline/prizmkit_runtime/runners.py +13 -7
  13. package/bundled/dev-pipeline/prizmkit_runtime/sessions.py +13 -1
  14. package/bundled/dev-pipeline/scripts/continuation.py +8 -40
  15. package/bundled/dev-pipeline/scripts/generate-bootstrap-prompt.py +76 -261
  16. package/bundled/dev-pipeline/scripts/generate-bugfix-prompt.py +16 -35
  17. package/bundled/dev-pipeline/scripts/generate-refactor-prompt.py +15 -34
  18. package/bundled/dev-pipeline/scripts/init-bugfix-pipeline.py +6 -0
  19. package/bundled/dev-pipeline/scripts/init-pipeline.py +6 -0
  20. package/bundled/dev-pipeline/scripts/init-refactor-pipeline.py +6 -0
  21. package/bundled/dev-pipeline/scripts/parse-stream-progress.py +1 -1
  22. package/bundled/dev-pipeline/scripts/prompt_framework.py +114 -63
  23. package/bundled/dev-pipeline/scripts/update-bug-status.py +3 -7
  24. package/bundled/dev-pipeline/scripts/update-checkpoint.py +54 -22
  25. package/bundled/dev-pipeline/scripts/update-feature-status.py +3 -7
  26. package/bundled/dev-pipeline/scripts/update-refactor-status.py +3 -7
  27. package/bundled/dev-pipeline/scripts/utils.py +14 -40
  28. package/bundled/dev-pipeline/templates/bootstrap-prompt.md +1 -1
  29. package/bundled/dev-pipeline/templates/bootstrap-tier1.md +1 -1
  30. package/bundled/dev-pipeline/templates/bootstrap-tier2.md +9 -91
  31. package/bundled/dev-pipeline/templates/bootstrap-tier3.md +9 -66
  32. package/bundled/dev-pipeline/templates/bug-fix-list-schema.json +10 -16
  33. package/bundled/dev-pipeline/templates/feature-list-schema.json +32 -17
  34. package/bundled/dev-pipeline/templates/refactor-bootstrap-prompt.md +0 -16
  35. package/bundled/dev-pipeline/templates/refactor-list-schema.json +10 -16
  36. package/bundled/dev-pipeline/templates/sections/bugfix-session-context.md +1 -1
  37. package/bundled/dev-pipeline/templates/sections/context-budget-rules.md +1 -1
  38. package/bundled/dev-pipeline/templates/sections/critical-paths-agent.md +0 -1
  39. package/bundled/dev-pipeline/templates/sections/critical-paths-full.md +0 -1
  40. package/bundled/dev-pipeline/templates/sections/phase-implement-agent.md +1 -1
  41. package/bundled/dev-pipeline/templates/sections/phase-implement-full.md +1 -1
  42. package/bundled/dev-pipeline/templates/sections/refactor-session-context.md +1 -1
  43. package/bundled/dev-pipeline/tests/conftest.py +1 -0
  44. package/bundled/dev-pipeline/tests/test_checkpoint_state.py +164 -0
  45. package/bundled/dev-pipeline/tests/test_generate_bootstrap_prompt.py +48 -76
  46. package/bundled/dev-pipeline/tests/test_generate_bugfix_prompt.py +25 -3
  47. package/bundled/dev-pipeline/tests/test_generate_refactor_prompt.py +25 -5
  48. package/bundled/dev-pipeline/tests/test_python_runner_parity.py +128 -10
  49. package/bundled/dev-pipeline/tests/test_runtime_helper.py +23 -0
  50. package/bundled/dev-pipeline/tests/test_unified_cli.py +40 -9
  51. package/bundled/skills/_metadata.json +1 -1
  52. package/bundled/skills/app-planner/SKILL.md +18 -2
  53. package/bundled/skills/app-planner/references/generated-plan-review.md +67 -0
  54. package/bundled/skills/bug-planner/SKILL.md +24 -28
  55. package/bundled/skills/bug-planner/references/generated-plan-review.md +63 -0
  56. package/bundled/skills/bug-planner/references/verification.md +29 -0
  57. package/bundled/skills/bug-planner/scripts/validate-bug-list.py +8 -0
  58. package/bundled/skills/bugfix-pipeline-launcher/SKILL.md +2 -2
  59. package/bundled/skills/bugfix-pipeline-launcher/references/configuration.md +1 -6
  60. package/bundled/skills/feature-pipeline-launcher/SKILL.md +6 -12
  61. package/bundled/skills/feature-pipeline-launcher/references/configuration.md +0 -1
  62. package/bundled/skills/feature-planner/SKILL.md +30 -34
  63. package/bundled/skills/feature-planner/assets/planning-guide.md +2 -2
  64. package/bundled/skills/feature-planner/references/generated-plan-review.md +63 -0
  65. package/bundled/skills/feature-planner/scripts/validate-and-generate.py +8 -11
  66. package/bundled/skills/prizmkit-init/SKILL.md +2 -2
  67. package/bundled/skills/prizmkit-plan/SKILL.md +15 -1
  68. package/bundled/skills/prizmkit-plan/references/review-plan-spec-loop.md +101 -0
  69. package/bundled/skills/prizmkit-prizm-docs/references/op-init.md +1 -1
  70. package/bundled/skills/refactor-pipeline-launcher/SKILL.md +5 -5
  71. package/bundled/skills/refactor-pipeline-launcher/references/configuration.md +2 -7
  72. package/bundled/skills/refactor-planner/SKILL.md +30 -34
  73. package/bundled/skills/refactor-planner/references/fast-path.md +2 -2
  74. package/bundled/skills/refactor-planner/references/generated-plan-review.md +63 -0
  75. package/bundled/skills/refactor-planner/scripts/validate-and-generate-refactor.py +9 -0
  76. package/bundled/team/prizm-dev-team.json +2 -9
  77. package/package.json +1 -1
  78. package/src/clean.js +60 -7
  79. package/src/config.js +61 -20
  80. package/src/gitignore-template.js +6 -3
  81. package/src/manifest.js +6 -2
  82. package/src/platforms.js +14 -0
  83. package/src/scaffold.js +198 -34
  84. package/src/upgrade.js +5 -2
  85. package/bundled/agents/prizm-dev-team-critic.md +0 -179
  86. package/bundled/dev-pipeline/templates/agent-prompts/critic-plan-challenge.md +0 -8
  87. package/bundled/dev-pipeline/templates/sections/bugfix-phase-critic.md +0 -22
  88. package/bundled/dev-pipeline/templates/sections/phase-critic-plan-full.md +0 -61
  89. package/bundled/dev-pipeline/templates/sections/phase-critic-plan.md +0 -38
  90. package/bundled/dev-pipeline/templates/sections/refactor-phase-critic.md +0 -22
  91. package/bundled/skills/bug-planner/references/critic-and-verification.md +0 -44
@@ -99,6 +99,29 @@ class TestPlatformExecutableAndPortHelpers:
99
99
  assert payload["platform"] == "codex"
100
100
  assert payload["path"].endswith(".agents/skills/playwright-cli")
101
101
 
102
+ def test_read_platform_conventions_uses_resolved_main_memory_file(self, tmp_path, monkeypatch):
103
+ from scripts.utils import read_platform_conventions
104
+
105
+ project = tmp_path / "project"
106
+ (project / ".prizmkit").mkdir(parents=True)
107
+ (project / ".prizmkit" / "config.json").write_text(
108
+ json.dumps({"platform": "codex", "ai_cli": "codex"}), encoding="utf-8"
109
+ )
110
+ (project / "AGENTS.md").write_text("### Project Conventions\n", encoding="utf-8")
111
+ (project / "AGENTS.private.md").write_text("framework protocol\n", encoding="utf-8")
112
+ monkeypatch.delenv("PRIZMKIT_PLATFORM", raising=False)
113
+
114
+ assert read_platform_conventions(project) == "`AGENTS.md`"
115
+
116
+ (project / ".prizmkit" / "config.json").write_text(
117
+ json.dumps({"platform": "codebuddy", "ai_cli": "cbc"}), encoding="utf-8"
118
+ )
119
+ (project / "CODEBUDDY.md").write_text("### Infrastructure\n", encoding="utf-8")
120
+ (project / "CODEBUDDY.private.md").write_text("framework protocol\n", encoding="utf-8")
121
+
122
+ assert read_platform_conventions(project) == "`CODEBUDDY.md`"
123
+ assert ".private.md" not in read_platform_conventions(project)
124
+
102
125
  def test_codebuddy_cli_env_wins_over_filesystem_markers(self, tmp_path, monkeypatch):
103
126
  from prizmkit_runtime.platform_detection import resolve_platform
104
127
 
@@ -793,9 +793,6 @@ def test_session_preamble_writes_redacted_start_command_for_all_launch_profiles(
793
793
 
794
794
  def test_headless_subagent_prompt_guidance_keeps_no_worktree_boundary_visible():
795
795
  guidance_files = [
796
- REPO_ROOT / "dev-pipeline" / "templates" / "sections" / "phase-critic-plan.md",
797
- REPO_ROOT / "dev-pipeline" / "templates" / "sections" / "phase-critic-plan-full.md",
798
- REPO_ROOT / "dev-pipeline" / "templates" / "agent-prompts" / "critic-plan-challenge.md",
799
796
  REPO_ROOT / "dev-pipeline" / "templates" / "bootstrap-tier2.md",
800
797
  REPO_ROOT / "dev-pipeline" / "templates" / "bootstrap-tier3.md",
801
798
  REPO_ROOT / "core" / "skills" / "prizmkit-skill" / "prizmkit-code-review" / "SKILL.md",
@@ -1029,12 +1026,13 @@ def test_compact_progress_line_hides_stale_until_no_progress(tmp_path):
1029
1026
 
1030
1027
  session_log = tmp_path / "session.log"
1031
1028
  progress = tmp_path / "progress.json"
1029
+ checkpoint = tmp_path / "workflow-checkpoint.json"
1032
1030
  progress.write_text(
1033
1031
  json.dumps(
1034
1032
  {
1035
1033
  "child_total_bytes": 2 * 1024 * 1024,
1036
1034
  "subagent_spawn_count": 5,
1037
- "current_phase": "retrospective",
1035
+ "current_phase": "stream-derived-phase",
1038
1036
  "current_tool": "Read",
1039
1037
  "message_count": 465,
1040
1038
  "total_tool_calls": 412,
@@ -1042,20 +1040,28 @@ def test_compact_progress_line_hides_stale_until_no_progress(tmp_path):
1042
1040
  ),
1043
1041
  encoding="utf-8",
1044
1042
  )
1043
+ checkpoint.write_text(
1044
+ json.dumps({"steps": [
1045
+ {"id": "S01", "skill": "plan", "name": "Plan", "status": "completed"},
1046
+ {"id": "S02", "skill": "retro", "name": "Retrospective", "status": "pending", "depends_on": "S01"},
1047
+ ]}),
1048
+ encoding="utf-8",
1049
+ )
1045
1050
  running = HeartbeatState(last_seen_epoch=1.0, stale=False, details="progress", stale_seconds=0, log_size=4 * 1024 * 1024)
1046
1051
  brief_pause = HeartbeatState(last_seen_epoch=1.0, stale=False, details="no progress", stale_seconds=125, log_size=4 * 1024 * 1024)
1047
1052
  paused = HeartbeatState(last_seen_epoch=1.0, stale=True, details="no progress", stale_seconds=15 * 60, log_size=4 * 1024 * 1024)
1048
1053
  resumed = HeartbeatState(last_seen_epoch=3.0, stale=False, details="progress", stale_seconds=0, log_size=5 * 1024 * 1024)
1049
1054
 
1050
- running_line = _compact_progress_line(0, session_log, progress, running, stale_threshold_seconds=15 * 60)
1051
- brief_pause_line = _compact_progress_line(0, session_log, progress, brief_pause, stale_threshold_seconds=15 * 60)
1052
- paused_line = _compact_progress_line(0, session_log, progress, paused, stale_threshold_seconds=15 * 60)
1053
- resumed_line = _compact_progress_line(0, session_log, progress, resumed, stale_threshold_seconds=15 * 60)
1055
+ running_line = _compact_progress_line(0, session_log, progress, running, checkpoint_path=checkpoint, stale_threshold_seconds=15 * 60)
1056
+ brief_pause_line = _compact_progress_line(0, session_log, progress, brief_pause, checkpoint_path=checkpoint, stale_threshold_seconds=15 * 60)
1057
+ paused_line = _compact_progress_line(0, session_log, progress, paused, checkpoint_path=checkpoint, stale_threshold_seconds=15 * 60)
1058
+ resumed_line = _compact_progress_line(0, session_log, progress, resumed, checkpoint_path=checkpoint, stale_threshold_seconds=15 * 60)
1054
1059
 
1055
1060
  assert "▶ [HEARTBEAT]" in running_line
1056
1061
  assert "log: 4MB" in running_line
1057
1062
  assert "child: 2MB/5" in running_line
1058
- assert "phase: retrospective" in running_line
1063
+ assert "phase: Retrospective" in running_line
1064
+ assert "stream-derived-phase" not in running_line
1059
1065
  assert "tool: Read" in running_line
1060
1066
  assert "msgs: 465" in running_line
1061
1067
  assert "412 tool calls" in running_line
@@ -1068,6 +1074,31 @@ def test_compact_progress_line_hides_stale_until_no_progress(tmp_path):
1068
1074
  assert "log: 5MB" in resumed_line
1069
1075
  assert "stale:" not in resumed_line
1070
1076
 
1077
+ def test_compact_progress_line_omits_phase_without_valid_checkpoint(tmp_path):
1078
+ from prizmkit_runtime.heartbeat import HeartbeatState
1079
+ from prizmkit_runtime.sessions import _compact_progress_line
1080
+
1081
+ session_log = tmp_path / "session.log"
1082
+ progress = tmp_path / "progress.json"
1083
+ malformed = tmp_path / "bad-checkpoint.json"
1084
+ invalid = tmp_path / "invalid-checkpoint.json"
1085
+ progress.write_text(
1086
+ json.dumps({"current_phase": "legacy-plan", "current_tool": "Edit"}),
1087
+ encoding="utf-8",
1088
+ )
1089
+ malformed.write_text("{bad", encoding="utf-8")
1090
+ invalid.write_text(json.dumps({"steps": [{"id": "S01", "skill": "x", "name": "X", "status": "done"}]}), encoding="utf-8")
1091
+ state = HeartbeatState(last_seen_epoch=1.0, stale=False, details="progress", stale_seconds=0, log_size=12)
1092
+
1093
+ missing_line = _compact_progress_line(0, session_log, progress, state, checkpoint_path=tmp_path / "missing.json")
1094
+ malformed_line = _compact_progress_line(0, session_log, progress, state, checkpoint_path=malformed)
1095
+ invalid_line = _compact_progress_line(0, session_log, progress, state, checkpoint_path=invalid)
1096
+
1097
+ for line in (missing_line, malformed_line, invalid_line):
1098
+ assert "phase:" not in line
1099
+ assert "legacy-plan" not in line
1100
+ assert "tool: Edit" in line
1101
+
1071
1102
 
1072
1103
  def test_heartbeat_observation_stale_accumulates_by_elapsed_time_and_resets_on_progress(tmp_path, monkeypatch):
1073
1104
  import prizmkit_runtime.heartbeat as heartbeat
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.1.113",
2
+ "version": "1.1.115",
3
3
  "skills": {
4
4
  "prizmkit": {
5
5
  "description": "Full-lifecycle dev toolkit. Covers spec-driven development, Prizm context docs, code quality, debugging, deployment, and knowledge management.",
@@ -180,7 +180,7 @@ Route by answer:
180
180
  - Proactively scan the project (same as brownfield behavior)
181
181
  - Generate project-brief.md from inferred context
182
182
  - Skip extensive brainstorming and constraint phases
183
- - Present brief for user confirmation → write → done
183
+ - Present brief for user confirmation → write → run CP-AP-6 Generated App-Plan Review Gate → completion summary
184
184
 
185
185
  Session goal tracking: Track the intent (`produce`, `explore`, or `quick_context`) throughout the session. If `explore`, always re-prompt before ending.
186
186
 
@@ -240,6 +240,21 @@ Checkpoints catch cascading errors early — skipping one means the next phase b
240
240
  | **CP-AP-3** | Frontend Design Evaluated | For frontend projects: checked for existing UI/UX design system; user was asked if missing. **Auto-pass** for backend-only or non-UI projects. | 2 |
241
241
  | **CP-AP-4** | Project Brief Accumulated | `.prizmkit/plans/project-brief.md` exists at `.prizmkit/plans/` with at least 3 ideas listed. For brownfield: already-implemented items marked `[x]` count toward this total. | 3 |
242
242
  | **CP-AP-5** | Planning Complete | All project-level context captured: conventions, infrastructure config, tech stack, architecture decisions, project brief finalized | 4 |
243
+ | **CP-AP-6** | Local Plan Review Passed | Local generated-plan review loaded `${SKILL_DIR}/references/generated-plan-review.md`, directly reviewed current-session final app-planning artifacts, applied accepted fixes through source/writer paths, and rechecked changed sections | 4 |
244
+
245
+ ## Generated App-Plan Review Gate
246
+
247
+ User requirement preserved verbatim: `Add generated-plan review in app-planner also .`
248
+
249
+ Run this gate before any final handoff whenever the current `app-planner` session wrote or rewrote final app-level planning content. In full produce mode this runs after CP-AP-5; in Quick Context Mode it runs after the confirmed `.prizmkit/plans/project-brief.md` write; in conventions, infrastructure, architecture-decision, or rules-only final-write flows it runs after those writes and before the completion summary. This gate reviews generated planning artifacts directly, not implementation diffs.
250
+
251
+ 1. **Load the local reference**: read `${SKILL_DIR}/references/generated-plan-review.md` and follow it as the source of truth for app-planner generated content review.
252
+ 2. **Read actual planning artifacts directly**: inspect current-session final outputs such as `.prizmkit/plans/project-brief.md`, selected `AGENTS.md` / `CLAUDE.md` / `CODEBUDDY.md` sections, `.prizmkit/rules/<layer>-rules.md`, and `.prizmkit/prizm-docs/root.prizm` `RULES:` pointer line. Do not rely on `git status`, `git diff`, or `git diff --cached`, because `.prizmkit` planning artifacts are often gitignored or untracked.
253
+ 3. **Scope to new/changed app-planning content**: compare against pre-session snapshots or in-memory drafts when available. Preserve unchanged historical brief items, instruction-file sections, rules files, and Prizm doc content. For explore-only sessions, draft-save exits, or flows with no new final planning content, report: `Local generated-plan review: not applicable — no new final planning content written.`
254
+ 4. **Run the local checklist** from the reference: project brief completeness, consistency of conventions/infrastructure/architecture decisions, rules pointer consistency, user-provided wording preservation, app-planner writable-boundary compliance, and downstream `feature-planner` readiness to produce `.prizmkit/plans/feature-list.json` without guessing.
255
+ 5. **Apply accepted fixes through the source/writer path**: project brief fixes go through the draft/checklist source, instruction-file section fixes go through the selected platform instruction file section source with user confirmation when changing approved wording, rules fixes re-render from rules configuration answers/templates when available, and `root.prizm` fixes are limited to the `RULES:` pointer line.
256
+ 6. **Recheck changed sections directly** after every accepted fix batch.
257
+ 7. **Report CP-AP-6** in the completion summary: include local generated-plan review verdict, reviewed app-planning artifacts/sections, accepted fixes (or "none"), and final writer/validation result.
243
258
 
244
259
  ## Architecture Decision Capture
245
260
 
@@ -277,7 +292,7 @@ When the session appears to be ending:
277
292
 
278
293
  ## Completion Summary
279
294
 
280
- After all checkpoints pass, present a summary and end the session:
295
+ After CP-AP-6 passes or is reported not applicable, present a summary and end the session:
281
296
 
282
297
  1. **Summary** (as text): List all project-level artifacts produced:
283
298
  - Project conventions → `AGENTS.md` / `CLAUDE.md` / `CODEBUDDY.md` `### Project Conventions`
@@ -286,6 +301,7 @@ After all checkpoints pass, present a summary and end the session:
286
301
  - Architecture decisions (if any) → `AGENTS.md` / `CLAUDE.md` / `CODEBUDDY.md` `### Architecture Decisions`
287
302
  - Dev rules (if configured) → `.prizmkit/rules/<layer>-rules.md` (with `root.prizm` `RULES:` pointer)
288
303
  - Project brief → `.prizmkit/plans/project-brief.md`
304
+ - Local generated-plan review → verdict, reviewed app-planning artifacts/sections, accepted fixes (or "none"), and final writer/validation result
289
305
 
290
306
  2. **Suggest possible next steps** (as text, NOT auto-invoked):
291
307
  > Project-level planning is complete. When you're ready, here are some possible next steps:
@@ -0,0 +1,67 @@
1
+ # Generated Plan Review — App Planner
2
+
3
+ Use this local review loop before app-planner presents the final completion summary for current-session final planning artifacts. This is a planner-output review, not an implementation/code-diff review.
4
+
5
+ ## Trigger
6
+
7
+ Run only when the current `app-planner` session wrote or rewrote final app-level planning content. This includes project brief finalization, project conventions, infrastructure configuration, architecture decisions, rules files, or a `root.prizm` `RULES:` pointer update.
8
+
9
+ For explore-only sessions, draft-save exits, validate-only checks, or other flows with no new final planning content, report: `Local generated-plan review: not applicable — no new final planning content written.`
10
+
11
+ ## Direct Artifact Reads
12
+
13
+ Planning artifacts may be gitignored, untracked, or absent from staged and unstaged diffs. Read the actual files and source sections directly when they were produced or changed in the current session:
14
+
15
+ - Project brief: `.prizmkit/plans/project-brief.md`
16
+ - Draft brief when present: `.prizmkit/plans/project-brief.draft.md`
17
+ - Project instruction files selected by `.prizmkit/manifest.json`: `AGENTS.md`, `CLAUDE.md`, `CODEBUDDY.md`
18
+ - Generated rule files: `.prizmkit/rules/<layer>-rules.md`
19
+ - Prizm docs root pointer: `.prizmkit/prizm-docs/root.prizm` `RULES:` line only
20
+ - In-memory answers, draft brief data, rules configuration answers, or section snapshots captured before writes
21
+
22
+ Do not rely on `git status`, `git diff`, or `git diff --cached` to decide whether app-planner output exists or changed. Do not invoke `/prizmkit-code-review` for this planner-output gate; `/prizmkit-code-review` remains the implementation/code-diff review gate after `/prizmkit-implement`.
23
+
24
+ ## Review Scope
25
+
26
+ 1. Compare current final artifacts with pre-session snapshots or in-memory drafts when available.
27
+ 2. Review only newly added or changed app-planning sections from the current session.
28
+ 3. Preserve unchanged historical project brief ideas, instruction-file sections, rules files, and Prizm doc content.
29
+ 4. For `.prizmkit/prizm-docs/root.prizm`, review only the `RULES:` pointer line managed by rules configuration.
30
+ 5. If no snapshot exists, review only the artifacts the current app-planner session reports as produced.
31
+
32
+ ## Source-of-Truth Map
33
+
34
+ - `project-brief.md` fixes go through the draft/checklist project brief source representation described in `project-brief-guide.md`, then rewrite the final brief through the existing project brief writer path.
35
+ - Project conventions, infrastructure, and architecture decisions are source sections in `AGENTS.md`, `CLAUDE.md`, or `CODEBUDDY.md`. If a fix changes user-approved wording or meaning, ask for user confirmation before rewriting.
36
+ - `.prizmkit/rules/<layer>-rules.md` fixes should re-render from the rules configuration answers and template inputs when available. If no structured source remains, update the source rule section explicitly and report that source path.
37
+ - `root.prizm` fixes are limited to correcting or adding the `RULES:` pointer line; do not rewrite unrelated root content.
38
+
39
+ ## Review Checklist
40
+
41
+ For every reviewed app-planning artifact or section, check:
42
+
43
+ - Project brief completeness: goal, users, differentiators, constraints, tech stack assumptions, and at least three actionable ideas when producing a final brief
44
+ - Consistency among conventions, infrastructure, architecture decisions, and project brief content
45
+ - Infrastructure completeness or explicit deferral for database, deployment, and cloud services topics when those flows ran
46
+ - Rules pointer consistency: generated `.prizmkit/rules/<layer>-rules.md` files are referenced by the `root.prizm` `RULES:` line when rules were configured
47
+ - User-provided wording preservation in project brief ideas, conventions, infrastructure notes, architecture decisions, and rules
48
+ - Downstream readiness: `feature-planner` has enough context to produce `.prizmkit/plans/feature-list.json` without guessing core app purpose, stack, constraints, or implementation conventions
49
+ - No implementation/scaffolding actions are introduced by the app plan; outputs stay within app-planner's writable boundary
50
+
51
+ ## Fix Loop
52
+
53
+ 1. Present findings with artifact path, section name, severity, evidence, and suggested source change.
54
+ 2. Accept only findings that improve planner correctness, consistency, user wording preservation, or downstream feature-planner readiness.
55
+ 3. Apply accepted fixes to the source representation first: brief draft/checklist, instruction-file section source, rules answer/template source, or `root.prizm` `RULES:` pointer source.
56
+ 4. Regenerate or rewrite final artifacts through the same writer path used by app-planner. Do not hand-patch final artifacts as a shortcut when a draft/source representation exists.
57
+ 5. Re-read the changed final artifacts directly and re-run the local review only for changed sections.
58
+
59
+ ## Report Format
60
+
61
+ Report in the final completion summary:
62
+
63
+ - `Local generated-plan review: PASS` or `NEEDS_FIXES`
64
+ - Reviewed app-planning sections/artifacts
65
+ - Accepted fixes, or `none`
66
+ - Final writer/validation result for each changed artifact
67
+ - Note when review was not applicable because no new final planning content was written
@@ -283,42 +283,37 @@ Only proceed to Phase 5 after user confirms.
283
283
  ```
284
284
  The script fills in defaults (`$schema`, `created_at`, `created_by`), validates all fields, and writes the final file only if validation passes.
285
285
  3. **If validation fails**: Fix the draft and retry (max 3 attempts). If the script is unavailable, use the checklist in `${SKILL_DIR}/references/schema-validation.md`.
286
- 4. **Run the mandatory Post-Generation Plan Review Gate** (see §Post-Generation Plan Review Gate below): invoke `/prizmkit-code-review` on only newly added/changed bug entries after validation passes and before success output.
287
- 5. **Output**: File path, summary, review result, validation outcome, and next steps
286
+ 4. **Run the mandatory Local Generated-Plan Review Gate** (see §Local Generated-Plan Review Gate below): load `${SKILL_DIR}/references/generated-plan-review.md` and review only newly added/changed bug entries after validation passes and before success output.
287
+ 5. **Output**: File path, summary, local generated-plan review result, validation outcome, and next steps
288
288
 
289
289
  **Gate → CP-BP-5**: `bug-fix-list.json` passes validation script with zero errors.
290
290
 
291
- **Gate → CP-BP-6**: `/prizmkit-code-review` reviewed only newly added/changed bug entries; accepted fixes were regenerated and revalidated.
291
+ **Gate → CP-BP-6**: Local generated-plan review loaded `${SKILL_DIR}/references/generated-plan-review.md`, reviewed only newly added/changed bug entries, applied accepted fixes through draft/source data, regenerated, and revalidated.
292
292
 
293
- ## Post-Generation Plan Review Gate
293
+ ## Local Generated-Plan Review Gate
294
294
 
295
- User requirement preserved verbatim: `每次完成任务规划的时候,应该调用/prizmkit-code-review 对新增的计划内容进行review,确保生成新增的计划的正确行和完整性。`
295
+ User requirement preserved verbatim: `there is a litter bug for prizm-code-review will to check git diff in working space and staged space , however the .prizmkit will be gitignored in most situation. so do you think the content should be change to inline a new reference file instead of use prizmkit-code-review`
296
296
 
297
- Run this gate **after** `.prizmkit/plans/bug-fix-list.json` passes the validation/generate script and **before** any success output or next-step summary recommends `bugfix-pipeline-launcher`. This gate applies to Interactive Planning, From Log, From Tests, and any append-to-existing bug list flow.
297
+ Run this gate **after** `.prizmkit/plans/bug-fix-list.json` passes the validation/generate script and **before** any success output or next-step summary recommends `bugfix-pipeline-launcher`. This gate applies to Interactive Planning, From Log, From Tests, and append-to-existing bug list flows when the current session generated, appended, or rewrote final bug planning content. For Validate, Summary, or draft-save flows with no new final planning content, report: `Local generated-plan review: not applicable — no new final planning content written.`
298
298
 
299
- 1. **Identify review scope**: compare the final validated bug list against the pre-session list when one existed. Review only newly added or changed bug entries. Do not re-review unchanged historical entries except when needed to verify duplicate/root-cause overlap or dependency references.
300
- 2. **Invoke `/prizmkit-code-review` as a planning-quality gate** with an explicit prompt that this is a bug-plan-entry review, not an implementation review. The review must check:
301
- - schema correctness and compatibility with `dev-pipeline-bug-fix-list-v1`
302
- - dependency/DAG consistency, duplicate handling, and root-cause overlap
303
- - description completeness, including expected vs actual behavior, reproduction path, code-location hints, and headless execution readiness
304
- - acceptance criteria specificity and measurable verification method
305
- - preservation of user-provided wording in `description`, `acceptance_criteria`, and `user_context`
306
- - task-scoped `user_context` isolation: no unrelated sibling bug descriptions, logs, stack traces, reproduction steps, or supplementary materials, and shared context appears on multiple items only when explicitly global
307
- - severity/priority calibration: every reviewed bug has a short severity rationale and priority rationale, the preserved severity-to-priority mapping is followed, and high priority is not used without core outage, data loss/integrity, security/auth, timeout/crash, or no-workaround indicators
308
- 3. **Keep the review planning-only**: do NOT start `bugfix-pipeline-launcher`, do NOT run the bugfix pipeline, do NOT run tests/builds/installs, and do NOT implement source-code fixes.
309
- 4. **Apply accepted review fixes through the draft/source plan**: when a finding is accepted, update `.prizmkit/plans/bug-fix-list.draft.json` or the in-memory draft representation first, then regenerate the final file with:
299
+ 1. **Load the local reference**: read `${SKILL_DIR}/references/generated-plan-review.md` and follow it as the source of truth for this planner-output review loop.
300
+ 2. **Read actual planning artifacts directly**: inspect `.prizmkit/plans/bug-fix-list.json`, `.prizmkit/plans/bug-fix-list.draft.json` when present, and any pre-session or in-memory draft snapshot. Do not rely on `git status`, `git diff`, or `git diff --cached`, because `.prizmkit` planning artifacts are often gitignored or untracked.
301
+ 3. **Identify review scope**: compare by stable bug IDs and item fields against the pre-session list when one existed. Ignore root generator metadata such as `$schema`, `created_at`, and `created_by`. Review only newly added or changed bug entries; preserve unchanged historical entries except when needed to verify duplicate/root-cause overlap or dependency references.
302
+ 4. **Run the local checklist** from the reference: schema compatibility, dependency/DAG consistency, duplicate handling, root-cause overlap, description completeness, expected vs actual behavior, reproduction path, code-location hints, acceptance criteria measurability, user-provided wording preservation, task-scoped `user_context` isolation, and severity/priority calibration.
303
+ 5. **Keep the review planning-only**: do NOT start `bugfix-pipeline-launcher`, do NOT run the bugfix pipeline, do NOT run tests/builds/installs, and do NOT implement source-code fixes.
304
+ 6. **Apply accepted review fixes through the draft/source plan**: when a finding is accepted, update `.prizmkit/plans/bug-fix-list.draft.json` or the in-memory draft representation first, then regenerate the final file with:
310
305
  ```bash
311
306
  python3 ${SKILL_DIR}/scripts/validate-bug-list.py generate --input .prizmkit/plans/bug-fix-list.draft.json --output .prizmkit/plans/bug-fix-list.json
312
307
  ```
313
308
  Do not hand-patch the final JSON as the source of truth; map final-output findings back to draft entries before regeneration.
314
- 5. **Revalidate after every accepted fix batch**: the generate script must pass again before the planner can proceed. If validation fails, fix the draft and rerun until pass.
315
- 6. **Report the gate outcome** in the final summary: include `/prizmkit-code-review` verdict, reviewed bug IDs, accepted fixes (or "none"), and final validation result.
309
+ 7. **Revalidate after every accepted fix batch**: the generate script must pass again before the planner can proceed. If validation fails, fix the draft and rerun until pass.
310
+ 8. **Report the gate outcome** in the final summary: include local generated-plan review verdict, reviewed bug IDs, accepted fixes (or "none"), and final validation result.
316
311
 
317
312
  #### Success Output
318
313
 
319
314
  ```
320
315
  .prizmkit/plans/bug-fix-list.json generated with 3 bugs (1 critical, 1 medium, 1 low)
321
- Review gate: /prizmkit-code-review PASS, reviewed B-001..B-003, accepted fixes: none, final validation: PASS
316
+ Local generated-plan review: PASS, reviewed B-001..B-003, accepted fixes: none, final validation: PASS
322
317
 
323
318
  Next steps:
324
319
  - Review: cat .prizmkit/plans/bug-fix-list.json
@@ -336,7 +331,7 @@ Checkpoints catch cascading errors early — skipping one means the next phase b
336
331
  | **CP-BP-3** | Priorities Set | Severity/priority assigned, duplicates resolved | 3 |
337
332
  | **CP-BP-4** | Completeness Passed | All bugs pass headless execution readiness check | 4 |
338
333
  | **CP-BP-5** | File Generated | `bug-fix-list.json` passes validation script | 5 |
339
- | **CP-BP-6** | Plan Review Passed | `/prizmkit-code-review` reviewed only newly added/changed bug entries; accepted fixes were regenerated and revalidated | 5 |
334
+ | **CP-BP-6** | Local Plan Review Passed | Local generated-plan review loaded `${SKILL_DIR}/references/generated-plan-review.md`, reviewed only newly added/changed bug entries, applied accepted fixes through draft/source data, regenerated, and revalidated | 5 |
340
335
 
341
336
  **Resume Detection**: If existing `.prizmkit/plans/bug-fix-list.json` or draft found, read `${SKILL_DIR}/references/error-recovery.md` §Resume Support for checkpoint-based resumption.
342
337
 
@@ -363,7 +358,7 @@ Batch-parse error logs with minimal interaction: parse automatically, then requi
363
358
  ```bash
364
359
  python3 ${SKILL_DIR}/scripts/validate-bug-list.py generate --input .prizmkit/plans/bug-fix-list.draft.json --output .prizmkit/plans/bug-fix-list.json
365
360
  ```
366
- 7. If validation passes, run the mandatory Post-Generation Plan Review Gate before summarizing or recommending `bugfix-pipeline-launcher`.
361
+ 7. If validation passes, run the mandatory Local Generated-Plan Review Gate before summarizing or recommending `bugfix-pipeline-launcher`.
367
362
 
368
363
  ## Operation: From Tests
369
364
 
@@ -381,7 +376,7 @@ Batch-parse failed test output:
381
376
  ```bash
382
377
  python3 ${SKILL_DIR}/scripts/validate-bug-list.py generate --input .prizmkit/plans/bug-fix-list.draft.json --output .prizmkit/plans/bug-fix-list.json
383
378
  ```
384
- 7. If validation passes, run the mandatory Post-Generation Plan Review Gate before summarizing or recommending `bugfix-pipeline-launcher`.
379
+ 7. If validation passes, run the mandatory Local Generated-Plan Review Gate before summarizing or recommending `bugfix-pipeline-launcher`.
385
380
 
386
381
  ## Operation: Validate
387
382
 
@@ -419,14 +414,15 @@ Bug List (by priority):
419
414
 
420
415
  ---
421
416
 
422
- ## Adversarial Critic & Browser Verification
417
+ ## Verification Defaults
423
418
 
424
- When configuring critic settings or browser verification for bugs, read `${SKILL_DIR}/references/critic-and-verification.md` for default behavior tables and verification type guidance.
419
+ When configuring bug verification, read `${SKILL_DIR}/references/verification.md` for verification type and browser verification guidance.
425
420
 
426
421
  Key points:
427
- - Critic is enabled by default for critical/high severity, disabled for medium/low
428
- - Users can override critic settings per-bug during Phase 2 or Phase 3
422
+ - Critical/high severity bugs require clear automated, manual, or hybrid verification evidence.
423
+ - Medium/low severity bugs use the smallest verification that proves the fix and guards against regression.
429
424
  - `browser_interaction` is supported for UI-reproducible bugs; `verification_type` still declares whether verification is automated, manual, or hybrid.
425
+ - Do not generate `critic` or `critic_count`; those fields are fully removed and validators reject them.
430
426
 
431
427
  ---
432
428
 
@@ -436,7 +432,7 @@ Recommend invoking `bugfix-pipeline-launcher` to configure and launch the pipeli
436
432
 
437
433
  After `.prizmkit/plans/bug-fix-list.json` is generated, validated, and reviewed, present:
438
434
  1. Summary of generated bugs (count, severity breakdown)
439
- 2. Review result: `/prizmkit-code-review` verdict, reviewed bug IDs, accepted fixes (or "none"), and final validation result
435
+ 2. Local generated-plan review result: verdict, reviewed bug IDs, accepted fixes (or "none"), and final validation result
440
436
  3. Recommend: "Say 'start fixing' to launch the bugfix pipeline via `bugfix-pipeline-launcher`"
441
437
  4. Alternative: fix a single bug interactively via `bug-fix-workflow`
442
438
 
@@ -0,0 +1,63 @@
1
+ # Generated Plan Review — Bug Planner
2
+
3
+ Use this local review loop after `.prizmkit/plans/bug-fix-list.json` has been generated and validated. This is a planner-output review, not an implementation/code-diff review.
4
+
5
+ ## Trigger
6
+
7
+ Run only when the current `bug-planner` session generated, appended, or rewrote final bug planning content. For validate-only, summary-only, or draft-save flows with no new final planning content, report: `Local generated-plan review: not applicable — no new final planning content written.`
8
+
9
+ ## Direct Artifact Reads
10
+
11
+ Planning artifacts may be gitignored, untracked, or absent from staged and unstaged diffs. Read the actual files directly:
12
+
13
+ - Final list: `.prizmkit/plans/bug-fix-list.json`
14
+ - Draft/source list when present: `.prizmkit/plans/bug-fix-list.draft.json`
15
+ - Pre-session final list snapshot if captured in memory before edits
16
+ - In-memory draft object if the session has not written a draft file yet
17
+
18
+ Do not rely on `git status`, `git diff`, or `git diff --cached` to decide whether planner output exists or changed. Do not invoke `/prizmkit-code-review` for this planner-output gate; `/prizmkit-code-review` remains the implementation/code-diff review gate after `/prizmkit-implement`.
19
+
20
+ ## Review Scope
21
+
22
+ 1. If a pre-session final list exists, compare by stable bug IDs (`B-*`).
23
+ 2. Treat bugs as changed only when item fields changed. Ignore root generator metadata and formatting-only differences such as `$schema`, `created_at`, and `created_by`.
24
+ 3. Review newly added bug IDs and changed bug IDs.
25
+ 4. Preserve unchanged historical bugs. Read unchanged entries only when needed to verify dependency references, duplicate handling, or root-cause overlap with reviewed bugs.
26
+ 5. If no snapshot exists, review all bug entries produced by the current generation flow.
27
+
28
+ ## Review Checklist
29
+
30
+ For every reviewed bug entry, check:
31
+
32
+ - Schema compatibility with `dev-pipeline-bug-fix-list-v1` and `.prizmkit/dev-pipeline/templates/bug-fix-list-schema.json`
33
+ - Dependency/DAG consistency, duplicate handling, and root-cause overlap
34
+ - Description completeness: expected vs actual behavior, reproduction path, code-location hints, affected environment, and headless execution readiness
35
+ - Acceptance criteria specificity and measurable verification method
36
+ - User-provided wording preservation in `description`, `acceptance_criteria`, and `user_context`
37
+ - Task-scoped `user_context` isolation: no unrelated sibling bug descriptions, logs, stack traces, reproduction steps, expected/actual behavior notes, or supplementary materials; shared context appears on multiple bugs only when explicitly global
38
+ - Severity/priority calibration: every reviewed bug has a short severity rationale and priority rationale, the preserved severity-to-priority mapping is followed, and high priority is not used without core outage, data loss/integrity, security/auth, timeout/crash, or no-workaround indicators
39
+ - Browser interaction and verification fields for UI-reproducible bugs when applicable
40
+
41
+ ## Fix Loop
42
+
43
+ 1. Present findings with IDs, severity, evidence, and suggested draft/source changes.
44
+ 2. Accept only findings that improve planner correctness, completeness, or downstream bug-fix execution readiness.
45
+ 3. Apply accepted fixes to `.prizmkit/plans/bug-fix-list.draft.json` or the in-memory draft object first.
46
+ 4. Regenerate the final list through the existing generator:
47
+
48
+ ```bash
49
+ python3 ${SKILL_DIR}/scripts/validate-bug-list.py generate --input .prizmkit/plans/bug-fix-list.draft.json --output .prizmkit/plans/bug-fix-list.json
50
+ ```
51
+
52
+ 5. Re-run validation/generation until valid. Do not hand-patch `.prizmkit/plans/bug-fix-list.json` as the source of truth.
53
+ 6. Repeat the local review only for entries changed by accepted fixes.
54
+
55
+ ## Report Format
56
+
57
+ Report in the final handoff summary:
58
+
59
+ - `Local generated-plan review: PASS` or `NEEDS_FIXES`
60
+ - Reviewed bug IDs
61
+ - Accepted fixes, or `none`
62
+ - Final validation result
63
+ - Note when review was not applicable because no new final planning content was written
@@ -0,0 +1,29 @@
1
+ # Bug Verification Guidance
2
+
3
+ ## Verification Defaults
4
+
5
+ All bug fixes need verification that matches severity, reproduction clarity, and risk.
6
+
7
+ | Severity | Default verification expectation | Rationale |
8
+ |---|---|---|
9
+ | critical | Automated or hybrid verification with explicit regression coverage | Crash/data-loss/security bugs need durable proof. |
10
+ | high | Automated or hybrid verification for the broken core path | Core-feature failures need regression protection. |
11
+ | medium | Focused automated or manual verification | Workaround cases need proof without over-scoping. |
12
+ | low | Smallest meaningful check | Cosmetic or minor edge cases should stay lightweight. |
13
+
14
+ ## Verification Type
15
+
16
+ - `automated`: use when a unit, integration, or E2E test can reliably reproduce the bug and prove the fix.
17
+ - `manual`: use when reproduction needs external state or human judgment and no stable automated check is practical.
18
+ - `hybrid`: use when automated regression coverage is possible but final confidence needs manual/browser confirmation.
19
+
20
+ ## Browser Verification
21
+
22
+ Use `browser_interaction` for UI-reproducible bugs.
23
+
24
+ - `tool: auto` lets the runtime choose the best browser tool.
25
+ - `tool: playwright-cli` is best for local dev-server verification in an isolated browser.
26
+ - `tool: opencli` is best when an existing Chrome login/session or third-party integration cookies are needed.
27
+ - `verify_steps` should describe what to prove, not low-level click scripts.
28
+
29
+ Do not emit `critic` or `critic_count`; those fields are retired and validators reject them.
@@ -139,6 +139,14 @@ def validate(data, feature_ids=None):
139
139
  for i, bug in enumerate(bugs):
140
140
  prefix = "bugs[{}]".format(i)
141
141
 
142
+ for retired_field in ("critic", "critic_count"):
143
+ if retired_field in bug:
144
+ errors.append(
145
+ "{}: '{}' field is retired; remove it from bug-fix-list data".format(
146
+ prefix, retired_field
147
+ )
148
+ )
149
+
142
150
  # Required fields
143
151
  bug_id = bug.get("id", "")
144
152
  if not bug_id:
@@ -123,7 +123,7 @@ Detect user intent from their message, then follow the corresponding workflow:
123
123
  ```
124
124
  Selected-options example:
125
125
  ```bash
126
- VERBOSE=1 ENABLE_CRITIC=1 MAX_RETRIES=5 STOP_ON_FAILURE=1 ENABLE_DEPLOY=1 PRIZMKIT_EFFORT=high \
126
+ VERBOSE=1 MAX_RETRIES=5 STOP_ON_FAILURE=1 ENABLE_DEPLOY=1 PRIZMKIT_EFFORT=high \
127
127
  python3 ./.prizmkit/dev-pipeline/cli.py bugfix run .prizmkit/plans/bug-fix-list.json
128
128
  ```
129
129
 
@@ -134,7 +134,7 @@ Detect user intent from their message, then follow the corresponding workflow:
134
134
  Selected-options example:
135
135
  ```bash
136
136
  python3 ./.prizmkit/dev-pipeline/cli.py daemon bugfix start .prizmkit/plans/bug-fix-list.json \
137
- --env "VERBOSE=1 ENABLE_CRITIC=1 MAX_RETRIES=5 STOP_ON_FAILURE=1 ENABLE_DEPLOY=1 PRIZMKIT_EFFORT=high"
137
+ --env "VERBOSE=1 MAX_RETRIES=5 STOP_ON_FAILURE=1 ENABLE_DEPLOY=1 PRIZMKIT_EFFORT=high"
138
138
  ```
139
139
 
140
140
  **Manual mode**: Print the assembled command(s) and **stop here**. Do not execute anything. Do not proceed to step 7.
@@ -11,7 +11,6 @@ Translating user responses to env vars:
11
11
  | Verbose: Off | `VERBOSE=0` |
12
12
  | Verbose: On | `VERBOSE=1` |
13
13
  | Max retries: N | `MAX_RETRIES=N` |
14
- | Critic: On | `ENABLE_CRITIC=1` |
15
14
  | Stop on failure: On | `STOP_ON_FAILURE=1` |
16
15
  | Deploy: Yes | `ENABLE_DEPLOY=1` |
17
16
  | Effort: value | `PRIZMKIT_EFFORT=<value>` |
@@ -43,15 +42,11 @@ Present these via `AskUserQuestion` in step 5. Round 1 is one `AskUserQuestion`
43
42
  - 1
44
43
  - 5
45
44
 
46
- **Question 3 — Critic review** (multiSelect: false):
47
- - Off (default) — Skip adversarial review (`ENABLE_CRITIC=0`)
48
- - On — Enable adversarial critic review (`ENABLE_CRITIC=1`): an independent AI agent reviews the diagnosis/plan for completeness and the fix for defects, edge cases, and regression risks. Adds ~5-10 min per bug.
49
-
50
45
  **Question 4 — Advanced config?** (multiSelect: false):
51
46
  - No (default) — Use defaults for failure behavior
52
47
  - Yes — Configure stop-on-failure, deploy, and reasoning effort options
53
48
 
54
- Note: Bug filter defaults to all bugs. Runtime selects eligible bugs in stable list order after dependencies are completed; planners should order unrelated bugs by severity/priority before launch. Default Critic to Off unless bugs have `severity: "critical"` or `severity: "high"` (in which case default to On). If the user selects "Other" on any option, handle their custom input.
49
+ Note: Bug filter defaults to all bugs. Runtime selects eligible bugs in stable list order after dependencies are completed; planners should order unrelated bugs by severity/priority before launch. If the user selects "Other" on any option, handle their custom input.
55
50
 
56
51
  ### Round 2 (only if Advanced config = Yes)
57
52
 
@@ -133,27 +133,21 @@ Detect user intent from their message, then follow the corresponding workflow:
133
133
 
134
134
  6. **Ask configuration options** — MANDATORY INTERACTIVE STEP, applies to ALL execution modes (Foreground, Background, AND Manual). This is a SEPARATE `AskUserQuestion` call from step 5 (see the RULE above). You MUST call `AskUserQuestion` with the 4 questions below and WAIT for the user's response before proceeding to step 7. Do NOT assume defaults, do NOT show the command as text and ask "ready?", and do NOT merge step 6 and step 7. If you find yourself writing the final command before the user has answered these 4 questions, STOP — you are violating this rule.
135
135
 
136
- Use `AskUserQuestion` to present ALL 4 configuration choices:
136
+ Use `AskUserQuestion` to present ALL 3 configuration choices:
137
137
 
138
- **Question 1 — Critic review** (multiSelect: false):
139
- - Off (default) — Skip adversarial review
140
- - On — Enable adversarial critic review: an independent AI agent reviews the spec/plan for completeness and the implementation for defects, edge cases, and missed requirements. Adds ~5-10 min per feature.
141
-
142
- **Question 2 — Verbose logging** (multiSelect: false):
138
+ **Question 1 — Verbose logging** (multiSelect: false):
143
139
  - On (default) — Detailed AI session logs including tool calls and subagent activity
144
140
  - Off — Minimal logging
145
141
 
146
- **Question 3 — Max retries** (multiSelect: false):
142
+ **Question 2 — Max retries** (multiSelect: false):
147
143
  - 3 (default)
148
144
  - 1
149
145
  - 5
150
146
 
151
- **Question 4 — Advanced config?** (multiSelect: false):
147
+ **Question 3 — Advanced config?** (multiSelect: false):
152
148
  - No (default) — Use defaults for failure behavior
153
149
  - Yes — Configure stop-on-failure, deploy-after-completion, and reasoning effort options
154
150
 
155
- Default Critic to Off unless features have `estimated_complexity: "high"` or above (in which case default to On).
156
-
157
151
  **If user chose "Yes" to Advanced config**, ask a second round of `AskUserQuestion` — see the advanced config questions (stop-on-failure, deploy-after-completion, reasoning effort) in `${SKILL_DIR}/references/configuration.md`.
158
152
 
159
153
  Read `${SKILL_DIR}/references/configuration.md` for the current environment-variable mapping and advanced environment-variable tables.
@@ -167,7 +161,7 @@ Detect user intent from their message, then follow the corresponding workflow:
167
161
  ```
168
162
  Selected-options example:
169
163
  ```bash
170
- VERBOSE=1 ENABLE_CRITIC=true MAX_RETRIES=5 STOP_ON_FAILURE=1 ENABLE_DEPLOY=1 PRIZMKIT_EFFORT=high \
164
+ VERBOSE=1 MAX_RETRIES=5 STOP_ON_FAILURE=1 ENABLE_DEPLOY=1 PRIZMKIT_EFFORT=high \
171
165
  python3 ./.prizmkit/dev-pipeline/cli.py feature run .prizmkit/plans/feature-list.json --features F-001:F-005
172
166
  ```
173
167
 
@@ -178,7 +172,7 @@ Detect user intent from their message, then follow the corresponding workflow:
178
172
  Selected-options example:
179
173
  ```bash
180
174
  python3 ./.prizmkit/dev-pipeline/cli.py daemon feature start .prizmkit/plans/feature-list.json --features F-001:F-005 \
181
- --env "VERBOSE=1 ENABLE_CRITIC=true MAX_RETRIES=5 STOP_ON_FAILURE=1 ENABLE_DEPLOY=1 PRIZMKIT_EFFORT=high"
175
+ --env "VERBOSE=1 MAX_RETRIES=5 STOP_ON_FAILURE=1 ENABLE_DEPLOY=1 PRIZMKIT_EFFORT=high"
182
176
  ```
183
177
 
184
178
  **Manual mode**: Print the assembled command(s) and **stop here**. Do not execute anything. Do not proceed to step 8.
@@ -28,7 +28,6 @@ Translating user responses to env vars:
28
28
 
29
29
  | Config choice | Environment variable |
30
30
  |-----------|---------------------|
31
- | Critic: On | `ENABLE_CRITIC=true` |
32
31
  | Verbose: Off | `VERBOSE=0` |
33
32
  | Verbose: On | `VERBOSE=1` |
34
33
  | Max retries: N | `MAX_RETRIES=N` |