prizmkit 1.1.99 → 1.1.101
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/bin/create-prizmkit.js +4 -4
- package/bundled/VERSION.json +3 -3
- package/bundled/dev-pipeline/.env.example +3 -3
- package/bundled/dev-pipeline/README.md +110 -90
- package/bundled/dev-pipeline/assets/prizm-dev-team-integration.md +1 -1
- package/bundled/dev-pipeline/cli.py +27 -0
- package/bundled/dev-pipeline/prizmkit_runtime/__init__.py +13 -0
- package/bundled/dev-pipeline/prizmkit_runtime/__main__.py +9 -0
- package/bundled/dev-pipeline/prizmkit_runtime/cli.py +193 -0
- package/bundled/dev-pipeline/prizmkit_runtime/commands.py +313 -0
- package/bundled/dev-pipeline/prizmkit_runtime/compat.py +32 -0
- package/bundled/dev-pipeline/prizmkit_runtime/config.py +410 -0
- package/bundled/dev-pipeline/prizmkit_runtime/daemon.py +478 -0
- package/bundled/dev-pipeline/prizmkit_runtime/gitops.py +734 -0
- package/bundled/dev-pipeline/prizmkit_runtime/heartbeat.py +256 -0
- package/bundled/dev-pipeline/prizmkit_runtime/interoperability.py +109 -0
- package/bundled/dev-pipeline/prizmkit_runtime/paths.py +110 -0
- package/bundled/dev-pipeline/prizmkit_runtime/processes.py +373 -0
- package/bundled/dev-pipeline/prizmkit_runtime/reset.py +389 -0
- package/bundled/dev-pipeline/prizmkit_runtime/runner_bookkeeping.py +51 -0
- package/bundled/dev-pipeline/prizmkit_runtime/runner_classification.py +179 -0
- package/bundled/dev-pipeline/prizmkit_runtime/runner_models.py +345 -0
- package/bundled/dev-pipeline/prizmkit_runtime/runner_prompts.py +118 -0
- package/bundled/dev-pipeline/prizmkit_runtime/runner_recovery.py +187 -0
- package/bundled/dev-pipeline/prizmkit_runtime/runner_status.py +147 -0
- package/bundled/dev-pipeline/prizmkit_runtime/runners.py +422 -0
- package/bundled/dev-pipeline/prizmkit_runtime/sessions.py +552 -0
- package/bundled/dev-pipeline/prizmkit_runtime/status.py +71 -0
- package/bundled/dev-pipeline/scripts/check-session-status.py +74 -1
- package/bundled/dev-pipeline/scripts/continuation.py +374 -0
- package/bundled/dev-pipeline/scripts/generate-bootstrap-prompt.py +64 -52
- package/bundled/dev-pipeline/scripts/generate-bugfix-prompt.py +35 -25
- package/bundled/dev-pipeline/scripts/generate-recovery-prompt.py +2 -2
- package/bundled/dev-pipeline/scripts/generate-refactor-prompt.py +15 -20
- package/bundled/dev-pipeline/scripts/parse-stream-progress.py +185 -16
- package/bundled/dev-pipeline/scripts/update-bug-status.py +214 -6
- package/bundled/dev-pipeline/scripts/update-feature-status.py +237 -6
- package/bundled/dev-pipeline/scripts/update-refactor-status.py +214 -6
- package/bundled/dev-pipeline/templates/agent-prompts/dev-implement.md +8 -2
- package/bundled/dev-pipeline/templates/bootstrap-prompt.md +4 -0
- package/bundled/dev-pipeline/templates/bootstrap-tier1.md +14 -5
- package/bundled/dev-pipeline/templates/bootstrap-tier2.md +16 -6
- package/bundled/dev-pipeline/templates/bootstrap-tier3.md +16 -6
- package/bundled/dev-pipeline/templates/bugfix-bootstrap-prompt.md +1 -1
- package/bundled/dev-pipeline/templates/refactor-bootstrap-prompt.md +3 -3
- package/bundled/dev-pipeline/templates/sections/context-budget-rules.md +2 -0
- package/bundled/dev-pipeline/templates/sections/log-size-awareness.md +13 -69
- package/bundled/dev-pipeline/templates/sections/phase-context-snapshot-agent-suffix.md +15 -7
- package/bundled/dev-pipeline/templates/sections/phase-implement-agent.md +42 -29
- package/bundled/dev-pipeline/templates/sections/phase-implement-full.md +41 -39
- package/bundled/dev-pipeline/templates/sections/test-failure-recovery-agent.md +4 -0
- package/bundled/dev-pipeline/templates/sections/test-failure-recovery-lite.md +4 -0
- package/bundled/dev-pipeline/templates/session-status-schema.json +1 -1
- package/bundled/dev-pipeline/tests/conftest.py +1 -0
- package/bundled/dev-pipeline/tests/test_auto_skip.py +932 -0
- package/bundled/dev-pipeline/tests/test_generate_bootstrap_prompt.py +207 -0
- package/bundled/dev-pipeline/tests/test_generate_bugfix_prompt.py +100 -0
- package/bundled/dev-pipeline/tests/test_generate_refactor_prompt.py +43 -0
- package/bundled/dev-pipeline/tests/test_python_runner_parity.py +1138 -0
- package/bundled/dev-pipeline/tests/test_unified_cli.py +1045 -0
- package/bundled/skills/_metadata.json +1 -1
- package/bundled/skills/bugfix-pipeline-launcher/SKILL.md +29 -34
- package/bundled/skills/bugfix-pipeline-launcher/references/configuration.md +6 -5
- package/bundled/skills/feature-pipeline-launcher/SKILL.md +29 -35
- package/bundled/skills/feature-pipeline-launcher/references/configuration.md +7 -6
- package/bundled/skills/feature-workflow/SKILL.md +3 -6
- package/bundled/skills/recovery-workflow/SKILL.md +23 -32
- package/bundled/skills/refactor-pipeline-launcher/SKILL.md +29 -35
- package/bundled/skills/refactor-pipeline-launcher/references/configuration.md +7 -6
- package/bundled/skills/refactor-workflow/SKILL.md +3 -6
- package/bundled/templates/hooks/commit-intent.json +2 -2
- package/bundled/templates/hooks/diff-prizm-docs.py +226 -0
- package/bundled/templates/hooks/prizm-pre-commit.py +45 -0
- package/bundled/templates/hooks/validate-prizm-docs.py +240 -0
- package/package.json +1 -1
- package/src/config.js +33 -12
- package/src/index.js +3 -6
- package/src/manifest.js +3 -2
- package/src/metadata.js +7 -18
- package/src/prompts.js +0 -12
- package/src/runtimes.js +18 -11
- package/src/scaffold.js +133 -116
- package/src/upgrade.js +1 -1
- package/bundled/dev-pipeline/launch-bugfix-daemon.sh +0 -500
- package/bundled/dev-pipeline/launch-feature-daemon.sh +0 -657
- package/bundled/dev-pipeline/launch-refactor-daemon.sh +0 -502
- package/bundled/dev-pipeline/lib/branch.sh +0 -326
- package/bundled/dev-pipeline/lib/common.sh +0 -1257
- package/bundled/dev-pipeline/lib/heartbeat.sh +0 -469
- package/bundled/dev-pipeline/reset-bug.sh +0 -395
- package/bundled/dev-pipeline/reset-feature.sh +0 -406
- package/bundled/dev-pipeline/reset-refactor.sh +0 -393
- package/bundled/dev-pipeline/run-bugfix.sh +0 -1315
- package/bundled/dev-pipeline/run-feature.sh +0 -1602
- package/bundled/dev-pipeline/run-recovery.sh +0 -648
- package/bundled/dev-pipeline/run-refactor.sh +0 -1348
- package/bundled/dev-pipeline/scripts/monitor-log.sh +0 -104
- package/bundled/dev-pipeline/tests/test-path-resolution.sh +0 -100
- package/bundled/dev-pipeline-windows/.env.example +0 -36
- package/bundled/dev-pipeline-windows/README.md +0 -30
- package/bundled/dev-pipeline-windows/SCHEMA_ANALYSIS.md +0 -533
- package/bundled/dev-pipeline-windows/assets/feature-list-example.json +0 -146
- package/bundled/dev-pipeline-windows/assets/prizm-dev-team-integration.md +0 -137
- package/bundled/dev-pipeline-windows/launch-bugfix-daemon.ps1 +0 -9
- package/bundled/dev-pipeline-windows/launch-feature-daemon.ps1 +0 -9
- package/bundled/dev-pipeline-windows/launch-refactor-daemon.ps1 +0 -9
- package/bundled/dev-pipeline-windows/lib/branch.ps1 +0 -235
- package/bundled/dev-pipeline-windows/lib/common.ps1 +0 -829
- package/bundled/dev-pipeline-windows/lib/daemon.ps1 +0 -140
- package/bundled/dev-pipeline-windows/lib/pipeline.ps1 +0 -967
- package/bundled/dev-pipeline-windows/lib/reset.ps1 +0 -87
- package/bundled/dev-pipeline-windows/reset-bug.ps1 +0 -9
- package/bundled/dev-pipeline-windows/reset-feature.ps1 +0 -9
- package/bundled/dev-pipeline-windows/reset-refactor.ps1 +0 -9
- package/bundled/dev-pipeline-windows/run-bugfix.ps1 +0 -9
- package/bundled/dev-pipeline-windows/run-feature.ps1 +0 -9
- package/bundled/dev-pipeline-windows/run-recovery.ps1 +0 -179
- package/bundled/dev-pipeline-windows/run-refactor.ps1 +0 -9
- package/bundled/dev-pipeline-windows/scripts/check-session-status.py +0 -228
- package/bundled/dev-pipeline-windows/scripts/detect-stuck.py +0 -530
- package/bundled/dev-pipeline-windows/scripts/generate-bootstrap-prompt.py +0 -2282
- package/bundled/dev-pipeline-windows/scripts/generate-bugfix-prompt.py +0 -767
- package/bundled/dev-pipeline-windows/scripts/generate-recovery-prompt.py +0 -805
- package/bundled/dev-pipeline-windows/scripts/generate-refactor-prompt.py +0 -845
- package/bundled/dev-pipeline-windows/scripts/init-bugfix-pipeline.py +0 -316
- package/bundled/dev-pipeline-windows/scripts/init-dev-team.py +0 -134
- package/bundled/dev-pipeline-windows/scripts/init-pipeline.py +0 -382
- package/bundled/dev-pipeline-windows/scripts/init-refactor-pipeline.py +0 -399
- package/bundled/dev-pipeline-windows/scripts/monitor-log.ps1 +0 -102
- package/bundled/dev-pipeline-windows/scripts/parse-stream-progress.py +0 -1232
- package/bundled/dev-pipeline-windows/scripts/patch-completion-notes.py +0 -191
- package/bundled/dev-pipeline-windows/scripts/prizmkit-test-gate.py +0 -446
- package/bundled/dev-pipeline-windows/scripts/update-bug-status.py +0 -913
- package/bundled/dev-pipeline-windows/scripts/update-checkpoint.py +0 -173
- package/bundled/dev-pipeline-windows/scripts/update-feature-status.py +0 -1558
- package/bundled/dev-pipeline-windows/scripts/update-refactor-status.py +0 -1119
- package/bundled/dev-pipeline-windows/scripts/utils.py +0 -542
- package/bundled/dev-pipeline-windows/templates/agent-prompts/critic-plan-challenge.md +0 -7
- package/bundled/dev-pipeline-windows/templates/agent-prompts/dev-fix.md +0 -7
- package/bundled/dev-pipeline-windows/templates/agent-prompts/dev-implement.md +0 -65
- package/bundled/dev-pipeline-windows/templates/agent-prompts/dev-resume.md +0 -5
- package/bundled/dev-pipeline-windows/templates/agent-prompts/reviewer-review.md +0 -7
- package/bundled/dev-pipeline-windows/templates/bootstrap-prompt.md +0 -73
- package/bundled/dev-pipeline-windows/templates/bootstrap-tier1.md +0 -589
- package/bundled/dev-pipeline-windows/templates/bootstrap-tier2.md +0 -710
- package/bundled/dev-pipeline-windows/templates/bootstrap-tier3.md +0 -791
- package/bundled/dev-pipeline-windows/templates/bug-fix-list-schema.json +0 -263
- package/bundled/dev-pipeline-windows/templates/bugfix-bootstrap-prompt.md +0 -326
- package/bundled/dev-pipeline-windows/templates/feature-list-schema.json +0 -237
- package/bundled/dev-pipeline-windows/templates/refactor-bootstrap-prompt.md +0 -340
- package/bundled/dev-pipeline-windows/templates/refactor-list-schema.json +0 -270
- package/bundled/dev-pipeline-windows/templates/sections/ac-verification-checklist.md +0 -7
- package/bundled/dev-pipeline-windows/templates/sections/checkpoint-system.md +0 -91
- package/bundled/dev-pipeline-windows/templates/sections/context-budget-rules.md +0 -34
- package/bundled/dev-pipeline-windows/templates/sections/critical-paths-agent.md +0 -10
- package/bundled/dev-pipeline-windows/templates/sections/critical-paths-full.md +0 -12
- package/bundled/dev-pipeline-windows/templates/sections/critical-paths-lite.md +0 -7
- package/bundled/dev-pipeline-windows/templates/sections/directory-convention-agent.md +0 -8
- package/bundled/dev-pipeline-windows/templates/sections/directory-convention-full.md +0 -9
- package/bundled/dev-pipeline-windows/templates/sections/directory-convention-lite.md +0 -6
- package/bundled/dev-pipeline-windows/templates/sections/failure-capture.md +0 -21
- package/bundled/dev-pipeline-windows/templates/sections/feature-context.md +0 -21
- package/bundled/dev-pipeline-windows/templates/sections/log-size-awareness.md +0 -78
- package/bundled/dev-pipeline-windows/templates/sections/phase-browser-verification-auto.md +0 -283
- package/bundled/dev-pipeline-windows/templates/sections/phase-browser-verification-opencli.md +0 -112
- package/bundled/dev-pipeline-windows/templates/sections/phase-browser-verification.md +0 -168
- package/bundled/dev-pipeline-windows/templates/sections/phase-commit-full.md +0 -82
- package/bundled/dev-pipeline-windows/templates/sections/phase-commit.md +0 -75
- package/bundled/dev-pipeline-windows/templates/sections/phase-context-snapshot-agent-suffix.md +0 -23
- package/bundled/dev-pipeline-windows/templates/sections/phase-context-snapshot-base.md +0 -14
- package/bundled/dev-pipeline-windows/templates/sections/phase-context-snapshot-lite-suffix.md +0 -19
- package/bundled/dev-pipeline-windows/templates/sections/phase-critic-plan-full.md +0 -63
- package/bundled/dev-pipeline-windows/templates/sections/phase-critic-plan.md +0 -42
- package/bundled/dev-pipeline-windows/templates/sections/phase-implement-agent.md +0 -44
- package/bundled/dev-pipeline-windows/templates/sections/phase-implement-full.md +0 -59
- package/bundled/dev-pipeline-windows/templates/sections/phase-implement-lite.md +0 -39
- package/bundled/dev-pipeline-windows/templates/sections/phase-plan-agent.md +0 -27
- package/bundled/dev-pipeline-windows/templates/sections/phase-plan-lite.md +0 -27
- package/bundled/dev-pipeline-windows/templates/sections/phase-prizmkit-test.md +0 -39
- package/bundled/dev-pipeline-windows/templates/sections/phase-review-agent.md +0 -35
- package/bundled/dev-pipeline-windows/templates/sections/phase-review-full.md +0 -35
- package/bundled/dev-pipeline-windows/templates/sections/phase-specify-plan-full.md +0 -73
- package/bundled/dev-pipeline-windows/templates/sections/phase0-init.md +0 -13
- package/bundled/dev-pipeline-windows/templates/sections/phase0-test-baseline.md +0 -21
- package/bundled/dev-pipeline-windows/templates/sections/session-context.md +0 -5
- package/bundled/dev-pipeline-windows/templates/sections/subagent-timeout-recovery.md +0 -6
- package/bundled/dev-pipeline-windows/templates/sections/task-contract.md +0 -34
- package/bundled/dev-pipeline-windows/templates/sections/test-failure-recovery-agent.md +0 -48
- package/bundled/dev-pipeline-windows/templates/sections/test-failure-recovery-lite.md +0 -48
- package/bundled/dev-pipeline-windows/templates/session-status-schema.json +0 -83
- package/bundled/skills-windows/app-planner/SKILL.md +0 -296
- package/bundled/skills-windows/app-planner/assets/app-design-guide.md +0 -101
- package/bundled/skills-windows/app-planner/references/architecture-decisions.md +0 -52
- package/bundled/skills-windows/app-planner/references/brainstorm-guide.md +0 -101
- package/bundled/skills-windows/app-planner/references/frontend-design-guide.md +0 -71
- package/bundled/skills-windows/app-planner/references/infrastructure-convention-discovery.md +0 -108
- package/bundled/skills-windows/app-planner/references/project-brief-guide.md +0 -82
- package/bundled/skills-windows/app-planner/references/project-conventions-discovery.md +0 -59
- package/bundled/skills-windows/app-planner/references/project-state-detection.md +0 -90
- package/bundled/skills-windows/app-planner/references/red-team-checklist.md +0 -40
- package/bundled/skills-windows/app-planner/references/rules/backend/derivation-rules.md +0 -619
- package/bundled/skills-windows/app-planner/references/rules/backend/fixed-rules.md +0 -285
- package/bundled/skills-windows/app-planner/references/rules/backend/question-bank.md +0 -249
- package/bundled/skills-windows/app-planner/references/rules/backend/question-manifest.json +0 -46
- package/bundled/skills-windows/app-planner/references/rules/backend/template.md +0 -173
- package/bundled/skills-windows/app-planner/references/rules/database/derivation-rules.md +0 -382
- package/bundled/skills-windows/app-planner/references/rules/database/fixed-rules.md +0 -211
- package/bundled/skills-windows/app-planner/references/rules/database/question-bank.md +0 -184
- package/bundled/skills-windows/app-planner/references/rules/database/question-manifest.json +0 -39
- package/bundled/skills-windows/app-planner/references/rules/database/template.md +0 -158
- package/bundled/skills-windows/app-planner/references/rules/frontend/derivation-rules.md +0 -820
- package/bundled/skills-windows/app-planner/references/rules/frontend/fixed-rules.md +0 -188
- package/bundled/skills-windows/app-planner/references/rules/frontend/question-bank.md +0 -319
- package/bundled/skills-windows/app-planner/references/rules/frontend/question-manifest.json +0 -51
- package/bundled/skills-windows/app-planner/references/rules/frontend/template.md +0 -339
- package/bundled/skills-windows/app-planner/references/rules/mobile/derivation-rules.md +0 -649
- package/bundled/skills-windows/app-planner/references/rules/mobile/fixed-rules.md +0 -290
- package/bundled/skills-windows/app-planner/references/rules/mobile/question-bank.md +0 -232
- package/bundled/skills-windows/app-planner/references/rules/mobile/question-manifest.json +0 -47
- package/bundled/skills-windows/app-planner/references/rules/mobile/template.md +0 -175
- package/bundled/skills-windows/app-planner/references/rules-configuration.md +0 -46
- package/bundled/skills-windows/bug-fix-workflow/SKILL.md +0 -379
- package/bundled/skills-windows/bug-fix-workflow/references/bug-diagnosis.md +0 -41
- package/bundled/skills-windows/bug-planner/SKILL.md +0 -402
- package/bundled/skills-windows/bug-planner/assets/bug-confirmation-template.md +0 -43
- package/bundled/skills-windows/bug-planner/references/critic-and-verification.md +0 -44
- package/bundled/skills-windows/bug-planner/references/error-recovery.md +0 -73
- package/bundled/skills-windows/bug-planner/references/input-formats.md +0 -53
- package/bundled/skills-windows/bug-planner/references/schema-validation.md +0 -25
- package/bundled/skills-windows/bug-planner/references/severity-rules.md +0 -16
- package/bundled/skills-windows/bug-planner/scripts/validate-bug-list.py +0 -322
- package/bundled/skills-windows/bugfix-pipeline-launcher/SKILL.md +0 -304
- package/bundled/skills-windows/bugfix-pipeline-launcher/references/configuration.md +0 -84
- package/bundled/skills-windows/feature-pipeline-launcher/SKILL.md +0 -381
- package/bundled/skills-windows/feature-pipeline-launcher/references/configuration.md +0 -67
- package/bundled/skills-windows/feature-pipeline-launcher/scripts/preflight-check.py +0 -462
- package/bundled/skills-windows/feature-planner/SKILL.md +0 -397
- package/bundled/skills-windows/feature-planner/assets/evaluation-guide.md +0 -64
- package/bundled/skills-windows/feature-planner/assets/planning-guide.md +0 -214
- package/bundled/skills-windows/feature-planner/references/browser-interaction.md +0 -59
- package/bundled/skills-windows/feature-planner/references/completeness-review.md +0 -57
- package/bundled/skills-windows/feature-planner/references/decomposition-patterns.md +0 -75
- package/bundled/skills-windows/feature-planner/references/error-recovery.md +0 -90
- package/bundled/skills-windows/feature-planner/references/incremental-feature-planning.md +0 -112
- package/bundled/skills-windows/feature-planner/references/new-project-planning.md +0 -85
- package/bundled/skills-windows/feature-planner/scripts/validate-and-generate.py +0 -1020
- package/bundled/skills-windows/feature-workflow/SKILL.md +0 -374
- package/bundled/skills-windows/feature-workflow/references/brainstorm-guide.md +0 -137
- package/bundled/skills-windows/prizm-kit/SKILL.md +0 -93
- package/bundled/skills-windows/prizmkit-code-review/SKILL.md +0 -161
- package/bundled/skills-windows/prizmkit-code-review/references/dev-agent-prompt.md +0 -30
- package/bundled/skills-windows/prizmkit-code-review/references/review-report-template.md +0 -31
- package/bundled/skills-windows/prizmkit-code-review/references/reviewer-agent-prompt.md +0 -66
- package/bundled/skills-windows/prizmkit-code-review/scripts/check_loop.py +0 -186
- package/bundled/skills-windows/prizmkit-committer/SKILL.md +0 -89
- package/bundled/skills-windows/prizmkit-deploy/SKILL.md +0 -444
- package/bundled/skills-windows/prizmkit-deploy/references/ci-cd-workflows.md +0 -115
- package/bundled/skills-windows/prizmkit-deploy/references/cloud-platform-deploy.md +0 -93
- package/bundled/skills-windows/prizmkit-deploy/references/data-safety-examples.md +0 -120
- package/bundled/skills-windows/prizmkit-deploy/references/database-setup.md +0 -46
- package/bundled/skills-windows/prizmkit-deploy/references/deploy-config-schema.md +0 -148
- package/bundled/skills-windows/prizmkit-deploy/references/deploy-history-schema.md +0 -62
- package/bundled/skills-windows/prizmkit-deploy/references/deployment-modes.md +0 -50
- package/bundled/skills-windows/prizmkit-deploy/references/direct-upload.md +0 -26
- package/bundled/skills-windows/prizmkit-deploy/references/dns-setup.md +0 -42
- package/bundled/skills-windows/prizmkit-deploy/references/docker-deploy.md +0 -31
- package/bundled/skills-windows/prizmkit-deploy/references/firewall-setup.md +0 -37
- package/bundled/skills-windows/prizmkit-deploy/references/live-validation-notes.md +0 -21
- package/bundled/skills-windows/prizmkit-deploy/references/nginx-blue-green.md +0 -59
- package/bundled/skills-windows/prizmkit-deploy/references/ssh-bootstrap-flow.md +0 -49
- package/bundled/skills-windows/prizmkit-deploy/references/ssh-execution-flow.md +0 -41
- package/bundled/skills-windows/prizmkit-deploy/references/ssh-takeover.md +0 -20
- package/bundled/skills-windows/prizmkit-deploy/references/ssl-setup.md +0 -56
- package/bundled/skills-windows/prizmkit-implement/SKILL.md +0 -71
- package/bundled/skills-windows/prizmkit-init/SKILL.md +0 -356
- package/bundled/skills-windows/prizmkit-init/assets/project-brief-template.md +0 -82
- package/bundled/skills-windows/prizmkit-init/references/config-schema.md +0 -70
- package/bundled/skills-windows/prizmkit-init/references/rules/layer-detection.md +0 -41
- package/bundled/skills-windows/prizmkit-init/references/tech-stack-catalog.md +0 -13
- package/bundled/skills-windows/prizmkit-init/references/update-supplement.md +0 -9
- package/bundled/skills-windows/prizmkit-plan/SKILL.md +0 -102
- package/bundled/skills-windows/prizmkit-plan/assets/plan-template.md +0 -115
- package/bundled/skills-windows/prizmkit-plan/assets/spec-template.md +0 -73
- package/bundled/skills-windows/prizmkit-plan/references/clarify-guide.md +0 -67
- package/bundled/skills-windows/prizmkit-plan/references/examples.md +0 -85
- package/bundled/skills-windows/prizmkit-plan/references/verification-checklist.md +0 -60
- package/bundled/skills-windows/prizmkit-prizm-docs/SKILL.md +0 -129
- package/bundled/skills-windows/prizmkit-prizm-docs/assets/prizm-docs-format.md +0 -613
- package/bundled/skills-windows/prizmkit-prizm-docs/references/op-init.md +0 -45
- package/bundled/skills-windows/prizmkit-prizm-docs/references/op-rebuild.md +0 -15
- package/bundled/skills-windows/prizmkit-prizm-docs/references/op-status.md +0 -14
- package/bundled/skills-windows/prizmkit-prizm-docs/references/op-update.md +0 -19
- package/bundled/skills-windows/prizmkit-prizm-docs/references/op-validate.md +0 -17
- package/bundled/skills-windows/prizmkit-retrospective/SKILL.md +0 -87
- package/bundled/skills-windows/prizmkit-retrospective/references/knowledge-injection-steps.md +0 -50
- package/bundled/skills-windows/prizmkit-retrospective/references/structural-sync-steps.md +0 -43
- package/bundled/skills-windows/prizmkit-test/SKILL.md +0 -227
- package/bundled/skills-windows/prizmkit-test/references/boundary-coverage-protocol.md +0 -220
- package/bundled/skills-windows/prizmkit-test/references/examples.md +0 -143
- package/bundled/skills-windows/prizmkit-test/references/service-boundary-test-catalog.md +0 -225
- package/bundled/skills-windows/prizmkit-test/references/test-generation-steps.md +0 -109
- package/bundled/skills-windows/prizmkit-test/references/test-report-template.md +0 -111
- package/bundled/skills-windows/prizmkit-test/scripts/validate_boundary_report.py +0 -347
- package/bundled/skills-windows/recovery-workflow/SKILL.md +0 -355
- package/bundled/skills-windows/recovery-workflow/evals/evals.json +0 -46
- package/bundled/skills-windows/recovery-workflow/references/detection.md +0 -58
- package/bundled/skills-windows/recovery-workflow/scripts/detect-recovery-state.py +0 -544
- package/bundled/skills-windows/refactor-pipeline-launcher/SKILL.md +0 -346
- package/bundled/skills-windows/refactor-pipeline-launcher/references/configuration.md +0 -72
- package/bundled/skills-windows/refactor-planner/SKILL.md +0 -398
- package/bundled/skills-windows/refactor-planner/assets/planning-guide.md +0 -292
- package/bundled/skills-windows/refactor-planner/references/behavior-preservation.md +0 -301
- package/bundled/skills-windows/refactor-planner/references/fast-path.md +0 -59
- package/bundled/skills-windows/refactor-planner/references/planning-phases.md +0 -135
- package/bundled/skills-windows/refactor-planner/references/refactor-scoping-guide.md +0 -221
- package/bundled/skills-windows/refactor-planner/scripts/validate-and-generate-refactor.py +0 -858
- package/bundled/skills-windows/refactor-workflow/SKILL.md +0 -343
- package/bundled/skills-windows/refactor-workflow/references/brainstorm-guide.md +0 -116
- package/bundled/templates/hooks/diff-prizm-docs.sh +0 -158
- package/bundled/templates/hooks/prizm-pre-commit.sh +0 -108
- package/bundled/templates/hooks/validate-prizm-docs.sh +0 -139
|
@@ -28,11 +28,11 @@ import re
|
|
|
28
28
|
import sys
|
|
29
29
|
|
|
30
30
|
from utils import enrich_global_context, load_json_file, read_platform_conventions, setup_logging
|
|
31
|
+
from continuation import add_continuation_args, append_continuation_handoff, is_continuation
|
|
31
32
|
|
|
32
33
|
|
|
33
34
|
DEFAULT_MAX_RETRIES = 3
|
|
34
35
|
DEFAULT_MAX_LOG_SIZE = 2097152
|
|
35
|
-
DEFAULT_LOG_MONITOR_POLL_INTERVAL = 30
|
|
36
36
|
|
|
37
37
|
LOGGER = setup_logging("generate-bootstrap-prompt")
|
|
38
38
|
|
|
@@ -84,6 +84,11 @@ def parse_args():
|
|
|
84
84
|
required=True,
|
|
85
85
|
help="Output path for the rendered prompt",
|
|
86
86
|
)
|
|
87
|
+
parser.add_argument(
|
|
88
|
+
"--project-root",
|
|
89
|
+
default=None,
|
|
90
|
+
help="AI-visible project root used for rendered prompt paths",
|
|
91
|
+
)
|
|
87
92
|
parser.add_argument(
|
|
88
93
|
"--template",
|
|
89
94
|
default=None,
|
|
@@ -110,6 +115,8 @@ def parse_args():
|
|
|
110
115
|
help="Run tests and extract baseline failures (slower, optional)",
|
|
111
116
|
)
|
|
112
117
|
|
|
118
|
+
add_continuation_args(parser, "feature")
|
|
119
|
+
|
|
113
120
|
return parser.parse_args()
|
|
114
121
|
|
|
115
122
|
|
|
@@ -477,6 +484,14 @@ def resolve_project_root(script_dir):
|
|
|
477
484
|
return os.path.abspath(pipeline_parent)
|
|
478
485
|
|
|
479
486
|
|
|
487
|
+
def _args_project_root(args, script_dir):
|
|
488
|
+
"""Return explicit AI-visible project root or script-layout default."""
|
|
489
|
+
explicit = getattr(args, "project_root", None)
|
|
490
|
+
if explicit:
|
|
491
|
+
return os.path.abspath(explicit)
|
|
492
|
+
return resolve_project_root(script_dir)
|
|
493
|
+
|
|
494
|
+
|
|
480
495
|
def process_conditional_blocks(content, resume_phase):
|
|
481
496
|
"""Handle conditional blocks based on resume_phase.
|
|
482
497
|
|
|
@@ -1319,14 +1334,15 @@ def _tier_header(pipeline_mode):
|
|
|
1319
1334
|
"lite": (
|
|
1320
1335
|
"# Dev-Pipeline Session Bootstrap — Tier 1 (Single Agent)\n",
|
|
1321
1336
|
"**Tier 1 — Single Agent**: You handle everything directly. "
|
|
1322
|
-
"No normal work subagents
|
|
1323
|
-
"allowed persistent background subagent. No TeamCreate.\n",
|
|
1337
|
+
"No normal work subagents. No TeamCreate.\n",
|
|
1324
1338
|
),
|
|
1325
1339
|
"standard": (
|
|
1326
|
-
"# Dev-Pipeline Session Bootstrap — Tier 2
|
|
1327
|
-
"
|
|
1328
|
-
"
|
|
1329
|
-
"
|
|
1340
|
+
"# Dev-Pipeline Session Bootstrap — Tier 2 "
|
|
1341
|
+
"(Orchestrator + Critic/Reviewer)\n",
|
|
1342
|
+
"**Tier 2 — Orchestrator + Critic/Reviewer**: You handle "
|
|
1343
|
+
"context + planning + implementation directly. Critic challenges "
|
|
1344
|
+
"plan (if enabled), Reviewer reviews. No Dev subagent — "
|
|
1345
|
+
"orchestrator implements directly (P0-6).\n",
|
|
1330
1346
|
),
|
|
1331
1347
|
"full": (
|
|
1332
1348
|
"# Dev-Pipeline Session Bootstrap — Tier 3 (Full Team)\n",
|
|
@@ -1358,22 +1374,18 @@ def _tier_reminders(pipeline_mode, critic_enabled=False):
|
|
|
1358
1374
|
if pipeline_mode == "lite":
|
|
1359
1375
|
specific = [
|
|
1360
1376
|
"- Tier 1: you handle everything directly — no normal work "
|
|
1361
|
-
"subagents needed
|
|
1362
|
-
"persistent background subagent",
|
|
1377
|
+
"subagents needed",
|
|
1363
1378
|
]
|
|
1364
1379
|
elif pipeline_mode == "standard":
|
|
1365
1380
|
specific = [
|
|
1366
|
-
"- Tier 2: orchestrator builds context+plan,
|
|
1367
|
-
"
|
|
1368
|
-
"
|
|
1381
|
+
"- Tier 2: orchestrator builds context+plan, Critic challenges "
|
|
1382
|
+
"plan (if enabled), orchestrator implements directly (no Dev "
|
|
1383
|
+
"subagent), Reviewer reviews — see P0-6",
|
|
1369
1384
|
"- context-snapshot.md is append-only: orchestrator writes "
|
|
1370
|
-
"Sections 1-4
|
|
1371
|
-
"
|
|
1372
|
-
"
|
|
1373
|
-
"
|
|
1374
|
-
"- Do NOT use `run_in_background=true` when spawning normal work "
|
|
1375
|
-
"subagents; the log-size monitor is the only allowed persistent "
|
|
1376
|
-
"background subagent",
|
|
1385
|
+
"Sections 1-4 + Implementation Log, Reviewer appends Review Notes",
|
|
1386
|
+
"- Gate checks enforce Implementation Log (with Gate Evidence) "
|
|
1387
|
+
"and Review Notes are written before proceeding",
|
|
1388
|
+
"- Do NOT use `run_in_background=true` when spawning Reviewer",
|
|
1377
1389
|
"- On timeout: check snapshot + git diff HEAD → model:lite → "
|
|
1378
1390
|
"remaining steps only → max 2 retries per phase → "
|
|
1379
1391
|
"orchestrator fallback",
|
|
@@ -1388,8 +1400,7 @@ def _tier_reminders(pipeline_mode, critic_enabled=False):
|
|
|
1388
1400
|
"- Gate checks enforce Implementation Log and Review Notes are "
|
|
1389
1401
|
"written before proceeding",
|
|
1390
1402
|
"- Do NOT use `run_in_background=true` when spawning normal work "
|
|
1391
|
-
"agents
|
|
1392
|
-
"background subagent",
|
|
1403
|
+
"agents",
|
|
1393
1404
|
"- On timeout: check snapshot → model:lite → remaining steps "
|
|
1394
1405
|
"only → max 2 retries → orchestrator fallback",
|
|
1395
1406
|
]
|
|
@@ -1429,8 +1440,7 @@ def assemble_sections(pipeline_mode, sections_dir, init_done, is_resume,
|
|
|
1429
1440
|
if pipeline_mode != "lite":
|
|
1430
1441
|
mission += (
|
|
1431
1442
|
" When you spawn normal work subagents, wait for each to finish "
|
|
1432
|
-
"(run_in_background=false).
|
|
1433
|
-
"allowed persistent background subagent."
|
|
1443
|
+
"(run_in_background=false)."
|
|
1434
1444
|
)
|
|
1435
1445
|
if pipeline_mode == "full":
|
|
1436
1446
|
mission += (
|
|
@@ -1700,7 +1710,7 @@ def validate_rendered(content):
|
|
|
1700
1710
|
|
|
1701
1711
|
def build_replacements(args, feature, features, global_context, script_dir):
|
|
1702
1712
|
"""Build the full dict of placeholder -> replacement value."""
|
|
1703
|
-
project_root =
|
|
1713
|
+
project_root = _args_project_root(args, script_dir)
|
|
1704
1714
|
|
|
1705
1715
|
# Resolve paths - platform-aware agent/team resolution
|
|
1706
1716
|
platform = os.environ.get("PRIZMKIT_PLATFORM", "")
|
|
@@ -1771,13 +1781,17 @@ def build_replacements(args, feature, features, global_context, script_dir):
|
|
|
1771
1781
|
validator_scripts_dir = os.path.join(project_root, ".prizmkit", "dev-pipeline", "scripts")
|
|
1772
1782
|
init_script_path = os.path.join(validator_scripts_dir, "init-dev-team.py")
|
|
1773
1783
|
|
|
1774
|
-
# Session status
|
|
1775
|
-
|
|
1776
|
-
|
|
1777
|
-
|
|
1784
|
+
# Session status is controlled by the main runner state dir, even when
|
|
1785
|
+
# rendered project paths are AI-visible worktree paths.
|
|
1786
|
+
state_dir = (
|
|
1787
|
+
os.path.abspath(args.state_dir)
|
|
1788
|
+
if args.state_dir
|
|
1789
|
+
else os.path.join(project_root, ".prizmkit", "state", "features")
|
|
1790
|
+
)
|
|
1791
|
+
session_status_abs = os.path.join(
|
|
1792
|
+
state_dir, args.feature_id, "sessions", args.session_id,
|
|
1793
|
+
"session-status.json",
|
|
1778
1794
|
)
|
|
1779
|
-
# Make it absolute from project root
|
|
1780
|
-
session_status_abs = os.path.join(project_root, session_status_path)
|
|
1781
1795
|
|
|
1782
1796
|
# Compute feature slug for per-feature directory naming
|
|
1783
1797
|
feature_slug = compute_feature_slug(
|
|
@@ -1928,12 +1942,6 @@ def build_replacements(args, feature, features, global_context, script_dir):
|
|
|
1928
1942
|
dev_url = f"http://localhost:{dev_port}"
|
|
1929
1943
|
|
|
1930
1944
|
max_log_size = _parse_non_negative_int_env("MAX_LOG_SIZE", DEFAULT_MAX_LOG_SIZE)
|
|
1931
|
-
if max_log_size == 0:
|
|
1932
|
-
poll_interval = DEFAULT_LOG_MONITOR_POLL_INTERVAL
|
|
1933
|
-
else:
|
|
1934
|
-
poll_interval = _parse_positive_int_env(
|
|
1935
|
-
"LOG_MONITOR_POLL_INTERVAL", DEFAULT_LOG_MONITOR_POLL_INTERVAL,
|
|
1936
|
-
)
|
|
1937
1945
|
|
|
1938
1946
|
replacements = {
|
|
1939
1947
|
"{{LOG_SIZE_AWARENESS}}": load_log_size_section(script_dir),
|
|
@@ -1983,22 +1991,10 @@ def build_replacements(args, feature, features, global_context, script_dir):
|
|
|
1983
1991
|
"{{DEV_URL}}": dev_url,
|
|
1984
1992
|
"{{MAX_LOG_SIZE}}": str(max_log_size),
|
|
1985
1993
|
"{{MAX_LOG_SIZE_HUMAN}}": _format_bytes(max_log_size),
|
|
1986
|
-
"{{LOG_MONITOR_POLL_INTERVAL}}": str(poll_interval),
|
|
1987
|
-
"{{LOG_MONITOR_STATUS_FILE}}": os.path.join(
|
|
1988
|
-
".prizmkit", "state", "features", args.feature_id,
|
|
1989
|
-
"sessions", args.session_id, "logs", "log-monitor-status.txt",
|
|
1990
|
-
),
|
|
1991
|
-
"{{LOG_MONITOR_BASELINE_FILE}}": os.path.join(
|
|
1992
|
-
".prizmkit", "state", "features", args.feature_id,
|
|
1993
|
-
"sessions", args.session_id, "logs", "log-monitor-baseline.txt",
|
|
1994
|
-
),
|
|
1995
1994
|
"{{SESSION_LOG_PATH}}": os.path.join(
|
|
1996
1995
|
".prizmkit", "state", "features", args.feature_id,
|
|
1997
1996
|
"sessions", args.session_id, "logs", "session.log",
|
|
1998
1997
|
),
|
|
1999
|
-
"{{LOG_MONITOR_SCRIPT}}": os.path.join(
|
|
2000
|
-
".prizmkit", "dev-pipeline", "scripts", "monitor-log.sh",
|
|
2001
|
-
),
|
|
2002
1998
|
}
|
|
2003
1999
|
|
|
2004
2000
|
return replacements, effective_resume, browser_enabled, browser_tool
|
|
@@ -2085,6 +2081,9 @@ def main():
|
|
|
2085
2081
|
agent_prompt_replacements = load_agent_prompts(templates_dir)
|
|
2086
2082
|
replacements.update(agent_prompt_replacements)
|
|
2087
2083
|
|
|
2084
|
+
if is_continuation(args):
|
|
2085
|
+
replacements["{{LOG_SIZE_AWARENESS}}"] = ""
|
|
2086
|
+
|
|
2088
2087
|
# Extract state needed for assembly
|
|
2089
2088
|
pipeline_mode = replacements.get("{{PIPELINE_MODE}}", "lite")
|
|
2090
2089
|
init_done = replacements.get("{{INIT_DONE}}", "false") == "true"
|
|
@@ -2104,6 +2103,11 @@ def main():
|
|
|
2104
2103
|
retry_count=int(args.retry_count),
|
|
2105
2104
|
browser_tool=browser_tool,
|
|
2106
2105
|
)
|
|
2106
|
+
if is_continuation(args):
|
|
2107
|
+
sections = [
|
|
2108
|
+
(name, content) for name, content in sections
|
|
2109
|
+
if name != "log-size-awareness"
|
|
2110
|
+
]
|
|
2107
2111
|
rendered = render_from_sections(sections, replacements)
|
|
2108
2112
|
except FileNotFoundError as exc:
|
|
2109
2113
|
LOGGER.warning(
|
|
@@ -2160,11 +2164,10 @@ def main():
|
|
|
2160
2164
|
emit_failure(err)
|
|
2161
2165
|
|
|
2162
2166
|
# ── Generate checkpoint file ──────────────────────────────────────
|
|
2163
|
-
project_root =
|
|
2164
|
-
os.path.dirname(os.path.abspath(__file__))
|
|
2165
|
-
)
|
|
2167
|
+
project_root = _args_project_root(args, script_dir)
|
|
2166
2168
|
feature_slug = replacements.get("{{FEATURE_SLUG}}", "")
|
|
2167
2169
|
checkpoint_path = ""
|
|
2170
|
+
checkpoint = {}
|
|
2168
2171
|
|
|
2169
2172
|
if use_sections and feature_slug:
|
|
2170
2173
|
checkpoint = generate_checkpoint_definition(
|
|
@@ -2186,7 +2189,7 @@ def main():
|
|
|
2186
2189
|
)
|
|
2187
2190
|
|
|
2188
2191
|
# On resume, merge existing completed state (with artifact validation)
|
|
2189
|
-
if is_resume and os.path.exists(checkpoint_path):
|
|
2192
|
+
if (is_resume or is_continuation(args)) and os.path.exists(checkpoint_path):
|
|
2190
2193
|
try:
|
|
2191
2194
|
with open(checkpoint_path, "r", encoding="utf-8") as f:
|
|
2192
2195
|
existing = json.load(f)
|
|
@@ -2205,6 +2208,15 @@ def main():
|
|
|
2205
2208
|
json.dump(checkpoint, f, indent=2, ensure_ascii=False)
|
|
2206
2209
|
LOGGER.info("Wrote checkpoint to %s", checkpoint_path)
|
|
2207
2210
|
|
|
2211
|
+
if is_continuation(args):
|
|
2212
|
+
rendered = append_continuation_handoff(
|
|
2213
|
+
rendered, args, project_root, args.task_type, args.feature_id,
|
|
2214
|
+
feature_slug, checkpoint,
|
|
2215
|
+
)
|
|
2216
|
+
err = write_output(args.output, rendered)
|
|
2217
|
+
if err:
|
|
2218
|
+
emit_failure(err)
|
|
2219
|
+
|
|
2208
2220
|
# ── Success JSON ───────────────────────────────────────────────────
|
|
2209
2221
|
feature_model = feature.get("model", "")
|
|
2210
2222
|
mode_agent_counts = {"lite": 1, "standard": 3, "full": 3}
|
|
@@ -20,11 +20,11 @@ import re
|
|
|
20
20
|
import sys
|
|
21
21
|
|
|
22
22
|
from utils import enrich_global_context, load_json_file, read_platform_conventions, setup_logging
|
|
23
|
+
from continuation import add_continuation_args, append_continuation_handoff, is_continuation
|
|
23
24
|
|
|
24
25
|
|
|
25
26
|
DEFAULT_MAX_RETRIES = 3
|
|
26
27
|
DEFAULT_MAX_LOG_SIZE = 2097152
|
|
27
|
-
DEFAULT_LOG_MONITOR_POLL_INTERVAL = 30
|
|
28
28
|
|
|
29
29
|
LOGGER = setup_logging("generate-bugfix-prompt")
|
|
30
30
|
|
|
@@ -44,9 +44,12 @@ def parse_args():
|
|
|
44
44
|
parser.add_argument("--resume-phase", required=True, help='Phase to resume from, or "null" for fresh start')
|
|
45
45
|
parser.add_argument("--state-dir", default=None, help="State directory (default: .prizmkit/state/bugfix)")
|
|
46
46
|
parser.add_argument("--output", required=True, help="Output path for the rendered prompt")
|
|
47
|
+
parser.add_argument("--project-root", default=None, help="AI-visible project root used for rendered prompt paths")
|
|
47
48
|
parser.add_argument("--template", default=None, help="Custom template path. Defaults to {script_dir}/../templates/bugfix-bootstrap-prompt.md")
|
|
48
49
|
parser.add_argument("--mode", default=None, help="Pipeline execution mode override: lite, standard, full")
|
|
49
50
|
parser.add_argument("--critic", default=None, help="Enable critic agent: true/false")
|
|
51
|
+
add_continuation_args(parser, "bugfix")
|
|
52
|
+
|
|
50
53
|
return parser.parse_args()
|
|
51
54
|
|
|
52
55
|
|
|
@@ -271,9 +274,17 @@ def resolve_project_root(script_dir):
|
|
|
271
274
|
return os.path.abspath(pipeline_parent)
|
|
272
275
|
|
|
273
276
|
|
|
277
|
+
def _args_project_root(args, script_dir):
|
|
278
|
+
"""Return explicit AI-visible project root or script-layout default."""
|
|
279
|
+
explicit = getattr(args, "project_root", None)
|
|
280
|
+
if explicit:
|
|
281
|
+
return os.path.abspath(explicit)
|
|
282
|
+
return resolve_project_root(script_dir)
|
|
283
|
+
|
|
284
|
+
|
|
274
285
|
def build_replacements(args, bug, global_context, script_dir):
|
|
275
286
|
"""Build the full dict of placeholder -> replacement value."""
|
|
276
|
-
project_root =
|
|
287
|
+
project_root = _args_project_root(args, script_dir)
|
|
277
288
|
|
|
278
289
|
# Platform-aware agent/team path resolution
|
|
279
290
|
platform = os.environ.get("PRIZMKIT_PLATFORM", "")
|
|
@@ -303,10 +314,16 @@ def build_replacements(args, bug, global_context, script_dir):
|
|
|
303
314
|
dev_subagent = os.path.join(agents_dir, f"prizm-dev-team-dev{agent_ext}")
|
|
304
315
|
reviewer_subagent = os.path.join(agents_dir, f"prizm-dev-team-reviewer{agent_ext}")
|
|
305
316
|
|
|
306
|
-
# Session status
|
|
317
|
+
# Session status is controlled by the main runner state dir, even when
|
|
318
|
+
# rendered project paths are AI-visible worktree paths.
|
|
319
|
+
state_dir = (
|
|
320
|
+
os.path.abspath(args.state_dir)
|
|
321
|
+
if args.state_dir
|
|
322
|
+
else os.path.join(project_root, ".prizmkit", "state", "bugfix")
|
|
323
|
+
)
|
|
307
324
|
session_status_path = os.path.join(
|
|
308
|
-
|
|
309
|
-
"
|
|
325
|
+
state_dir, args.bug_id, "sessions", args.session_id,
|
|
326
|
+
"session-status.json",
|
|
310
327
|
)
|
|
311
328
|
|
|
312
329
|
# Error source
|
|
@@ -357,33 +374,15 @@ def build_replacements(args, bug, global_context, script_dir):
|
|
|
357
374
|
browser_verify_steps = " # (reproduce bug and verify fix)"
|
|
358
375
|
|
|
359
376
|
max_log_size = _parse_non_negative_int_env("MAX_LOG_SIZE", DEFAULT_MAX_LOG_SIZE)
|
|
360
|
-
if max_log_size == 0:
|
|
361
|
-
poll_interval = DEFAULT_LOG_MONITOR_POLL_INTERVAL
|
|
362
|
-
else:
|
|
363
|
-
poll_interval = _parse_positive_int_env(
|
|
364
|
-
"LOG_MONITOR_POLL_INTERVAL", DEFAULT_LOG_MONITOR_POLL_INTERVAL,
|
|
365
|
-
)
|
|
366
377
|
|
|
367
378
|
replacements = {
|
|
368
379
|
"{{LOG_SIZE_AWARENESS}}": load_log_size_section(script_dir),
|
|
369
380
|
"{{MAX_LOG_SIZE}}": str(max_log_size),
|
|
370
381
|
"{{MAX_LOG_SIZE_HUMAN}}": _format_bytes(max_log_size),
|
|
371
|
-
"{{LOG_MONITOR_POLL_INTERVAL}}": str(poll_interval),
|
|
372
|
-
"{{LOG_MONITOR_STATUS_FILE}}": os.path.join(
|
|
373
|
-
".prizmkit", "state", "bugfix", args.bug_id,
|
|
374
|
-
"sessions", args.session_id, "logs", "log-monitor-status.txt",
|
|
375
|
-
),
|
|
376
|
-
"{{LOG_MONITOR_BASELINE_FILE}}": os.path.join(
|
|
377
|
-
".prizmkit", "state", "bugfix", args.bug_id,
|
|
378
|
-
"sessions", args.session_id, "logs", "log-monitor-baseline.txt",
|
|
379
|
-
),
|
|
380
382
|
"{{SESSION_LOG_PATH}}": os.path.join(
|
|
381
383
|
".prizmkit", "state", "bugfix", args.bug_id,
|
|
382
384
|
"sessions", args.session_id, "logs", "session.log",
|
|
383
385
|
),
|
|
384
|
-
"{{LOG_MONITOR_SCRIPT}}": os.path.join(
|
|
385
|
-
".prizmkit", "dev-pipeline", "scripts", "monitor-log.sh",
|
|
386
|
-
),
|
|
387
386
|
"{{RUN_ID}}": args.run_id,
|
|
388
387
|
"{{SESSION_ID}}": args.session_id,
|
|
389
388
|
"{{BUG_ID}}": args.bug_id,
|
|
@@ -660,6 +659,8 @@ def main():
|
|
|
660
659
|
|
|
661
660
|
# Build replacements
|
|
662
661
|
replacements = build_replacements(args, bug, global_context, script_dir)
|
|
662
|
+
if is_continuation(args):
|
|
663
|
+
replacements["{{LOG_SIZE_AWARENESS}}"] = ""
|
|
663
664
|
|
|
664
665
|
# Add checkpoint path to replacements
|
|
665
666
|
checkpoint_rel = os.path.join(
|
|
@@ -676,7 +677,7 @@ def main():
|
|
|
676
677
|
emit_failure(err)
|
|
677
678
|
|
|
678
679
|
# Generate checkpoint file
|
|
679
|
-
project_root =
|
|
680
|
+
project_root = _args_project_root(args, script_dir)
|
|
680
681
|
checkpoint_path = os.path.join(project_root, checkpoint_rel)
|
|
681
682
|
checkpoint_dir = os.path.dirname(checkpoint_path)
|
|
682
683
|
os.makedirs(checkpoint_dir, exist_ok=True)
|
|
@@ -684,7 +685,7 @@ def main():
|
|
|
684
685
|
checkpoint = generate_bugfix_checkpoint(args.bug_id, args.session_id)
|
|
685
686
|
|
|
686
687
|
is_resume = args.resume_phase != "null"
|
|
687
|
-
if is_resume and os.path.exists(checkpoint_path):
|
|
688
|
+
if (is_resume or is_continuation(args)) and os.path.exists(checkpoint_path):
|
|
688
689
|
try:
|
|
689
690
|
with open(checkpoint_path, "r", encoding="utf-8") as f:
|
|
690
691
|
existing = json.load(f)
|
|
@@ -703,6 +704,15 @@ def main():
|
|
|
703
704
|
json.dump(checkpoint, f, indent=2, ensure_ascii=False)
|
|
704
705
|
LOGGER.info("Wrote bugfix checkpoint to %s", checkpoint_path)
|
|
705
706
|
|
|
707
|
+
if is_continuation(args):
|
|
708
|
+
rendered = append_continuation_handoff(
|
|
709
|
+
rendered, args, project_root, args.task_type, args.bug_id,
|
|
710
|
+
args.bug_id, checkpoint,
|
|
711
|
+
)
|
|
712
|
+
err = write_output(args.output, rendered)
|
|
713
|
+
if err:
|
|
714
|
+
emit_failure(err)
|
|
715
|
+
|
|
706
716
|
# Resolve critic and mode
|
|
707
717
|
bug_critic = bug.get("critic", False)
|
|
708
718
|
if args.critic is not None:
|
|
@@ -153,7 +153,7 @@ Invoke `/feature-pipeline-launcher` skill:
|
|
|
153
153
|
|
|
154
154
|
If `/feature-pipeline-launcher` is not available, run the pipeline directly:
|
|
155
155
|
```bash
|
|
156
|
-
./.prizmkit/dev-pipeline/
|
|
156
|
+
python3 ./.prizmkit/dev-pipeline/cli.py feature run .prizmkit/plans/feature-list.json
|
|
157
157
|
```""",
|
|
158
158
|
),
|
|
159
159
|
4: (
|
|
@@ -196,7 +196,7 @@ Invoke `/refactor-pipeline-launcher` skill:
|
|
|
196
196
|
|
|
197
197
|
If `/refactor-pipeline-launcher` is not available, run the pipeline directly:
|
|
198
198
|
```bash
|
|
199
|
-
./.prizmkit/dev-pipeline/
|
|
199
|
+
python3 ./.prizmkit/dev-pipeline/cli.py refactor run .prizmkit/plans/refactor-list.json
|
|
200
200
|
```""",
|
|
201
201
|
),
|
|
202
202
|
4: (
|
|
@@ -20,11 +20,11 @@ import re
|
|
|
20
20
|
import sys
|
|
21
21
|
|
|
22
22
|
from utils import enrich_global_context, load_json_file, read_platform_conventions, setup_logging
|
|
23
|
+
from continuation import add_continuation_args, append_continuation_handoff, is_continuation
|
|
23
24
|
|
|
24
25
|
|
|
25
26
|
DEFAULT_MAX_RETRIES = 3
|
|
26
27
|
DEFAULT_MAX_LOG_SIZE = 2097152
|
|
27
|
-
DEFAULT_LOG_MONITOR_POLL_INTERVAL = 30
|
|
28
28
|
|
|
29
29
|
LOGGER = setup_logging("generate-refactor-prompt")
|
|
30
30
|
|
|
@@ -138,6 +138,8 @@ def parse_args():
|
|
|
138
138
|
parser.add_argument("--template", default=None, help="Custom template path. Defaults to {script_dir}/../templates/refactor-bootstrap-prompt.md")
|
|
139
139
|
parser.add_argument("--mode", default=None, help="Pipeline execution mode override: lite, standard, full")
|
|
140
140
|
parser.add_argument("--critic", default=None, help="Enable critic agent: true/false")
|
|
141
|
+
add_continuation_args(parser, "refactor")
|
|
142
|
+
|
|
141
143
|
return parser.parse_args()
|
|
142
144
|
|
|
143
145
|
|
|
@@ -517,33 +519,15 @@ def build_replacements(args, refactor, refactors, global_context, script_dir):
|
|
|
517
519
|
browser_verify_steps = " # (validate UI renders correctly and feature still works)"
|
|
518
520
|
|
|
519
521
|
max_log_size = _parse_non_negative_int_env("MAX_LOG_SIZE", DEFAULT_MAX_LOG_SIZE)
|
|
520
|
-
if max_log_size == 0:
|
|
521
|
-
poll_interval = DEFAULT_LOG_MONITOR_POLL_INTERVAL
|
|
522
|
-
else:
|
|
523
|
-
poll_interval = _parse_positive_int_env(
|
|
524
|
-
"LOG_MONITOR_POLL_INTERVAL", DEFAULT_LOG_MONITOR_POLL_INTERVAL,
|
|
525
|
-
)
|
|
526
522
|
|
|
527
523
|
replacements = {
|
|
528
524
|
"{{LOG_SIZE_AWARENESS}}": load_log_size_section(script_dir),
|
|
529
525
|
"{{MAX_LOG_SIZE}}": str(max_log_size),
|
|
530
526
|
"{{MAX_LOG_SIZE_HUMAN}}": _format_bytes(max_log_size),
|
|
531
|
-
"{{LOG_MONITOR_POLL_INTERVAL}}": str(poll_interval),
|
|
532
|
-
"{{LOG_MONITOR_STATUS_FILE}}": os.path.join(
|
|
533
|
-
".prizmkit", "state", "refactor", args.refactor_id,
|
|
534
|
-
"sessions", args.session_id, "logs", "log-monitor-status.txt",
|
|
535
|
-
),
|
|
536
|
-
"{{LOG_MONITOR_BASELINE_FILE}}": os.path.join(
|
|
537
|
-
".prizmkit", "state", "refactor", args.refactor_id,
|
|
538
|
-
"sessions", args.session_id, "logs", "log-monitor-baseline.txt",
|
|
539
|
-
),
|
|
540
527
|
"{{SESSION_LOG_PATH}}": os.path.join(
|
|
541
528
|
".prizmkit", "state", "refactor", args.refactor_id,
|
|
542
529
|
"sessions", args.session_id, "logs", "session.log",
|
|
543
530
|
),
|
|
544
|
-
"{{LOG_MONITOR_SCRIPT}}": os.path.join(
|
|
545
|
-
".prizmkit", "dev-pipeline", "scripts", "monitor-log.sh",
|
|
546
|
-
),
|
|
547
531
|
"{{RUN_ID}}": args.run_id,
|
|
548
532
|
"{{SESSION_ID}}": args.session_id,
|
|
549
533
|
"{{REFACTOR_ID}}": args.refactor_id,
|
|
@@ -742,6 +726,8 @@ def main():
|
|
|
742
726
|
|
|
743
727
|
# Build replacements
|
|
744
728
|
replacements = build_replacements(args, refactor, refactors, global_context, script_dir)
|
|
729
|
+
if is_continuation(args):
|
|
730
|
+
replacements["{{LOG_SIZE_AWARENESS}}"] = ""
|
|
745
731
|
|
|
746
732
|
# Render the template
|
|
747
733
|
rendered = render_template(template_content, replacements, args.resume_phase, refactor)
|
|
@@ -763,7 +749,7 @@ def main():
|
|
|
763
749
|
checkpoint = generate_refactor_checkpoint(args.refactor_id, args.session_id)
|
|
764
750
|
|
|
765
751
|
is_resume = args.resume_phase != "null"
|
|
766
|
-
if is_resume and os.path.exists(checkpoint_path):
|
|
752
|
+
if (is_resume or is_continuation(args)) and os.path.exists(checkpoint_path):
|
|
767
753
|
try:
|
|
768
754
|
with open(checkpoint_path, "r", encoding="utf-8") as f:
|
|
769
755
|
existing = json.load(f)
|
|
@@ -782,6 +768,15 @@ def main():
|
|
|
782
768
|
json.dump(checkpoint, f, indent=2, ensure_ascii=False)
|
|
783
769
|
LOGGER.info("Wrote refactor checkpoint to %s", checkpoint_path)
|
|
784
770
|
|
|
771
|
+
if is_continuation(args):
|
|
772
|
+
rendered = append_continuation_handoff(
|
|
773
|
+
rendered, args, project_root, args.task_type, args.refactor_id,
|
|
774
|
+
args.refactor_id, checkpoint,
|
|
775
|
+
)
|
|
776
|
+
err = write_output(args.output, rendered)
|
|
777
|
+
if err:
|
|
778
|
+
emit_failure(err)
|
|
779
|
+
|
|
785
780
|
# Resolve critic and mode
|
|
786
781
|
refactor_critic = refactor.get("critic", False)
|
|
787
782
|
if args.critic is not None:
|