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.
- package/bundled/VERSION.json +3 -3
- package/bundled/adapters/codebuddy/skill-adapter.js +21 -7
- package/bundled/agents/prizm-dev-team-reviewer.md +53 -173
- package/bundled/dev-pipeline/.env.example +45 -0
- package/bundled/dev-pipeline/README.md +64 -64
- package/bundled/dev-pipeline/SCHEMA_ANALYSIS.md +535 -0
- package/bundled/dev-pipeline/assets/feature-list-example.json +0 -1
- package/bundled/dev-pipeline/launch-bugfix-daemon.sh +64 -18
- package/bundled/dev-pipeline/launch-feature-daemon.sh +15 -12
- package/bundled/dev-pipeline/launch-refactor-daemon.sh +64 -18
- package/bundled/dev-pipeline/lib/branch.sh +6 -1
- package/bundled/dev-pipeline/lib/common.sh +71 -0
- package/bundled/dev-pipeline/lib/heartbeat.sh +2 -2
- package/bundled/dev-pipeline/reset-bug.sh +10 -9
- package/bundled/dev-pipeline/reset-feature.sh +9 -8
- package/bundled/dev-pipeline/reset-refactor.sh +10 -9
- package/bundled/dev-pipeline/retry-bugfix.sh +67 -29
- package/bundled/dev-pipeline/retry-feature.sh +54 -18
- package/bundled/dev-pipeline/retry-refactor.sh +112 -29
- package/bundled/dev-pipeline/run-bugfix.sh +281 -59
- package/bundled/dev-pipeline/run-feature.sh +53 -18
- package/bundled/dev-pipeline/run-refactor.sh +392 -66
- package/bundled/dev-pipeline/scripts/check-session-status.py +24 -1
- package/bundled/dev-pipeline/scripts/cleanup-logs.py +2 -2
- package/bundled/dev-pipeline/scripts/detect-stuck.py +195 -85
- package/bundled/dev-pipeline/scripts/generate-bootstrap-prompt.py +57 -33
- package/bundled/dev-pipeline/scripts/generate-bugfix-prompt.py +25 -9
- package/bundled/dev-pipeline/scripts/generate-refactor-prompt.py +104 -17
- package/bundled/dev-pipeline/scripts/init-bugfix-pipeline.py +34 -9
- package/bundled/dev-pipeline/scripts/init-pipeline.py +10 -10
- package/bundled/dev-pipeline/scripts/init-refactor-pipeline.py +19 -8
- package/bundled/dev-pipeline/scripts/parse-stream-progress.py +1 -5
- package/bundled/dev-pipeline/scripts/patch-completion-notes.py +191 -0
- package/bundled/dev-pipeline/scripts/update-bug-status.py +167 -22
- package/bundled/dev-pipeline/scripts/update-feature-status.py +104 -62
- package/bundled/dev-pipeline/scripts/update-refactor-status.py +351 -21
- package/bundled/dev-pipeline/templates/agent-prompts/dev-fix.md +1 -1
- package/bundled/dev-pipeline/templates/agent-prompts/reviewer-review.md +7 -11
- package/bundled/dev-pipeline/templates/bootstrap-prompt.md +41 -7
- package/bundled/dev-pipeline/templates/bootstrap-tier1.md +27 -3
- package/bundled/dev-pipeline/templates/bootstrap-tier2.md +43 -19
- package/bundled/dev-pipeline/templates/bootstrap-tier3.md +54 -26
- package/bundled/dev-pipeline/templates/bug-fix-list-schema.json +6 -15
- package/bundled/dev-pipeline/templates/bugfix-bootstrap-prompt.md +36 -25
- package/bundled/dev-pipeline/templates/feature-list-schema.json +109 -31
- package/bundled/dev-pipeline/templates/refactor-bootstrap-prompt.md +270 -0
- package/bundled/dev-pipeline/templates/refactor-list-schema.json +11 -3
- package/bundled/dev-pipeline/templates/sections/context-budget-rules.md +3 -1
- package/bundled/dev-pipeline/templates/sections/critical-paths-agent.md +1 -0
- package/bundled/dev-pipeline/templates/sections/feature-context.md +2 -0
- package/bundled/dev-pipeline/templates/sections/phase-commit-full.md +29 -2
- package/bundled/dev-pipeline/templates/sections/phase-commit.md +22 -0
- package/bundled/dev-pipeline/templates/sections/phase-deploy-verification.md +2 -2
- package/bundled/dev-pipeline/templates/sections/phase-review-agent.md +8 -6
- package/bundled/dev-pipeline/templates/sections/phase-review-full.md +7 -5
- package/bundled/dev-pipeline/templates/sections/phase-specify-plan-full.md +3 -3
- package/bundled/skills/_metadata.json +5 -22
- package/bundled/skills/app-planner/SKILL.md +98 -72
- package/bundled/skills/app-planner/assets/app-design-guide.md +1 -1
- package/bundled/skills/app-planner/references/architecture-decisions.md +1 -1
- package/bundled/skills/app-planner/references/project-brief-guide.md +69 -66
- package/bundled/skills/bug-fix-workflow/SKILL.md +52 -9
- package/bundled/skills/bug-planner/SKILL.md +139 -197
- package/bundled/skills/bug-planner/assets/bug-confirmation-template.md +43 -0
- package/bundled/skills/bug-planner/references/critic-and-verification.md +44 -0
- package/bundled/skills/bug-planner/references/error-recovery.md +73 -0
- package/bundled/skills/bug-planner/references/input-formats.md +53 -0
- package/bundled/skills/bug-planner/references/schema-validation.md +25 -0
- package/bundled/skills/bug-planner/references/severity-rules.md +16 -0
- package/bundled/skills/bug-planner/scripts/validate-bug-list.py +4 -8
- package/bundled/skills/bugfix-pipeline-launcher/SKILL.md +34 -39
- package/bundled/skills/feature-pipeline-launcher/SKILL.md +49 -36
- package/bundled/skills/feature-pipeline-launcher/scripts/preflight-check.py +3 -3
- package/bundled/skills/feature-planner/SKILL.md +53 -142
- package/bundled/skills/feature-planner/assets/evaluation-guide.md +1 -1
- package/bundled/skills/feature-planner/assets/planning-guide.md +21 -5
- package/bundled/skills/feature-planner/references/browser-interaction.md +2 -4
- package/bundled/skills/feature-planner/references/completeness-review.md +57 -0
- package/bundled/skills/feature-planner/references/error-recovery.md +16 -35
- package/bundled/skills/feature-planner/references/incremental-feature-planning.md +1 -1
- package/bundled/skills/feature-planner/references/new-project-planning.md +2 -2
- package/bundled/skills/feature-planner/scripts/validate-and-generate.py +19 -20
- package/bundled/skills/feature-workflow/SKILL.md +24 -25
- package/bundled/skills/prizm-kit/SKILL.md +39 -49
- package/bundled/skills/prizmkit-code-review/SKILL.md +51 -64
- package/bundled/skills/prizmkit-code-review/rules/dimensions.md +85 -0
- package/bundled/skills/prizmkit-code-review/rules/fix-strategy.md +11 -11
- package/bundled/skills/prizmkit-committer/SKILL.md +3 -31
- package/bundled/skills/prizmkit-deploy/SKILL.md +34 -31
- package/bundled/skills/prizmkit-deploy/assets/deploy-template.md +1 -1
- package/bundled/skills/prizmkit-implement/SKILL.md +35 -68
- package/bundled/skills/prizmkit-init/SKILL.md +112 -65
- package/bundled/skills/prizmkit-init/assets/project-brief-template.md +82 -0
- package/bundled/skills/prizmkit-plan/SKILL.md +120 -79
- package/bundled/skills/prizmkit-plan/assets/plan-template.md +28 -18
- package/bundled/skills/prizmkit-plan/assets/spec-template.md +28 -11
- package/bundled/skills/prizmkit-plan/references/clarify-guide.md +3 -3
- package/bundled/skills/prizmkit-plan/references/verification-checklist.md +60 -0
- package/bundled/skills/prizmkit-prizm-docs/SKILL.md +10 -81
- package/bundled/skills/prizmkit-prizm-docs/assets/{PRIZM-SPEC.md → prizm-docs-format.md} +41 -526
- package/bundled/skills/prizmkit-prizm-docs/references/op-init.md +46 -0
- package/bundled/skills/prizmkit-prizm-docs/references/op-rebuild.md +16 -0
- package/bundled/skills/prizmkit-prizm-docs/references/op-status.md +14 -0
- package/bundled/skills/prizmkit-prizm-docs/references/op-update.md +19 -0
- package/bundled/skills/prizmkit-prizm-docs/references/op-validate.md +17 -0
- package/bundled/skills/prizmkit-retrospective/SKILL.md +27 -65
- package/bundled/skills/prizmkit-retrospective/references/knowledge-injection-steps.md +3 -4
- package/bundled/skills/prizmkit-retrospective/references/structural-sync-steps.md +7 -25
- package/bundled/skills/recovery-workflow/SKILL.md +22 -22
- package/bundled/skills/recovery-workflow/evals/evals.json +5 -5
- package/bundled/skills/recovery-workflow/scripts/detect-recovery-state.py +43 -10
- package/bundled/skills/refactor-pipeline-launcher/SKILL.md +48 -40
- package/bundled/skills/refactor-planner/SKILL.md +43 -61
- package/bundled/skills/refactor-planner/scripts/validate-and-generate-refactor.py +17 -17
- package/bundled/skills/refactor-workflow/SKILL.md +23 -24
- package/bundled/team/prizm-dev-team.json +1 -1
- package/bundled/{skills/prizm-kit/assets → templates}/project-memory-template.md +1 -1
- package/package.json +1 -1
- package/src/clean.js +3 -4
- package/src/gitignore-template.js +7 -9
- package/src/scaffold.js +14 -5
- package/bundled/dev-pipeline/templates/agent-prompts/reviewer-analyze.md +0 -5
- package/bundled/dev-pipeline/templates/sections/phase-analyze-agent.md +0 -19
- package/bundled/dev-pipeline/templates/sections/phase-analyze-full.md +0 -19
- package/bundled/skills/app-planner/references/project-conventions.md +0 -93
- package/bundled/skills/prizmkit-analyze/SKILL.md +0 -207
- package/bundled/skills/prizmkit-code-review/rules/dimensions-bugfix.md +0 -25
- package/bundled/skills/prizmkit-code-review/rules/dimensions-feature.md +0 -43
- package/bundled/skills/prizmkit-code-review/rules/dimensions-refactor.md +0 -25
- package/bundled/skills/prizmkit-implement/references/deploy-guide-protocol.md +0 -69
- package/bundled/skills/prizmkit-verify/SKILL.md +0 -281
- 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
|
-
|
|
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
|
|
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
|
|
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
|
|
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 "
|
|
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
|
|
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
|