prizmkit 1.1.78 → 1.1.80
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/dev-pipeline/scripts/init-pipeline.py +2 -0
- package/bundled/dev-pipeline-windows/scripts/init-pipeline.py +2 -0
- package/bundled/skills/_metadata.json +1 -1
- package/bundled/skills/app-planner/SKILL.md +10 -347
- package/bundled/skills/app-planner/references/infrastructure-convention-discovery.md +108 -0
- package/bundled/skills/app-planner/references/project-conventions-discovery.md +59 -0
- package/bundled/skills/app-planner/references/project-state-detection.md +88 -0
- package/bundled/skills/app-planner/references/rules-configuration.md +46 -0
- package/bundled/skills/bug-fix-workflow/SKILL.md +1 -30
- package/bundled/skills/bug-fix-workflow/references/bug-diagnosis.md +66 -0
- package/bundled/skills/bugfix-pipeline-launcher/SKILL.md +3 -40
- package/bundled/skills/bugfix-pipeline-launcher/references/configuration.md +49 -0
- package/bundled/skills/feature-pipeline-launcher/SKILL.md +3 -46
- package/bundled/skills/feature-pipeline-launcher/references/configuration.md +55 -0
- package/bundled/skills/feature-workflow/SKILL.md +5 -121
- package/bundled/skills/feature-workflow/references/brainstorm-guide.md +137 -0
- package/bundled/skills/prizm-kit/SKILL.md +11 -0
- package/bundled/skills/prizmkit-code-review/SKILL.md +66 -135
- package/bundled/skills/prizmkit-code-review/references/dev-agent-prompt.md +30 -0
- package/bundled/skills/prizmkit-code-review/references/review-report-template.md +31 -0
- package/bundled/skills/prizmkit-code-review/references/reviewer-agent-prompt.md +62 -0
- package/bundled/skills/prizmkit-code-review/scripts/check_loop.py +186 -0
- package/bundled/skills/prizmkit-committer/SKILL.md +6 -0
- package/bundled/skills/prizmkit-deploy/SKILL.md +48 -72
- package/bundled/skills/prizmkit-deploy/references/data-safety-examples.md +120 -0
- package/bundled/skills/prizmkit-deploy/references/ssh-bootstrap-flow.md +49 -0
- package/bundled/skills/prizmkit-deploy/references/ssh-execution-flow.md +41 -0
- package/bundled/skills/prizmkit-deploy/references/ssh-takeover.md +20 -0
- package/bundled/skills/prizmkit-implement/SKILL.md +6 -0
- package/bundled/skills/prizmkit-plan/SKILL.md +1 -83
- package/bundled/skills/prizmkit-plan/references/examples.md +85 -0
- package/bundled/skills/prizmkit-prizm-docs/SKILL.md +13 -0
- package/bundled/skills/prizmkit-test/SKILL.md +3 -151
- package/bundled/skills/prizmkit-test/references/examples.md +70 -0
- package/bundled/skills/prizmkit-test/references/test-generation-steps.md +49 -0
- package/bundled/skills/prizmkit-test/references/test-report-template.md +42 -0
- package/bundled/skills/recovery-workflow/SKILL.md +1 -30
- package/bundled/skills/recovery-workflow/references/detection.md +58 -0
- package/bundled/skills/refactor-pipeline-launcher/SKILL.md +3 -45
- package/bundled/skills/refactor-pipeline-launcher/references/configuration.md +54 -0
- package/bundled/skills/refactor-planner/SKILL.md +9 -149
- package/bundled/skills/refactor-planner/references/fast-path.md +59 -0
- package/bundled/skills/refactor-planner/references/planning-phases.md +135 -0
- package/bundled/skills/refactor-workflow/SKILL.md +4 -103
- package/bundled/skills/refactor-workflow/references/brainstorm-guide.md +116 -0
- package/bundled/skills-windows/app-planner/SKILL.md +10 -349
- package/bundled/skills-windows/app-planner/references/infrastructure-convention-discovery.md +108 -0
- package/bundled/skills-windows/app-planner/references/project-conventions-discovery.md +59 -0
- package/bundled/skills-windows/app-planner/references/project-state-detection.md +90 -0
- package/bundled/skills-windows/app-planner/references/rules-configuration.md +46 -0
- package/bundled/skills-windows/bug-fix-workflow/SKILL.md +1 -30
- package/bundled/skills-windows/bug-fix-workflow/references/bug-diagnosis.md +66 -0
- package/bundled/skills-windows/bugfix-pipeline-launcher/SKILL.md +2 -29
- package/bundled/skills-windows/bugfix-pipeline-launcher/references/configuration.md +49 -0
- package/bundled/skills-windows/feature-pipeline-launcher/SKILL.md +2 -35
- package/bundled/skills-windows/feature-pipeline-launcher/references/configuration.md +55 -0
- package/bundled/skills-windows/feature-workflow/SKILL.md +5 -121
- package/bundled/skills-windows/feature-workflow/references/brainstorm-guide.md +137 -0
- package/bundled/skills-windows/prizm-kit/SKILL.md +92 -0
- package/bundled/skills-windows/prizmkit-code-review/SKILL.md +156 -0
- package/bundled/skills-windows/prizmkit-code-review/references/dev-agent-prompt.md +30 -0
- package/bundled/skills-windows/prizmkit-code-review/references/review-report-template.md +31 -0
- package/bundled/skills-windows/prizmkit-code-review/references/reviewer-agent-prompt.md +62 -0
- package/bundled/skills-windows/prizmkit-code-review/scripts/check_loop.py +186 -0
- package/bundled/skills-windows/prizmkit-committer/SKILL.md +87 -0
- package/bundled/skills-windows/prizmkit-deploy/SKILL.md +444 -0
- package/bundled/skills-windows/prizmkit-deploy/references/ci-cd-workflows.md +115 -0
- package/bundled/skills-windows/prizmkit-deploy/references/cloud-platform-deploy.md +93 -0
- package/bundled/skills-windows/prizmkit-deploy/references/data-safety-examples.md +120 -0
- package/bundled/skills-windows/prizmkit-deploy/references/database-setup.md +46 -0
- package/bundled/skills-windows/prizmkit-deploy/references/deploy-config-schema.md +148 -0
- package/bundled/skills-windows/prizmkit-deploy/references/deploy-history-schema.md +62 -0
- package/bundled/skills-windows/prizmkit-deploy/references/deployment-modes.md +50 -0
- package/bundled/skills-windows/prizmkit-deploy/references/direct-upload.md +26 -0
- package/bundled/skills-windows/prizmkit-deploy/references/dns-setup.md +42 -0
- package/bundled/skills-windows/prizmkit-deploy/references/docker-deploy.md +31 -0
- package/bundled/skills-windows/prizmkit-deploy/references/firewall-setup.md +37 -0
- package/bundled/skills-windows/prizmkit-deploy/references/live-validation-notes.md +21 -0
- package/bundled/skills-windows/prizmkit-deploy/references/nginx-blue-green.md +59 -0
- package/bundled/skills-windows/prizmkit-deploy/references/ssh-bootstrap-flow.md +49 -0
- package/bundled/skills-windows/prizmkit-deploy/references/ssh-execution-flow.md +41 -0
- package/bundled/skills-windows/prizmkit-deploy/references/ssh-takeover.md +20 -0
- package/bundled/skills-windows/prizmkit-deploy/references/ssl-setup.md +56 -0
- package/bundled/skills-windows/prizmkit-implement/SKILL.md +71 -0
- package/bundled/skills-windows/prizmkit-plan/SKILL.md +102 -0
- package/bundled/skills-windows/prizmkit-plan/assets/plan-template.md +115 -0
- package/bundled/skills-windows/prizmkit-plan/assets/spec-template.md +73 -0
- package/bundled/skills-windows/prizmkit-plan/references/clarify-guide.md +67 -0
- package/bundled/skills-windows/prizmkit-plan/references/examples.md +85 -0
- package/bundled/skills-windows/prizmkit-plan/references/verification-checklist.md +60 -0
- package/bundled/skills-windows/prizmkit-prizm-docs/SKILL.md +128 -0
- package/bundled/skills-windows/prizmkit-prizm-docs/assets/prizm-docs-format.md +613 -0
- package/bundled/skills-windows/prizmkit-prizm-docs/references/op-init.md +45 -0
- package/bundled/skills-windows/prizmkit-prizm-docs/references/op-rebuild.md +15 -0
- package/bundled/skills-windows/prizmkit-prizm-docs/references/op-status.md +14 -0
- package/bundled/skills-windows/prizmkit-prizm-docs/references/op-update.md +19 -0
- package/bundled/skills-windows/prizmkit-prizm-docs/references/op-validate.md +17 -0
- package/bundled/skills-windows/prizmkit-retrospective/SKILL.md +87 -0
- package/bundled/skills-windows/prizmkit-retrospective/references/knowledge-injection-steps.md +50 -0
- package/bundled/skills-windows/prizmkit-retrospective/references/structural-sync-steps.md +43 -0
- package/bundled/skills-windows/prizmkit-test/SKILL.md +133 -0
- package/bundled/skills-windows/prizmkit-test/references/examples.md +70 -0
- package/bundled/skills-windows/prizmkit-test/references/test-generation-steps.md +49 -0
- package/bundled/skills-windows/prizmkit-test/references/test-report-template.md +42 -0
- package/bundled/skills-windows/recovery-workflow/SKILL.md +1 -52
- package/bundled/skills-windows/recovery-workflow/references/detection.md +58 -0
- package/bundled/skills-windows/refactor-pipeline-launcher/SKILL.md +2 -32
- package/bundled/skills-windows/refactor-pipeline-launcher/references/configuration.md +54 -0
- package/bundled/skills-windows/refactor-planner/SKILL.md +9 -149
- package/bundled/skills-windows/refactor-planner/references/fast-path.md +59 -0
- package/bundled/skills-windows/refactor-planner/references/planning-phases.md +135 -0
- package/bundled/skills-windows/refactor-workflow/SKILL.md +4 -103
- package/bundled/skills-windows/refactor-workflow/references/brainstorm-guide.md +116 -0
- package/package.json +1 -1
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# Recovery Phase Detection
|
|
2
|
+
|
|
3
|
+
The script uses **priority-ordered signature matching**:
|
|
4
|
+
|
|
5
|
+
```
|
|
6
|
+
1. Current branch matches fix/* → bug-fix-workflow
|
|
7
|
+
2. .prizmkit/bugfix/ directory has content → bug-fix-workflow
|
|
8
|
+
3. Current branch matches refactor/* → refactor-workflow
|
|
9
|
+
4. .prizmkit/plans/refactor-list.json exists → refactor-workflow
|
|
10
|
+
5. Current branch matches feat/* → feature-workflow
|
|
11
|
+
6. .prizmkit/plans/feature-list.json exists → feature-workflow
|
|
12
|
+
7. None of the above → no workflow detected
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
Bug-fix-workflow has highest priority because it is purely interactive and benefits most from recovery (no pipeline retry fallback).
|
|
16
|
+
|
|
17
|
+
## If No Workflow Detected
|
|
18
|
+
|
|
19
|
+
Show guidance and exit:
|
|
20
|
+
|
|
21
|
+
```
|
|
22
|
+
No interrupted workflow detected in this workspace.
|
|
23
|
+
|
|
24
|
+
To start a new workflow:
|
|
25
|
+
• /feature-workflow — build features from idea to code
|
|
26
|
+
• /bug-fix-workflow — fix a specific bug interactively
|
|
27
|
+
• /refactor-workflow — behavior-preserving code restructuring
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## Phase Inference Tables
|
|
31
|
+
|
|
32
|
+
### Bug-Fix-Workflow Recovery
|
|
33
|
+
|
|
34
|
+
| Detected State | Resume From | Actions |
|
|
35
|
+
|---------------|------------|---------|
|
|
36
|
+
| On `fix/<BUG_ID>-*` branch, no artifacts | Phase 1: Deep Bug Diagnosis | Read bug description from `.prizmkit/plans/bug-fix-list.json`. Start interactive diagnosis Q&A |
|
|
37
|
+
| `fix-plan.md` exists, no code changes | Phase 4: Fix | Read fix-plan.md. Implement the fix following the plan |
|
|
38
|
+
| `fix-plan.md` + code changes exist | Phase 5: Review | Invoke `/prizmkit-code-review` on all changes |
|
|
39
|
+
| All docs + review passed | Phase 6: User Verification | Ask user to verify the fix works |
|
|
40
|
+
| All docs + committed | Phase 7: Merge Decision | Ask merge vs keep branch |
|
|
41
|
+
|
|
42
|
+
Note: Bug-fix Phases 1-3 (Diagnosis, Triage, Reproduce) collapse to Phase 1 because they don't produce persistent artifacts. If interrupted during these phases, recovery restarts from Phase 1.
|
|
43
|
+
|
|
44
|
+
### Feature-Workflow Recovery
|
|
45
|
+
|
|
46
|
+
| Detected State | Resume From | Actions |
|
|
47
|
+
|---------------|------------|---------|
|
|
48
|
+
| No `.prizmkit/plans/feature-list.json` | Phase 1: Brainstorm | Cannot recover conversation context. Start requirement clarification, leverage workspace content |
|
|
49
|
+
| `.prizmkit/plans/feature-list.json` exists, no pipeline state | Phase 3: Launch | Invoke `feature-pipeline-launcher` |
|
|
50
|
+
| `.prizmkit/plans/feature-list.json` + pipeline state exists | Phase 4: Monitor | Check pipeline status via `feature-pipeline-launcher` (Intent B) |
|
|
51
|
+
|
|
52
|
+
### Refactor-Workflow Recovery
|
|
53
|
+
|
|
54
|
+
| Detected State | Resume From | Actions |
|
|
55
|
+
|---------------|------------|---------|
|
|
56
|
+
| No `.prizmkit/plans/refactor-list.json` | Phase 1: Brainstorm | Start refactoring goal clarification |
|
|
57
|
+
| `.prizmkit/plans/refactor-list.json` exists, no pipeline state | Phase 3: Launch | Invoke `refactor-pipeline-launcher` |
|
|
58
|
+
| `.prizmkit/plans/refactor-list.json` + pipeline state exists | Phase 4: Monitor | Check pipeline status |
|
|
@@ -222,23 +222,7 @@ Detect user intent from their message, then follow the corresponding workflow:
|
|
|
222
222
|
|
|
223
223
|
Default Critic to Off unless refactor items have `priority: "critical"` (in which case default to On).
|
|
224
224
|
|
|
225
|
-
**Environment variable mapping**
|
|
226
|
-
|
|
227
|
-
| Config choice | Environment variable |
|
|
228
|
-
|-----------|---------------------|
|
|
229
|
-
| Verbose: On | `VERBOSE=1` |
|
|
230
|
-
| Verbose: Off | `VERBOSE=0` |
|
|
231
|
-
| Max retries: N | `MAX_RETRIES=N` |
|
|
232
|
-
| Critic: On | `ENABLE_CRITIC=true` |
|
|
233
|
-
| Timeout: value | `SESSION_TIMEOUT=<seconds>` |
|
|
234
|
-
| Stop on failure: On | `STOP_ON_FAILURE=1` |
|
|
235
|
-
| Effort: value | `PRIZMKIT_EFFORT=<value>` |
|
|
236
|
-
|
|
237
|
-
**Advanced environment variables** (not exposed in interactive menu, pass via `--env`):
|
|
238
|
-
|
|
239
|
-
| Variable | Default | Purpose |
|
|
240
|
-
|----------|---------|---------|
|
|
241
|
-
| `MODEL` | (none) | AI model override (e.g. `claude-opus-4.6`) |
|
|
225
|
+
**Environment variable mapping** and **advanced environment variables** tables — read `${SKILL_DIR}/references/configuration.md` for the full translation tables (10 config→env mappings + 8 advanced variables).
|
|
242
226
|
|
|
243
227
|
⚠️ STOP HERE and wait for user response before continuing to step 7.
|
|
244
228
|
|
|
@@ -389,21 +373,7 @@ Notes:
|
|
|
389
373
|
|
|
390
374
|
### Error Handling
|
|
391
375
|
|
|
392
|
-
|
|
393
|
-
|-------|--------|
|
|
394
|
-
| `.prizmkit/plans/refactor-list.json` not found | Tell user to run `refactor-planner` skill first |
|
|
395
|
-
| Circular dependencies in refactor list | Fix dependency graph in `.prizmkit/plans/refactor-list.json` before launching |
|
|
396
|
-
| Test baseline failing | Fix failing tests before starting refactoring -- behavior preservation requires a green baseline |
|
|
397
|
-
| JSON parsing failed | Use the bundled Python validation/status scripts instead of external JSON tools |
|
|
398
|
-
| AI CLI not in PATH | Check Codex (`codex`), Claude (`claude`), or CodeBuddy (`cbc`) installation |
|
|
399
|
-
| Refactor pipeline already running | Show status, ask if user wants to stop and restart |
|
|
400
|
-
| PID file stale (process dead) | `launch-refactor-daemon.ps1` auto-cleans, retry start |
|
|
401
|
-
| Launch failed (process died immediately) | Show last 20 lines of log: `Get-Content -Tail 20 .prizmkit/state/daemon/refactor-daemon.log` |
|
|
402
|
-
| Refactor stuck/blocked | Use `reset-refactor.ps1 <R-XXX> --clean --run` for a fresh retry |
|
|
403
|
-
| All refactors blocked/failed | Show status, suggest recovery: `.\.prizmkit\dev-pipeline\reset-refactor.ps1 <R-XXX> --clean --run .prizmkit/plans/refactor-list.json` |
|
|
404
|
-
| `playwright-cli` not installed | Browser verification skipped for playwright refactors (non-blocking). Suggest: `npm install -g @playwright/cli@latest; playwright-cli install --skills` |
|
|
405
|
-
| `opencli` not installed | Browser verification skipped for opencli refactors (non-blocking). Install opencli for Chrome session-based browser verification |
|
|
406
|
-
| PowerShell execution policy blocks script | Run `Set-ExecutionPolicy -Scope Process Bypass` for the current terminal |
|
|
376
|
+
Read `${SKILL_DIR}/references/configuration.md` for the full error handling table (14 entries).
|
|
407
377
|
|
|
408
378
|
### Integration Notes
|
|
409
379
|
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# Configuration Reference — Refactor Pipeline Launcher (Windows)
|
|
2
|
+
|
|
3
|
+
Environment variable mappings for the refactor launcher.
|
|
4
|
+
|
|
5
|
+
## Environment Variable Mapping
|
|
6
|
+
|
|
7
|
+
Translating user responses to env vars:
|
|
8
|
+
|
|
9
|
+
| Config choice | Environment variable |
|
|
10
|
+
|-----------|---------------------|
|
|
11
|
+
| Verbose: On | `VERBOSE=1` |
|
|
12
|
+
| Verbose: Off | `VERBOSE=0` |
|
|
13
|
+
| Max retries: N | `MAX_RETRIES=N` |
|
|
14
|
+
| Strict behavior: On | `STRICT_BEHAVIOR_CHECK=1` |
|
|
15
|
+
| Strict behavior: Off | `STRICT_BEHAVIOR_CHECK=0` |
|
|
16
|
+
| Critic: On | `ENABLE_CRITIC=true` |
|
|
17
|
+
| Timeout: value | `SESSION_TIMEOUT=<seconds>` |
|
|
18
|
+
| Stop on failure: On | `STOP_ON_FAILURE=1` |
|
|
19
|
+
| Deploy: Yes | `ENABLE_DEPLOY=1` |
|
|
20
|
+
| Effort: value | `PRIZMKIT_EFFORT=<value>` |
|
|
21
|
+
|
|
22
|
+
## Advanced Environment Variables
|
|
23
|
+
|
|
24
|
+
Not exposed in interactive menu, pass via `--env`:
|
|
25
|
+
|
|
26
|
+
| Variable | Default | Purpose |
|
|
27
|
+
|----------|---------|---------|
|
|
28
|
+
| `MODEL` | (none) | AI model override (e.g. `claude-opus-4.6`) |
|
|
29
|
+
| `AUTO_PUSH` | `0` | Auto-push to remote after successful refactor (`1` to enable) |
|
|
30
|
+
| `DEV_BRANCH` | auto-generated | Custom dev branch name (default: `refactor/pipeline-{run_id}`) |
|
|
31
|
+
| `HEARTBEAT_INTERVAL` | `30` | Heartbeat log interval in seconds |
|
|
32
|
+
| `HEARTBEAT_STALE_THRESHOLD` | `600` | Max seconds without heartbeat before marking stale |
|
|
33
|
+
| `LOG_CLEANUP_ENABLED` | `1` | Run periodic log cleanup (`0` to disable) |
|
|
34
|
+
| `LOG_RETENTION_DAYS` | `14` | Delete logs older than N days |
|
|
35
|
+
| `LOG_MAX_TOTAL_MB` | `1024` | Keep total logs under N MB via oldest-first cleanup |
|
|
36
|
+
|
|
37
|
+
## Error Handling
|
|
38
|
+
|
|
39
|
+
| Error | Action |
|
|
40
|
+
|-------|--------|
|
|
41
|
+
| `.prizmkit/plans/refactor-list.json` not found | Tell user to run `refactor-planner` skill first |
|
|
42
|
+
| Circular dependencies in refactor list | Fix dependency graph in `.prizmkit/plans/refactor-list.json` before launching |
|
|
43
|
+
| Test baseline failing | Fix failing tests before starting refactoring -- behavior preservation requires a green baseline |
|
|
44
|
+
| JSON parsing failed | Use the bundled Python validation/status scripts instead of external JSON tools |
|
|
45
|
+
| AI CLI not in PATH | Check Codex (`codex`), Claude (`claude`), or CodeBuddy (`cbc`) installation |
|
|
46
|
+
| Refactor pipeline already running | Show status, ask if user wants to stop and restart |
|
|
47
|
+
| PID file stale (process dead) | `launch-refactor-daemon.ps1` auto-cleans, retry start |
|
|
48
|
+
| Launch failed (process died immediately) | Show last 20 lines of log: `Get-Content -Tail 20 .prizmkit/state/daemon/refactor-daemon.log` |
|
|
49
|
+
| Refactor stuck/blocked | Use `reset-refactor.ps1 <R-XXX> --clean --run` for a fresh retry |
|
|
50
|
+
| All refactors blocked/failed | Show status, suggest recovery: `.\.prizmkit\dev-pipeline\reset-refactor.ps1 <R-XXX> --clean --run .prizmkit/plans/refactor-list.json` |
|
|
51
|
+
| `playwright-cli` not installed | Browser verification skipped for playwright refactors (non-blocking). Suggest: `npm install -g @playwright/cli@latest; playwright-cli install --skills` |
|
|
52
|
+
| `opencli` not installed | Browser verification skipped for opencli refactors (non-blocking). Install opencli for Chrome session-based browser verification |
|
|
53
|
+
| Deploy session failed | Pipeline completed but deploy session exited non-zero. Check `.prizmkit/state/refactor/deploy/<session_id>/logs/session.log`. Retry manually: `/prizmkit-deploy`. |
|
|
54
|
+
| PowerShell execution policy blocks script | Run `Set-ExecutionPolicy -Scope Process Bypass` for the current terminal |
|
|
@@ -246,13 +246,7 @@ Ask: "Based on this analysis, here's how I'd recommend decomposing the refactori
|
|
|
246
246
|
|
|
247
247
|
**Goal**: Split refactoring goals into executable, well-ordered items.
|
|
248
248
|
|
|
249
|
-
Read `${SKILL_DIR}/
|
|
250
|
-
|
|
251
|
-
For each refactoring goal:
|
|
252
|
-
1. Identify atomic refactoring operations
|
|
253
|
-
2. Determine inter-item dependencies (safe renames first, structural changes later)
|
|
254
|
-
3. Assess complexity per item (file count, cross-module scope, test coverage)
|
|
255
|
-
4. Assign behavior preservation strategy per item (read `${SKILL_DIR}/references/behavior-preservation.md`)
|
|
249
|
+
Read `${SKILL_DIR}/references/planning-phases.md` for the full Phase 4-6 procedures — item decomposition patterns, per-item confirmation loop, and completeness review checklist.
|
|
256
250
|
|
|
257
251
|
**CHECKPOINT CP-RP-3**: All items decomposed with dependencies and preservation strategies.
|
|
258
252
|
|
|
@@ -260,29 +254,7 @@ For each refactoring goal:
|
|
|
260
254
|
|
|
261
255
|
**Goal**: Present each item to the user for confirmation, modification, or rejection.
|
|
262
256
|
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
```
|
|
266
|
-
Refactor Item R-001:
|
|
267
|
-
Title: [title]
|
|
268
|
-
Type: [extract/rename/restructure/simplify/decouple/migrate]
|
|
269
|
-
Scope: [files list]
|
|
270
|
-
Priority: [critical/high/medium/low]
|
|
271
|
-
Complexity: [low/medium/high]
|
|
272
|
-
Behavior Preservation: [test-gate/snapshot/manual]
|
|
273
|
-
Acceptance Criteria:
|
|
274
|
-
- [criterion 1]
|
|
275
|
-
- [criterion 2]
|
|
276
|
-
Dependencies: [none / R-002, R-003]
|
|
277
|
-
|
|
278
|
-
Confirm? (Y/modify/skip)
|
|
279
|
-
```
|
|
280
|
-
|
|
281
|
-
- **Y**: Accept item as-is
|
|
282
|
-
- **modify**: User provides changes, update item, re-display for confirmation
|
|
283
|
-
- **skip**: Remove item from the list
|
|
284
|
-
|
|
285
|
-
Continue until all items are confirmed or skipped.
|
|
257
|
+
See `${SKILL_DIR}/references/planning-phases.md` for the display template and confirm/modify/skip loop procedure.
|
|
286
258
|
|
|
287
259
|
**CHECKPOINT CP-RP-4**: All items confirmed by user.
|
|
288
260
|
|
|
@@ -290,28 +262,7 @@ Continue until all items are confirmed or skipped.
|
|
|
290
262
|
|
|
291
263
|
**Goal**: Check the full item set for consistency, gaps, and headless execution readiness.
|
|
292
264
|
|
|
293
|
-
|
|
294
|
-
2. **Behavior preservation check**: Every item must have a declared preservation strategy. Flag any item with `manual` strategy and no test coverage.
|
|
295
|
-
3. **Gap detection**: Are there intermediate steps needed between items? Does item A's output match item B's input assumption?
|
|
296
|
-
4. **Cross-module impact**: Do any items affect modules outside the declared scope?
|
|
297
|
-
5. **Headless Execution Readiness**: The refactor pipeline runs each item through an autonomous AI session with NO human interaction. For each item, verify:
|
|
298
|
-
- **Scope clarity**: Are all affected files explicitly listed? The AI must know exactly where to look.
|
|
299
|
-
- **Refactoring instructions**: Is the description specific enough to execute without ambiguity?
|
|
300
|
-
- ❌ "Clean up the utils module" — what exactly should change?
|
|
301
|
-
- ✅ "Extract validation functions (validateEmail, validatePhone, validateUrl) from src/utils/helpers.ts into src/utils/validation.ts. Update all 12 import sites. Preserve existing function signatures."
|
|
302
|
-
- **Behavior preservation**: Is it clear what tests to run and what behavior must be preserved?
|
|
303
|
-
- **Dependency context**: If item depends on earlier refactors, does the description reference what changed?
|
|
304
|
-
|
|
305
|
-
Present review summary:
|
|
306
|
-
```
|
|
307
|
-
Item | Deps Valid | Preservation | Gaps | Status
|
|
308
|
-
R-001 | OK | test-gate | - | Ready
|
|
309
|
-
R-002 | OK | test-gate | - | Ready
|
|
310
|
-
R-003 | OK | manual | No test coverage| Needs attention
|
|
311
|
-
R-004 | OK | snapshot | - | Ready
|
|
312
|
-
```
|
|
313
|
-
|
|
314
|
-
If issues found, discuss with user and resolve before proceeding.
|
|
265
|
+
See `${SKILL_DIR}/references/planning-phases.md` for the full 5-step review checklist and review summary table format.
|
|
315
266
|
|
|
316
267
|
**CHECKPOINT CP-RP-5**: Completeness review passed, all issues resolved.
|
|
317
268
|
|
|
@@ -376,118 +327,27 @@ Set default critic fields for each refactor item. The user can override per-item
|
|
|
376
327
|
|
|
377
328
|
## Fast Path
|
|
378
329
|
|
|
379
|
-
For simple refactoring with minimal scope
|
|
380
|
-
|
|
381
|
-
### Eligibility Criteria (ALL must apply)
|
|
382
|
-
- 1-2 refactor items only
|
|
383
|
-
- Complexity: `low` or `medium` for all items
|
|
384
|
-
- No cross-module impact (all items within same module)
|
|
385
|
-
- Well-known refactoring pattern (rename, extract method/class, inline)
|
|
386
|
-
- Existing test coverage for target area
|
|
387
|
-
|
|
388
|
-
### Fast Path Workflow
|
|
389
|
-
1. Confirm refactoring scope with user
|
|
390
|
-
2. **User confirmation (mandatory)** — Use `AskUserQuestion` to present interactive selectable options:
|
|
391
|
-
|
|
392
|
-
```
|
|
393
|
-
AskUserQuestion:
|
|
394
|
-
question: "This qualifies for fast-path (simple refactoring). How would you like to proceed?"
|
|
395
|
-
header: "Approach"
|
|
396
|
-
options:
|
|
397
|
-
- label: "Fast-path"
|
|
398
|
-
description: "Skip detailed analysis, draft refactor items directly and add to refactor-list.json"
|
|
399
|
-
- label: "Full workflow"
|
|
400
|
-
description: "Use the complete planning workflow with detailed code analysis"
|
|
401
|
-
- label: "Implement directly"
|
|
402
|
-
description: "Skip the task list entirely and implement the refactoring right now using /prizmkit-plan + /prizmkit-implement"
|
|
403
|
-
```
|
|
404
|
-
|
|
405
|
-
- **Fast-path** → Continue with fast-path workflow below
|
|
406
|
-
- **Full workflow** → Exit fast path, use full workflow from Phase 2
|
|
407
|
-
- **Implement directly** → Invoke `/prizmkit-plan` directly to create spec + plan, then `/prizmkit-implement` to execute. Do NOT add to `.prizmkit/plans/refactor-list.json`
|
|
408
|
-
|
|
409
|
-
**NEVER proceed without explicit user selection via `AskUserQuestion`. Do NOT render options as plain text — the user must be able to click/select.**
|
|
410
|
-
3. Draft items (title + type + scope + description + acceptance_criteria + behavior_preservation + dependencies)
|
|
411
|
-
4. Write draft to `.prizmkit/plans/refactor-list.draft.json`, then call the generate script:
|
|
412
|
-
```powershell
|
|
413
|
-
Invoke-PrizmPython ${SKILL_DIR}/scripts/validate-and-generate-refactor.py generate --input .prizmkit/plans/refactor-list.draft.json --output .prizmkit/plans/refactor-list.json
|
|
414
|
-
```
|
|
415
|
-
5. If valid -> summarize and recommend next step
|
|
416
|
-
6. If invalid -> apply fixes to the draft, re-run generate (max 2 attempts, then escalate to full workflow)
|
|
417
|
-
|
|
418
|
-
### When NOT to Use Fast Path
|
|
419
|
-
- More than 2 refactor items
|
|
420
|
-
- Any item with `high` complexity
|
|
421
|
-
- Cross-module impact
|
|
422
|
-
- Architecture migration patterns (Format C goals)
|
|
423
|
-
- No existing test coverage for target area
|
|
424
|
-
|
|
425
|
-
### Example Fast Path Session
|
|
426
|
-
```
|
|
427
|
-
User: "Rename the auth middleware function from checkAuth to requireAuth everywhere."
|
|
428
|
-
AI: [Detects simple rename, single module]
|
|
429
|
-
AI: [Qualifies for fast path: 1 item, low complexity, no cross-module impact]
|
|
430
|
-
AI: [Uses AskUserQuestion with options: "Fast-path", "Full workflow", "Implement directly"]
|
|
431
|
-
User: [Selects "Fast-path"]
|
|
432
|
-
AI: "Drafting R-001..."
|
|
433
|
-
AI: [Validates immediately]
|
|
434
|
-
AI: "Ready to proceed to dev-pipeline."
|
|
435
|
-
```
|
|
330
|
+
For simple refactoring with minimal scope (1-2 items, low/medium complexity, no cross-module impact, existing test coverage). Read `${SKILL_DIR}/references/fast-path.md` for eligibility criteria, full workflow (including AskUserQuestion format), conditions NOT to use, and an example session.
|
|
436
331
|
|
|
437
332
|
## Browser Verification
|
|
438
333
|
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
- `strategy: test-gate` — Rely on existing test suite. Pipeline runs tests before and after refactoring.
|
|
442
|
-
- `strategy: snapshot` — Compare behavior before/after refactoring using executable snapshots (outputs, API responses, side effects)
|
|
443
|
-
- `strategy: manual` — Require human verification that behavior is preserved
|
|
444
|
-
|
|
445
|
-
For refactors that modify UI code (e.g., component restructuring), the test-gate or snapshot strategy ensures visual appearance is preserved. You can optionally note browser verification needs in your description or acceptance criteria:
|
|
446
|
-
|
|
447
|
-
Example:
|
|
448
|
-
```
|
|
449
|
-
Refactor Title: Extract UserProfile component from AccountSettings
|
|
450
|
-
Type: extract
|
|
451
|
-
Strategy: snapshot
|
|
452
|
-
Acceptance Criteria:
|
|
453
|
-
1. UserProfile component renders identically to inline version (compare snapshots)
|
|
454
|
-
2. All props are correctly forwarded (unit tests pass)
|
|
455
|
-
3. No visual regression (screenshot comparison)
|
|
456
|
-
4. Component is reusable in other views
|
|
457
|
-
```
|
|
458
|
-
|
|
459
|
-
The refactor pipeline AI will use the snapshot strategy to verify external behavior is preserved during refactoring.
|
|
334
|
+
Browser verification is a feature-pipeline capability only. Refactors use `behavior_preservation` strategy instead. Read `${SKILL_DIR}/references/planning-phases.md` for strategy details and UI refactoring examples.
|
|
460
335
|
|
|
461
336
|
---
|
|
462
337
|
|
|
463
338
|
## Refactoring-Specific Features
|
|
464
339
|
|
|
465
340
|
### Behavior Preservation Check
|
|
466
|
-
Every item MUST declare a behavior preservation strategy. Read `${SKILL_DIR}/references/behavior-preservation.md` for strategy details.
|
|
467
|
-
|
|
468
|
-
| Strategy | When to Use |
|
|
469
|
-
|----------|-------------|
|
|
470
|
-
| `test-gate` | Target area has good test coverage. Run full test suite after each change. |
|
|
471
|
-
| `snapshot` | Compare output/state before and after. Useful when tests are insufficient but behavior is observable. |
|
|
472
|
-
| `manual` | Human verification required. Last resort when neither tests nor snapshots are feasible. |
|
|
473
341
|
|
|
474
|
-
|
|
342
|
+
Every item MUST declare a behavior preservation strategy. Read `${SKILL_DIR}/references/behavior-preservation.md` for strategy details. See `${SKILL_DIR}/references/planning-phases.md` for the strategy selection table and manual-strategy flagging rules.
|
|
475
343
|
|
|
476
344
|
### Dependency Ordering
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
2. **Extract/inline** operations (moderate risk, changes module boundaries)
|
|
480
|
-
3. **Structural changes** (higher risk, reorganizes architecture)
|
|
481
|
-
4. **Migrations** last (highest risk, changes patterns/paradigms)
|
|
345
|
+
|
|
346
|
+
Auto-detect inter-item dependencies and enforce safe ordering. Read `${SKILL_DIR}/references/planning-phases.md` for the full dependency ordering rules (safe renames -> extract/inline -> structural -> migrations).
|
|
482
347
|
|
|
483
348
|
### Complexity Assessment
|
|
484
|
-
Assess each item's complexity based on:
|
|
485
|
-
- **File count**: 1-2 files = low, 3-5 files = medium, 6+ files = high
|
|
486
|
-
- **Cross-module scope**: same module = low, 2 modules = medium, 3+ modules = high
|
|
487
|
-
- **Test coverage**: high coverage = reduces complexity, low coverage = increases complexity
|
|
488
|
-
- **Pattern familiarity**: well-known pattern = low, novel restructuring = high
|
|
489
349
|
|
|
490
|
-
|
|
350
|
+
Assess each item's complexity based on file count, cross-module scope, test coverage, and pattern familiarity. Read `${SKILL_DIR}/references/planning-phases.md` for the full complexity assessment criteria and scoring rules.
|
|
491
351
|
|
|
492
352
|
## Next-Step Execution Policy (after planning)
|
|
493
353
|
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
# Fast Path — Refactor Planner
|
|
2
|
+
|
|
3
|
+
For simple refactoring with minimal scope.
|
|
4
|
+
|
|
5
|
+
## Eligibility Criteria (ALL must apply)
|
|
6
|
+
- 1-2 refactor items only
|
|
7
|
+
- Complexity: `low` or `medium` for all items
|
|
8
|
+
- No cross-module impact (all items within same module)
|
|
9
|
+
- Well-known refactoring pattern (rename, extract method/class, inline)
|
|
10
|
+
- Existing test coverage for target area
|
|
11
|
+
|
|
12
|
+
## Fast Path Workflow
|
|
13
|
+
1. Confirm refactoring scope with user
|
|
14
|
+
2. **User confirmation (mandatory)** — Use `AskUserQuestion` to present interactive selectable options:
|
|
15
|
+
|
|
16
|
+
```
|
|
17
|
+
AskUserQuestion:
|
|
18
|
+
question: "This qualifies for fast-path (simple refactoring). How would you like to proceed?"
|
|
19
|
+
header: "Approach"
|
|
20
|
+
options:
|
|
21
|
+
- label: "Fast-path"
|
|
22
|
+
description: "Skip detailed analysis, draft refactor items directly and add to refactor-list.json"
|
|
23
|
+
- label: "Full workflow"
|
|
24
|
+
description: "Use the complete planning workflow with detailed code analysis"
|
|
25
|
+
- label: "Implement directly"
|
|
26
|
+
description: "Skip the task list entirely and implement the refactoring right now using /prizmkit-plan + /prizmkit-implement"
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
- **Fast-path** → Continue with fast-path workflow below
|
|
30
|
+
- **Full workflow** → Exit fast path, use full workflow from Phase 2
|
|
31
|
+
- **Implement directly** → Invoke `/prizmkit-plan` directly to create spec + plan, then `/prizmkit-implement` to execute. Do NOT add to `.prizmkit/plans/refactor-list.json`
|
|
32
|
+
|
|
33
|
+
**NEVER proceed without explicit user selection via `AskUserQuestion`. Do NOT render options as plain text — the user must be able to click/select.**
|
|
34
|
+
3. Draft items (title + type + scope + description + acceptance_criteria + behavior_preservation + dependencies)
|
|
35
|
+
4. Write draft to `.prizmkit/plans/refactor-list.draft.json`, then call the generate script:
|
|
36
|
+
```powershell
|
|
37
|
+
Invoke-PrizmPython ${SKILL_DIR}/scripts/validate-and-generate-refactor.py generate --input .prizmkit/plans/refactor-list.draft.json --output .prizmkit/plans/refactor-list.json
|
|
38
|
+
```
|
|
39
|
+
5. If valid -> summarize and recommend next step
|
|
40
|
+
6. If invalid -> apply fixes to the draft, re-run generate (max 2 attempts, then escalate to full workflow)
|
|
41
|
+
|
|
42
|
+
## When NOT to Use Fast Path
|
|
43
|
+
- More than 2 refactor items
|
|
44
|
+
- Any item with `high` complexity
|
|
45
|
+
- Cross-module impact
|
|
46
|
+
- Architecture migration patterns (Format C goals)
|
|
47
|
+
- No existing test coverage for target area
|
|
48
|
+
|
|
49
|
+
## Example Fast Path Session
|
|
50
|
+
```
|
|
51
|
+
User: "Rename the auth middleware function from checkAuth to requireAuth everywhere."
|
|
52
|
+
AI: [Detects simple rename, single module]
|
|
53
|
+
AI: [Qualifies for fast path: 1 item, low complexity, no cross-module impact]
|
|
54
|
+
AI: [Uses AskUserQuestion with options: "Fast-path", "Full workflow", "Implement directly"]
|
|
55
|
+
User: [Selects "Fast-path"]
|
|
56
|
+
AI: "Drafting R-001..."
|
|
57
|
+
AI: [Validates immediately]
|
|
58
|
+
AI: "Ready to proceed to dev-pipeline."
|
|
59
|
+
```
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
# Planning Phases — Refactor Planner
|
|
2
|
+
|
|
3
|
+
Detailed procedures for Phases 4-6 of the refactor-planner interactive workflow, plus refactoring-specific assessment rules and browser verification guidance.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Phase 4: Item Decomposition Procedure
|
|
8
|
+
|
|
9
|
+
Read `${SKILL_DIR}/assets/planning-guide.md` for decomposition patterns and dependency ordering rules.
|
|
10
|
+
|
|
11
|
+
For each refactoring goal:
|
|
12
|
+
1. Identify atomic refactoring operations
|
|
13
|
+
2. Determine inter-item dependencies (safe renames first, structural changes later)
|
|
14
|
+
3. Assess complexity per item (file count, cross-module scope, test coverage)
|
|
15
|
+
4. Assign behavior preservation strategy per item (read `${SKILL_DIR}/references/behavior-preservation.md`)
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## Phase 5: Per-Item Confirmation Loop
|
|
20
|
+
|
|
21
|
+
For each item, display:
|
|
22
|
+
|
|
23
|
+
```
|
|
24
|
+
Refactor Item R-001:
|
|
25
|
+
Title: [title]
|
|
26
|
+
Type: [extract/rename/restructure/simplify/decouple/migrate]
|
|
27
|
+
Scope: [files list]
|
|
28
|
+
Priority: [critical/high/medium/low]
|
|
29
|
+
Complexity: [low/medium/high]
|
|
30
|
+
Behavior Preservation: [test-gate/snapshot/manual]
|
|
31
|
+
Acceptance Criteria:
|
|
32
|
+
- [criterion 1]
|
|
33
|
+
- [criterion 2]
|
|
34
|
+
Dependencies: [none / R-002, R-003]
|
|
35
|
+
|
|
36
|
+
Confirm? (Y/modify/skip)
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
- **Y**: Accept item as-is
|
|
40
|
+
- **modify**: User provides changes, update item, re-display for confirmation
|
|
41
|
+
- **skip**: Remove item from the list
|
|
42
|
+
|
|
43
|
+
Continue until all items are confirmed or skipped.
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## Phase 6: Completeness Review Checklist
|
|
48
|
+
|
|
49
|
+
1. **Dependency ordering check**: Verify items form a valid DAG (no cycles). Items should be ordered: safe renames -> extract/inline -> structural changes -> migrations
|
|
50
|
+
2. **Behavior preservation check**: Every item must have a declared preservation strategy. Flag any item with `manual` strategy and no test coverage.
|
|
51
|
+
3. **Gap detection**: Are there intermediate steps needed between items? Does item A's output match item B's input assumption?
|
|
52
|
+
4. **Cross-module impact**: Do any items affect modules outside the declared scope?
|
|
53
|
+
5. **Headless Execution Readiness**: The refactor pipeline runs each item through an autonomous AI session with NO human interaction. For each item, verify:
|
|
54
|
+
- **Scope clarity**: Are all affected files explicitly listed? The AI must know exactly where to look.
|
|
55
|
+
- **Refactoring instructions**: Is the description specific enough to execute without ambiguity?
|
|
56
|
+
- ❌ "Clean up the utils module" — what exactly should change?
|
|
57
|
+
- ✅ "Extract validation functions (validateEmail, validatePhone, validateUrl) from src/utils/helpers.ts into src/utils/validation.ts. Update all 12 import sites. Preserve existing function signatures."
|
|
58
|
+
- **Behavior preservation**: Is it clear what tests to run and what behavior must be preserved?
|
|
59
|
+
- **Dependency context**: If item depends on earlier refactors, does the description reference what changed?
|
|
60
|
+
|
|
61
|
+
### Review Summary Table Format
|
|
62
|
+
|
|
63
|
+
Present review summary:
|
|
64
|
+
|
|
65
|
+
```
|
|
66
|
+
Item | Deps Valid | Preservation | Gaps | Status
|
|
67
|
+
R-001 | OK | test-gate | - | Ready
|
|
68
|
+
R-002 | OK | test-gate | - | Ready
|
|
69
|
+
R-003 | OK | manual | No test coverage| Needs attention
|
|
70
|
+
R-004 | OK | snapshot | - | Ready
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
If issues found, discuss with user and resolve before proceeding.
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## Behavior Preservation Check
|
|
78
|
+
|
|
79
|
+
Every item MUST declare a behavior preservation strategy. Read `${SKILL_DIR}/references/behavior-preservation.md` for strategy details.
|
|
80
|
+
|
|
81
|
+
| Strategy | When to Use |
|
|
82
|
+
|----------|-------------|
|
|
83
|
+
| `test-gate` | Target area has good test coverage. Run full test suite after each change. |
|
|
84
|
+
| `snapshot` | Compare output/state before and after. Used when tests are insufficient but behavior is observable. |
|
|
85
|
+
| `manual` | Human verification required. Last resort when neither tests nor snapshots are feasible. |
|
|
86
|
+
|
|
87
|
+
Flag items using `manual` strategy prominently — they carry the highest risk of behavior regression.
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
## Dependency Ordering
|
|
92
|
+
|
|
93
|
+
Auto-detect inter-item dependencies and enforce safe ordering:
|
|
94
|
+
1. **Safe renames** first (lowest risk, no structural change)
|
|
95
|
+
2. **Extract/inline** operations (moderate risk, changes module boundaries)
|
|
96
|
+
3. **Structural changes** (higher risk, reorganizes architecture)
|
|
97
|
+
4. **Migrations** last (highest risk, changes patterns/paradigms)
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
## Complexity Assessment
|
|
102
|
+
|
|
103
|
+
Assess each item's complexity based on:
|
|
104
|
+
- **File count**: 1-2 files = low, 3-5 files = medium, 6+ files = high
|
|
105
|
+
- **Cross-module scope**: same module = low, 2 modules = medium, 3+ modules = high
|
|
106
|
+
- **Test coverage**: high coverage = reduces complexity, low coverage = increases complexity
|
|
107
|
+
- **Pattern familiarity**: well-known pattern = low, novel restructuring = high
|
|
108
|
+
|
|
109
|
+
Take the highest of these individual assessments as the item's complexity.
|
|
110
|
+
|
|
111
|
+
---
|
|
112
|
+
|
|
113
|
+
## Browser Verification
|
|
114
|
+
|
|
115
|
+
**Browser verification is a feature-pipeline capability only.** Refactors use `behavior_preservation` strategy instead to ensure no external behavior changes:
|
|
116
|
+
|
|
117
|
+
- `strategy: test-gate` — Rely on existing test suite. Pipeline runs tests before and after refactoring.
|
|
118
|
+
- `strategy: snapshot` — Compare behavior before/after refactoring using executable snapshots (outputs, API responses, side effects)
|
|
119
|
+
- `strategy: manual` — Require human verification that behavior is preserved
|
|
120
|
+
|
|
121
|
+
For refactors that modify UI code (e.g., component restructuring), the test-gate or snapshot strategy ensures visual appearance is preserved. You can optionally note browser verification needs in your description or acceptance criteria:
|
|
122
|
+
|
|
123
|
+
Example:
|
|
124
|
+
```
|
|
125
|
+
Refactor Title: Extract UserProfile component from AccountSettings
|
|
126
|
+
Type: extract
|
|
127
|
+
Strategy: snapshot
|
|
128
|
+
Acceptance Criteria:
|
|
129
|
+
1. UserProfile component renders identically to inline version (compare snapshots)
|
|
130
|
+
2. All props are correctly forwarded (unit tests pass)
|
|
131
|
+
3. No visual regression (screenshot comparison)
|
|
132
|
+
4. Component is reusable in other views
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
The refactor pipeline AI will use the snapshot strategy to verify external behavior is preserved during refactoring.
|