prizmkit 1.1.7 → 1.1.9

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 (132) hide show
  1. package/bundled/VERSION.json +3 -3
  2. package/bundled/adapters/codebuddy/skill-adapter.js +21 -7
  3. package/bundled/agents/prizm-dev-team-reviewer.md +53 -173
  4. package/bundled/dev-pipeline/.env.example +45 -0
  5. package/bundled/dev-pipeline/README.md +64 -64
  6. package/bundled/dev-pipeline/SCHEMA_ANALYSIS.md +535 -0
  7. package/bundled/dev-pipeline/assets/feature-list-example.json +0 -1
  8. package/bundled/dev-pipeline/launch-bugfix-daemon.sh +64 -18
  9. package/bundled/dev-pipeline/launch-feature-daemon.sh +15 -12
  10. package/bundled/dev-pipeline/launch-refactor-daemon.sh +64 -18
  11. package/bundled/dev-pipeline/lib/branch.sh +6 -1
  12. package/bundled/dev-pipeline/lib/common.sh +71 -0
  13. package/bundled/dev-pipeline/lib/heartbeat.sh +2 -2
  14. package/bundled/dev-pipeline/reset-bug.sh +10 -9
  15. package/bundled/dev-pipeline/reset-feature.sh +9 -8
  16. package/bundled/dev-pipeline/reset-refactor.sh +10 -9
  17. package/bundled/dev-pipeline/retry-bugfix.sh +67 -29
  18. package/bundled/dev-pipeline/retry-feature.sh +54 -18
  19. package/bundled/dev-pipeline/retry-refactor.sh +112 -29
  20. package/bundled/dev-pipeline/run-bugfix.sh +281 -59
  21. package/bundled/dev-pipeline/run-feature.sh +53 -18
  22. package/bundled/dev-pipeline/run-refactor.sh +392 -66
  23. package/bundled/dev-pipeline/scripts/check-session-status.py +24 -1
  24. package/bundled/dev-pipeline/scripts/cleanup-logs.py +2 -2
  25. package/bundled/dev-pipeline/scripts/detect-stuck.py +195 -85
  26. package/bundled/dev-pipeline/scripts/generate-bootstrap-prompt.py +57 -33
  27. package/bundled/dev-pipeline/scripts/generate-bugfix-prompt.py +25 -9
  28. package/bundled/dev-pipeline/scripts/generate-refactor-prompt.py +104 -17
  29. package/bundled/dev-pipeline/scripts/init-bugfix-pipeline.py +34 -9
  30. package/bundled/dev-pipeline/scripts/init-pipeline.py +10 -10
  31. package/bundled/dev-pipeline/scripts/init-refactor-pipeline.py +19 -8
  32. package/bundled/dev-pipeline/scripts/parse-stream-progress.py +1 -5
  33. package/bundled/dev-pipeline/scripts/patch-completion-notes.py +191 -0
  34. package/bundled/dev-pipeline/scripts/update-bug-status.py +167 -22
  35. package/bundled/dev-pipeline/scripts/update-feature-status.py +104 -62
  36. package/bundled/dev-pipeline/scripts/update-refactor-status.py +351 -21
  37. package/bundled/dev-pipeline/templates/agent-prompts/dev-fix.md +1 -1
  38. package/bundled/dev-pipeline/templates/agent-prompts/reviewer-review.md +7 -11
  39. package/bundled/dev-pipeline/templates/bootstrap-prompt.md +41 -7
  40. package/bundled/dev-pipeline/templates/bootstrap-tier1.md +27 -3
  41. package/bundled/dev-pipeline/templates/bootstrap-tier2.md +43 -19
  42. package/bundled/dev-pipeline/templates/bootstrap-tier3.md +54 -26
  43. package/bundled/dev-pipeline/templates/bug-fix-list-schema.json +6 -15
  44. package/bundled/dev-pipeline/templates/bugfix-bootstrap-prompt.md +36 -25
  45. package/bundled/dev-pipeline/templates/feature-list-schema.json +109 -31
  46. package/bundled/dev-pipeline/templates/refactor-bootstrap-prompt.md +270 -0
  47. package/bundled/dev-pipeline/templates/refactor-list-schema.json +11 -3
  48. package/bundled/dev-pipeline/templates/sections/context-budget-rules.md +3 -1
  49. package/bundled/dev-pipeline/templates/sections/critical-paths-agent.md +1 -0
  50. package/bundled/dev-pipeline/templates/sections/feature-context.md +2 -0
  51. package/bundled/dev-pipeline/templates/sections/phase-commit-full.md +29 -2
  52. package/bundled/dev-pipeline/templates/sections/phase-commit.md +22 -0
  53. package/bundled/dev-pipeline/templates/sections/phase-deploy-verification.md +2 -2
  54. package/bundled/dev-pipeline/templates/sections/phase-review-agent.md +8 -6
  55. package/bundled/dev-pipeline/templates/sections/phase-review-full.md +7 -5
  56. package/bundled/dev-pipeline/templates/sections/phase-specify-plan-full.md +3 -3
  57. package/bundled/skills/_metadata.json +5 -22
  58. package/bundled/skills/app-planner/SKILL.md +98 -72
  59. package/bundled/skills/app-planner/assets/app-design-guide.md +1 -1
  60. package/bundled/skills/app-planner/references/architecture-decisions.md +1 -1
  61. package/bundled/skills/app-planner/references/project-brief-guide.md +69 -66
  62. package/bundled/skills/bug-fix-workflow/SKILL.md +52 -9
  63. package/bundled/skills/bug-planner/SKILL.md +139 -197
  64. package/bundled/skills/bug-planner/assets/bug-confirmation-template.md +43 -0
  65. package/bundled/skills/bug-planner/references/critic-and-verification.md +44 -0
  66. package/bundled/skills/bug-planner/references/error-recovery.md +73 -0
  67. package/bundled/skills/bug-planner/references/input-formats.md +53 -0
  68. package/bundled/skills/bug-planner/references/schema-validation.md +25 -0
  69. package/bundled/skills/bug-planner/references/severity-rules.md +16 -0
  70. package/bundled/skills/bug-planner/scripts/validate-bug-list.py +4 -8
  71. package/bundled/skills/bugfix-pipeline-launcher/SKILL.md +34 -39
  72. package/bundled/skills/feature-pipeline-launcher/SKILL.md +49 -36
  73. package/bundled/skills/feature-pipeline-launcher/scripts/preflight-check.py +3 -3
  74. package/bundled/skills/feature-planner/SKILL.md +53 -142
  75. package/bundled/skills/feature-planner/assets/evaluation-guide.md +1 -1
  76. package/bundled/skills/feature-planner/assets/planning-guide.md +21 -5
  77. package/bundled/skills/feature-planner/references/browser-interaction.md +2 -4
  78. package/bundled/skills/feature-planner/references/completeness-review.md +57 -0
  79. package/bundled/skills/feature-planner/references/error-recovery.md +16 -35
  80. package/bundled/skills/feature-planner/references/incremental-feature-planning.md +1 -1
  81. package/bundled/skills/feature-planner/references/new-project-planning.md +2 -2
  82. package/bundled/skills/feature-planner/scripts/validate-and-generate.py +19 -20
  83. package/bundled/skills/feature-workflow/SKILL.md +24 -25
  84. package/bundled/skills/prizm-kit/SKILL.md +39 -49
  85. package/bundled/skills/prizmkit-code-review/SKILL.md +51 -64
  86. package/bundled/skills/prizmkit-code-review/rules/dimensions.md +85 -0
  87. package/bundled/skills/prizmkit-code-review/rules/fix-strategy.md +11 -11
  88. package/bundled/skills/prizmkit-committer/SKILL.md +3 -31
  89. package/bundled/skills/prizmkit-deploy/SKILL.md +34 -31
  90. package/bundled/skills/prizmkit-deploy/assets/deploy-template.md +1 -1
  91. package/bundled/skills/prizmkit-implement/SKILL.md +35 -68
  92. package/bundled/skills/prizmkit-init/SKILL.md +112 -65
  93. package/bundled/skills/prizmkit-init/assets/project-brief-template.md +82 -0
  94. package/bundled/skills/prizmkit-plan/SKILL.md +120 -79
  95. package/bundled/skills/prizmkit-plan/assets/plan-template.md +28 -18
  96. package/bundled/skills/prizmkit-plan/assets/spec-template.md +28 -11
  97. package/bundled/skills/prizmkit-plan/references/clarify-guide.md +3 -3
  98. package/bundled/skills/prizmkit-plan/references/verification-checklist.md +60 -0
  99. package/bundled/skills/prizmkit-prizm-docs/SKILL.md +10 -81
  100. package/bundled/skills/prizmkit-prizm-docs/assets/{PRIZM-SPEC.md → prizm-docs-format.md} +41 -526
  101. package/bundled/skills/prizmkit-prizm-docs/references/op-init.md +46 -0
  102. package/bundled/skills/prizmkit-prizm-docs/references/op-rebuild.md +16 -0
  103. package/bundled/skills/prizmkit-prizm-docs/references/op-status.md +14 -0
  104. package/bundled/skills/prizmkit-prizm-docs/references/op-update.md +19 -0
  105. package/bundled/skills/prizmkit-prizm-docs/references/op-validate.md +17 -0
  106. package/bundled/skills/prizmkit-retrospective/SKILL.md +27 -65
  107. package/bundled/skills/prizmkit-retrospective/references/knowledge-injection-steps.md +3 -4
  108. package/bundled/skills/prizmkit-retrospective/references/structural-sync-steps.md +7 -25
  109. package/bundled/skills/recovery-workflow/SKILL.md +22 -22
  110. package/bundled/skills/recovery-workflow/evals/evals.json +5 -5
  111. package/bundled/skills/recovery-workflow/scripts/detect-recovery-state.py +43 -10
  112. package/bundled/skills/refactor-pipeline-launcher/SKILL.md +48 -40
  113. package/bundled/skills/refactor-planner/SKILL.md +43 -61
  114. package/bundled/skills/refactor-planner/scripts/validate-and-generate-refactor.py +17 -17
  115. package/bundled/skills/refactor-workflow/SKILL.md +23 -24
  116. package/bundled/team/prizm-dev-team.json +1 -1
  117. package/bundled/{skills/prizm-kit/assets → templates}/project-memory-template.md +1 -1
  118. package/package.json +1 -1
  119. package/src/clean.js +3 -4
  120. package/src/gitignore-template.js +7 -9
  121. package/src/scaffold.js +14 -5
  122. package/bundled/dev-pipeline/templates/agent-prompts/reviewer-analyze.md +0 -5
  123. package/bundled/dev-pipeline/templates/sections/phase-analyze-agent.md +0 -19
  124. package/bundled/dev-pipeline/templates/sections/phase-analyze-full.md +0 -19
  125. package/bundled/skills/app-planner/references/project-conventions.md +0 -93
  126. package/bundled/skills/prizmkit-analyze/SKILL.md +0 -207
  127. package/bundled/skills/prizmkit-code-review/rules/dimensions-bugfix.md +0 -25
  128. package/bundled/skills/prizmkit-code-review/rules/dimensions-feature.md +0 -43
  129. package/bundled/skills/prizmkit-code-review/rules/dimensions-refactor.md +0 -25
  130. package/bundled/skills/prizmkit-implement/references/deploy-guide-protocol.md +0 -69
  131. package/bundled/skills/prizmkit-verify/SKILL.md +0 -281
  132. package/bundled/skills/prizmkit-verify/scripts/verify-light.py +0 -402
