prizmkit 1.1.111 → 1.1.112
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/agents/prizm-dev-team-reviewer.md +12 -1
- package/bundled/dev-pipeline/prizmkit_runtime/interoperability.py +1 -0
- package/bundled/dev-pipeline/scripts/generate-bootstrap-prompt.py +19 -73
- package/bundled/dev-pipeline/scripts/generate-bugfix-prompt.py +283 -421
- package/bundled/dev-pipeline/scripts/generate-recovery-prompt.py +1 -1
- package/bundled/dev-pipeline/scripts/generate-refactor-prompt.py +259 -481
- package/bundled/dev-pipeline/scripts/init-bugfix-pipeline.py +34 -0
- package/bundled/dev-pipeline/scripts/init-pipeline.py +12 -0
- package/bundled/dev-pipeline/scripts/init-refactor-pipeline.py +24 -1
- package/bundled/dev-pipeline/scripts/prompt_framework.py +312 -0
- package/bundled/dev-pipeline/scripts/update-bug-status.py +87 -20
- package/bundled/dev-pipeline/scripts/update-feature-status.py +82 -16
- package/bundled/dev-pipeline/scripts/update-refactor-status.py +68 -28
- package/bundled/dev-pipeline/scripts/utils.py +171 -0
- package/bundled/dev-pipeline/templates/bootstrap-prompt.md +1 -1
- package/bundled/dev-pipeline/templates/bootstrap-tier2.md +10 -18
- package/bundled/dev-pipeline/templates/bootstrap-tier3.md +14 -25
- package/bundled/dev-pipeline/templates/bug-fix-list-schema.json +9 -1
- package/bundled/dev-pipeline/templates/bugfix-bootstrap-prompt.md +11 -8
- package/bundled/dev-pipeline/templates/refactor-bootstrap-prompt.md +122 -182
- package/bundled/dev-pipeline/templates/sections/bugfix-artifacts.md +16 -0
- package/bundled/dev-pipeline/templates/sections/bugfix-critical-paths.md +12 -0
- package/bundled/dev-pipeline/templates/sections/bugfix-mission.md +9 -0
- package/bundled/dev-pipeline/templates/sections/bugfix-phase-commit-report.md +31 -0
- package/bundled/dev-pipeline/templates/sections/bugfix-phase-critic.md +22 -0
- package/bundled/dev-pipeline/templates/sections/bugfix-phase-diagnose-plan.md +23 -0
- package/bundled/dev-pipeline/templates/sections/bugfix-phase-implement.md +20 -0
- package/bundled/dev-pipeline/templates/sections/bugfix-phase-init.md +9 -0
- package/bundled/dev-pipeline/templates/sections/bugfix-phase-manual-verification.md +15 -0
- package/bundled/dev-pipeline/templates/sections/bugfix-phase-review.md +29 -0
- package/bundled/dev-pipeline/templates/sections/bugfix-reminders.md +11 -0
- package/bundled/dev-pipeline/templates/sections/bugfix-session-context.md +7 -0
- package/bundled/dev-pipeline/templates/sections/bugfix-session-status.md +31 -0
- package/bundled/dev-pipeline/templates/sections/bugfix-task-contract.md +40 -0
- package/bundled/dev-pipeline/templates/sections/failure-capture.md +2 -2
- package/bundled/dev-pipeline/templates/sections/phase-browser-verification-auto.md +1 -1
- package/bundled/dev-pipeline/templates/sections/refactor-artifacts.md +17 -0
- package/bundled/dev-pipeline/templates/sections/refactor-critical-paths.md +13 -0
- package/bundled/dev-pipeline/templates/sections/refactor-mission.md +9 -0
- package/bundled/dev-pipeline/templates/sections/refactor-phase-commit-report.md +37 -0
- package/bundled/dev-pipeline/templates/sections/refactor-phase-critic.md +22 -0
- package/bundled/dev-pipeline/templates/sections/refactor-phase-implement.md +16 -0
- package/bundled/dev-pipeline/templates/sections/refactor-phase-init.md +9 -0
- package/bundled/dev-pipeline/templates/sections/refactor-phase-plan.md +22 -0
- package/bundled/dev-pipeline/templates/sections/refactor-phase-review.md +19 -0
- package/bundled/dev-pipeline/templates/sections/refactor-reminders.md +11 -0
- package/bundled/dev-pipeline/templates/sections/refactor-session-context.md +7 -0
- package/bundled/dev-pipeline/templates/sections/refactor-session-status.md +28 -0
- package/bundled/dev-pipeline/templates/sections/refactor-task-contract.md +52 -0
- package/bundled/dev-pipeline/tests/test_generate_bootstrap_prompt.py +17 -5
- package/bundled/dev-pipeline/tests/test_python_runner_parity.py +197 -0
- package/bundled/dev-pipeline/tests/test_unified_cli.py +6 -2
- package/bundled/dev-pipeline/tests/test_utils.py +66 -1
- package/bundled/skills/_metadata.json +1 -1
- package/bundled/skills/app-planner/SKILL.md +8 -7
- package/bundled/skills/app-planner/references/project-brief-guide.md +2 -2
- package/bundled/skills/app-planner/references/rules/backend/derivation-rules.md +1 -1
- package/bundled/skills/app-planner/references/rules/frontend/derivation-rules.md +1 -1
- package/bundled/skills/app-planner/references/rules-configuration.md +53 -26
- package/bundled/skills/bug-fix-workflow/SKILL.md +191 -336
- package/bundled/skills/bug-planner/SKILL.md +6 -5
- package/bundled/skills/bug-planner/references/critic-and-verification.md +3 -3
- package/bundled/skills/bug-planner/references/schema-validation.md +2 -1
- package/bundled/skills/bug-planner/scripts/validate-bug-list.py +30 -1
- package/bundled/skills/bugfix-pipeline-launcher/SKILL.md +16 -16
- package/bundled/skills/bugfix-pipeline-launcher/references/configuration.md +2 -2
- package/bundled/skills/feature-pipeline-launcher/SKILL.md +19 -11
- package/bundled/skills/feature-planner/SKILL.md +9 -11
- package/bundled/skills/feature-planner/assets/planning-guide.md +1 -1
- package/bundled/skills/feature-planner/references/decomposition-patterns.md +1 -1
- package/bundled/skills/feature-planner/references/error-recovery.md +2 -1
- package/bundled/skills/feature-planner/references/incremental-feature-planning.md +2 -2
- package/bundled/skills/feature-planner/references/new-project-planning.md +35 -39
- package/bundled/skills/feature-planner/scripts/validate-and-generate.py +1 -1
- package/bundled/skills/feature-workflow/SKILL.md +169 -298
- package/bundled/skills/prizmkit/SKILL.md +103 -57
- package/bundled/skills/prizmkit-code-review/SKILL.md +97 -116
- package/bundled/skills/prizmkit-code-review/references/review-report-template.md +1 -0
- package/bundled/skills/prizmkit-code-review/references/reviewer-agent-prompt.md +12 -1
- package/bundled/skills/prizmkit-committer/SKILL.md +59 -47
- package/bundled/skills/prizmkit-deploy/SKILL.md +162 -381
- package/bundled/skills/prizmkit-deploy/references/ssh-adapter-flow.md +220 -0
- package/bundled/skills/prizmkit-implement/SKILL.md +51 -40
- package/bundled/skills/prizmkit-init/SKILL.md +4 -3
- package/bundled/skills/prizmkit-plan/SKILL.md +85 -70
- package/bundled/skills/prizmkit-prizm-docs/SKILL.md +94 -73
- package/bundled/skills/prizmkit-prizm-docs/assets/prizm-docs-format.md +20 -18
- package/bundled/skills/prizmkit-prizm-docs/references/op-update.md +18 -14
- package/bundled/skills/prizmkit-retrospective/SKILL.md +56 -48
- package/bundled/skills/prizmkit-retrospective/references/structural-sync-steps.md +79 -27
- package/bundled/skills/prizmkit-test/SKILL.md +138 -141
- package/bundled/skills/prizmkit-test/references/examples.md +10 -8
- package/bundled/skills/prizmkit-test/references/test-generation-steps.md +1 -1
- package/bundled/skills/prizmkit-test/references/test-report-template.md +2 -2
- package/bundled/skills/recovery-workflow/SKILL.md +195 -256
- package/bundled/skills/recovery-workflow/evals/evals.json +21 -13
- package/bundled/skills/recovery-workflow/references/detection.md +48 -39
- package/bundled/skills/recovery-workflow/scripts/detect-recovery-state.py +258 -322
- package/bundled/skills/refactor-pipeline-launcher/SKILL.md +29 -11
- package/bundled/skills/refactor-planner/SKILL.md +2 -2
- package/bundled/skills/refactor-planner/references/behavior-preservation.md +24 -19
- package/bundled/skills/refactor-planner/references/fast-path.md +2 -4
- package/bundled/skills/refactor-planner/references/planning-phases.md +2 -2
- package/bundled/skills/refactor-workflow/SKILL.md +173 -307
- package/package.json +1 -1
- package/src/scaffold.js +5 -0
- package/bundled/dev-pipeline/templates/agent-prompts/reviewer-review.md +0 -6
- package/bundled/skills/feature-workflow/references/brainstorm-guide.md +0 -137
- package/bundled/skills/refactor-workflow/references/brainstorm-guide.md +0 -116
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
## Your Mission
|
|
2
|
+
|
|
3
|
+
You are the **bug fix session orchestrator**. Fix Bug {{BUG_ID}}: "{{BUG_TITLE}}".
|
|
4
|
+
|
|
5
|
+
**CRITICAL**: You MUST follow the workflow checkpoint. Do not treat a phase number as recovery truth; continue from the first pending/in-progress checkpoint step.
|
|
6
|
+
|
|
7
|
+
**NON-INTERACTIVE MODE**: There is NO human on the other end. NEVER ask for user confirmation, NEVER wait for user input. Make decisions autonomously from the bug report, existing code, tests, and conservative project patterns.
|
|
8
|
+
|
|
9
|
+
**Execution model**: You implement directly in the current checkout. Do not spawn a top-level Dev subagent. `/prizmkit-code-review` owns its internal Reviewer Agent → filter → orchestrator fix loop.
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
### Phase 4: Commit & Learn
|
|
2
|
+
|
|
3
|
+
Skip this phase only when the Manual / Hybrid Verification Gate stopped the fresh session before commit.
|
|
4
|
+
|
|
5
|
+
**Bug Fix Documentation Policy**:
|
|
6
|
+
- Default: run `/prizmkit-retrospective` with structural sync only.
|
|
7
|
+
- Full architecture knowledge capture only when the fix changes interfaces, dependencies, observable behavior, or reveals a durable TRAP.
|
|
8
|
+
- TRAPS must use Prizm docs format: `- [LOW|HIGH|CRITICAL] <description> | FIX: <approach>`. Do not add dates.
|
|
9
|
+
|
|
10
|
+
Run `/prizmkit-retrospective` using the current working tree and staged changes as input context. Do not rely only on `git diff --cached`.
|
|
11
|
+
|
|
12
|
+
Stage changed files explicitly; never use `git add -A` or `git add .`.
|
|
13
|
+
|
|
14
|
+
Run `/prizmkit-committer` with commit prefix:
|
|
15
|
+
|
|
16
|
+
```text
|
|
17
|
+
fix({{FIX_SCOPE}}): {{BUG_TITLE}}
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
Do not push.
|
|
21
|
+
|
|
22
|
+
Write `.prizmkit/bugfix/{{BUG_ID}}/fix-report.md` with:
|
|
23
|
+
- root cause summary;
|
|
24
|
+
- reproduction evidence;
|
|
25
|
+
- fix summary;
|
|
26
|
+
- files changed;
|
|
27
|
+
- review/test/browser evidence;
|
|
28
|
+
- manual/hybrid substitution evidence when applicable;
|
|
29
|
+
- acceptance criteria checklist.
|
|
30
|
+
|
|
31
|
+
**Checkpoint update**: Set `prizmkit-retrospective`, `prizmkit-committer`, and `bug-report` to `completed` as each finishes.
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
### Plan Challenge — Critic Agent
|
|
2
|
+
|
|
3
|
+
**Guard**: Verify critic agent file exists before spawning:
|
|
4
|
+
|
|
5
|
+
```bash
|
|
6
|
+
{{RUNTIME_HELPER_CMD}} artifact exists {{CRITIC_SUBAGENT_PATH}} --exists-marker CRITIC:READY --missing-marker CRITIC:MISSING
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
If `CRITIC:MISSING`, mark `critic-plan-review` as `skipped` and continue.
|
|
10
|
+
|
|
11
|
+
**Focus**: Challenge the bug diagnosis and fix plan before implementation:
|
|
12
|
+
- Is the root cause actually supported by the evidence?
|
|
13
|
+
- Does the reproduction test prove the bug before the fix?
|
|
14
|
+
- Is the fix minimal, or does it mask the symptom?
|
|
15
|
+
- Are adjacent regressions likely?
|
|
16
|
+
- Does manual/hybrid verification policy match `{{VERIFICATION_TYPE}}`?
|
|
17
|
+
|
|
18
|
+
Spawn `prizm-dev-team-critic` with default/no worktree isolation. Do not request AI tool-created worktree isolation.
|
|
19
|
+
|
|
20
|
+
The Critic writes `.prizmkit/bugfix/{{BUG_ID}}/challenge-report.md`. Resolve CRITICAL/HIGH findings before implementation, or document why the plan stands.
|
|
21
|
+
|
|
22
|
+
**Checkpoint update**: Set step `critic-plan-review` to `completed` after challenges are resolved, or `skipped` when critic is unavailable.
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
### Phase 1: Diagnose & Plan
|
|
2
|
+
|
|
3
|
+
**Goal**: prove or strongly establish the root cause before editing code.
|
|
4
|
+
|
|
5
|
+
1. Read `.prizmkit/prizm-docs/root.prizm`, then only the relevant L1/L2 docs for affected modules.
|
|
6
|
+
2. Trace from the error source to the likely root cause:
|
|
7
|
+
- classify error type;
|
|
8
|
+
- inspect relevant TRAPS/RULES;
|
|
9
|
+
- identify affected files and tests;
|
|
10
|
+
- separate symptom from cause.
|
|
11
|
+
3. Write `.prizmkit/bugfix/{{BUG_ID}}/context-snapshot.md` with concise summaries, not full-file dumps:
|
|
12
|
+
- Bug Brief
|
|
13
|
+
- Root Cause Hypothesis
|
|
14
|
+
- Affected Files and Key Interfaces
|
|
15
|
+
- Existing/Reproduction Tests
|
|
16
|
+
- Relevant TRAPS/RULES
|
|
17
|
+
4. Run `/prizmkit-plan` with `artifact_dir=.prizmkit/bugfix/{{BUG_ID}}/`.
|
|
18
|
+
5. Ensure `plan.md` starts with a reproduction test task that would fail before the fix.
|
|
19
|
+
6. Decide `FAST_PATH=true` only when root cause is obvious and plan has no more than 2 tasks.
|
|
20
|
+
|
|
21
|
+
**CP-BF-1**: `spec.md` and `plan.md` exist, and the first plan task is a reproduction test.
|
|
22
|
+
|
|
23
|
+
**Checkpoint update**: Set step `bug-diagnosis-and-plan` to `completed`.
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
### Phase 2: Implement & Fix
|
|
2
|
+
|
|
3
|
+
**Goal**: execute the fix plan with RED → GREEN evidence.
|
|
4
|
+
|
|
5
|
+
Run `/prizmkit-implement` with `artifact_dir=.prizmkit/bugfix/{{BUG_ID}}/`:
|
|
6
|
+
|
|
7
|
+
- Execute plan tasks in order.
|
|
8
|
+
- First task creates or identifies a reproduction test that fails before the fix.
|
|
9
|
+
- Subsequent tasks implement the minimal fix.
|
|
10
|
+
- Mark each task `[x]` immediately after completion.
|
|
11
|
+
- Run the smallest relevant reproduction test first; run broader regression checks only after the targeted test is green.
|
|
12
|
+
- Do not refactor unrelated code.
|
|
13
|
+
|
|
14
|
+
After implementation, verify:
|
|
15
|
+
1. all plan tasks are `[x]`;
|
|
16
|
+
2. reproduction test passes;
|
|
17
|
+
3. no in-scope regression remains unexplained;
|
|
18
|
+
4. acceptance criteria have evidence.
|
|
19
|
+
|
|
20
|
+
**Checkpoint update**: Set step `prizmkit-implement` to `completed`.
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
### Manual / Hybrid Verification Gate
|
|
2
|
+
|
|
3
|
+
`verification_type` is `{{VERIFICATION_TYPE}}`.
|
|
4
|
+
|
|
5
|
+
For a fresh bugfix session, manual/hybrid verification is blocking before commit:
|
|
6
|
+
|
|
7
|
+
1. Write `{{SESSION_STATUS_PATH}}` with:
|
|
8
|
+
- `status`: `partial`
|
|
9
|
+
- `can_resume`: `true`
|
|
10
|
+
- `resume_from_phase`: `4`
|
|
11
|
+
- explanation that manual UAT is required before commit
|
|
12
|
+
2. Document the UAT checklist in `.prizmkit/bugfix/{{BUG_ID}}/fix-report.md` or `failure-log.md`.
|
|
13
|
+
3. Stop before `/prizmkit-retrospective` and `/prizmkit-committer`.
|
|
14
|
+
|
|
15
|
+
Recovery-class sessions (retry, resume, continuation, context overflow) may substitute automated verification for manual/hybrid UAT, but must document the substitution evidence before committing.
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
### Phase 3: Review
|
|
2
|
+
|
|
3
|
+
If `FAST_PATH=true`, skip this phase intentionally:
|
|
4
|
+
|
|
5
|
+
```bash
|
|
6
|
+
{{CHECKPOINT_PYTHON_CMD}} \
|
|
7
|
+
--checkpoint-path {{CHECKPOINT_PATH}} \
|
|
8
|
+
--step prizmkit-code-review \
|
|
9
|
+
--status skipped \
|
|
10
|
+
--note "FAST_PATH: obvious root cause and <=2 tasks"
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
Then continue to the next checkpoint step.
|
|
14
|
+
|
|
15
|
+
Otherwise, run `/prizmkit-code-review` with `artifact_dir=.prizmkit/bugfix/{{BUG_ID}}/`.
|
|
16
|
+
|
|
17
|
+
The skill runs its internal Reviewer Agent → filter → orchestrator fix loop and writes `review-report.md`.
|
|
18
|
+
|
|
19
|
+
**Gate Check — Review Report**:
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
{{RUNTIME_HELPER_CMD}} text contains .prizmkit/bugfix/{{BUG_ID}}/review-report.md --pattern "## Verdict"
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
- `PASS` → proceed.
|
|
26
|
+
- `NEEDS_FIXES` → the skill exhausted its internal rounds; log remaining findings and proceed only when they do not block acceptance criteria.
|
|
27
|
+
- Missing report → one bounded retry or safe inline fallback review, then write `failure-log.md` if still blocked.
|
|
28
|
+
|
|
29
|
+
**Checkpoint update**: Set step `prizmkit-code-review` to `completed` when review is complete, or `skipped` for FAST_PATH.
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
## Reminders
|
|
2
|
+
|
|
3
|
+
- Use L1 skills: `/prizmkit-plan`, `/prizmkit-implement`, `/prizmkit-code-review`, `/prizmkit-retrospective`, `/prizmkit-committer`.
|
|
4
|
+
- All bugfix skills use `artifact_dir=.prizmkit/bugfix/{{BUG_ID}}/`.
|
|
5
|
+
- The first plan task must prove the bug with a reproduction test when feasible.
|
|
6
|
+
- Commit with `fix(<scope>):`, not `feat:`.
|
|
7
|
+
- Do not write TRAP dates into `.prizmkit/prizm-docs/`.
|
|
8
|
+
- Do not use top-level Dev subagents; implement directly as the orchestrator.
|
|
9
|
+
- Checkpoint state is the recovery truth; skipped steps must be marked `skipped`.
|
|
10
|
+
- Browser verification is a mandatory attempt by default; it blocks only when explicitly required.
|
|
11
|
+
- If `DEV_PORT` is unknown, discover it from project config; do not guess port 3000.
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
## Session Context
|
|
2
|
+
|
|
3
|
+
- **Bug ID**: {{BUG_ID}} | **Session**: {{SESSION_ID}} | **Run**: {{RUN_ID}}
|
|
4
|
+
- **Bug Title**: {{BUG_TITLE}}
|
|
5
|
+
- **Severity**: {{SEVERITY}}
|
|
6
|
+
- **Mode**: {{PIPELINE_MODE}} | **Critic**: {{CRITIC_ENABLED}}
|
|
7
|
+
- **Verification Type**: {{VERIFICATION_TYPE}}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
### Step 3: Report Session Status
|
|
2
|
+
|
|
3
|
+
Before exiting, write the session status file:
|
|
4
|
+
|
|
5
|
+
`{{SESSION_STATUS_PATH}}`
|
|
6
|
+
|
|
7
|
+
```json
|
|
8
|
+
{
|
|
9
|
+
"session_id": "{{SESSION_ID}}",
|
|
10
|
+
"bug_id": "{{BUG_ID}}",
|
|
11
|
+
"status": "<success|partial|failed>",
|
|
12
|
+
"completed_phases": [1, 2, 3, 4],
|
|
13
|
+
"current_phase": 4,
|
|
14
|
+
"checkpoint_reached": "<current checkpoint step>",
|
|
15
|
+
"fast_path": false,
|
|
16
|
+
"errors": [],
|
|
17
|
+
"can_resume": false,
|
|
18
|
+
"resume_from_phase": null,
|
|
19
|
+
"artifacts": {
|
|
20
|
+
"spec_path": ".prizmkit/bugfix/{{BUG_ID}}/spec.md",
|
|
21
|
+
"plan_path": ".prizmkit/bugfix/{{BUG_ID}}/plan.md",
|
|
22
|
+
"fix_report_path": ".prizmkit/bugfix/{{BUG_ID}}/fix-report.md"
|
|
23
|
+
},
|
|
24
|
+
"git_commit": "<commit hash or null>",
|
|
25
|
+
"traps_updated": false,
|
|
26
|
+
"manual_verification_policy": "{{MANUAL_VERIFICATION_POLICY}}",
|
|
27
|
+
"timestamp": "{{TIMESTAMP}}"
|
|
28
|
+
}
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
For fresh manual/hybrid partial stops, set `status="partial"`, `can_resume=true`, and `resume_from_phase=4`.
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
## Bug Fix Task Contract
|
|
2
|
+
|
|
3
|
+
### Objective
|
|
4
|
+
|
|
5
|
+
Fix {{BUG_ID}}: "{{BUG_TITLE}}".
|
|
6
|
+
|
|
7
|
+
{{BUG_DESCRIPTION}}
|
|
8
|
+
|
|
9
|
+
{{USER_CONTEXT}}
|
|
10
|
+
|
|
11
|
+
### Error Source
|
|
12
|
+
|
|
13
|
+
- **Type**: {{ERROR_SOURCE_TYPE}}
|
|
14
|
+
{{ERROR_SOURCE_DETAILS}}
|
|
15
|
+
|
|
16
|
+
### Environment
|
|
17
|
+
|
|
18
|
+
{{ENVIRONMENT}}
|
|
19
|
+
|
|
20
|
+
### Verification Contract
|
|
21
|
+
|
|
22
|
+
- **Verification Type**: {{VERIFICATION_TYPE}}
|
|
23
|
+
- **Manual/Hybrid Policy**: {{MANUAL_VERIFICATION_POLICY}}
|
|
24
|
+
|
|
25
|
+
### Acceptance Criteria
|
|
26
|
+
|
|
27
|
+
{{ACCEPTANCE_CRITERIA}}
|
|
28
|
+
|
|
29
|
+
### Gate Checklist
|
|
30
|
+
|
|
31
|
+
{{AC_CHECKLIST}}
|
|
32
|
+
|
|
33
|
+
Gate rule:
|
|
34
|
+
- `[x]` means verified with reproduction, implementation, test, review, or documented recovery evidence.
|
|
35
|
+
- Any remaining `[ ]` means the bug fix is incomplete.
|
|
36
|
+
- Blocked gates must be documented in `failure-log.md`; blocked is not success.
|
|
37
|
+
|
|
38
|
+
### App Global Context
|
|
39
|
+
|
|
40
|
+
{{GLOBAL_CONTEXT}}
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
If you encounter an unrecoverable error, context overflow, or are about to exit without completing all phases:
|
|
4
4
|
|
|
5
|
-
1. Write
|
|
5
|
+
1. Write `{{ARTIFACT_DIR}}/failure-log.md` BEFORE exiting:
|
|
6
6
|
```
|
|
7
7
|
FAILURE_TYPE: timeout | test_failure | review_rejected | context_overflow | unknown
|
|
8
|
-
PHASE: <
|
|
8
|
+
PHASE: <failed phase or checkpoint step>
|
|
9
9
|
ROOT_CAUSE: <1-2 sentence explanation>
|
|
10
10
|
ATTEMPTED: <approaches already tried>
|
|
11
11
|
SUGGESTION: <what the next session should try differently>
|
|
@@ -4,7 +4,7 @@ You MUST attempt this phase. Mark it as skipped only when no usable browser tool
|
|
|
4
4
|
|
|
5
5
|
**Step 0 — Tool Selection (BLOCKING — decide before any browser action)**:
|
|
6
6
|
|
|
7
|
-
0a. Check
|
|
7
|
+
0a. Check browser tool availability:
|
|
8
8
|
```bash
|
|
9
9
|
{{RUNTIME_HELPER_CMD}} executable version playwright-cli --arg=--version
|
|
10
10
|
{{RUNTIME_HELPER_CMD}} executable version opencli --arg=--version
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
## Refactor Artifacts Directory
|
|
2
|
+
|
|
3
|
+
Use only this durable artifact directory for this refactor:
|
|
4
|
+
|
|
5
|
+
```text
|
|
6
|
+
.prizmkit/refactor/{{REFACTOR_ID}}/
|
|
7
|
+
├── spec.md
|
|
8
|
+
├── plan.md
|
|
9
|
+
├── context-snapshot.md
|
|
10
|
+
├── review-report.md
|
|
11
|
+
├── refactor-report.md
|
|
12
|
+
├── completion-summary.json
|
|
13
|
+
├── failure-log.md
|
|
14
|
+
└── workflow-checkpoint.json
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
Do not write refactor artifacts under feature or bugfix artifact directories.
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
## Critical Paths
|
|
2
|
+
|
|
3
|
+
| Resource | Path |
|
|
4
|
+
|----------|------|
|
|
5
|
+
| Refactor Artifacts Dir | `.prizmkit/refactor/{{REFACTOR_ID}}/` |
|
|
6
|
+
| Spec | `.prizmkit/refactor/{{REFACTOR_ID}}/spec.md` |
|
|
7
|
+
| Plan | `.prizmkit/refactor/{{REFACTOR_ID}}/plan.md` |
|
|
8
|
+
| Review Report | `.prizmkit/refactor/{{REFACTOR_ID}}/review-report.md` |
|
|
9
|
+
| Refactor Report | `.prizmkit/refactor/{{REFACTOR_ID}}/refactor-report.md` |
|
|
10
|
+
| Completion Summary | `.prizmkit/refactor/{{REFACTOR_ID}}/completion-summary.json` |
|
|
11
|
+
| Workflow Checkpoint | `{{CHECKPOINT_PATH}}` |
|
|
12
|
+
| Session Status Output | `{{SESSION_STATUS_PATH}}` |
|
|
13
|
+
| Project Root | `{{PROJECT_ROOT}}` |
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
## Your Mission
|
|
2
|
+
|
|
3
|
+
You are the **refactor session orchestrator**. Execute Refactor {{REFACTOR_ID}}: "{{REFACTOR_TITLE}}".
|
|
4
|
+
|
|
5
|
+
**CRITICAL**: Preserve observable behavior. Do not change product behavior unless the refactor contract explicitly requires it.
|
|
6
|
+
|
|
7
|
+
**Execution model**: You implement directly in the current checkout. Do not spawn a top-level Dev subagent. Do not spawn a top-level Reviewer subagent. `/prizmkit-code-review` owns its internal Reviewer Agent → filter → orchestrator fix loop.
|
|
8
|
+
|
|
9
|
+
**NON-INTERACTIVE MODE**: There is NO human on the other end. Resolve uncertainty from existing code and conservative project patterns.
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
### Phase 4: Commit, Report & Completion Summary
|
|
2
|
+
|
|
3
|
+
**Refactor Documentation Policy**:
|
|
4
|
+
- Default: run `/prizmkit-retrospective` with full sync because refactoring changes structure and interfaces.
|
|
5
|
+
- Skip architecture knowledge injection only for a pure rename with no interface or dependency changes.
|
|
6
|
+
|
|
7
|
+
Run `/prizmkit-retrospective` using the current working tree and staged changes as input context. Do not rely only on `git diff --cached`.
|
|
8
|
+
|
|
9
|
+
Stage changed files explicitly; never use `git add -A` or `git add .`.
|
|
10
|
+
|
|
11
|
+
Run `/prizmkit-committer` with commit prefix:
|
|
12
|
+
|
|
13
|
+
```text
|
|
14
|
+
refactor({{REFACTOR_ID}}): {{REFACTOR_TITLE}}
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
Do not push.
|
|
18
|
+
|
|
19
|
+
Write `.prizmkit/refactor/{{REFACTOR_ID}}/refactor-report.md` with:
|
|
20
|
+
- refactor summary;
|
|
21
|
+
- files/modules changed;
|
|
22
|
+
- behavior-preservation evidence before/after;
|
|
23
|
+
- review findings;
|
|
24
|
+
- browser evidence when applicable;
|
|
25
|
+
- acceptance criteria checklist.
|
|
26
|
+
|
|
27
|
+
Write `.prizmkit/refactor/{{REFACTOR_ID}}/completion-summary.json` for downstream refactor context:
|
|
28
|
+
|
|
29
|
+
```json
|
|
30
|
+
{
|
|
31
|
+
"completion_notes": [
|
|
32
|
+
"<key structural change, moved/renamed interface, or new module boundary>"
|
|
33
|
+
]
|
|
34
|
+
}
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
**Checkpoint update**: Set `prizmkit-retrospective`, `prizmkit-committer`, `refactor-report`, and `completion-summary` to `completed` as each finishes.
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
### Plan Challenge — Critic Agent
|
|
2
|
+
|
|
3
|
+
**Guard**: Verify critic agent file exists before spawning:
|
|
4
|
+
|
|
5
|
+
```bash
|
|
6
|
+
{{RUNTIME_HELPER_CMD}} artifact exists {{CRITIC_SUBAGENT_PATH}} --exists-marker CRITIC:READY --missing-marker CRITIC:MISSING
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
If `CRITIC:MISSING`, mark `critic-plan-review` as `skipped` and continue.
|
|
10
|
+
|
|
11
|
+
**Focus**: Challenge behavior preservation and plan safety before implementation:
|
|
12
|
+
- Is observable behavior clearly defined and protected?
|
|
13
|
+
- Do existing/new tests cover the behavior affected by this refactor?
|
|
14
|
+
- Is the plan too broad for the stated scope?
|
|
15
|
+
- Are file moves/renames safe for imports, public APIs, and integrations?
|
|
16
|
+
- Is rollback realistic?
|
|
17
|
+
|
|
18
|
+
Spawn `prizm-dev-team-critic` with default/no worktree isolation. Do not request AI tool-created worktree isolation.
|
|
19
|
+
|
|
20
|
+
The Critic writes `.prizmkit/refactor/{{REFACTOR_ID}}/challenge-report.md`. Resolve CRITICAL/HIGH findings before implementation, or document why the plan stands.
|
|
21
|
+
|
|
22
|
+
**Checkpoint update**: Set step `critic-plan-review` to `completed` after challenges are resolved, or `skipped` when critic is unavailable.
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
### Phase 2: Implement — Orchestrator Direct
|
|
2
|
+
|
|
3
|
+
**Goal**: execute the refactor plan while preserving behavior.
|
|
4
|
+
|
|
5
|
+
Run `/prizmkit-implement` directly with `artifact_dir=.prizmkit/refactor/{{REFACTOR_ID}}/`.
|
|
6
|
+
|
|
7
|
+
Rules:
|
|
8
|
+
- You are the implementer; do not spawn a top-level Dev subagent.
|
|
9
|
+
- Establish a baseline test result before structural changes when feasible.
|
|
10
|
+
- Execute plan tasks in order and mark each `[x]` immediately.
|
|
11
|
+
- After each behavior-sensitive task, run the smallest relevant behavior-preservation check.
|
|
12
|
+
- Add or update tests only to lock existing behavior, not to change expected behavior.
|
|
13
|
+
- If tests fail unexpectedly, treat it as a behavior-preservation failure and fix before proceeding.
|
|
14
|
+
- Document changed module boundaries and any deviations from the plan in `context-snapshot.md`.
|
|
15
|
+
|
|
16
|
+
**Checkpoint update**: Set step `prizmkit-implement` to `completed` when all tasks are `[x]` and behavior-preservation evidence is recorded.
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
### Phase 1: Plan — Specification & Plan Generation
|
|
2
|
+
|
|
3
|
+
**Goal**: produce a behavior-preserving refactor plan before editing code.
|
|
4
|
+
|
|
5
|
+
Run `/prizmkit-plan` with `artifact_dir=.prizmkit/refactor/{{REFACTOR_ID}}/`.
|
|
6
|
+
|
|
7
|
+
The spec.md must include:
|
|
8
|
+
- refactor goals and acceptance criteria;
|
|
9
|
+
- explicit scope boundaries;
|
|
10
|
+
- behavior preservation contract;
|
|
11
|
+
- existing tests and gaps.
|
|
12
|
+
|
|
13
|
+
The plan.md must include:
|
|
14
|
+
- safe task ordering: baseline checks → safe renames/moves → extractions → structural changes;
|
|
15
|
+
- files/modules to touch;
|
|
16
|
+
- behavior-preservation checks for each task;
|
|
17
|
+
- rollback strategy;
|
|
18
|
+
- Tasks section with `[ ]` checkboxes.
|
|
19
|
+
|
|
20
|
+
Resolve uncertain refactor details from existing code and conservative project patterns. Do not expand scope beyond the task contract.
|
|
21
|
+
|
|
22
|
+
**Checkpoint update**: Set step `prizmkit-plan` to `completed` after `spec.md` and `plan.md` exist.
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
### Phase 3: Review — Code Review & Behavior Verification
|
|
2
|
+
|
|
3
|
+
Run `/prizmkit-code-review` directly with `artifact_dir=.prizmkit/refactor/{{REFACTOR_ID}}/`.
|
|
4
|
+
|
|
5
|
+
Do not spawn a top-level Reviewer subagent. The code-review skill owns its internal Reviewer Agent → filter → orchestrator fix loop.
|
|
6
|
+
|
|
7
|
+
**Gate Check — Review Report**:
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
{{RUNTIME_HELPER_CMD}} text contains .prizmkit/refactor/{{REFACTOR_ID}}/review-report.md --pattern "## Verdict"
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
- `PASS` → proceed.
|
|
14
|
+
- `NEEDS_FIXES` → the skill exhausted its internal rounds; log remaining findings and proceed only when they do not block behavior preservation.
|
|
15
|
+
- Missing report → one bounded retry or safe inline fallback review, then write `failure-log.md` if still blocked.
|
|
16
|
+
|
|
17
|
+
Verify the review explicitly checks behavior preservation, public API compatibility, imports, tests, and rollback assumptions.
|
|
18
|
+
|
|
19
|
+
**Checkpoint update**: Set step `prizmkit-code-review` to `completed` when review is complete.
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
## Reminders
|
|
2
|
+
|
|
3
|
+
- Use L1 skills: `/prizmkit-plan`, `/prizmkit-implement`, `/prizmkit-code-review`, `/prizmkit-retrospective`, `/prizmkit-committer`.
|
|
4
|
+
- All refactor skills use `artifact_dir=.prizmkit/refactor/{{REFACTOR_ID}}/`.
|
|
5
|
+
- Behavior preservation is the first priority.
|
|
6
|
+
- Do not spawn top-level Dev or Reviewer subagents.
|
|
7
|
+
- Main orchestrator runs `/prizmkit-code-review` directly.
|
|
8
|
+
- Commit with `refactor(<scope>):`, not `feat:` or `fix:`.
|
|
9
|
+
- Checkpoint state is the recovery truth; skipped steps must be marked `skipped`.
|
|
10
|
+
- Browser verification is a mandatory attempt by default; it blocks only when explicitly required.
|
|
11
|
+
- If `DEV_PORT` is unknown, discover it from project config; do not guess port 3000.
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
## Session Context
|
|
2
|
+
|
|
3
|
+
- **Refactor ID**: {{REFACTOR_ID}} | **Session**: {{SESSION_ID}} | **Run**: {{RUN_ID}}
|
|
4
|
+
- **Title**: {{REFACTOR_TITLE}}
|
|
5
|
+
- **Type**: {{REFACTOR_TYPE}}
|
|
6
|
+
- **Priority**: {{PRIORITY}} | **Complexity**: {{COMPLEXITY}}
|
|
7
|
+
- **Mode**: {{PIPELINE_MODE}} | **Critic**: {{CRITIC_ENABLED}}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
### Step 3: Report Session Status
|
|
2
|
+
|
|
3
|
+
Before exiting, write the session status file:
|
|
4
|
+
|
|
5
|
+
`{{SESSION_STATUS_PATH}}`
|
|
6
|
+
|
|
7
|
+
```json
|
|
8
|
+
{
|
|
9
|
+
"session_id": "{{SESSION_ID}}",
|
|
10
|
+
"refactor_id": "{{REFACTOR_ID}}",
|
|
11
|
+
"status": "<success|partial|failed>",
|
|
12
|
+
"completed_phases": [1, 2, 3, 4],
|
|
13
|
+
"current_phase": 4,
|
|
14
|
+
"checkpoint_reached": "<current checkpoint step>",
|
|
15
|
+
"errors": [],
|
|
16
|
+
"can_resume": false,
|
|
17
|
+
"resume_from_phase": null,
|
|
18
|
+
"artifacts": {
|
|
19
|
+
"spec_path": ".prizmkit/refactor/{{REFACTOR_ID}}/spec.md",
|
|
20
|
+
"plan_path": ".prizmkit/refactor/{{REFACTOR_ID}}/plan.md",
|
|
21
|
+
"report_path": ".prizmkit/refactor/{{REFACTOR_ID}}/refactor-report.md",
|
|
22
|
+
"completion_summary_path": ".prizmkit/refactor/{{REFACTOR_ID}}/completion-summary.json"
|
|
23
|
+
},
|
|
24
|
+
"git_commit": "<commit hash>",
|
|
25
|
+
"behavior_preserved": true,
|
|
26
|
+
"timestamp": "{{TIMESTAMP}}"
|
|
27
|
+
}
|
|
28
|
+
```
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
## Refactor Task Contract
|
|
2
|
+
|
|
3
|
+
### Objective
|
|
4
|
+
|
|
5
|
+
Execute {{REFACTOR_ID}}: "{{REFACTOR_TITLE}}".
|
|
6
|
+
|
|
7
|
+
{{REFACTOR_DESCRIPTION}}
|
|
8
|
+
|
|
9
|
+
{{USER_CONTEXT}}
|
|
10
|
+
|
|
11
|
+
### Scope
|
|
12
|
+
|
|
13
|
+
**Files:**
|
|
14
|
+
{{SCOPE_FILES}}
|
|
15
|
+
|
|
16
|
+
**Modules:**
|
|
17
|
+
{{SCOPE_MODULES}}
|
|
18
|
+
|
|
19
|
+
### Behavior Preservation
|
|
20
|
+
|
|
21
|
+
- **Strategy**: {{BEHAVIOR_STRATEGY}}
|
|
22
|
+
|
|
23
|
+
{{BEHAVIOR_PRESERVATION}}
|
|
24
|
+
|
|
25
|
+
### Existing Tests
|
|
26
|
+
|
|
27
|
+
{{EXISTING_TESTS}}
|
|
28
|
+
|
|
29
|
+
### New Tests Needed
|
|
30
|
+
|
|
31
|
+
{{NEW_TESTS_NEEDED}}
|
|
32
|
+
|
|
33
|
+
### Acceptance Criteria
|
|
34
|
+
|
|
35
|
+
{{ACCEPTANCE_CRITERIA}}
|
|
36
|
+
|
|
37
|
+
### Gate Checklist
|
|
38
|
+
|
|
39
|
+
{{AC_CHECKLIST}}
|
|
40
|
+
|
|
41
|
+
Gate rule:
|
|
42
|
+
- `[x]` means verified with behavior-preservation evidence.
|
|
43
|
+
- Any remaining `[ ]` means the refactor is incomplete.
|
|
44
|
+
- Blocked gates must be documented in `failure-log.md`; blocked is not success.
|
|
45
|
+
|
|
46
|
+
### Dependencies
|
|
47
|
+
|
|
48
|
+
{{DEPENDENCIES}}
|
|
49
|
+
|
|
50
|
+
### App Global Context
|
|
51
|
+
|
|
52
|
+
{{GLOBAL_CONTEXT}}
|
|
@@ -884,7 +884,8 @@ class TestDirectOrchestratorImplementationPrompts:
|
|
|
884
884
|
assert FORBIDDEN_DEV_FIX_PLACEHOLDER not in replacements
|
|
885
885
|
assert FORBIDDEN_DEV_RESUME_PLACEHOLDER not in replacements
|
|
886
886
|
assert "{{AGENT_PROMPT_CRITIC_PLAN_CHALLENGE}}" in replacements
|
|
887
|
-
assert "{{AGENT_PROMPT_REVIEWER_REVIEW}}" in replacements
|
|
887
|
+
assert "{{AGENT_PROMPT_REVIEWER_REVIEW}}" not in replacements
|
|
888
|
+
assert (templates_dir / "agent-prompts" / "reviewer-review.md").exists() is False
|
|
888
889
|
assert (templates_dir / "agent-prompts" / "dev-implement.md").exists() is False
|
|
889
890
|
assert (templates_dir / "agent-prompts" / FORBIDDEN_DEV_FIX_PROMPT).exists() is False
|
|
890
891
|
assert (templates_dir / "agent-prompts" / FORBIDDEN_DEV_RESUME_PROMPT).exists() is False
|
|
@@ -923,9 +924,19 @@ class TestDirectOrchestratorImplementationPrompts:
|
|
|
923
924
|
assert "Implement — Orchestrator Direct" in rendered
|
|
924
925
|
assert "Spawn Dev subagent" not in rendered
|
|
925
926
|
assert "Spawn Dev agent" not in rendered
|
|
927
|
+
assert "Spawn Reviewer agent" not in rendered
|
|
928
|
+
assert "Reviewer Agent Def" not in rendered
|
|
929
|
+
assert "subagent_type=\"prizm-dev-team-reviewer\"" not in rendered
|
|
926
930
|
assert "Implement — Dev" not in rendered
|
|
927
931
|
assert "{{AGENT_PROMPT_DEV_IMPLEMENT}}" not in rendered
|
|
932
|
+
assert "{{AGENT_PROMPT_REVIEWER_REVIEW}}" not in rendered
|
|
933
|
+
assert "reviewer-review.md" not in rendered
|
|
928
934
|
assert "dev-implement.md" not in rendered
|
|
935
|
+
assert "Bug Fix Documentation Policy" not in rendered
|
|
936
|
+
assert "For bug-fix sessions" not in rendered
|
|
937
|
+
assert "fix(<scope>)" not in rendered
|
|
938
|
+
assert "port check 3000" not in rendered
|
|
939
|
+
assert "localhost:3000" not in rendered
|
|
929
940
|
assert FORBIDDEN_REVIEW_DEV_FIX not in rendered
|
|
930
941
|
assert FORBIDDEN_REVIEWER_DEV_SPAWN not in rendered
|
|
931
942
|
assert FORBIDDEN_EXPLORE_SUBAGENT not in rendered
|
|
@@ -1311,7 +1322,6 @@ class TestHeadlessPromptCleanupF033:
|
|
|
1311
1322
|
refactor_prompt = _render_refactor_prompt(tmp_path / "refactor-mixed", platform="claude")
|
|
1312
1323
|
|
|
1313
1324
|
assert replacements["{{REVIEWER_SUBAGENT_PATH}}"].endswith(".claude/agents/prizm-dev-team-reviewer.md")
|
|
1314
|
-
assert ".claude/agents/prizm-dev-team-reviewer.md" in refactor_prompt
|
|
1315
1325
|
assert ".codex/agents/prizm-dev-team-reviewer.toml" not in refactor_prompt
|
|
1316
1326
|
|
|
1317
1327
|
def test_bugfix_refactor_explicit_codex_override(self, tmp_path, monkeypatch):
|
|
@@ -1333,7 +1343,6 @@ class TestHeadlessPromptCleanupF033:
|
|
|
1333
1343
|
refactor_prompt = _render_refactor_prompt(tmp_path / "refactor-codex", platform="claude", explicit_platform="codex")
|
|
1334
1344
|
|
|
1335
1345
|
assert replacements["{{REVIEWER_SUBAGENT_PATH}}"].endswith(".codex/agents/prizm-dev-team-reviewer.toml")
|
|
1336
|
-
assert ".codex/agents/prizm-dev-team-reviewer.toml" in refactor_prompt
|
|
1337
1346
|
assert ".claude/agents/prizm-dev-team-reviewer.md" not in refactor_prompt
|
|
1338
1347
|
|
|
1339
1348
|
def test_explicit_codex_env_still_renders_codex_critic_path(self, tmp_path, monkeypatch):
|
|
@@ -1399,7 +1408,9 @@ class TestFeatureBootstrapShellExtraction:
|
|
|
1399
1408
|
assert "executable version opencli --arg=--version" in prompt
|
|
1400
1409
|
assert "process start --pid-file .prizmkit/state/browser-dev-server.pid" in prompt
|
|
1401
1410
|
assert "process cleanup-pid <pid-from-.prizmkit/state/browser-dev-server.pid>" in prompt
|
|
1402
|
-
assert "port check <DEV_PORT>" in prompt
|
|
1411
|
+
assert "port check <DEV_PORT>" in prompt
|
|
1412
|
+
assert "port check 3000" not in prompt
|
|
1413
|
+
assert "localhost:3000" not in prompt
|
|
1403
1414
|
|
|
1404
1415
|
def test_rendered_legacy_tier_feature_prompts_use_runtime_helper_not_extracted_bash(self, tmp_path):
|
|
1405
1416
|
cases = [
|
|
@@ -1419,7 +1430,8 @@ class TestFeatureBootstrapShellExtraction:
|
|
|
1419
1430
|
self.assert_shell_extracted_operations_removed(prompt)
|
|
1420
1431
|
assert "process start --pid-file .prizmkit/state/browser-dev-server.pid" in prompt
|
|
1421
1432
|
assert "process cleanup-pid <pid-from-.prizmkit/state/browser-dev-server.pid>" in prompt
|
|
1422
|
-
assert "port check 3000" in prompt
|
|
1433
|
+
assert "port check 3000" not in prompt
|
|
1434
|
+
assert "localhost:3000" not in prompt
|
|
1423
1435
|
|
|
1424
1436
|
def test_legacy_tier_specific_extracted_operations_map_to_helper_commands(self, tmp_path):
|
|
1425
1437
|
tier1 = _render_feature_prompt(
|