prizmkit 1.1.41 → 1.1.46
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/claude/settings-adapter.js +4 -4
- package/bundled/adapters/codebuddy/settings-adapter.js +1 -1
- package/bundled/agents/prizm-dev-team-critic.md +9 -9
- package/bundled/agents/prizm-dev-team-dev.md +13 -13
- package/bundled/agents/prizm-dev-team-reviewer.md +2 -2
- package/bundled/dev-pipeline/.env.example +6 -6
- package/bundled/dev-pipeline/README.md +32 -32
- package/bundled/dev-pipeline/assets/prizm-dev-team-integration.md +1 -1
- package/bundled/dev-pipeline/launch-bugfix-daemon.sh +5 -2
- package/bundled/dev-pipeline/launch-feature-daemon.sh +5 -2
- package/bundled/dev-pipeline/launch-refactor-daemon.sh +5 -2
- package/bundled/dev-pipeline/lib/common.sh +34 -5
- package/bundled/dev-pipeline/reset-bug.sh +7 -5
- package/bundled/dev-pipeline/reset-feature.sh +7 -5
- package/bundled/dev-pipeline/reset-refactor.sh +7 -5
- package/bundled/dev-pipeline/run-bugfix.sh +14 -11
- package/bundled/dev-pipeline/run-feature.sh +15 -12
- package/bundled/dev-pipeline/run-recovery.sh +6 -3
- package/bundled/dev-pipeline/run-refactor.sh +15 -12
- package/bundled/dev-pipeline/scripts/generate-bootstrap-prompt.py +15 -15
- package/bundled/dev-pipeline/scripts/generate-bugfix-prompt.py +10 -5
- package/bundled/dev-pipeline/scripts/generate-recovery-prompt.py +19 -13
- package/bundled/dev-pipeline/scripts/generate-refactor-prompt.py +10 -5
- package/bundled/dev-pipeline/scripts/parse-stream-progress.py +1 -1
- package/bundled/dev-pipeline/scripts/update-bug-status.py +9 -1
- package/bundled/dev-pipeline/scripts/update-feature-status.py +13 -1
- package/bundled/dev-pipeline/scripts/update-refactor-status.py +9 -1
- package/bundled/dev-pipeline/templates/agent-prompts/critic-plan-challenge.md +1 -1
- package/bundled/dev-pipeline/templates/bootstrap-prompt.md +3 -3
- package/bundled/dev-pipeline/templates/bootstrap-tier1.md +8 -8
- package/bundled/dev-pipeline/templates/bootstrap-tier2.md +11 -11
- package/bundled/dev-pipeline/templates/bootstrap-tier3.md +9 -9
- package/bundled/dev-pipeline/templates/bugfix-bootstrap-prompt.md +7 -7
- package/bundled/dev-pipeline/templates/refactor-bootstrap-prompt.md +4 -4
- package/bundled/dev-pipeline/templates/sections/phase-commit-full.md +5 -5
- package/bundled/dev-pipeline/templates/sections/phase-commit.md +6 -6
- package/bundled/dev-pipeline/templates/sections/phase-context-snapshot-agent-suffix.md +1 -1
- package/bundled/dev-pipeline/templates/sections/phase-context-snapshot-base.md +1 -1
- package/bundled/dev-pipeline/templates/sections/phase-specify-plan-full.md +2 -2
- package/bundled/dev-pipeline/templates/sections/phase0-init.md +1 -1
- package/bundled/dev-pipeline/tests/test-path-resolution.sh +100 -0
- package/bundled/rules/USAGE.md +2 -2
- package/bundled/rules/_rules-metadata.json +1 -1
- package/bundled/rules/prizm/prizm-commit-workflow.md +1 -1
- package/bundled/rules/prizm/prizm-documentation.md +4 -4
- package/bundled/rules/prizm/prizm-progressive-loading.md +3 -3
- package/bundled/skills/_metadata.json +4 -4
- package/bundled/skills/app-planner/SKILL.md +35 -7
- package/bundled/skills/bug-fix-workflow/SKILL.md +6 -6
- package/bundled/skills/bug-planner/SKILL.md +5 -5
- package/bundled/skills/bugfix-pipeline-launcher/SKILL.md +28 -21
- package/bundled/skills/feature-pipeline-launcher/SKILL.md +28 -21
- package/bundled/skills/feature-planner/SKILL.md +5 -5
- package/bundled/skills/feature-workflow/SKILL.md +8 -8
- package/bundled/skills/prizm-kit/SKILL.md +10 -10
- package/bundled/skills/prizmkit-committer/SKILL.md +4 -2
- package/bundled/skills/prizmkit-implement/SKILL.md +2 -2
- package/bundled/skills/prizmkit-init/SKILL.md +17 -17
- package/bundled/skills/prizmkit-plan/SKILL.md +3 -3
- package/bundled/skills/prizmkit-plan/references/verification-checklist.md +2 -2
- package/bundled/skills/prizmkit-prizm-docs/SKILL.md +17 -17
- package/bundled/skills/prizmkit-prizm-docs/assets/prizm-docs-format.md +45 -45
- package/bundled/skills/prizmkit-prizm-docs/references/op-init.md +9 -9
- package/bundled/skills/prizmkit-prizm-docs/references/op-rebuild.md +1 -1
- package/bundled/skills/prizmkit-prizm-docs/references/op-status.md +2 -2
- package/bundled/skills/prizmkit-prizm-docs/references/op-update.md +3 -3
- package/bundled/skills/prizmkit-prizm-docs/references/op-validate.md +1 -1
- package/bundled/skills/prizmkit-retrospective/SKILL.md +10 -10
- package/bundled/skills/prizmkit-retrospective/references/knowledge-injection-steps.md +3 -3
- package/bundled/skills/prizmkit-retrospective/references/structural-sync-steps.md +1 -1
- package/bundled/skills/recovery-workflow/SKILL.md +15 -15
- package/bundled/skills/recovery-workflow/scripts/detect-recovery-state.py +0 -1
- package/bundled/skills/refactor-pipeline-launcher/SKILL.md +28 -21
- package/bundled/skills/refactor-planner/SKILL.md +6 -6
- package/bundled/skills/refactor-workflow/SKILL.md +9 -9
- package/bundled/team/prizm-dev-team.json +1 -1
- package/bundled/templates/hooks/commit-intent.json +2 -2
- package/bundled/templates/hooks/diff-prizm-docs.sh +8 -8
- package/bundled/templates/hooks/prizm-pre-commit.sh +4 -4
- package/bundled/templates/hooks/validate-prizm-docs.sh +4 -4
- package/bundled/templates/project-memory-template.md +4 -4
- package/package.json +1 -1
- package/src/clean.js +1 -3
- package/src/config.js +1 -1
- package/src/gitignore-template.js +4 -24
- package/src/scaffold.js +12 -11
- package/src/upgrade.js +3 -3
|
@@ -384,7 +384,15 @@ def action_update(args, refactor_list_path, state_dir):
|
|
|
384
384
|
|
|
385
385
|
|
|
386
386
|
def _default_project_root():
|
|
387
|
-
|
|
387
|
+
env = os.environ.get("PROJECT_ROOT")
|
|
388
|
+
if env:
|
|
389
|
+
return os.path.abspath(env)
|
|
390
|
+
script_dir = os.path.dirname(os.path.abspath(__file__))
|
|
391
|
+
pipeline_dir = os.path.dirname(script_dir)
|
|
392
|
+
pipeline_parent = os.path.dirname(pipeline_dir)
|
|
393
|
+
if os.path.basename(pipeline_parent) == ".prizmkit":
|
|
394
|
+
return os.path.dirname(pipeline_parent)
|
|
395
|
+
return pipeline_parent
|
|
388
396
|
|
|
389
397
|
|
|
390
398
|
def cleanup_refactor_artifacts(state_dir, refactor_id, project_root=None):
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"Read {{CRITIC_SUBAGENT_PATH}}. For feature {{FEATURE_ID}} (slug: {{FEATURE_SLUG}}):
|
|
2
2
|
**MODE: Plan Challenge**
|
|
3
3
|
1. Read `.prizmkit/specs/{{FEATURE_SLUG}}/context-snapshot.md` FIRST — Section 3 has project context, Section 4 has file manifest.
|
|
4
|
-
2. Read `.prizm-docs/root.prizm` and relevant L1/L2 docs for affected modules.
|
|
4
|
+
2. Read `.prizmkit/prizm-docs/root.prizm` and relevant L1/L2 docs for affected modules.
|
|
5
5
|
3. Read existing source files in the modules this plan touches.
|
|
6
6
|
4. Challenge plan.md against the project's existing architecture, patterns, and style.
|
|
7
7
|
Write `.prizmkit/specs/{{FEATURE_SLUG}}/challenge-report.md` with findings (or 'No significant challenges')."
|
|
@@ -24,7 +24,7 @@ Infer what needs to be done from the feature context above and follow the standa
|
|
|
24
24
|
|
|
25
25
|
### Execution Steps
|
|
26
26
|
|
|
27
|
-
1. **Read context**: Read `.prizm-docs/root.prizm` and relevant L1/L2 docs to understand the codebase.
|
|
27
|
+
1. **Read context**: Read `.prizmkit/prizm-docs/root.prizm` and relevant L1/L2 docs to understand the codebase.
|
|
28
28
|
|
|
29
29
|
2. **Plan**: Run `/prizmkit-plan` with `artifact_dir=.prizmkit/specs/{{FEATURE_SLUG}}/` to produce `spec.md` and `plan.md`.
|
|
30
30
|
|
|
@@ -34,9 +34,9 @@ Infer what needs to be done from the feature context above and follow the standa
|
|
|
34
34
|
|
|
35
35
|
5. **Review**: Run `/prizmkit-code-review` with `artifact_dir=.prizmkit/specs/{{FEATURE_SLUG}}/` to review and auto-fix changes against the spec (internal review-fix loop, max 3 rounds).
|
|
36
36
|
|
|
37
|
-
6. **Retrospective**: Run `/prizmkit-retrospective` to sync `.prizm-docs/` with code changes.
|
|
37
|
+
6. **Retrospective**: Run `/prizmkit-retrospective` to sync `.prizmkit/prizm-docs/` with code changes.
|
|
38
38
|
|
|
39
|
-
7. **Commit**: Run `/prizmkit-committer` to commit all changes. Do NOT push.
|
|
39
|
+
7. **Commit**: Run `/prizmkit-committer --headless` to commit all changes. Do NOT push.
|
|
40
40
|
|
|
41
41
|
### Critical Rules
|
|
42
42
|
|
|
@@ -69,7 +69,7 @@ You are running in **headless non-interactive mode** with a FINITE context windo
|
|
|
69
69
|
### Phase 0: Project Bootstrap
|
|
70
70
|
- Run `/prizmkit-init` (invoke the prizmkit-init skill)
|
|
71
71
|
- Run `python3 {{INIT_SCRIPT_PATH}} --project-root {{PROJECT_ROOT}} --feature-id {{FEATURE_ID}} --feature-slug {{FEATURE_SLUG}}`
|
|
72
|
-
- **CP-0**: Verify `.prizm-docs/root.prizm`, `.prizmkit/config.json` exist
|
|
72
|
+
- **CP-0**: Verify `.prizmkit/prizm-docs/root.prizm`, `.prizmkit/config.json` exist
|
|
73
73
|
{{END_IF_INIT_NEEDED}}
|
|
74
74
|
{{IF_INIT_DONE}}
|
|
75
75
|
### Phase 0: SKIP (already initialized)
|
|
@@ -82,7 +82,7 @@ ls .prizmkit/specs/{{FEATURE_SLUG}}/context-snapshot.md 2>/dev/null && echo "EXI
|
|
|
82
82
|
```
|
|
83
83
|
|
|
84
84
|
If MISSING — build it now:
|
|
85
|
-
1. Read `.prizm-docs/root.prizm` and relevant L1 prizm docs
|
|
85
|
+
1. Read `.prizmkit/prizm-docs/root.prizm` and relevant L1 prizm docs
|
|
86
86
|
2. Detect source code directories: read KEY_FILES and STRUCTURE sections from `root.prizm` to identify where source code lives (e.g. `src/`, `app/`, `lib/`, `cmd/`, `packages/`, or project root). If `root.prizm` is missing, scan the project tree:
|
|
87
87
|
```bash
|
|
88
88
|
find . -maxdepth 2 -type f \( -name "*.js" -o -name "*.ts" -o -name "*.py" -o -name "*.go" -o -name "*.java" -o -name "*.rb" -o -name "*.rs" \) -not -path '*/node_modules/*' -not -path '*/.git/*' -not -path '*/dist/*' -not -path '*/build/*' -not -path '*/vendor/*' | head -30
|
|
@@ -344,22 +344,22 @@ If verification fails, log the failure details but continue to commit. Failures
|
|
|
344
344
|
|
|
345
345
|
### Phase 4: Architecture Sync & Commit (SINGLE COMMIT)
|
|
346
346
|
|
|
347
|
-
**4a.** Run `/prizmkit-retrospective` — maintains `.prizm-docs/` (architecture index):
|
|
348
|
-
1. **Structural sync**: Use `git diff --cached --name-status` to locate changed modules, update KEY_FILES/INTERFACES/DEPENDENCIES/file counts in affected `.prizm-docs/` files
|
|
349
|
-
2. **Architecture knowledge** (feature sessions only): Extract TRAPS/RULES/DECISIONS from completed work into `.prizm-docs/`
|
|
347
|
+
**4a.** Run `/prizmkit-retrospective` — maintains `.prizmkit/prizm-docs/` (architecture index):
|
|
348
|
+
1. **Structural sync**: Use `git diff --cached --name-status` to locate changed modules, update KEY_FILES/INTERFACES/DEPENDENCIES/file counts in affected `.prizmkit/prizm-docs/` files
|
|
349
|
+
2. **Architecture knowledge** (feature sessions only): Extract TRAPS/RULES/DECISIONS from completed work into `.prizmkit/prizm-docs/`
|
|
350
350
|
3. **L2 coverage check**: For any module/sub-module with source files created or significantly modified in this session but no L2 `.prizm` doc — evaluate whether L2 is warranted and create if so. The current session has the best context for accurate KEY_FILES, TRAPS, and DECISIONS.
|
|
351
|
-
4. Stage doc changes: `git add .prizm-docs/`
|
|
351
|
+
4. Stage doc changes: `git add .prizmkit/prizm-docs/`
|
|
352
352
|
⚠️ Do NOT commit here. Only stage.
|
|
353
353
|
|
|
354
354
|
**4b.** Stage all feature code explicitly (NEVER use `git add -A` or `git add .`):
|
|
355
355
|
```bash
|
|
356
356
|
git add <specific-files-created-or-modified>
|
|
357
|
-
git add .prizm-docs/
|
|
357
|
+
git add .prizmkit/prizm-docs/
|
|
358
358
|
```
|
|
359
359
|
|
|
360
360
|
**4c.** Run `/prizmkit-committer` → THE ONLY commit for this feature:
|
|
361
361
|
`feat({{FEATURE_ID}}): {{FEATURE_TITLE}}`
|
|
362
|
-
This single commit includes: feature code + tests + .prizm-docs/ updates. Do NOT push.
|
|
362
|
+
This single commit includes: feature code + tests + .prizmkit/prizm-docs/ updates. Do NOT push.
|
|
363
363
|
- MANDATORY: commit must be done via `/prizmkit-committer` skill. Do NOT run manual `git add`/`git commit` as a substitute.
|
|
364
364
|
- Do NOT run `update-feature-status.py` here — the pipeline runner handles feature-list.json updates automatically after session exit.
|
|
365
365
|
|
|
@@ -80,7 +80,7 @@ If any agent times out:
|
|
|
80
80
|
### Phase 0: Project Bootstrap
|
|
81
81
|
- Run `/prizmkit-init` (invoke the prizmkit-init skill)
|
|
82
82
|
- Run `python3 {{INIT_SCRIPT_PATH}} --project-root {{PROJECT_ROOT}} --feature-id {{FEATURE_ID}} --feature-slug {{FEATURE_SLUG}}`
|
|
83
|
-
- **CP-0**: Verify `.prizm-docs/root.prizm`, `.prizmkit/config.json` exist
|
|
83
|
+
- **CP-0**: Verify `.prizmkit/prizm-docs/root.prizm`, `.prizmkit/config.json` exist
|
|
84
84
|
{{END_IF_INIT_NEEDED}}
|
|
85
85
|
{{IF_INIT_DONE}}
|
|
86
86
|
### Phase 0: SKIP (already initialized)
|
|
@@ -104,7 +104,7 @@ cat .prizmkit/specs/{{FEATURE_SLUG}}/failure-log.md 2>/dev/null || echo "NO_PREV
|
|
|
104
104
|
```
|
|
105
105
|
If failure-log.md exists:
|
|
106
106
|
- Read ROOT_CAUSE and SUGGESTION — adjust your approach accordingly
|
|
107
|
-
- Read DISCOVERED_TRAPS — if any are genuine, inject into .prizm-docs/ during Phase 6 retrospective
|
|
107
|
+
- Read DISCOVERED_TRAPS — if any are genuine, inject into .prizmkit/prizm-docs/ during Phase 6 retrospective
|
|
108
108
|
- Do NOT delete failure-log.md until this session completes all phases and commits successfully
|
|
109
109
|
|
|
110
110
|
```bash
|
|
@@ -112,7 +112,7 @@ ls .prizmkit/specs/{{FEATURE_SLUG}}/context-snapshot.md 2>/dev/null && echo "EXI
|
|
|
112
112
|
```
|
|
113
113
|
|
|
114
114
|
If MISSING — build it now:
|
|
115
|
-
1. Read `.prizm-docs/root.prizm` and relevant L1/L2 prizm docs
|
|
115
|
+
1. Read `.prizmkit/prizm-docs/root.prizm` and relevant L1/L2 prizm docs
|
|
116
116
|
2. Detect source code directories: read KEY_FILES and STRUCTURE sections from `root.prizm` to identify where source code lives (e.g. `src/`, `app/`, `lib/`, `cmd/`, `packages/`, or project root). If `root.prizm` is missing, scan the project tree:
|
|
117
117
|
```bash
|
|
118
118
|
find . -maxdepth 2 -type f \( -name "*.js" -o -name "*.ts" -o -name "*.py" -o -name "*.go" -o -name "*.java" -o -name "*.rb" -o -name "*.rs" \) -not -path '*/node_modules/*' -not -path '*/.git/*' -not -path '*/dist/*' -not -path '*/build/*' -not -path '*/vendor/*' | head -30
|
|
@@ -137,7 +137,7 @@ If MISSING — build it now:
|
|
|
137
137
|
|------|-----------|----------------|
|
|
138
138
|
| `<source-dir>/security/permission-guard.js` | Permission check integration | `checkCommandPermission(userId, cmd)` |
|
|
139
139
|
|
|
140
|
-
### Known TRAPS (from .prizm-docs/)
|
|
140
|
+
### Known TRAPS (from .prizmkit/prizm-docs/)
|
|
141
141
|
- <trap entries extracted from L1/L2 docs>
|
|
142
142
|
|
|
143
143
|
### Phase 2: Plan & Tasks (you, the orchestrator)
|
|
@@ -190,7 +190,7 @@ Prompt:
|
|
|
190
190
|
> "Read {{CRITIC_SUBAGENT_PATH}}. For feature {{FEATURE_ID}} (slug: {{FEATURE_SLUG}}):
|
|
191
191
|
> **MODE: Plan Challenge**
|
|
192
192
|
> 1. Read `.prizmkit/specs/{{FEATURE_SLUG}}/context-snapshot.md` FIRST — Section 3 has project context, Section 4 has file manifest.
|
|
193
|
-
> 2. Read `.prizm-docs/root.prizm` and relevant L1/L2 docs for affected modules.
|
|
193
|
+
> 2. Read `.prizmkit/prizm-docs/root.prizm` and relevant L1/L2 docs for affected modules.
|
|
194
194
|
> 3. Read existing source files in the modules this plan touches.
|
|
195
195
|
> 4. Challenge plan.md against the project's existing architecture, patterns, and style.
|
|
196
196
|
> Write `.prizmkit/specs/{{FEATURE_SLUG}}/challenge-report.md` with findings (or 'No significant challenges')."
|
|
@@ -437,22 +437,22 @@ If verification fails, log the failure details but continue to commit. Failures
|
|
|
437
437
|
|
|
438
438
|
### Phase 6: Architecture Sync & Commit (SINGLE COMMIT)
|
|
439
439
|
|
|
440
|
-
**6a.** Run `/prizmkit-retrospective` — maintains `.prizm-docs/` (architecture index):
|
|
441
|
-
1. **Structural sync**: Use `git diff --cached --name-status` to locate changed modules, update KEY_FILES/INTERFACES/DEPENDENCIES/file counts in affected `.prizm-docs/` files
|
|
442
|
-
2. **Architecture knowledge** (feature sessions only): Extract TRAPS/RULES/DECISIONS from completed work into `.prizm-docs/`
|
|
440
|
+
**6a.** Run `/prizmkit-retrospective` — maintains `.prizmkit/prizm-docs/` (architecture index):
|
|
441
|
+
1. **Structural sync**: Use `git diff --cached --name-status` to locate changed modules, update KEY_FILES/INTERFACES/DEPENDENCIES/file counts in affected `.prizmkit/prizm-docs/` files
|
|
442
|
+
2. **Architecture knowledge** (feature sessions only): Extract TRAPS/RULES/DECISIONS from completed work into `.prizmkit/prizm-docs/`
|
|
443
443
|
3. **L2 coverage check**: For any module/sub-module with source files created or significantly modified in this session but no L2 `.prizm` doc — evaluate whether L2 is warranted and create if so. The current session has the best context for accurate KEY_FILES, TRAPS, and DECISIONS.
|
|
444
|
-
4. Stage doc changes: `git add .prizm-docs/`
|
|
444
|
+
4. Stage doc changes: `git add .prizmkit/prizm-docs/`
|
|
445
445
|
⚠️ Do NOT commit here. Only stage.
|
|
446
446
|
|
|
447
447
|
**6b.** Stage all feature code explicitly (NEVER use `git add -A` or `git add .`):
|
|
448
448
|
```bash
|
|
449
449
|
git add <specific-files-created-or-modified>
|
|
450
|
-
git add .prizm-docs/
|
|
450
|
+
git add .prizmkit/prizm-docs/
|
|
451
451
|
```
|
|
452
452
|
|
|
453
453
|
**6c.** Run `/prizmkit-committer` → THE ONLY commit for this feature:
|
|
454
454
|
`feat({{FEATURE_ID}}): {{FEATURE_TITLE}}`
|
|
455
|
-
This single commit includes: feature code + tests + .prizm-docs/ updates. Do NOT push.
|
|
455
|
+
This single commit includes: feature code + tests + .prizmkit/prizm-docs/ updates. Do NOT push.
|
|
456
456
|
- MANDATORY: commit must be done via `/prizmkit-committer` skill. Do NOT run manual `git add`/`git commit` as a substitute.
|
|
457
457
|
- Do NOT run `update-feature-status.py` here — the pipeline runner handles feature-list.json updates automatically after session exit.
|
|
458
458
|
|
|
@@ -81,7 +81,7 @@ If any agent times out:
|
|
|
81
81
|
### Phase 0: Project Bootstrap
|
|
82
82
|
- Run `/prizmkit-init` (invoke the prizmkit-init skill)
|
|
83
83
|
- Run `python3 {{INIT_SCRIPT_PATH}} --project-root {{PROJECT_ROOT}} --feature-id {{FEATURE_ID}} --feature-slug {{FEATURE_SLUG}}`
|
|
84
|
-
- **CP-0**: Verify `.prizm-docs/root.prizm`, `.prizmkit/config.json` exist
|
|
84
|
+
- **CP-0**: Verify `.prizmkit/prizm-docs/root.prizm`, `.prizmkit/config.json` exist
|
|
85
85
|
{{END_IF_INIT_NEEDED}}
|
|
86
86
|
{{IF_INIT_DONE}}
|
|
87
87
|
### Phase 0: Record Test Baseline & Detect Test Commands
|
|
@@ -134,7 +134,7 @@ If `EXISTING_CODE` is non-empty: your spec/plan/tasks must reflect this existing
|
|
|
134
134
|
|
|
135
135
|
**Step A — Build Context Snapshot** (skip if `context-snapshot.md` already exists):
|
|
136
136
|
|
|
137
|
-
1. Read `.prizm-docs/root.prizm` and relevant L1/L2 prizm docs
|
|
137
|
+
1. Read `.prizmkit/prizm-docs/root.prizm` and relevant L1/L2 prizm docs
|
|
138
138
|
2. Detect source code directories: read KEY_FILES and STRUCTURE sections from `root.prizm` to identify where source code lives (e.g. `src/`, `app/`, `lib/`, `cmd/`, `packages/`, or project root). If `root.prizm` is missing, scan the project tree:
|
|
139
139
|
```bash
|
|
140
140
|
find . -maxdepth 2 -type f \( -name "*.js" -o -name "*.ts" -o -name "*.py" -o -name "*.go" -o -name "*.java" -o -name "*.rb" -o -name "*.rs" \) -not -path '*/node_modules/*' -not -path '*/.git/*' -not -path '*/dist/*' -not -path '*/build/*' -not -path '*/vendor/*' | head -30
|
|
@@ -159,7 +159,7 @@ If `EXISTING_CODE` is non-empty: your spec/plan/tasks must reflect this existing
|
|
|
159
159
|
|------|-----------|----------------|
|
|
160
160
|
| `<source-dir>/security/permission-guard.js` | Permission check integration | `checkCommandPermission(userId, cmd)` |
|
|
161
161
|
|
|
162
|
-
### Known TRAPS (from .prizm-docs/)
|
|
162
|
+
### Known TRAPS (from .prizmkit/prizm-docs/)
|
|
163
163
|
- <trap entries extracted from L1/L2 docs>
|
|
164
164
|
- **Section 5 — Existing Tests**: full content of related test files as code blocks
|
|
165
165
|
4. Confirm: `ls .prizmkit/specs/{{FEATURE_SLUG}}/context-snapshot.md`
|
|
@@ -221,7 +221,7 @@ Prompt:
|
|
|
221
221
|
> "Read {{CRITIC_SUBAGENT_PATH}}. For feature {{FEATURE_ID}} (slug: {{FEATURE_SLUG}}):
|
|
222
222
|
> **MODE: Plan Challenge**
|
|
223
223
|
> 1. Read `.prizmkit/specs/{{FEATURE_SLUG}}/context-snapshot.md` FIRST — Section 3 has project context, Section 4 has file manifest.
|
|
224
|
-
> 2. Read `.prizm-docs/root.prizm` and relevant L1/L2 docs for affected modules.
|
|
224
|
+
> 2. Read `.prizmkit/prizm-docs/root.prizm` and relevant L1/L2 docs for affected modules.
|
|
225
225
|
> 3. Read existing source files in the modules this plan touches.
|
|
226
226
|
> 4. Challenge plan.md against the project's existing architecture, patterns, and style.
|
|
227
227
|
> Write `.prizmkit/specs/{{FEATURE_SLUG}}/challenge-report.md` with findings (or 'No significant challenges')."
|
|
@@ -516,23 +516,23 @@ git log --oneline | grep "{{FEATURE_ID}}" | head -3
|
|
|
516
516
|
- If a commit for `{{FEATURE_ID}}` already exists → **skip 6d** (do NOT run /prizmkit-committer, do NOT run git reset, do NOT stage or unstage anything). Proceed directly to 6e Final verification.
|
|
517
517
|
- If no existing commit → proceed normally with 6b–6d.
|
|
518
518
|
|
|
519
|
-
**6b.** Run `/prizmkit-retrospective` (**before commit**, maintains `.prizm-docs/` architecture index):
|
|
519
|
+
**6b.** Run `/prizmkit-retrospective` (**before commit**, maintains `.prizmkit/prizm-docs/` architecture index):
|
|
520
520
|
- **Structural sync**: update KEY_FILES/INTERFACES/DEPENDENCIES/file counts for changed modules
|
|
521
|
-
- **Architecture knowledge** (feature sessions only): extract TRAPS, RULES, DECISIONS from completed work into `.prizm-docs/`
|
|
521
|
+
- **Architecture knowledge** (feature sessions only): extract TRAPS, RULES, DECISIONS from completed work into `.prizmkit/prizm-docs/`
|
|
522
522
|
- **L2 coverage check**: For any module/sub-module with source files created or significantly modified in this session but no L2 `.prizm` doc — evaluate whether L2 is warranted and create if so. The current session has the best context for accurate KEY_FILES, TRAPS, and DECISIONS.
|
|
523
|
-
- Stage doc changes: `git add .prizm-docs/`
|
|
523
|
+
- Stage doc changes: `git add .prizmkit/prizm-docs/`
|
|
524
524
|
⚠️ Do NOT commit here. Only stage.
|
|
525
525
|
- **For bug-fix sessions**: structural sync (Job 1) by default. Run knowledge injection (Job 2) when the fix causes interface signature changes, dependency additions/removals, observable behavior changes, or reveals new TRAPs
|
|
526
526
|
|
|
527
527
|
**6c.** Stage all feature code explicitly (NEVER use `git add -A` or `git add .`):
|
|
528
528
|
```bash
|
|
529
529
|
git add <specific-files-created-or-modified>
|
|
530
|
-
git add .prizm-docs/
|
|
530
|
+
git add .prizmkit/prizm-docs/
|
|
531
531
|
```
|
|
532
532
|
|
|
533
533
|
**6d.** Run `/prizmkit-committer` → THE ONLY commit for this feature:
|
|
534
534
|
`feat({{FEATURE_ID}}): {{FEATURE_TITLE}}`
|
|
535
|
-
This single commit includes: feature code + tests + .prizm-docs/ updates. Do NOT push.
|
|
535
|
+
This single commit includes: feature code + tests + .prizmkit/prizm-docs/ updates. Do NOT push.
|
|
536
536
|
- MANDATORY: commit must be done via `/prizmkit-committer` skill. Do NOT run manual `git add`/`git commit` as a substitute.
|
|
537
537
|
- Do NOT run `update-feature-status.py` here — the pipeline runner handles feature-list.json updates automatically after session exit.
|
|
538
538
|
|
|
@@ -116,10 +116,10 @@ If the bug is related to UI/frontend, you may use these tools to:
|
|
|
116
116
|
|
|
117
117
|
**Step 1 — Diagnose the bug**:
|
|
118
118
|
|
|
119
|
-
1. Read `.prizm-docs/root.prizm` and relevant L1/L2 docs for affected modules
|
|
119
|
+
1. Read `.prizmkit/prizm-docs/root.prizm` and relevant L1/L2 docs for affected modules
|
|
120
120
|
2. Trace the bug:
|
|
121
121
|
- Classify error type (Runtime / Network / Auth / Data / Logic / Config / External)
|
|
122
|
-
- Check `.prizm-docs/` TRAPS sections for matching known issues
|
|
122
|
+
- Check `.prizmkit/prizm-docs/` TRAPS sections for matching known issues
|
|
123
123
|
- Trace call chain from error source to root cause
|
|
124
124
|
- Identify all affected files and modules
|
|
125
125
|
3. Read the affected source files and related test files
|
|
@@ -130,7 +130,7 @@ Write `.prizmkit/bugfix/{{BUG_ID}}/context-snapshot.md`:
|
|
|
130
130
|
- **Section 1 — Bug Brief**: bug description + acceptance criteria + root cause analysis
|
|
131
131
|
- **Section 2 — Affected Files**: full verbatim content of each affected source file
|
|
132
132
|
- **Section 3 — Existing Tests**: full content of related test files
|
|
133
|
-
- **Section 4 — Prizm Context**: relevant TRAPS, RULES from .prizm-docs/
|
|
133
|
+
- **Section 4 — Prizm Context**: relevant TRAPS, RULES from .prizmkit/prizm-docs/
|
|
134
134
|
|
|
135
135
|
**Step 3 — Plan the fix**:
|
|
136
136
|
|
|
@@ -228,19 +228,19 @@ Run `/prizmkit-code-review` with `artifact_dir=.prizmkit/bugfix/{{BUG_ID}}/`:
|
|
|
228
228
|
- **Full retrospective** (Job 1 + Job 2): Only when the fix causes interface signature changes, dependency additions/removals, observable behavior changes, or reveals new TRAPs.
|
|
229
229
|
|
|
230
230
|
**a.** If a new pitfall was discovered (not previously in TRAPS):
|
|
231
|
-
- Update the affected module's TRAPS section in `.prizm-docs/`
|
|
231
|
+
- Update the affected module's TRAPS section in `.prizmkit/prizm-docs/`
|
|
232
232
|
- Format: `- TRAP: <description> | FIX: <solution> | DATE: YYYY-MM-DD`
|
|
233
233
|
|
|
234
234
|
**b.** Run `/prizmkit-retrospective` following the policy above.
|
|
235
|
-
Stage doc changes: `git add .prizm-docs/`
|
|
235
|
+
Stage doc changes: `git add .prizmkit/prizm-docs/`
|
|
236
236
|
|
|
237
237
|
**c.** Stage all changed files explicitly (NEVER use `git add -A` or `git add .`):
|
|
238
238
|
```bash
|
|
239
239
|
git add <specific-files-modified>
|
|
240
|
-
git add .prizm-docs/
|
|
240
|
+
git add .prizmkit/prizm-docs/
|
|
241
241
|
```
|
|
242
242
|
|
|
243
|
-
**d.** Run `/prizmkit-committer`:
|
|
243
|
+
**d.** Run `/prizmkit-committer --headless`:
|
|
244
244
|
- Commit message prefix: `fix({{FIX_SCOPE}}): {{BUG_TITLE}}`
|
|
245
245
|
- Include both fix code and reproduction test
|
|
246
246
|
- Do NOT push
|
|
@@ -166,7 +166,7 @@ Include browser verification approach in plan.md:
|
|
|
166
166
|
- Spawn Dev agent (Agent tool, subagent_type="prizm-dev-team-dev", run_in_background=false)
|
|
167
167
|
Prompt: "Read {{DEV_SUBAGENT_PATH}}. For refactor {{REFACTOR_ID}} ('{{REFACTOR_TITLE}}'):
|
|
168
168
|
1. Read `.prizmkit/refactor/{{REFACTOR_ID}}/spec.md` and `.prizmkit/refactor/{{REFACTOR_ID}}/plan.md`
|
|
169
|
-
2. Read `.prizm-docs/` for affected modules (TRAPS, RULES, PATTERNS)
|
|
169
|
+
2. Read `.prizmkit/prizm-docs/` for affected modules (TRAPS, RULES, PATTERNS)
|
|
170
170
|
3. Before making any changes, run the existing test suite to establish a green baseline
|
|
171
171
|
4. Run `/prizmkit-implement` with `artifact_dir=.prizmkit/refactor/{{REFACTOR_ID}}/` — this handles the full implementation cycle:
|
|
172
172
|
- Reads plan.md Tasks section
|
|
@@ -233,9 +233,9 @@ Include browser verification approach in plan.md:
|
|
|
233
233
|
|
|
234
234
|
**This phase is executed by YOU (the orchestrator), NOT a subagent.**
|
|
235
235
|
|
|
236
|
-
1. Run `/prizmkit-retrospective` (full sync — Job 1 + Job 2) to update `.prizm-docs/` with structural changes
|
|
236
|
+
1. Run `/prizmkit-retrospective` (full sync — Job 1 + Job 2) to update `.prizmkit/prizm-docs/` with structural changes
|
|
237
237
|
|
|
238
|
-
2. Run `/prizmkit-committer` with:
|
|
238
|
+
2. Run `/prizmkit-committer --headless` with:
|
|
239
239
|
- Commit message: `refactor({{REFACTOR_ID}}): {{REFACTOR_TITLE}}`
|
|
240
240
|
- Include all refactored files and any new/updated tests
|
|
241
241
|
- Do NOT push (user will push manually)
|
|
@@ -271,7 +271,7 @@ Include browser verification approach in plan.md:
|
|
|
271
271
|
```
|
|
272
272
|
Rules: focus on structural changes, new module boundaries, renamed/moved files, changed interfaces. 3-8 notes, each under 120 chars.
|
|
273
273
|
|
|
274
|
-
- **CP-RF-4**: Commit recorded, refactor-report.md written, .prizm-docs/ updated
|
|
274
|
+
- **CP-RF-4**: Commit recorded, refactor-report.md written, .prizmkit/prizm-docs/ updated
|
|
275
275
|
- **Checkpoint update**: set steps `prizmkit-committer` and `refactor-report` to `"completed"` in `{{CHECKPOINT_PATH}}`
|
|
276
276
|
|
|
277
277
|
### Step 3: Report Session Status
|
|
@@ -7,22 +7,22 @@ git log --oneline | grep "{{FEATURE_ID}}" | head -3
|
|
|
7
7
|
- If a commit for `{{FEATURE_ID}}` already exists → **skip d** (do NOT run /prizmkit-committer, do NOT run git reset, do NOT stage or unstage anything). Proceed directly to e Final verification.
|
|
8
8
|
- If no existing commit → proceed normally with b–d.
|
|
9
9
|
|
|
10
|
-
**b.** Run `/prizmkit-retrospective` (**before commit**, maintains `.prizm-docs/` architecture index):
|
|
10
|
+
**b.** Run `/prizmkit-retrospective` (**before commit**, maintains `.prizmkit/prizm-docs/` architecture index):
|
|
11
11
|
1. **Structural sync**: update KEY_FILES/INTERFACES/DEPENDENCIES/file counts for changed modules
|
|
12
|
-
2. **Architecture knowledge**: extract TRAPS, RULES, DECISIONS from completed work into `.prizm-docs/`
|
|
12
|
+
2. **Architecture knowledge**: extract TRAPS, RULES, DECISIONS from completed work into `.prizmkit/prizm-docs/`
|
|
13
13
|
3. **L2 coverage check**: For any module/sub-module with source files created or significantly modified in this session but no L2 `.prizm` doc — evaluate whether L2 is warranted and create if so. The current session has the best context for accurate KEY_FILES, TRAPS, and DECISIONS.
|
|
14
|
-
4. Stage doc changes: `git add .prizm-docs/`
|
|
14
|
+
4. Stage doc changes: `git add .prizmkit/prizm-docs/`
|
|
15
15
|
⚠️ Do NOT commit here. Only stage.
|
|
16
16
|
|
|
17
17
|
**c.** Stage all feature code explicitly (NEVER use `git add -A` or `git add .`):
|
|
18
18
|
```bash
|
|
19
19
|
git add <specific-files-created-or-modified>
|
|
20
|
-
git add .prizm-docs/
|
|
20
|
+
git add .prizmkit/prizm-docs/
|
|
21
21
|
```
|
|
22
22
|
|
|
23
23
|
**d.** Run `/prizmkit-committer` → THE ONLY commit for this feature:
|
|
24
24
|
`feat({{FEATURE_ID}}): {{FEATURE_TITLE}}`
|
|
25
|
-
This single commit includes: feature code + tests + .prizm-docs/ updates. Do NOT push.
|
|
25
|
+
This single commit includes: feature code + tests + .prizmkit/prizm-docs/ updates. Do NOT push.
|
|
26
26
|
- MANDATORY: commit must be done via `/prizmkit-committer` skill. Do NOT run manual `git add`/`git commit` as a substitute.
|
|
27
27
|
- Do NOT run `update-feature-status.py` here — the pipeline runner handles feature-list.json updates automatically after session exit.
|
|
28
28
|
|
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
### Architecture Sync & Commit (SINGLE COMMIT)
|
|
2
2
|
|
|
3
|
-
**a.** Run `/prizmkit-retrospective` — maintains `.prizm-docs/` (architecture index):
|
|
4
|
-
1. **Structural sync**: Use `git diff --cached --name-status` to locate changed modules, update KEY_FILES/INTERFACES/DEPENDENCIES/file counts in affected `.prizm-docs/` files
|
|
5
|
-
2. **Architecture knowledge** (feature sessions only): Extract TRAPS/RULES/DECISIONS from completed work into `.prizm-docs/`
|
|
3
|
+
**a.** Run `/prizmkit-retrospective` — maintains `.prizmkit/prizm-docs/` (architecture index):
|
|
4
|
+
1. **Structural sync**: Use `git diff --cached --name-status` to locate changed modules, update KEY_FILES/INTERFACES/DEPENDENCIES/file counts in affected `.prizmkit/prizm-docs/` files
|
|
5
|
+
2. **Architecture knowledge** (feature sessions only): Extract TRAPS/RULES/DECISIONS from completed work into `.prizmkit/prizm-docs/`
|
|
6
6
|
3. **L2 coverage check**: For any module/sub-module with source files created or significantly modified in this session but no L2 `.prizm` doc — evaluate whether L2 is warranted and create if so. The current session has the best context for accurate KEY_FILES, TRAPS, and DECISIONS.
|
|
7
|
-
4. Stage doc changes: `git add .prizm-docs/`
|
|
7
|
+
4. Stage doc changes: `git add .prizmkit/prizm-docs/`
|
|
8
8
|
⚠️ Do NOT commit here. Only stage.
|
|
9
9
|
|
|
10
10
|
**b.** Stage all feature code explicitly (NEVER use `git add -A` or `git add .`):
|
|
11
11
|
```bash
|
|
12
12
|
git add <specific-files-created-or-modified>
|
|
13
|
-
git add .prizm-docs/
|
|
13
|
+
git add .prizmkit/prizm-docs/
|
|
14
14
|
```
|
|
15
15
|
|
|
16
16
|
**c.** Run `/prizmkit-committer` → THE ONLY commit for this feature:
|
|
17
17
|
`feat({{FEATURE_ID}}): {{FEATURE_TITLE}}`
|
|
18
|
-
This single commit includes: feature code + tests + .prizm-docs/ updates. Do NOT push.
|
|
18
|
+
This single commit includes: feature code + tests + .prizmkit/prizm-docs/ updates. Do NOT push.
|
|
19
19
|
- MANDATORY: commit must be done via `/prizmkit-committer` skill. Do NOT run manual `git add`/`git commit` as a substitute.
|
|
20
20
|
- Do NOT run `update-feature-status.py` here — the pipeline runner handles feature-list.json updates automatically after session exit.
|
|
21
21
|
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
|------|-----------|----------------|
|
|
11
11
|
| `<source-dir>/security/permission-guard.js` | Permission check integration | `checkCommandPermission(userId, cmd)` |
|
|
12
12
|
|
|
13
|
-
### Known TRAPS (from .prizm-docs/)
|
|
13
|
+
### Known TRAPS (from .prizmkit/prizm-docs/)
|
|
14
14
|
- <trap entries extracted from L1/L2 docs>
|
|
15
15
|
|
|
16
16
|
|
|
@@ -5,7 +5,7 @@ ls .prizmkit/specs/{{FEATURE_SLUG}}/context-snapshot.md 2>/dev/null && echo "EXI
|
|
|
5
5
|
```
|
|
6
6
|
|
|
7
7
|
If MISSING — build it now:
|
|
8
|
-
1. Read `.prizm-docs/root.prizm` and relevant L1/L2 prizm docs
|
|
8
|
+
1. Read `.prizmkit/prizm-docs/root.prizm` and relevant L1/L2 prizm docs
|
|
9
9
|
2. Detect source code directories: read KEY_FILES and STRUCTURE sections from `root.prizm` to identify where source code lives (e.g. `src/`, `app/`, `lib/`, `cmd/`, `packages/`, or project root). If `root.prizm` is missing, scan the project tree:
|
|
10
10
|
```bash
|
|
11
11
|
find . -maxdepth 2 -type f \( -name "*.js" -o -name "*.ts" -o -name "*.py" -o -name "*.go" -o -name "*.java" -o -name "*.rb" -o -name "*.rs" \) -not -path '*/node_modules/*' -not -path '*/.git/*' -not -path '*/dist/*' -not -path '*/build/*' -not -path '*/vendor/*' | head -30
|
|
@@ -11,7 +11,7 @@ ls .prizmkit/specs/{{FEATURE_SLUG}}/ 2>/dev/null
|
|
|
11
11
|
|
|
12
12
|
**Step A — Build Context Snapshot** (skip if `context-snapshot.md` already exists):
|
|
13
13
|
|
|
14
|
-
1. Read `.prizm-docs/root.prizm` and relevant L1/L2 prizm docs
|
|
14
|
+
1. Read `.prizmkit/prizm-docs/root.prizm` and relevant L1/L2 prizm docs
|
|
15
15
|
2. Detect source code directories: read KEY_FILES and STRUCTURE sections from `root.prizm` to identify where source code lives (e.g. `src/`, `app/`, `lib/`, `cmd/`, `packages/`, or project root). If `root.prizm` is missing, scan the project tree:
|
|
16
16
|
```bash
|
|
17
17
|
find . -maxdepth 2 -type f \( -name "*.js" -o -name "*.ts" -o -name "*.py" -o -name "*.go" -o -name "*.java" -o -name "*.rb" -o -name "*.rs" \) -not -path '*/node_modules/*' -not -path '*/.git/*' -not -path '*/dist/*' -not -path '*/build/*' -not -path '*/vendor/*' | head -30
|
|
@@ -36,7 +36,7 @@ ls .prizmkit/specs/{{FEATURE_SLUG}}/ 2>/dev/null
|
|
|
36
36
|
|------|-----------|----------------|
|
|
37
37
|
| `<source-dir>/security/permission-guard.js` | Permission check integration | `checkCommandPermission(userId, cmd)` |
|
|
38
38
|
|
|
39
|
-
### Known TRAPS (from .prizm-docs/)
|
|
39
|
+
### Known TRAPS (from .prizmkit/prizm-docs/)
|
|
40
40
|
- <trap entries extracted from L1/L2 docs>
|
|
41
41
|
- **Section 5 — Existing Tests**: full content of related test files as code blocks
|
|
42
42
|
5. Confirm: `ls .prizmkit/specs/{{FEATURE_SLUG}}/context-snapshot.md`
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
### Phase 0: Project Bootstrap
|
|
2
2
|
- Run `/prizmkit-init` (invoke the prizmkit-init skill)
|
|
3
3
|
- Run `python3 {{INIT_SCRIPT_PATH}} --project-root {{PROJECT_ROOT}} --feature-id {{FEATURE_ID}} --feature-slug {{FEATURE_SLUG}}`
|
|
4
|
-
- **CP-0**: Verify `.prizm-docs/root.prizm`, `.prizmkit/config.json` exist
|
|
4
|
+
- **CP-0**: Verify `.prizmkit/prizm-docs/root.prizm`, `.prizmkit/config.json` exist
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
**Checkpoint update**: Update `workflow-checkpoint.json` — set step `prizmkit-init` to `"completed"`.
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# Test path resolution in lib/common.sh across:
|
|
3
|
+
# 1. Framework repo-source layout (<repo>/dev-pipeline/lib/common.sh)
|
|
4
|
+
# 2. User-install layout (<proj>/.prizmkit/dev-pipeline/lib/common.sh)
|
|
5
|
+
# 3. Caller pre-set override (test mocks PRIZMKIT_DIR / PROJECT_ROOT)
|
|
6
|
+
#
|
|
7
|
+
# Run: bash dev-pipeline/tests/test-path-resolution.sh
|
|
8
|
+
set -euo pipefail
|
|
9
|
+
|
|
10
|
+
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
11
|
+
REPO_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
|
|
12
|
+
COMMON_SH="$REPO_ROOT/dev-pipeline/lib/common.sh"
|
|
13
|
+
|
|
14
|
+
RED='\033[0;31m'
|
|
15
|
+
GREEN='\033[0;32m'
|
|
16
|
+
NC='\033[0m'
|
|
17
|
+
|
|
18
|
+
PASS=0
|
|
19
|
+
FAIL=0
|
|
20
|
+
|
|
21
|
+
pass() { echo -e " ${GREEN}PASS${NC} $1"; PASS=$((PASS + 1)); }
|
|
22
|
+
fail() { echo -e " ${RED}FAIL${NC} $1 — $2"; FAIL=$((FAIL + 1)); }
|
|
23
|
+
|
|
24
|
+
# Helper: source common.sh in a clean subshell with given env, echo the three
|
|
25
|
+
# resolved paths as PIPELINE_DIR|PRIZMKIT_DIR|PROJECT_ROOT.
|
|
26
|
+
resolve() {
|
|
27
|
+
env -i HOME="$HOME" PATH="$PATH" "$@" bash -c "
|
|
28
|
+
source '$COMMON_SH' >/dev/null 2>&1
|
|
29
|
+
printf '%s|%s|%s\n' \"\$PIPELINE_DIR\" \"\$PRIZMKIT_DIR\" \"\$PROJECT_ROOT\"
|
|
30
|
+
"
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
echo "================================="
|
|
34
|
+
echo " Path Resolution Tests"
|
|
35
|
+
echo "================================="
|
|
36
|
+
|
|
37
|
+
# --- Test 1: Framework repo-source layout ---
|
|
38
|
+
# common.sh located at <repo>/dev-pipeline/lib/common.sh.
|
|
39
|
+
# PIPELINE_DIR -> <repo>/dev-pipeline
|
|
40
|
+
# PRIZMKIT_DIR -> <repo>/.prizmkit
|
|
41
|
+
# PROJECT_ROOT -> <repo>
|
|
42
|
+
echo "[Test 1] Repo-source layout"
|
|
43
|
+
result=$(resolve)
|
|
44
|
+
IFS='|' read -r pipeline prizmkit project <<<"$result"
|
|
45
|
+
[[ "$pipeline" == "$REPO_ROOT/dev-pipeline" ]] \
|
|
46
|
+
&& pass "PIPELINE_DIR=$pipeline" \
|
|
47
|
+
|| fail "PIPELINE_DIR" "got: $pipeline"
|
|
48
|
+
[[ "$prizmkit" == "$REPO_ROOT/.prizmkit" ]] \
|
|
49
|
+
&& pass "PRIZMKIT_DIR=$prizmkit" \
|
|
50
|
+
|| fail "PRIZMKIT_DIR" "got: $prizmkit"
|
|
51
|
+
[[ "$project" == "$REPO_ROOT" ]] \
|
|
52
|
+
&& pass "PROJECT_ROOT=$project" \
|
|
53
|
+
|| fail "PROJECT_ROOT" "got: $project"
|
|
54
|
+
|
|
55
|
+
# --- Test 2: User-install layout (.prizmkit/dev-pipeline) ---
|
|
56
|
+
# Build a tmp dir resembling: <tmp>/proj/.prizmkit/dev-pipeline/lib/common.sh
|
|
57
|
+
TMP_INSTALL=$(mktemp -d)
|
|
58
|
+
trap 'rm -rf "$TMP_INSTALL"' EXIT
|
|
59
|
+
mkdir -p "$TMP_INSTALL/proj/.prizmkit/dev-pipeline/lib"
|
|
60
|
+
cp "$COMMON_SH" "$TMP_INSTALL/proj/.prizmkit/dev-pipeline/lib/common.sh"
|
|
61
|
+
|
|
62
|
+
echo "[Test 2] User-install layout"
|
|
63
|
+
result=$(env -i HOME="$HOME" PATH="$PATH" bash -c "
|
|
64
|
+
source '$TMP_INSTALL/proj/.prizmkit/dev-pipeline/lib/common.sh' >/dev/null 2>&1
|
|
65
|
+
printf '%s|%s|%s\n' \"\$PIPELINE_DIR\" \"\$PRIZMKIT_DIR\" \"\$PROJECT_ROOT\"
|
|
66
|
+
")
|
|
67
|
+
IFS='|' read -r pipeline prizmkit project <<<"$result"
|
|
68
|
+
[[ "$pipeline" == "$TMP_INSTALL/proj/.prizmkit/dev-pipeline" ]] \
|
|
69
|
+
&& pass "PIPELINE_DIR=$pipeline" \
|
|
70
|
+
|| fail "PIPELINE_DIR" "got: $pipeline"
|
|
71
|
+
[[ "$prizmkit" == "$TMP_INSTALL/proj/.prizmkit" ]] \
|
|
72
|
+
&& pass "PRIZMKIT_DIR=$prizmkit" \
|
|
73
|
+
|| fail "PRIZMKIT_DIR" "got: $prizmkit"
|
|
74
|
+
[[ "$project" == "$TMP_INSTALL/proj" ]] \
|
|
75
|
+
&& pass "PROJECT_ROOT=$project" \
|
|
76
|
+
|| fail "PROJECT_ROOT" "got: $project"
|
|
77
|
+
|
|
78
|
+
# --- Test 3: Caller pre-set override (test mocking) ---
|
|
79
|
+
echo "[Test 3] Caller-supplied env vars override detection"
|
|
80
|
+
result=$(resolve \
|
|
81
|
+
PIPELINE_DIR=/mock/pipeline \
|
|
82
|
+
PRIZMKIT_DIR=/mock/.prizmkit \
|
|
83
|
+
PROJECT_ROOT=/mock/proj)
|
|
84
|
+
IFS='|' read -r pipeline prizmkit project <<<"$result"
|
|
85
|
+
[[ "$pipeline" == "/mock/pipeline" ]] \
|
|
86
|
+
&& pass "PIPELINE_DIR honored override" \
|
|
87
|
+
|| fail "PIPELINE_DIR override" "got: $pipeline"
|
|
88
|
+
[[ "$prizmkit" == "/mock/.prizmkit" ]] \
|
|
89
|
+
&& pass "PRIZMKIT_DIR honored override" \
|
|
90
|
+
|| fail "PRIZMKIT_DIR override" "got: $prizmkit"
|
|
91
|
+
[[ "$project" == "/mock/proj" ]] \
|
|
92
|
+
&& pass "PROJECT_ROOT honored override" \
|
|
93
|
+
|| fail "PROJECT_ROOT override" "got: $project"
|
|
94
|
+
|
|
95
|
+
echo ""
|
|
96
|
+
echo "================================="
|
|
97
|
+
echo " Results: $PASS passed, $FAIL failed"
|
|
98
|
+
echo "================================="
|
|
99
|
+
|
|
100
|
+
[[ $FAIL -eq 0 ]] || exit 1
|
package/bundled/rules/USAGE.md
CHANGED
|
@@ -19,9 +19,9 @@ core/rules/
|
|
|
19
19
|
|
|
20
20
|
| File | Description |
|
|
21
21
|
|------|-------------|
|
|
22
|
-
| `prizm-documentation.md` | Sync `.prizm-docs/` when modifying source files |
|
|
22
|
+
| `prizm-documentation.md` | Sync `.prizmkit/prizm-docs/` when modifying source files |
|
|
23
23
|
| `prizm-commit-workflow.md` | Update docs before commit, follow Conventional Commits |
|
|
24
|
-
| `prizm-progressive-loading.md` | Load `.prizm-docs/` progressively on demand, never load all at once |
|
|
24
|
+
| `prizm-progressive-loading.md` | Load `.prizmkit/prizm-docs/` progressively on demand, never load all at once |
|
|
25
25
|
|
|
26
26
|
### General Rules (`general/`)
|
|
27
27
|
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
"tags": ["prizm", "git"]
|
|
11
11
|
},
|
|
12
12
|
"prizm/prizm-progressive-loading": {
|
|
13
|
-
"description": "Progressive .prizm-docs context loading protocol",
|
|
13
|
+
"description": "Progressive .prizmkit/prizm-docs context loading protocol",
|
|
14
14
|
"tags": ["prizm", "context"]
|
|
15
15
|
},
|
|
16
16
|
"general/prefer-linux-commands": {
|
|
@@ -3,7 +3,7 @@ description: "PrizmKit commit workflow rules"
|
|
|
3
3
|
---
|
|
4
4
|
|
|
5
5
|
Before any git commit in this project:
|
|
6
|
-
1. Run `/prizmkit-retrospective` to sync `.prizm-docs/` (architecture index with TRAPS/RULES/DECISIONS)
|
|
6
|
+
1. Run `/prizmkit-retrospective` to sync `.prizmkit/prizm-docs/` (architecture index with TRAPS/RULES/DECISIONS)
|
|
7
7
|
2. Use Conventional Commits format: type(scope): description
|
|
8
8
|
3. Bug fixes use `fix()` prefix, not `feat()`
|
|
9
9
|
4. Bug fixes run retrospective with structural sync only (Job 1)
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: "PrizmKit .prizm-docs maintenance rules — when/how to update structured AI documentation"
|
|
2
|
+
description: "PrizmKit .prizmkit/prizm-docs maintenance rules — when/how to update structured AI documentation"
|
|
3
3
|
globs:
|
|
4
4
|
- "**/*.ts"
|
|
5
5
|
- "**/*.tsx"
|
|
@@ -11,11 +11,11 @@ globs:
|
|
|
11
11
|
- "**/*.java"
|
|
12
12
|
---
|
|
13
13
|
|
|
14
|
-
WHEN TO UPDATE .prizm-docs/:
|
|
15
|
-
- Feature development (new interface, new module, new behavior) → UPDATE .prizm-docs/
|
|
14
|
+
WHEN TO UPDATE .prizmkit/prizm-docs/:
|
|
15
|
+
- Feature development (new interface, new module, new behavior) → UPDATE .prizmkit/prizm-docs/
|
|
16
16
|
- Bug fix (fixing broken logic, no structural change) → SKIP, do NOT update
|
|
17
17
|
- Rationale: bugs are incomplete features. Recording bug details causes doc bloat with no AI value.
|
|
18
|
-
- Before modifying any source file, read `.prizm-docs/root.prizm` if it exists to understand project structure.
|
|
18
|
+
- Before modifying any source file, read `.prizmkit/prizm-docs/root.prizm` if it exists to understand project structure.
|
|
19
19
|
|
|
20
20
|
FORMAT RULES (enforced by pre-commit hook — violations block commit):
|
|
21
21
|
- ALL CAPS section headers: MODULE:, FILES:, RESPONSIBILITY:, etc.
|
|
@@ -3,10 +3,10 @@ description: "PrizmKit progressive context loading protocol"
|
|
|
3
3
|
---
|
|
4
4
|
|
|
5
5
|
This project uses PrizmKit's progressive loading protocol:
|
|
6
|
-
- ON SESSION START: Read `.prizm-docs/root.prizm` (L0 — project map)
|
|
6
|
+
- ON SESSION START: Read `.prizmkit/prizm-docs/root.prizm` (L0 — project map)
|
|
7
7
|
- ON RESUME (feature/bugfix directory has session-summary.md): Read session-summary.md first for prior context, then load only L1/L2 for modules mentioned in it
|
|
8
|
-
- ON TASK: Read L1 (`.prizm-docs/<module>.prizm`) for relevant modules. If MODULE_INDEX entries have keyword tags (e.g., `[login, jwt, oauth]`), match user's task description against tags to prioritize which modules' L1 to load first. If root.prizm uses MODULE_GROUPS, identify the relevant domain first, then load L1 only for modules in that domain.
|
|
9
|
-
- ON FILE EDIT: Read L2 (`.prizm-docs/<module>/<submodule>.prizm`) before modifying
|
|
8
|
+
- ON TASK: Read L1 (`.prizmkit/prizm-docs/<module>.prizm`) for relevant modules. If MODULE_INDEX entries have keyword tags (e.g., `[login, jwt, oauth]`), match user's task description against tags to prioritize which modules' L1 to load first. If root.prizm uses MODULE_GROUPS, identify the relevant domain first, then load L1 only for modules in that domain.
|
|
9
|
+
- ON FILE EDIT: Read L2 (`.prizmkit/prizm-docs/<module>/<submodule>.prizm`) before modifying
|
|
10
10
|
- NEVER load all .prizm docs at once
|
|
11
11
|
- Arrow notation (->) in .prizm files indicates load pointers
|
|
12
12
|
- DECISIONS and CHANGELOG in .prizm files are append-only
|