@@ -9,9 +9,9 @@ set -euo pipefail
9
9
  # from a feature list.
10
10
  #
11
11
  # Usage:
12
- # ./run-feature.sh run [feature-list.json] Run all features
12
+ # ./run-feature.sh run [.prizmkit/plans/feature-list.json] Run all features
13
13
  # ./run-feature.sh run <feature-id> [options] Run a single feature
14
- # ./run-feature.sh status [feature-list.json] Show pipeline status
14
+ # ./run-feature.sh status [.prizmkit/plans/feature-list.json] Show pipeline status
15
15
  # ./run-feature.sh reset Clear all state
16
16
  #
17
17
  # Environment Variables:
@@ -33,7 +33,8 @@ set -euo pipefail
33
33
  # ============================================================
34
34
 
35
35
  SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
36
- STATE_DIR="$SCRIPT_DIR/state"
36
+ PROJECT_ROOT="$(dirname "$SCRIPT_DIR")"
37
+ STATE_DIR="${PROJECT_ROOT}/.prizmkit/state/features"
37
38
  SCRIPTS_DIR="$SCRIPT_DIR/scripts"
38
39
 
39
40
  # Configuration (override via environment variables)
@@ -334,6 +335,23 @@ sys.exit(0)
334
335
  fi
335
336
  fi
