prizmkit 1.1.153 → 1.1.155
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/codex/skill-adapter.js +1 -1
- package/bundled/adapters/pi/skill-adapter.js +2 -1
- package/bundled/dev-pipeline/.env.example +2 -6
- package/bundled/dev-pipeline/README.md +120 -113
- package/bundled/dev-pipeline/assets/skill-subagent-integration.md +1 -1
- package/bundled/dev-pipeline/prizmkit_runtime/checkpoint_state.py +355 -15
- package/bundled/dev-pipeline/prizmkit_runtime/cli.py +189 -110
- package/bundled/dev-pipeline/prizmkit_runtime/commands.py +146 -111
- package/bundled/dev-pipeline/prizmkit_runtime/daemon.py +4 -20
- package/bundled/dev-pipeline/prizmkit_runtime/gitops.py +48 -14
- package/bundled/dev-pipeline/prizmkit_runtime/interoperability.py +0 -1
- package/bundled/dev-pipeline/prizmkit_runtime/paths.py +0 -3
- package/bundled/dev-pipeline/prizmkit_runtime/reset.py +122 -15
- package/bundled/dev-pipeline/prizmkit_runtime/reset_preserve.py +1 -1
- package/bundled/dev-pipeline/prizmkit_runtime/runner_classification.py +50 -2
- package/bundled/dev-pipeline/prizmkit_runtime/runner_models.py +1 -10
- package/bundled/dev-pipeline/prizmkit_runtime/runner_prompts.py +3 -3
- package/bundled/dev-pipeline/prizmkit_runtime/runners.py +139 -74
- package/bundled/dev-pipeline/prizmkit_runtime/runtime_commit.py +482 -0
- package/bundled/dev-pipeline/prizmkit_runtime/status.py +106 -1
- package/bundled/dev-pipeline/prizmkit_runtime/test_result.py +64 -11
- package/bundled/dev-pipeline/scripts/generate-bootstrap-prompt.py +145 -367
- package/bundled/dev-pipeline/scripts/generate-bugfix-prompt.py +91 -62
- package/bundled/dev-pipeline/scripts/generate-refactor-prompt.py +105 -69
- package/bundled/dev-pipeline/scripts/init-bugfix-pipeline.py +2 -2
- package/bundled/dev-pipeline/scripts/prompt_framework.py +36 -41
- package/bundled/dev-pipeline/scripts/update-bug-status.py +197 -71
- package/bundled/dev-pipeline/scripts/update-checkpoint.py +77 -16
- package/bundled/dev-pipeline/scripts/update-feature-status.py +46 -121
- package/bundled/dev-pipeline/scripts/update-refactor-status.py +46 -123
- package/bundled/dev-pipeline/scripts/utils.py +119 -0
- package/bundled/dev-pipeline/templates/bootstrap-prompt.md +22 -27
- package/bundled/dev-pipeline/templates/bootstrap-tier3.md +71 -104
- package/bundled/dev-pipeline/templates/bug-fix-list-schema.json +3 -2
- package/bundled/dev-pipeline/templates/bugfix-bootstrap-prompt.md +59 -111
- package/bundled/dev-pipeline/templates/refactor-bootstrap-prompt.md +37 -72
- package/bundled/dev-pipeline/templates/sections/artifact-manifest.md +39 -0
- package/bundled/dev-pipeline/templates/sections/bugfix-critical-paths.md +3 -1
- package/bundled/dev-pipeline/templates/sections/bugfix-phase-commit-report.md +8 -25
- package/bundled/dev-pipeline/templates/sections/bugfix-phase-diagnose-plan.md +3 -3
- package/bundled/dev-pipeline/templates/sections/bugfix-phase-implement.md +2 -2
- package/bundled/dev-pipeline/templates/sections/bugfix-phase-review.md +3 -3
- package/bundled/dev-pipeline/templates/sections/bugfix-phase-test.md +2 -2
- package/bundled/dev-pipeline/templates/sections/bugfix-reminders.md +4 -4
- package/bundled/dev-pipeline/templates/sections/bugfix-session-context.md +0 -1
- package/bundled/dev-pipeline/templates/sections/checkpoint-system.md +7 -4
- package/bundled/dev-pipeline/templates/sections/context-budget-rules.md +14 -27
- package/bundled/dev-pipeline/templates/sections/feature-completion-summary.md +20 -0
- package/bundled/dev-pipeline/templates/sections/phase-commit-full.md +8 -71
- package/bundled/dev-pipeline/templates/sections/phase-implement-full.md +7 -7
- package/bundled/dev-pipeline/templates/sections/phase-prizmkit-test.md +3 -3
- package/bundled/dev-pipeline/templates/sections/phase-review-full.md +4 -4
- package/bundled/dev-pipeline/templates/sections/phase-specify-plan-full.md +5 -17
- package/bundled/dev-pipeline/templates/sections/refactor-critical-paths.md +3 -1
- package/bundled/dev-pipeline/templates/sections/refactor-phase-commit-report.md +10 -23
- package/bundled/dev-pipeline/templates/sections/refactor-phase-implement.md +2 -2
- package/bundled/dev-pipeline/templates/sections/refactor-phase-plan.md +2 -2
- package/bundled/dev-pipeline/templates/sections/refactor-phase-review.md +3 -3
- package/bundled/dev-pipeline/templates/sections/refactor-phase-test.md +2 -2
- package/bundled/dev-pipeline/templates/sections/refactor-reminders.md +7 -7
- package/bundled/dev-pipeline/templates/sections/refactor-session-context.md +0 -1
- package/bundled/dev-pipeline/templates/sections/retrospective.md +12 -0
- package/bundled/dev-pipeline/templates/sections/runtime-commit-handoff.md +35 -0
- package/bundled/dev-pipeline/templates/session-status-schema.json +45 -62
- package/bundled/dev-pipeline/tests/test_auto_skip.py +111 -32
- package/bundled/dev-pipeline/tests/test_checkpoint_state.py +617 -30
- package/bundled/dev-pipeline/tests/test_generate_bootstrap_prompt.py +262 -194
- package/bundled/dev-pipeline/tests/test_generate_bugfix_prompt.py +62 -23
- package/bundled/dev-pipeline/tests/test_generate_refactor_prompt.py +76 -28
- package/bundled/dev-pipeline/tests/test_python_runner_parity.py +281 -206
- package/bundled/dev-pipeline/tests/test_recovery_workflow.py +322 -0
- package/bundled/dev-pipeline/tests/test_reset_modes.py +935 -0
- package/bundled/dev-pipeline/tests/test_reset_preserve.py +5 -7
- package/bundled/dev-pipeline/tests/test_runtime_commit.py +608 -0
- package/bundled/dev-pipeline/tests/test_unified_cli.py +617 -188
- package/bundled/skills/_metadata.json +9 -9
- package/bundled/skills/app-planner/SKILL.md +3 -3
- package/bundled/skills/app-planner/references/generated-plan-review.md +2 -1
- package/bundled/skills/app-planner/references/rules/backend/derivation-rules.md +56 -64
- package/bundled/skills/app-planner/references/rules/backend/fixed-rules.md +85 -240
- package/bundled/skills/app-planner/references/rules/backend/question-bank.md +25 -25
- package/bundled/skills/app-planner/references/rules/backend/question-manifest.json +16 -7
- package/bundled/skills/app-planner/references/rules/backend/template.md +74 -92
- package/bundled/skills/app-planner/references/rules/database/derivation-rules.md +93 -93
- package/bundled/skills/app-planner/references/rules/database/fixed-rules.md +66 -173
- package/bundled/skills/app-planner/references/rules/database/question-bank.md +31 -26
- package/bundled/skills/app-planner/references/rules/database/question-manifest.json +13 -4
- package/bundled/skills/app-planner/references/rules/database/template.md +76 -98
- package/bundled/skills/app-planner/references/rules/frontend/derivation-rules.md +68 -95
- package/bundled/skills/app-planner/references/rules/frontend/fixed-rules.md +93 -166
- package/bundled/skills/app-planner/references/rules/frontend/question-bank.md +46 -36
- package/bundled/skills/app-planner/references/rules/frontend/question-manifest.json +11 -2
- package/bundled/skills/app-planner/references/rules/frontend/template.md +79 -257
- package/bundled/skills/app-planner/references/rules/mobile/derivation-rules.md +91 -99
- package/bundled/skills/app-planner/references/rules/mobile/fixed-rules.md +73 -246
- package/bundled/skills/app-planner/references/rules/mobile/question-bank.md +17 -17
- package/bundled/skills/app-planner/references/rules/mobile/question-manifest.json +17 -2
- package/bundled/skills/app-planner/references/rules/mobile/template.md +73 -85
- package/bundled/skills/app-planner/references/rules-configuration.md +133 -65
- package/bundled/skills/app-planner/scripts/validate-rules-configuration.py +291 -0
- package/bundled/skills/bug-planner/references/schema-validation.md +1 -1
- package/bundled/skills/bug-planner/scripts/validate-bug-list.py +1 -1
- package/bundled/skills/bugfix-pipeline-launcher/SKILL.md +21 -13
- package/bundled/skills/feature-pipeline-launcher/SKILL.md +22 -14
- package/bundled/skills/prizmkit/SKILL.md +17 -18
- package/bundled/skills/prizmkit/references/workflow-state-protocol.md +22 -18
- package/bundled/skills/prizmkit-code-review/SKILL.md +22 -58
- package/bundled/skills/prizmkit-code-review/references/independent-code-review.md +6 -6
- package/bundled/skills/prizmkit-code-review/references/review-report-template.md +2 -2
- package/bundled/skills/prizmkit-committer/SKILL.md +82 -132
- package/bundled/skills/prizmkit-deploy/SKILL.md +27 -11
- package/bundled/skills/prizmkit-deploy/assets/deploy-document-template.md +89 -0
- package/bundled/skills/prizmkit-deploy/references/ci-cd-workflows.md +44 -14
- package/bundled/skills/prizmkit-deploy/references/cloud-platform-deploy.md +19 -3
- package/bundled/skills/prizmkit-deploy/references/database-setup.md +22 -12
- package/bundled/skills/prizmkit-deploy/references/deploy-config-schema.md +3 -1
- package/bundled/skills/prizmkit-deploy/references/deploy-history-schema.md +22 -6
- package/bundled/skills/prizmkit-deploy/references/deploy-metadata-schema.json +49 -0
- package/bundled/skills/prizmkit-deploy/references/live-validation-notes.md +1 -1
- package/bundled/skills/prizmkit-deploy/references/pending-input-schema.json +164 -0
- package/bundled/skills/prizmkit-deploy/references/ssh-adapter-flow.md +9 -8
- package/bundled/skills/prizmkit-deploy/references/ssh-execution-flow.md +6 -6
- package/bundled/skills/prizmkit-implement/SKILL.md +30 -66
- package/bundled/skills/prizmkit-implement/references/implementation-subagent-procedure.md +4 -4
- package/bundled/skills/prizmkit-init/SKILL.md +4 -0
- package/bundled/skills/prizmkit-plan/SKILL.md +21 -64
- package/bundled/skills/prizmkit-plan/references/artifact-identity.md +38 -0
- package/bundled/skills/prizmkit-plan/references/independent-plan-review.md +4 -4
- package/bundled/skills/prizmkit-plan/references/review-plan-spec-loop.md +5 -5
- package/bundled/skills/prizmkit-prizm-docs/SKILL.md +11 -1
- package/bundled/skills/prizmkit-retrospective/SKILL.md +63 -77
- package/bundled/skills/prizmkit-retrospective/references/knowledge-injection-steps.md +3 -3
- package/bundled/skills/prizmkit-retrospective/references/retrospective-result-schema.json +138 -0
- package/bundled/skills/prizmkit-retrospective/references/structural-sync-steps.md +17 -23
- package/bundled/skills/prizmkit-test/SKILL.md +64 -51
- package/bundled/skills/prizmkit-test/references/boundary-contract-and-test-double-guidance.md +206 -0
- package/bundled/skills/prizmkit-test/references/independent-test-review.md +17 -9
- package/bundled/skills/prizmkit-test/references/test-coverage-model.md +45 -21
- package/bundled/skills/prizmkit-test/references/test-report-template.md +20 -13
- package/bundled/skills/prizmkit-workflow/SKILL.md +35 -37
- package/bundled/skills/prizmkit-workflow/references/artifact-identity.md +34 -0
- package/bundled/skills/prizmkit-workflow/references/workflow-state-protocol.md +22 -18
- package/bundled/skills/recovery-workflow/SKILL.md +9 -6
- package/bundled/skills/recovery-workflow/evals/evals.json +2 -2
- package/bundled/skills/recovery-workflow/references/detection.md +7 -6
- package/bundled/skills/recovery-workflow/scripts/detect-recovery-state.py +16 -6
- package/bundled/skills/refactor-pipeline-launcher/SKILL.md +21 -13
- package/bundled/templates/project-memory-template.md +19 -11
- package/package.json +1 -1
- package/src/scaffold.js +33 -22
- package/bundled/dev-pipeline/prizmkit_runtime/runner_recovery.py +0 -228
- package/bundled/dev-pipeline/scripts/generate-recovery-prompt.py +0 -767
- package/bundled/dev-pipeline/templates/sections/bugfix-artifacts.md +0 -16
- package/bundled/dev-pipeline/templates/sections/bugfix-session-status.md +0 -31
- package/bundled/dev-pipeline/templates/sections/critical-paths-agent.md +0 -7
- package/bundled/dev-pipeline/templates/sections/critical-paths-lite.md +0 -7
- package/bundled/dev-pipeline/templates/sections/directory-convention-agent.md +0 -9
- package/bundled/dev-pipeline/templates/sections/directory-convention-lite.md +0 -6
- package/bundled/dev-pipeline/templates/sections/headless-commit-authorization.md +0 -15
- package/bundled/dev-pipeline/templates/sections/phase-commit.md +0 -61
- package/bundled/dev-pipeline/templates/sections/phase-context-snapshot-agent-suffix.md +0 -24
- package/bundled/dev-pipeline/templates/sections/phase-context-snapshot-lite-suffix.md +0 -12
- package/bundled/dev-pipeline/templates/sections/phase-implement-agent.md +0 -44
- package/bundled/dev-pipeline/templates/sections/phase-implement-lite.md +0 -25
- package/bundled/dev-pipeline/templates/sections/phase-plan-agent.md +0 -20
- package/bundled/dev-pipeline/templates/sections/phase-plan-lite.md +0 -20
- package/bundled/dev-pipeline/templates/sections/phase-review-agent.md +0 -20
- package/bundled/dev-pipeline/templates/sections/refactor-artifacts.md +0 -17
- package/bundled/dev-pipeline/templates/sections/refactor-session-status.md +0 -28
- package/bundled/dev-pipeline/templates/sections/test-failure-recovery-agent.md +0 -52
- package/bundled/dev-pipeline/templates/sections/test-failure-recovery-lite.md +0 -52
- package/bundled/skills/prizmkit-code-review/references/workflow-state-protocol.md +0 -174
- package/bundled/skills/prizmkit-committer/references/workflow-state-protocol.md +0 -174
- package/bundled/skills/prizmkit-implement/references/workflow-state-protocol.md +0 -174
- package/bundled/skills/prizmkit-plan/references/workflow-state-protocol.md +0 -174
- package/bundled/skills/prizmkit-retrospective/references/workflow-state-protocol.md +0 -174
- package/bundled/skills/prizmkit-test/references/external-contract-mock-guidance.md +0 -119
package/bundled/VERSION.json
CHANGED
|
@@ -53,7 +53,7 @@ export function convertSkill(skillContent, skillName) {
|
|
|
53
53
|
}
|
|
54
54
|
);
|
|
55
55
|
|
|
56
|
-
const codexNote = `> Codex project install:
|
|
56
|
+
const codexNote = `> Codex project install: an explicitly named PrizmKit Skill resolves to the same command name under \`.agents/skills/<command-name>/SKILL.md\`.\n>\n> Codex interaction compatibility: when this skill or any referenced PrizmKit file says \`AskUserQuestion\`, use Codex \`request_user_input\` if it is available. If the current Codex surface does not expose \`request_user_input\`, including Default mode, ask the same question directly in chat and wait for explicit user input. Tool unavailability is not permission to choose defaults. If a source instruction asks more questions than Codex allows in one call, split them into multiple calls while preserving order. Only true headless/non-interactive runs, such as \`codex exec\` automation with no conversational user available, may skip interaction and choose documented defaults; never silently choose defaults in an interactive session.\n\n`;
|
|
57
57
|
|
|
58
58
|
return buildMarkdown(frontmatter, codexNote + convertedBody);
|
|
59
59
|
}
|
|
@@ -12,7 +12,8 @@ export function convertSkill(skillContent, skillName) {
|
|
|
12
12
|
const { frontmatter, body } = parseFrontmatter(skillContent);
|
|
13
13
|
if (!frontmatter.name) frontmatter.name = skillName;
|
|
14
14
|
const convertedBody = applyPiInteractionCompatibility(body)
|
|
15
|
+
.replace(/\/(prizmkit-[a-z0-9-]+)/g, '/skill:$1')
|
|
15
16
|
.replace(/\$\{SKILL_DIR\}/g, `.pi/skills/${skillName}`);
|
|
16
|
-
const note = `> Pi project install: invoke this skill with \`/skill:${skillName}\`.
|
|
17
|
+
const note = `> Pi project install: invoke this skill with \`/skill:${skillName}\`. An explicitly named PrizmKit Skill uses \`/skill:<same-name>\` and its project definition at \`.pi/skills/<same-name>/SKILL.md\`.\n>\n> Pi interaction compatibility: in interactive sessions, ask required questions directly in chat and wait for explicit user input. Only true headless runs may use documented conservative defaults.\n\n`;
|
|
17
18
|
return buildMarkdown(frontmatter, note + convertedBody);
|
|
18
19
|
}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
# PrizmKit Dev-Pipeline Environment Configuration
|
|
2
2
|
# ================================================
|
|
3
3
|
# Copy this file to .prizmkit/.env and uncomment the variables you want to set.
|
|
4
|
-
# The Python runtime CLI (cli.py feature, cli.py bugfix, etc.) automatically
|
|
4
|
+
# The operation-first Python runtime CLI (cli.py run feature, cli.py run bugfix, etc.) automatically
|
|
5
5
|
# load .prizmkit/.env via prizmkit_runtime/config.py.
|
|
6
6
|
#
|
|
7
7
|
# Priority: Environment variables set before script execution ALWAYS take
|
|
8
8
|
# precedence over values in .prizmkit/.env. This means you can still do:
|
|
9
|
-
# MODEL=claude-opus-4 python3 ./.prizmkit/dev-pipeline/cli.py feature
|
|
9
|
+
# MODEL=claude-opus-4 python3 ./.prizmkit/dev-pipeline/cli.py run feature
|
|
10
10
|
# and it will override the .prizmkit/.env value.
|
|
11
11
|
#
|
|
12
12
|
# If .prizmkit/.env does not exist, all defaults apply — no error is raised.
|
|
@@ -25,10 +25,6 @@
|
|
|
25
25
|
# MAX_RETRIES=3 # Max retry attempts per task before marking failed
|
|
26
26
|
# VERBOSE=1 # Verbose logging (1=on, 0=off)
|
|
27
27
|
|
|
28
|
-
# ─── Feature Pipeline Only ────────────────────────────────────────────
|
|
29
|
-
# PIPELINE_MODE= # Override pipeline mode for all features: lite|standard|full
|
|
30
|
-
# Unset = auto-detect from estimated_complexity
|
|
31
|
-
|
|
32
28
|
# ─── Refactor Pipeline Only ──────────────────────────────────────────
|
|
33
29
|
# STRICT_BEHAVIOR_CHECK=1 # Enable strict behavior-preservation gates for refactor tasks (1=on, 0=off)
|
|
34
30
|
|
|
@@ -14,21 +14,20 @@ Autonomous development pipeline that drives iterative AI CLI sessions through Pr
|
|
|
14
14
|
|
|
15
15
|
### Unified Python CLI prerequisites
|
|
16
16
|
|
|
17
|
-
- Python 3.10+ for the
|
|
18
|
-
- No third-party Python runtime packages are required
|
|
19
|
-
- The
|
|
17
|
+
- Python 3.10+ for the canonical Python CLI under `dev-pipeline/cli.py`
|
|
18
|
+
- No third-party Python runtime packages are required
|
|
19
|
+
- The Python runtime is the sole behavior source; retired shell and PowerShell wrappers are not compatibility entrypoints
|
|
20
20
|
|
|
21
|
-
Inspect the
|
|
21
|
+
Inspect the operation-first command surface without dispatching runtime behavior:
|
|
22
22
|
|
|
23
23
|
```bash
|
|
24
24
|
python3 dev-pipeline/cli.py --help
|
|
25
|
-
python3 dev-pipeline/cli.py
|
|
26
|
-
python3 dev-pipeline/cli.py
|
|
27
|
-
python3 dev-pipeline/cli.py
|
|
28
|
-
python3 dev-pipeline/cli.py daemon feature describe
|
|
25
|
+
python3 dev-pipeline/cli.py run --help
|
|
26
|
+
python3 dev-pipeline/cli.py status --help
|
|
27
|
+
python3 dev-pipeline/cli.py diagnostics ai-cli
|
|
29
28
|
```
|
|
30
29
|
|
|
31
|
-
The
|
|
30
|
+
The public namespaces are `run`, `status`, `reset`, `daemon`, `diagnostics`, and `helper`. Standard `--help` is the only command-description interface; family names are targets, not top-level namespaces.
|
|
32
31
|
|
|
33
32
|
## Quick Start
|
|
34
33
|
|
|
@@ -42,10 +41,10 @@ python3 .prizmkit/dev-pipeline/scripts/init-pipeline.py \
|
|
|
42
41
|
--state-dir .prizmkit/state/features
|
|
43
42
|
|
|
44
43
|
# 3. Run the pipeline (foreground, Ctrl+C to pause, re-run to resume)
|
|
45
|
-
python3 ./.prizmkit/dev-pipeline/cli.py feature
|
|
44
|
+
python3 ./.prizmkit/dev-pipeline/cli.py run feature .prizmkit/plans/feature-list.json
|
|
46
45
|
|
|
47
46
|
# 4. Check progress at any time (from another terminal)
|
|
48
|
-
python3 ./.prizmkit/dev-pipeline/cli.py feature
|
|
47
|
+
python3 ./.prizmkit/dev-pipeline/cli.py status feature .prizmkit/plans/feature-list.json
|
|
49
48
|
|
|
50
49
|
# 5. Or run as a background daemon
|
|
51
50
|
python3 ./.prizmkit/dev-pipeline/cli.py daemon feature start .prizmkit/plans/feature-list.json
|
|
@@ -55,24 +54,24 @@ python3 ./.prizmkit/dev-pipeline/cli.py daemon feature start .prizmkit/plans/fea
|
|
|
55
54
|
|
|
56
55
|
## Python Runtime CLI Reference
|
|
57
56
|
|
|
58
|
-
### `cli.py feature` — Feature Pipeline Runner
|
|
57
|
+
### `cli.py run feature` — Feature Pipeline Runner
|
|
59
58
|
|
|
60
|
-
Main entry point
|
|
59
|
+
Main foreground entry point for the feature pipeline.
|
|
61
60
|
|
|
62
61
|
```bash
|
|
63
|
-
python3 ./cli.py feature
|
|
64
|
-
python3 ./cli.py feature
|
|
65
|
-
python3 ./cli.py feature
|
|
66
|
-
python3 ./cli.py reset feature
|
|
67
|
-
python3 ./cli.py
|
|
68
|
-
python3 ./cli.py feature help
|
|
62
|
+
python3 ./cli.py run feature [.prizmkit/plans/feature-list.json] # Run all features
|
|
63
|
+
python3 ./cli.py run feature <feature-id> [options] # Run a single feature (F-NNN)
|
|
64
|
+
python3 ./cli.py status feature [.prizmkit/plans/feature-list.json] # Show feature status
|
|
65
|
+
python3 ./cli.py reset feature <feature-id> --state-only # Recover causal state without Git/artifact cleanup
|
|
66
|
+
python3 ./cli.py diagnostics ai-cli # Inspect AI CLI resolution
|
|
67
|
+
python3 ./cli.py run feature --help # Show parser-owned usage help
|
|
69
68
|
```
|
|
70
69
|
|
|
71
70
|
**Single-feature options:**
|
|
72
71
|
|
|
73
72
|
| Option | Description |
|
|
74
73
|
|--------|-------------|
|
|
75
|
-
| `--dry-run` |
|
|
74
|
+
| `--dry-run` | Render and validate one disposable Prompt preview without changing Git, task status, checkout, checkpoint, or session state |
|
|
76
75
|
| `--resume-phase N` | Resume from specific phase number |
|
|
77
76
|
| `--no-reset` | Don't reset feature artifacts before running |
|
|
78
77
|
|
|
@@ -80,67 +79,82 @@ python3 ./cli.py feature help # Show usage hel
|
|
|
80
79
|
|
|
81
80
|
```bash
|
|
82
81
|
# Run all features
|
|
83
|
-
python3 ./.prizmkit/dev-pipeline/cli.py feature
|
|
82
|
+
python3 ./.prizmkit/dev-pipeline/cli.py run feature .prizmkit/plans/feature-list.json
|
|
84
83
|
|
|
85
84
|
# Run a single feature
|
|
86
|
-
python3 ./.prizmkit/dev-pipeline/cli.py feature
|
|
85
|
+
python3 ./.prizmkit/dev-pipeline/cli.py run feature F-007
|
|
87
86
|
|
|
88
|
-
# Dry run —
|
|
89
|
-
python3 ./.prizmkit/dev-pipeline/cli.py feature
|
|
87
|
+
# Dry run — validate a disposable prompt preview without spawning a session or changing task state
|
|
88
|
+
python3 ./.prizmkit/dev-pipeline/cli.py run feature F-007 --dry-run
|
|
90
89
|
|
|
91
90
|
# Resume from Phase 6 (implementation)
|
|
92
|
-
python3 ./.prizmkit/dev-pipeline/cli.py feature
|
|
91
|
+
python3 ./.prizmkit/dev-pipeline/cli.py run feature .prizmkit/plans/feature-list.json --resume-phase 6
|
|
93
92
|
```
|
|
94
93
|
|
|
95
94
|
If `.prizmkit/plans/feature-list.json` path is omitted, defaults to `.prizmkit/plans/feature-list.json` in the project root.
|
|
96
95
|
|
|
97
96
|
---
|
|
98
97
|
|
|
99
|
-
### `cli.py reset
|
|
98
|
+
### `cli.py reset <family>` — Explicit Recovery and Cleanup Modes
|
|
100
99
|
|
|
101
|
-
Reset
|
|
100
|
+
Reset never starts execution and rejects `--run`; invoke the matching `run <family>` command separately. Every invocation must select exactly one mode before the runtime will inspect mutable pipeline state or Git resources.
|
|
102
101
|
|
|
103
102
|
```bash
|
|
104
|
-
python3 ./cli.py reset
|
|
105
|
-
python3 ./cli.py reset
|
|
103
|
+
python3 ./cli.py reset <family> <item-id> --state-only [list-path]
|
|
104
|
+
python3 ./cli.py reset <family> --state-only --all [list-path]
|
|
105
|
+
python3 ./cli.py reset <family> <item-id-or-range> --fresh-checkout [list-path]
|
|
106
|
+
python3 ./cli.py reset <family> <--auto-skipped|--failed|--stalled> --fresh-checkout [list-path]
|
|
107
|
+
python3 ./cli.py reset <family> <item-id-or-range> --clean [list-path]
|
|
108
|
+
python3 ./cli.py reset <family> <--auto-skipped|--failed|--stalled> --clean [list-path]
|
|
109
|
+
python3 ./cli.py reset <family> --failed --preserve-runtime [list-path]
|
|
106
110
|
```
|
|
107
111
|
|
|
108
|
-
|
|
|
109
|
-
|
|
110
|
-
| `--
|
|
111
|
-
| `--
|
|
112
|
+
| Mode | Selector and effect |
|
|
113
|
+
|------|---------------------|
|
|
114
|
+
| `--state-only` | Requires one ID or explicit `--all`. Resets supported blocking roots and only causal `auto_skipped` descendants whose full blocker set is recovered; preserves checkout identity, branches/worktrees, source changes, checkpoints, and artifact/session files. Feature/Refactor roots are `failed` or `skipped`; Bugfix additionally supports `needs_info`. |
|
|
115
|
+
| `--fresh-checkout` | Requires one ID, range, or supported status filter. Performs the former standard reset, may discard active-checkout WIP, and publishes a new checkout boundary without deleting the task branch. |
|
|
116
|
+
| `--clean` | Accepts the fresh-checkout selectors and additionally deletes task branches, session history, continuation summaries, and task artifacts. |
|
|
117
|
+
| `--failed --preserve-runtime` | Whole-list failed-only recovery. Retains runtime history, valid checkout identity, branches/worktrees, checkpoints, artifacts, and WIP; a missing recorded branch is replaced from its local base and implementation-and-later checkpoints are rewound. |
|
|
112
118
|
|
|
113
|
-
|
|
119
|
+
State-only rejects ranges and status filters. Preserve-runtime rejects IDs, ranges, `--all`, clean, other modes, and other filters. Missing modes, conflicting modes, unsupported selectors, and malformed causal dependency state fail before mutation.
|
|
114
120
|
|
|
115
121
|
**Examples:**
|
|
116
122
|
|
|
117
123
|
```bash
|
|
118
|
-
#
|
|
119
|
-
python3 ./.prizmkit/dev-pipeline/cli.py reset feature
|
|
120
|
-
python3 ./.prizmkit/dev-pipeline/cli.py
|
|
124
|
+
# Recover one causal state chain without changing Git/checkpoints/artifact files
|
|
125
|
+
python3 ./.prizmkit/dev-pipeline/cli.py reset feature F-007 --state-only
|
|
126
|
+
python3 ./.prizmkit/dev-pipeline/cli.py run feature F-007
|
|
121
127
|
|
|
122
|
-
#
|
|
123
|
-
python3 ./.prizmkit/dev-pipeline/cli.py reset
|
|
124
|
-
python3 ./.prizmkit/dev-pipeline/cli.py
|
|
128
|
+
# Recover all causal state chains
|
|
129
|
+
python3 ./.prizmkit/dev-pipeline/cli.py reset bugfix --state-only --all
|
|
130
|
+
python3 ./.prizmkit/dev-pipeline/cli.py run bugfix .prizmkit/plans/bug-fix-list.json
|
|
125
131
|
|
|
126
|
-
#
|
|
132
|
+
# Preserve all failed runtime chains
|
|
133
|
+
python3 ./.prizmkit/dev-pipeline/cli.py reset refactor --failed --preserve-runtime
|
|
134
|
+
python3 ./.prizmkit/dev-pipeline/cli.py run refactor .prizmkit/plans/refactor-list.json
|
|
135
|
+
|
|
136
|
+
# Publish a fresh checkout boundary
|
|
137
|
+
python3 ./.prizmkit/dev-pipeline/cli.py reset feature F-007 --fresh-checkout
|
|
138
|
+
python3 ./.prizmkit/dev-pipeline/cli.py run feature F-007
|
|
139
|
+
|
|
140
|
+
# Destructive clean reset
|
|
127
141
|
python3 ./.prizmkit/dev-pipeline/cli.py reset feature F-007 --clean my-features.json
|
|
128
|
-
python3 ./.prizmkit/dev-pipeline/cli.py feature
|
|
142
|
+
python3 ./.prizmkit/dev-pipeline/cli.py run feature F-007 my-features.json
|
|
129
143
|
```
|
|
130
144
|
|
|
131
145
|
---
|
|
132
146
|
|
|
133
147
|
### `cli.py daemon feature` — Feature Pipeline Daemon
|
|
134
148
|
|
|
135
|
-
Manages `cli.py feature` as a background daemon process with PID tracking and log consolidation. Designed for invocation from AI skill sessions.
|
|
149
|
+
Manages `cli.py run feature` as a background daemon process with PID tracking and log consolidation. Designed for invocation from AI skill sessions.
|
|
136
150
|
|
|
137
151
|
```bash
|
|
138
|
-
python3 ./cli.py daemon feature start [.prizmkit/plans/feature-list.json] [--
|
|
152
|
+
python3 ./cli.py daemon feature start [.prizmkit/plans/feature-list.json] [--env "KEY=VAL ..."]
|
|
139
153
|
python3 ./cli.py daemon feature stop
|
|
140
154
|
python3 ./cli.py daemon feature status
|
|
141
155
|
python3 ./cli.py daemon feature logs [--lines N] [--follow]
|
|
142
|
-
python3 ./cli.py daemon feature restart [.prizmkit/plans/feature-list.json] [--
|
|
143
|
-
python3 ./cli.py daemon feature help
|
|
156
|
+
python3 ./cli.py daemon feature restart [.prizmkit/plans/feature-list.json] [--env "KEY=VAL ..."]
|
|
157
|
+
python3 ./cli.py daemon feature --help
|
|
144
158
|
```
|
|
145
159
|
|
|
146
160
|
| Subcommand | Description |
|
|
@@ -151,13 +165,10 @@ python3 ./cli.py daemon feature help
|
|
|
151
165
|
| `logs` | View pipeline logs. `--follow` for live tail, `--lines N` for last N lines |
|
|
152
166
|
| `restart` | Stop + start |
|
|
153
167
|
|
|
154
|
-
**`--mode` options:** `lite`, `standard`, `full`
|
|
155
|
-
|
|
156
168
|
**`--env` format:** Pass environment variables as a quoted string:
|
|
157
169
|
|
|
158
170
|
```bash
|
|
159
171
|
python3 ./.prizmkit/dev-pipeline/cli.py daemon feature start .prizmkit/plans/feature-list.json \
|
|
160
|
-
--mode standard \
|
|
161
172
|
--env "MAX_RETRIES=5 MODEL=claude-sonnet-4.6"
|
|
162
173
|
```
|
|
163
174
|
|
|
@@ -183,19 +194,19 @@ python3 ./.prizmkit/dev-pipeline/cli.py daemon feature start .prizmkit/plans/fea
|
|
|
183
194
|
|
|
184
195
|
---
|
|
185
196
|
|
|
186
|
-
### `cli.py bugfix` — Bug-Fix Pipeline Runner
|
|
197
|
+
### `cli.py run bugfix` — Bug-Fix Pipeline Runner
|
|
187
198
|
|
|
188
|
-
|
|
199
|
+
Uses the same operation-first foreground contract as `cli.py run feature`.
|
|
189
200
|
|
|
190
201
|
```bash
|
|
191
|
-
python3 ./cli.py bugfix
|
|
192
|
-
python3 ./cli.py bugfix
|
|
193
|
-
python3 ./cli.py bugfix
|
|
194
|
-
python3 ./cli.py reset bugfix
|
|
195
|
-
python3 ./cli.py bugfix help
|
|
202
|
+
python3 ./cli.py run bugfix [.prizmkit/plans/bug-fix-list.json] # Run all bugs
|
|
203
|
+
python3 ./cli.py run bugfix <bug-id> [options] # Run single bug (B-NNN)
|
|
204
|
+
python3 ./cli.py status bugfix [.prizmkit/plans/bug-fix-list.json] # Show status
|
|
205
|
+
python3 ./cli.py reset bugfix <bug-id> --state-only # Recover causal Bugfix state
|
|
206
|
+
python3 ./cli.py run bugfix --help
|
|
196
207
|
```
|
|
197
208
|
|
|
198
|
-
**Single-bug options:** `--dry-run` (same as `cli.py feature`)
|
|
209
|
+
**Single-bug options:** `--dry-run` (same as `cli.py run feature`)
|
|
199
210
|
|
|
200
211
|
Processes bugs by: **severity** (critical > high > medium > low) then **priority** (high > medium > low).
|
|
201
212
|
|
|
@@ -203,7 +214,7 @@ Processes bugs by: **severity** (critical > high > medium > low) then **priority
|
|
|
203
214
|
|
|
204
215
|
### `cli.py daemon bugfix` — Bug-Fix Pipeline Daemon
|
|
205
216
|
|
|
206
|
-
Identical interface to `cli.py daemon feature` but manages `cli.py bugfix` in background.
|
|
217
|
+
Identical interface to `cli.py daemon feature` but manages `cli.py run bugfix` in background.
|
|
207
218
|
|
|
208
219
|
```bash
|
|
209
220
|
python3 ./cli.py daemon bugfix start [.prizmkit/plans/bug-fix-list.json] [--env "KEY=VAL ..."]
|
|
@@ -289,19 +300,18 @@ python3 scripts/generate-bootstrap-prompt.py \
|
|
|
289
300
|
--resume-phase <n|null> \
|
|
290
301
|
--output <path> \
|
|
291
302
|
[--state-dir <path>] \
|
|
292
|
-
[--template <path>]
|
|
293
|
-
[--mode lite|standard|full]
|
|
303
|
+
[--template <path>]
|
|
294
304
|
```
|
|
295
305
|
|
|
296
306
|
**Prompt assembly:**
|
|
297
307
|
|
|
298
308
|
| Condition | Prompt Source | Behavior |
|
|
299
309
|
|-----------|---------------|----------|
|
|
300
|
-
| `templates/sections/` exists and no `--template` | Modular sections | Uses
|
|
310
|
+
| `templates/sections/` exists and no `--template` | Modular sections | Uses one canonical complete lifecycle guidance profile |
|
|
301
311
|
| Custom `--template <path>` supplied | Caller template | Renders the explicit template with legacy placeholder/conditional support |
|
|
302
|
-
|
|
|
312
|
+
| Canonical sections unavailable and no custom template | none | Fail closed; do not launch a partial or stale autonomous prompt |
|
|
303
313
|
|
|
304
|
-
`estimated_complexity` remains in feature metadata and rendered Session Context for planning
|
|
314
|
+
`estimated_complexity` remains in feature metadata and rendered Session Context for planning and ordering, but it does not choose a prompt tier.
|
|
305
315
|
|
|
306
316
|
**Output (JSON to stdout):**
|
|
307
317
|
|
|
@@ -309,12 +319,11 @@ python3 scripts/generate-bootstrap-prompt.py \
|
|
|
309
319
|
{ "success": true, "output_path": "/absolute/path/prompt.md", "model": "claude-sonnet-4.6" }
|
|
310
320
|
```
|
|
311
321
|
|
|
312
|
-
The `model` field is extracted from the feature's `"model"` field in .prizmkit/plans/feature-list.json (empty string if not specified). Used by `cli.py feature` to set `--model` on the AI CLI.
|
|
322
|
+
The `model` field is extracted from the feature's `"model"` field in .prizmkit/plans/feature-list.json (empty string if not specified). Used by `cli.py run feature` to set `--model` on the AI CLI.
|
|
313
323
|
|
|
314
324
|
**Conditional blocks resolved for explicit legacy templates:**
|
|
315
325
|
- `{{IF_RESUME}}` / `{{IF_FRESH_START}}` — Resume vs fresh start
|
|
316
326
|
- `{{IF_INIT_NEEDED}}` / `{{IF_INIT_DONE}}` — PrizmKit init status
|
|
317
|
-
- `{{IF_MODE_LITE}}` / `{{IF_MODE_STANDARD}}` / `{{IF_MODE_FULL}}` — Compatibility mode blocks
|
|
318
327
|
|
|
319
328
|
---
|
|
320
329
|
|
|
@@ -531,10 +540,9 @@ Also exports: `log_info`, `log_warn`, `log_error`, `log_success` (with timestamp
|
|
|
531
540
|
|
|
532
541
|
| Variable | Default | Used By | Description |
|
|
533
542
|
|----------|---------|---------|-------------|
|
|
534
|
-
| `MAX_RETRIES` | `3` | cli.py feature | Max retry attempts per feature before marking as failed |
|
|
535
|
-
| `
|
|
536
|
-
| `
|
|
537
|
-
| `AUTO_PUSH` | `0` | cli.py feature | Set to `1` to auto-push branch to remote after successful session |
|
|
543
|
+
| `MAX_RETRIES` | `3` | cli.py run feature | Max retry attempts per feature before marking as failed |
|
|
544
|
+
| `DEV_BRANCH` | auto-generated | cli.py run feature | Custom git branch name (default: `dev/{feature-id}-{timestamp}`) |
|
|
545
|
+
| `AUTO_PUSH` | `0` | cli.py run feature | Set to `1` to auto-push branch to remote after successful session |
|
|
538
546
|
|
|
539
547
|
### AI CLI Configuration
|
|
540
548
|
|
|
@@ -542,27 +550,26 @@ Also exports: `log_info`, `log_warn`, `log_error`, `log_success` (with timestamp
|
|
|
542
550
|
|----------|---------|---------|-------------|
|
|
543
551
|
| `AI_CLI` | auto-detect | Python runtime | AI CLI command name. Auto-detects `cbc`, `claude`, or `codex` |
|
|
544
552
|
| `PRIZMKIT_PLATFORM` | auto-detect | Python runtime | Platform hint for custom/wrapped AI CLI commands: `codebuddy`, `claude`, or `codex` |
|
|
545
|
-
| `MODEL` | (none) | cli.py feature, cli.py bugfix | AI model fallback. Overridden by per-feature `model` field. See [Model Selection](#model-selection) |
|
|
553
|
+
| `MODEL` | (none) | cli.py run feature, cli.py run bugfix | AI model fallback. Overridden by per-feature `model` field. See [Model Selection](#model-selection) |
|
|
546
554
|
| `CODEBUDDY_CLI` | (deprecated) | Python runtime | Legacy alias for `AI_CLI`. Prefer `AI_CLI` |
|
|
547
|
-
| `VERBOSE` | `0` | cli.py feature | Set to `1` to enable `--verbose` on AI CLI |
|
|
555
|
+
| `VERBOSE` | `0` | cli.py run feature | Set to `1` to enable `--verbose` on AI CLI |
|
|
548
556
|
|
|
549
557
|
### Monitoring & Logging
|
|
550
558
|
|
|
551
559
|
| Variable | Default | Used By | Description |
|
|
552
560
|
|----------|---------|---------|-------------|
|
|
553
|
-
| `HEARTBEAT_INTERVAL` | `30` | cli.py feature | Seconds between heartbeat log output |
|
|
554
|
-
| `HEARTBEAT_STALE_THRESHOLD` | `600` | cli.py feature | Seconds before a session is considered stale/stuck |
|
|
561
|
+
| `HEARTBEAT_INTERVAL` | `30` | cli.py run feature | Seconds between heartbeat log output |
|
|
562
|
+
| `HEARTBEAT_STALE_THRESHOLD` | `600` | cli.py run feature | Seconds before a session is considered stale/stuck |
|
|
555
563
|
|
|
556
564
|
**Examples:**
|
|
557
565
|
|
|
558
566
|
```bash
|
|
559
567
|
# All env vars in one invocation
|
|
560
568
|
MAX_RETRIES=5 MODEL=claude-sonnet-4.6 VERBOSE=1 \
|
|
561
|
-
python3 ./.prizmkit/dev-pipeline/cli.py feature
|
|
569
|
+
python3 ./.prizmkit/dev-pipeline/cli.py run feature .prizmkit/plans/feature-list.json
|
|
562
570
|
|
|
563
571
|
# Via daemon with --env
|
|
564
572
|
python3 ./.prizmkit/dev-pipeline/cli.py daemon feature start .prizmkit/plans/feature-list.json \
|
|
565
|
-
--mode standard \
|
|
566
573
|
--env "MAX_RETRIES=5 AUTO_PUSH=1"
|
|
567
574
|
```
|
|
568
575
|
|
|
@@ -598,23 +605,23 @@ Specify a model for individual features in `.prizmkit/plans/feature-list.json`:
|
|
|
598
605
|
|
|
599
606
|
```bash
|
|
600
607
|
# All features without a per-feature model use Sonnet
|
|
601
|
-
MODEL=claude-sonnet-4.6 python3 ./.prizmkit/dev-pipeline/cli.py feature
|
|
608
|
+
MODEL=claude-sonnet-4.6 python3 ./.prizmkit/dev-pipeline/cli.py run feature .prizmkit/plans/feature-list.json
|
|
602
609
|
|
|
603
610
|
# Destructively reset, then retry with Opus as a separate run
|
|
604
611
|
python3 ./.prizmkit/dev-pipeline/cli.py reset feature F-007 --clean
|
|
605
|
-
MODEL=claude-opus-4.6 python3 ./.prizmkit/dev-pipeline/cli.py feature
|
|
612
|
+
MODEL=claude-opus-4.6 python3 ./.prizmkit/dev-pipeline/cli.py run feature F-007
|
|
606
613
|
|
|
607
|
-
#
|
|
608
|
-
MODEL=claude-sonnet-4.6 python3 ./.prizmkit/dev-pipeline/cli.py
|
|
614
|
+
# Inspect the resolved global AI CLI and model
|
|
615
|
+
MODEL=claude-sonnet-4.6 python3 ./.prizmkit/dev-pipeline/cli.py diagnostics ai-cli
|
|
609
616
|
```
|
|
610
617
|
|
|
611
618
|
### Dry-Run Model Verification
|
|
612
619
|
|
|
613
|
-
Use `--dry-run` to verify which model will be used without spawning a session:
|
|
620
|
+
Use `--dry-run` to verify which model will be used without spawning a session or persisting Git/task/checkpoint changes:
|
|
614
621
|
|
|
615
622
|
```bash
|
|
616
|
-
python3 ./.prizmkit/dev-pipeline/cli.py feature
|
|
617
|
-
# Output includes: "
|
|
623
|
+
python3 ./.prizmkit/dev-pipeline/cli.py run feature F-017 --dry-run
|
|
624
|
+
# Output includes: "Dry-run Prompt validated ... model=claude-opus-4.6"
|
|
618
625
|
```
|
|
619
626
|
|
|
620
627
|
### Common Model IDs
|
|
@@ -652,15 +659,15 @@ To permanently configure, create `.prizmkit/config.json`:
|
|
|
652
659
|
Or override per-invocation:
|
|
653
660
|
|
|
654
661
|
```bash
|
|
655
|
-
AI_CLI=claude python3 ./.prizmkit/dev-pipeline/cli.py feature
|
|
662
|
+
AI_CLI=claude python3 ./.prizmkit/dev-pipeline/cli.py run feature .prizmkit/plans/feature-list.json
|
|
656
663
|
```
|
|
657
664
|
|
|
658
|
-
###
|
|
665
|
+
### AI CLI Diagnostics
|
|
659
666
|
|
|
660
667
|
```bash
|
|
661
|
-
python3 ./.prizmkit/dev-pipeline/cli.py
|
|
662
|
-
MODEL=claude-sonnet-4.6 python3 ./.prizmkit/dev-pipeline/cli.py
|
|
663
|
-
AI_CLI=cbc python3 ./.prizmkit/dev-pipeline/cli.py
|
|
668
|
+
python3 ./.prizmkit/dev-pipeline/cli.py diagnostics ai-cli
|
|
669
|
+
MODEL=claude-sonnet-4.6 python3 ./.prizmkit/dev-pipeline/cli.py diagnostics ai-cli
|
|
670
|
+
AI_CLI=cbc python3 ./.prizmkit/dev-pipeline/cli.py diagnostics ai-cli
|
|
664
671
|
```
|
|
665
672
|
|
|
666
673
|
---
|
|
@@ -670,7 +677,7 @@ AI_CLI=cbc python3 ./.prizmkit/dev-pipeline/cli.py feature test-cli
|
|
|
670
677
|
### Feature Pipeline Execution Flow
|
|
671
678
|
|
|
672
679
|
```
|
|
673
|
-
cli.py feature
|
|
680
|
+
cli.py run feature command
|
|
674
681
|
|
|
|
675
682
|
+- detect-stuck.py # Check for stale/stuck sessions
|
|
676
683
|
+- update-feature-status.py # get_next: find next runnable feature
|
|
@@ -693,17 +700,17 @@ cli.py feature run command
|
|
|
693
700
|
|
|
694
701
|
### Unified Feature Prompt Execution
|
|
695
702
|
|
|
696
|
-
Feature bootstrap prompts use
|
|
703
|
+
Feature bootstrap prompts use one canonical modular section composition for every task. Complexity metadata remains available for planning, summaries, dependency/status compatibility, and rendered Session Context, but it does not alter prompt guidance.
|
|
697
704
|
|
|
698
705
|
| Feature metadata | Normal prompt source | Execution guidance |
|
|
699
706
|
|------------------|----------------------|--------------------|
|
|
700
|
-
| `estimated_complexity: low` | `templates/sections/`
|
|
701
|
-
| `estimated_complexity: medium` | `templates/sections/`
|
|
702
|
-
| `estimated_complexity: high` / `critical` | `templates/sections/`
|
|
707
|
+
| `estimated_complexity: low` | `templates/sections/` canonical composition | Plan → implement → review → configured verification → test → report → retrospective → Runtime commit handoff |
|
|
708
|
+
| `estimated_complexity: medium` | `templates/sections/` canonical composition | Same complete guidance |
|
|
709
|
+
| `estimated_complexity: high` / `critical` | `templates/sections/` canonical composition | Same complete guidance |
|
|
703
710
|
|
|
704
|
-
|
|
711
|
+
Missing canonical sections fail closed. An explicit `--template` remains available only for caller-supplied compatibility templates.
|
|
705
712
|
|
|
706
|
-
**Self-evolve
|
|
713
|
+
**Self-evolve tasks:** Use the same canonical feature prompt with additional framework guardrails supplied by the feature context.
|
|
707
714
|
|
|
708
715
|
### Feature Dependency Resolution
|
|
709
716
|
|
|
@@ -749,14 +756,14 @@ cat .prizmkit/state/features/F-003/sessions/F-003-*/logs/session.log | less
|
|
|
749
756
|
### Pause & Resume
|
|
750
757
|
|
|
751
758
|
- **Ctrl+C** triggers graceful shutdown — current state is saved
|
|
752
|
-
- **Re-running** `python3 ./cli.py feature
|
|
753
|
-
- Force resume from a phase: `python3 ./cli.py feature
|
|
759
|
+
- **Re-running** `python3 ./cli.py run feature` resumes from where it left off (completed features skipped)
|
|
760
|
+
- Force resume from a phase: `python3 ./cli.py run feature .prizmkit/plans/feature-list.json --resume-phase 6`
|
|
754
761
|
|
|
755
762
|
### Manual Intervention
|
|
756
763
|
|
|
757
764
|
```bash
|
|
758
765
|
# Check what failed
|
|
759
|
-
python3 ./.prizmkit/dev-pipeline/cli.py feature
|
|
766
|
+
python3 ./.prizmkit/dev-pipeline/cli.py status feature .prizmkit/plans/feature-list.json
|
|
760
767
|
|
|
761
768
|
# Review session logs
|
|
762
769
|
cat .prizmkit/state/features/F-XXX/sessions/*/logs/session.log
|
|
@@ -774,7 +781,7 @@ python3 .prizmkit/dev-pipeline/scripts/update-feature-status.py \
|
|
|
774
781
|
--feature-id F-XXX --action reset
|
|
775
782
|
|
|
776
783
|
# Resume
|
|
777
|
-
python3 ./.prizmkit/dev-pipeline/cli.py feature
|
|
784
|
+
python3 ./.prizmkit/dev-pipeline/cli.py run feature .prizmkit/plans/feature-list.json
|
|
778
785
|
```
|
|
779
786
|
|
|
780
787
|
---
|
|
@@ -788,17 +795,17 @@ The bug fix pipeline provides the same autonomous outer-loop as the feature pipe
|
|
|
788
795
|
```bash
|
|
789
796
|
# 1. Generate bug fix list (via bug-planner skill)
|
|
790
797
|
# 2. Run foreground
|
|
791
|
-
python3 ./.prizmkit/dev-pipeline/cli.py bugfix
|
|
798
|
+
python3 ./.prizmkit/dev-pipeline/cli.py run bugfix .prizmkit/plans/bug-fix-list.json
|
|
792
799
|
# 3. Or as daemon
|
|
793
800
|
python3 ./.prizmkit/dev-pipeline/cli.py daemon bugfix start .prizmkit/plans/bug-fix-list.json
|
|
794
801
|
# 4. Check progress
|
|
795
|
-
python3 ./.prizmkit/dev-pipeline/cli.py bugfix
|
|
802
|
+
python3 ./.prizmkit/dev-pipeline/cli.py status bugfix .prizmkit/plans/bug-fix-list.json
|
|
796
803
|
```
|
|
797
804
|
|
|
798
805
|
### Bug Fix Execution Flow
|
|
799
806
|
|
|
800
807
|
```
|
|
801
|
-
cli.py bugfix
|
|
808
|
+
cli.py run bugfix command
|
|
802
809
|
|
|
|
803
810
|
+- update-bug-status.py # get_next (severity -> priority order)
|
|
804
811
|
+- generate-bugfix-prompt.py # Build prompt from template
|
|
@@ -851,13 +858,12 @@ cli.py bugfix run command
|
|
|
851
858
|
|
|
852
859
|
```
|
|
853
860
|
.prizmkit/dev-pipeline/
|
|
854
|
-
+-- cli.py
|
|
855
|
-
+-- cli.py
|
|
856
|
-
+-- cli.py reset
|
|
857
|
-
+-- cli.py daemon
|
|
858
|
-
+-- cli.py
|
|
859
|
-
+-- cli.py
|
|
860
|
-
+-- cli.py daemon bugfix # Background daemon for bugfix pipeline
|
|
861
|
+
+-- cli.py run <family> # Foreground feature/bugfix/refactor runners
|
|
862
|
+
+-- cli.py status <family|all> # Read-only family or aggregate status
|
|
863
|
+
+-- cli.py reset <family> # Explicit state-only/fresh/clean/preserve reset modes
|
|
864
|
+
+-- cli.py daemon <family> # Background daemon lifecycle
|
|
865
|
+
+-- cli.py diagnostics <action> # Paths, entrypoints, version, and AI CLI resolution
|
|
866
|
+
+-- cli.py helper # Low-level cross-platform helper commands
|
|
861
867
|
+-- README.md # This file
|
|
862
868
|
+-- .gitignore # Ignores .prizmkit/state/, __pycache__/
|
|
863
869
|
|
|
|
@@ -880,10 +886,11 @@ cli.py bugfix run command
|
|
|
880
886
|
| +-- parse-stream-progress.py # Real-time stream-json progress parser
|
|
881
887
|
|
|
|
882
888
|
+-- templates/
|
|
883
|
-
| +-- sections/ #
|
|
884
|
-
| +-- bootstrap-tier3.md
|
|
885
|
-
| +-- bootstrap-prompt.md
|
|
886
|
-
| +-- bugfix-bootstrap-prompt.md
|
|
889
|
+
| +-- sections/ # Canonical modular prompt sections
|
|
890
|
+
| +-- bootstrap-tier3.md # Explicit custom-template compatibility fixture
|
|
891
|
+
| +-- bootstrap-prompt.md # Minimal explicit compatibility template
|
|
892
|
+
| +-- bugfix-bootstrap-prompt.md # Bugfix explicit compatibility template
|
|
893
|
+
| +-- refactor-bootstrap-prompt.md # Refactor explicit compatibility template
|
|
887
894
|
| +-- feature-list-schema.json # JSON schema for .prizmkit/plans/feature-list.json
|
|
888
895
|
| +-- bug-fix-list-schema.json # JSON schema for .prizmkit/plans/bug-fix-list.json
|
|
889
896
|
| +-- session-status-schema.json # JSON schema for session-status.json
|
|
@@ -945,7 +952,7 @@ Check `set -e` interactions. All python invocations in the main loop should have
|
|
|
945
952
|
Verify CLI is functional: `claude -p "test" --dangerously-skip-permissions`, `echo "test" | cbc --print -y`, or `echo "test" | codex --ask-for-approval never --sandbox danger-full-access exec --skip-git-repo-check -`
|
|
946
953
|
|
|
947
954
|
### "PIPELINE_BLOCKED" loops
|
|
948
|
-
All remaining features have unmet dependencies. Use `python3 ./cli.py feature
|
|
955
|
+
All remaining features have unmet dependencies. Use `python3 ./cli.py status feature` to find the blocking feature, then reset or manually complete it.
|
|
949
956
|
|
|
950
957
|
### Feature marked as "crashed"
|
|
951
958
|
Session exited without `session-status.json`. Pipeline retries up to `MAX_RETRIES` times automatically.
|
|
@@ -15,7 +15,7 @@ Skill behavior is owned by canonical skills:
|
|
|
15
15
|
```text
|
|
16
16
|
dev-pipeline (outer loop)
|
|
17
17
|
|
|
|
18
|
-
+-- cli.py
|
|
18
|
+
+-- cli.py run <family> Python runtime CLI — picks next item, starts CLI
|
|
19
19
|
+-- scripts/ Python state and prompt management scripts
|
|
20
20
|
+-- templates/ Session prompt templates and sections
|
|
21
21
|
|
|