336
337
 
338
+ # Propagate completion notes for dependency context (only on success)
339
+ if [[ "$session_status" == "success" && -n "$feature_slug" ]]; then
340
+ local summary_path="$project_root/.prizmkit/specs/$feature_slug/completion-summary.json"
341
+ if [[ -f "$summary_path" ]]; then
342
+ python3 "$SCRIPTS_DIR/patch-completion-notes.py" \
343
+ --feature-list "$feature_list" \
344
+ --feature-id "$feature_id" \
345
+ --summary "$summary_path" >/dev/null 2>&1 && {
346
+ log_info "Propagated completion notes for $feature_id to feature-list.json"
347
+ } || {
348
+ log_warn "Failed to propagate completion notes for $feature_id"
349
+ }
350
+ else
351
+ log_info "No completion-summary.json for $feature_id — dependency context will be limited"
352
+ fi
353
+ fi
354
+
337
355
  # Update feature status
338
356
  local update_output
339
357
  update_output=$(python3 "$SCRIPTS_DIR/update-feature-status.py" \
@@ -345,7 +363,7 @@ sys.exit(0)
345
363
  --max-retries "$max_retries" \
346
364
  --action update 2>&1) || {
347
365
  log_error "Failed to update feature status: $update_output"
348
- log_error "feature-list.json may be out of sync. Manual intervention needed."
366
+ log_error ".prizmkit/plans/feature-list.json may be out of sync. Manual intervention needed."
349
367
  }
350
368
 
351
369
  # Commit feature status update (pipeline management commit)
@@ -514,7 +532,7 @@ run_one() {
514
532
 
515
533
  # Default feature list
516
534
  if [[ -z "$feature_list" ]]; then
517
- feature_list="feature-list.json"
535
+ feature_list=".prizmkit/plans/feature-list.json"
518
536
  fi
519
537
 
520
538
  # Resolve to absolute path
@@ -656,12 +674,25 @@ sys.exit(1)
656
674
 
657
675
  bootstrap_prompt="$session_dir/bootstrap-prompt.md"
658
676
 
677
+ # Read retry count from status.json
678
+ local retry_count
679
+ retry_count=$(python3 -c "
680
+ import json, os
681
+ status_path = os.path.join('$STATE_DIR', 'features', '$feature_id', 'status.json')
682
+ if os.path.isfile(status_path):
683
+ with open(status_path) as f:
684
+ d = json.load(f)
685
+ print(d.get('retry_count', 0))
686
+ else:
687
+ print(0)
688
+ " 2>/dev/null || echo "0")
689
+
659
690
  local prompt_args=(
660
691
  --feature-list "$feature_list"
661
692
  --feature-id "$feature_id"
662
693
  --session-id "$session_id"
663
694
  --run-id "$run_id"
664
- --retry-count 0
695
+ --retry-count "$retry_count"
665
696
  --resume-phase "$resume_phase"
666
697
  --state-dir "$STATE_DIR"
667
698
  --output "$bootstrap_prompt"
@@ -733,6 +764,9 @@ sys.exit(1)
733
764
  return 0
734
765
  fi
735
766
 
767
+ # Log bootstrap prompt in test mode
768
+ prizm_log_bootstrap_prompt "$bootstrap_prompt" "$feature_id"
769
+
736
770
  # Spawn AI CLI Session
737
771
  echo ""
738
772
  echo -e "${BOLD}════════════════════════════════════════════════════${NC}"
@@ -832,7 +866,7 @@ sys.exit(1)
832
866
  # ============================================================
833
867
 
834
868
  main() {
835
- local feature_list="${1:-feature-list.json}"
869
+ local feature_list="${1:-.prizmkit/plans/feature-list.json}"
836
870
  local features_filter="${2:-}"
837
871
 
838
872
  # Resolve to absolute path
@@ -846,18 +880,18 @@ main() {
846
880
  if [[ ! -f "$feature_list" ]]; then
847
881
  log_error "Feature list not found: $feature_list"
848
882
  log_info "Create a feature list first using the feature-planner skill,"
849
- log_info "or provide a path: ./run-feature.sh run <path-to-feature-list.json>"
883
+ log_info "or provide a path: ./run-feature.sh run <path-to-.prizmkit/plans/feature-list.json>"
850
884
  exit 1
851
885
  fi
852
886
 
853
- # Validate feature-list.json is at project root
887
+ # Validate .prizmkit/plans/feature-list.json is at project root
854
888
  local fl_dir
855
889
  fl_dir="$(cd "$(dirname "$feature_list")" && pwd)"
856
890
  local project_root
857
891
  project_root="$(pwd)"
858
892
  if [[ "$fl_dir" != "$project_root" ]]; then
859
- log_warn "feature-list.json is not at project root ($project_root), found at $fl_dir"
860
- log_warn "Pipeline expects feature-list.json at project root. Proceeding but results may be unstable."
893
+ log_warn ".prizmkit/plans/feature-list.json is not at project root ($project_root), found at $fl_dir"
894
+ log_warn "Pipeline expects .prizmkit/plans/feature-list.json at project root. Proceeding but results may be unstable."
861
895
  fi
862
896
 
863
897
  check_dependencies
@@ -888,7 +922,7 @@ main() {
888
922
  local _gitignore_path
889
923
  _gitignore_path="$(cd "$SCRIPT_DIR/.." && pwd)/.gitignore"
890
924
  local _state_rel
891
- _state_rel=$(python3 -c "import os; print(os.path.relpath('$STATE_DIR', '$(cd "$SCRIPT_DIR/.." && pwd)'))" 2>/dev/null || echo "dev-pipeline/state")
925
+ _state_rel=$(python3 -c "import os; print(os.path.relpath('$STATE_DIR', '$(cd "$SCRIPT_DIR/.." && pwd)'))" 2>/dev/null || echo ".prizmkit/state/features")
892
926
  if [[ -f "$_gitignore_path" ]]; then
893
927
  if ! grep -qF "$_state_rel" "$_gitignore_path" 2>/dev/null; then
894
928
  printf '\n# Pipeline runtime state (auto-added by dev-pipeline)\n%s/\n' "$_state_rel" >> "$_gitignore_path"
@@ -1110,6 +1144,7 @@ print(count)
1110
1144
  --action start >/dev/null 2>&1 || true
1111
1145
 
1112
1146
  # Spawn session and wait
1147
+ prizm_log_bootstrap_prompt "$bootstrap_prompt" "$feature_id"
1113
1148
  log_info "Spawning AI CLI session: $session_id"
1114
1149
  if [[ -n "$feature_model" ]]; then
1115
1150
  log_info "Feature model: $feature_model"
@@ -1158,10 +1193,10 @@ show_help() {
1158
1193
  echo "Usage: $0 <command> [options]"
1159
1194
  echo ""
1160
1195
  echo "Commands:"
1161
- echo " run [feature-list.json] [--features <filter>] Run features (all or filtered subset)"
1196
+ echo " run [.prizmkit/plans/feature-list.json] [--features <filter>] Run features (all or filtered subset)"
1162
1197
  echo " run <feature-id> [options] Run a single feature"
1163
- echo " status [feature-list.json] Show pipeline status"
1164
- echo " unskip [feature-id] [feature-list.json] Reset auto-skipped/failed features"
1198
+ echo " status [.prizmkit/plans/feature-list.json] Show pipeline status"
1199
+ echo " unskip [feature-id] [.prizmkit/plans/feature-list.json] Reset auto-skipped/failed features"
1165
1200
  echo " test-cli Test AI CLI: show detected CLI, version, and model"
1166
1201
  echo " reset Clear all state and start fresh"
1167
1202
  echo " help Show this help message"
@@ -1217,7 +1252,7 @@ case "${1:-run}" in
1217
1252
  run_one "$@"
1218
1253
  else
1219
1254
  # Parse positional and --features flag
1220
- _run_feature_list="feature-list.json"
1255
+ _run_feature_list=".prizmkit/plans/feature-list.json"
1221
1256
  _run_features_filter=""
1222
1257
  while [[ $# -gt 0 ]]; do
1223
1258
  case "$1" in
@@ -1246,7 +1281,7 @@ case "${1:-run}" in
1246
1281
  exit 1
1247
1282
  fi
1248
1283
  python3 "$SCRIPTS_DIR/update-feature-status.py" \
1249
- --feature-list "${2:-feature-list.json}" \
1284
+ --feature-list "${2:-.prizmkit/plans/feature-list.json}" \
1250
1285
  --state-dir "$STATE_DIR" \
1251
1286
  --action status
1252
1287
  ;;
@@ -1319,7 +1354,7 @@ case "${1:-run}" in
1319
1354
  log_error "No pipeline state found. Run './run-feature.sh run' first."
1320
1355
  exit 1
1321
1356
  fi
1322
- _unskip_feature_list="feature-list.json"
1357
+ _unskip_feature_list=".prizmkit/plans/feature-list.json"
1323
1358
  _unskip_feature_id=""
1324
1359
  shift || true
1325
1360
  # Parse arguments: optional feature-id and feature-list path