prizmkit 1.0.67 → 1.0.74

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.
Files changed (39) hide show
  1. package/bundled/VERSION.json +3 -3
  2. package/bundled/adapters/claude/settings-adapter.js +29 -0
  3. package/bundled/agents/prizm-dev-team-dev.md +104 -90
  4. package/bundled/agents/prizm-dev-team-reviewer.md +111 -100
  5. package/bundled/dev-pipeline/retry-bug.sh +7 -0
  6. package/bundled/dev-pipeline/retry-feature.sh +7 -0
  7. package/bundled/dev-pipeline/run-bugfix.sh +4 -2
  8. package/bundled/dev-pipeline/run.sh +120 -6
  9. package/bundled/dev-pipeline/scripts/generate-bootstrap-prompt.py +6 -0
  10. package/bundled/dev-pipeline/scripts/init-pipeline.py +9 -0
  11. package/bundled/dev-pipeline/scripts/parse-stream-progress.py +62 -18
  12. package/bundled/dev-pipeline/templates/agent-knowledge-template.md +13 -0
  13. package/bundled/dev-pipeline/templates/bootstrap-tier1.md +54 -27
  14. package/bundled/dev-pipeline/templates/bootstrap-tier2.md +62 -29
  15. package/bundled/dev-pipeline/templates/bootstrap-tier3.md +86 -37
  16. package/bundled/dev-pipeline/templates/bugfix-bootstrap-prompt.md +5 -5
  17. package/bundled/rules/USAGE.md +53 -53
  18. package/bundled/rules/prizm/prizm-commit-workflow.md +1 -1
  19. package/bundled/skills/_metadata.json +6 -6
  20. package/bundled/skills/app-planner/SKILL.md +11 -5
  21. package/bundled/skills/bug-fix-workflow/SKILL.md +2 -2
  22. package/bundled/skills/bug-planner/SKILL.md +5 -5
  23. package/bundled/skills/bugfix-pipeline-launcher/SKILL.md +11 -11
  24. package/bundled/skills/dev-pipeline-launcher/SKILL.md +39 -25
  25. package/bundled/skills/feature-workflow/SKILL.md +13 -13
  26. package/bundled/skills/prizm-kit/SKILL.md +8 -3
  27. package/bundled/skills/prizm-kit/assets/project-memory-template.md +1 -1
  28. package/bundled/skills/prizmkit-code-review/SKILL.md +4 -2
  29. package/bundled/skills/prizmkit-committer/SKILL.md +4 -4
  30. package/bundled/skills/prizmkit-implement/SKILL.md +10 -4
  31. package/bundled/skills/prizmkit-init/SKILL.md +1 -1
  32. package/bundled/skills/prizmkit-prizm-docs/SKILL.md +3 -3
  33. package/bundled/skills/prizmkit-prizm-docs/assets/PRIZM-SPEC.md +6 -6
  34. package/bundled/skills/prizmkit-retrospective/SKILL.md +79 -18
  35. package/bundled/skills/prizmkit-tool-adr-manager/SKILL.md +2 -2
  36. package/bundled/skills/refactor-workflow/SKILL.md +13 -13
  37. package/bundled/team/prizm-dev-team.json +1 -1
  38. package/package.json +1 -1
  39. package/src/upgrade.js +14 -2
@@ -1,16 +1,28 @@
1
1
  ---
2
2
  name: "prizmkit-retrospective"
3
- description: "Incremental .prizm-docs/ maintainer the sole writer during ongoing development. Performs two jobs after code changes: (1) structural sync — update KEY_FILES/INTERFACES/DEPENDENCIES to reflect code changes, and (2) knowledge injection extract TRAPS/RULES/DECISIONS from completed work. Run after code review passes and before committing. For initial doc setup, validation, or migration, use /prizmkit-prizm-docs instead. Trigger on: 'retrospective', 'retro', 'update docs', 'sync docs', 'wrap up', 'done with feature', 'feature complete'. (project)"
3
+ description: "Incremental .prizm-docs/ and project memory maintainer. Performs three jobs: (1) structural sync — update .prizm-docs/ KEY_FILES/INTERFACES/DEPENDENCIES, (2) architecture knowledge — inject TRAPS/RULES into .prizm-docs/, (3) memory sedimentation sediment DECISIONS/interface conventions to platform memory files (CLAUDE.md or CODEBUDDY.md+memory/MEMORY.md). Run after code review passes and before committing. Trigger on: 'retrospective', 'retro', 'update docs', 'sync docs', 'wrap up', 'done with feature', 'feature complete'. (project)"
4
4
  ---
5
5
 
6
6
  # PrizmKit Retrospective
7
7
 
8
- **The sole maintainer of `.prizm-docs/` project memory.** No other skill writes to `.prizm-docs/`. This skill performs two distinct jobs in one pass:
8
+ Maintains two distinct knowledge stores with clear separation of concerns:
9
9
 
10
- 1. **Structural Sync** reflect what changed in code (KEY_FILES, INTERFACES, DEPENDENCIES, file counts)
11
- 2. **Knowledge Injection** — extract what was learned (TRAPS, RULES, DECISIONS)
10
+ | Store | Location | Content | Purpose |
11
+ |-------|----------|---------|---------|
12
+ | **Architecture Index** | `.prizm-docs/` | MODULE, FILES, INTERFACES, DEPENDENCIES, TRAPS, RULES | AI quickly locates code structure, interfaces, and known pitfalls |
13
+ | **Project Memory** | `CLAUDE.md` or `CODEBUDDY.md` + `memory/MEMORY.md` | DECISIONS, interface conventions, project-level rules | Decisions and conventions that influence future development direction |
12
14
 
13
- Both jobs are necessary because `.prizm-docs/` exists to help AI understand the project. Structural accuracy tells AI *what exists*; knowledge tells AI *why it exists and what to watch out for*.
15
+ **Reading guide for other skills**:
16
+ - Need to understand code structure/modules/interfaces? → Read `.prizm-docs/`
17
+ - Need to understand past decisions/conventions/why? → Read platform memory file (`CLAUDE.md` for Claude Code, `CODEBUDDY.md` + `memory/MEMORY.md` for CodeBuddy)
18
+
19
+ **This skill performs three jobs in one pass:**
20
+
21
+ 1. **Structural Sync** — reflect what changed in code → `.prizm-docs/` (KEY_FILES, INTERFACES, DEPENDENCIES, file counts)
22
+ 2. **Architecture Knowledge** — inject TRAPS and module-level RULES → `.prizm-docs/`
23
+ 3. **Memory Sedimentation** — sediment DECISIONS and interface conventions → platform memory files
24
+
25
+ No other skill writes to `.prizm-docs/`. This is the sole writer during ongoing development. For initial doc setup, validation, or migration, use `/prizmkit-prizm-docs` instead.
14
26
 
15
27
  ## When to Use
16
28
 
@@ -69,9 +81,11 @@ git diff --name-status
69
81
 
70
82
  ---
71
83
 
72
- ## Job 2: Knowledge Injection
84
+ ## Job 2: Architecture Knowledge Injection → `.prizm-docs/`
73
85
 
74
- Extract what was learned and inject it into the modules where AI will read it. This job has value **only when real development work was done** not for trivial changes.
86
+ Extract TRAPS and module-level RULES from development work and inject into `.prizm-docs/`. **DECISIONS do NOT go here** they are sedimented to platform memory files in Job 3.
87
+
88
+ `.prizm-docs/` is the **architecture index**: it tells AI *what code exists, how it connects, and what pitfalls to avoid*. It does NOT store *why* a design choice was made — that belongs in project memory.
75
89
 
76
90
  ### When to run Job 2
77
91
 
@@ -85,6 +99,7 @@ Extract what was learned and inject it into the modules where AI will read it. T
85
99
  **2a.** Gather context — read the **actual code that was changed** plus any available artifacts:
86
100
 
87
101
  - `git diff HEAD` — the real source of truth for what happened
102
+ - `.prizmkit/specs/###-feature-name/agents/*.md` — **preferred source** for pre-categorized FINDINGS and INTERFACES_DISCOVERED from all agents. If agent docs exist, prefer them over re-extracting from git diff.
88
103
  - `.prizmkit/specs/###-feature-name/plan.md` — if feature work, read planned vs actual
89
104
  - `.prizmkit/bugfix/<id>/fix-report.md` — if bugfix, read what was discovered
90
105
  - The relevant `.prizm-docs/` L1/L2 docs for affected modules
@@ -99,21 +114,64 @@ Extract what was learned and inject it into the modules where AI will read it. T
99
114
  - Format: `- MUST/NEVER/PREFER: <rule>`
100
115
  - Source: patterns that proved necessary during implementation
101
116
 
102
- **DECISIONS** architecture choices made and why:
103
- - Format: `- [YYYY-MM-DD] <decision and rationale>`
104
- - Format: `- REJECTED: <approach> — <why it failed>`
105
- - Source: alternatives tried, design trade-offs made
106
-
107
- **QUALITY GATE**: Every item must answer: "If a new AI session reads only `.prizm-docs/` and this entry, does it gain actionable understanding that prevents mistakes or accelerates work?" If not, discard.
117
+ **QUALITY GATE**: Every item must answer: "If a new AI session reads only `.prizm-docs/` and this entry, does it gain actionable understanding that prevents mistakes?" If not, discard. DECISIONS (why we chose A over B) belong in project memory, not here.
108
118
 
109
119
  **2c.** Inject into the correct `.prizm-docs/` file:
110
- - Module-level TRAPS/RULES/DECISIONS → the affected L1 or L2 `.prizm` file
120
+ - Module-level TRAPS/RULES → the affected L1 or L2 `.prizm` file
111
121
  - Project-level RULES/PATTERNS → `root.prizm`
112
122
 
113
123
  **RULE**: Only add genuinely new information. Never duplicate existing entries. Never rewrite entire files.
114
124
 
115
125
  ---
116
126
 
127
+ ## Job 3: Memory Sedimentation → Platform Memory Files
128
+
129
+ Sediment DECISIONS and interface conventions to platform memory files. This is where project-level knowledge lives — the "why" behind design choices, cross-module contracts, and conventions that affect future development.
130
+
131
+ **Project Memory** is distinct from `.prizm-docs/`:
132
+ - `.prizm-docs/` = architecture index (structure, interfaces, traps) — "what exists and what to watch out for"
133
+ - Memory files = development decisions and conventions — "why we chose this approach and what contracts to honor"
134
+
135
+ ### When to run Job 3
136
+
137
+ - Feature completion with notable DECISIONS or interface conventions discovered
138
+ - **Skip for**: trivial fixes, config changes, bug fixes with no new conventions
139
+
140
+ ### Sedimentation Rules
141
+
142
+ 1. **Max 3-5 entries per feature**: Only keep DECISIONS and interface conventions that genuinely affect future development
143
+ 2. **Dedup first**: Before appending, read the target memory file(s). If a similar entry already exists, skip or merge-update it
144
+ 3. **TRAPS → `.prizm-docs/` only** (handled by Job 2 above)
145
+ 4. **DECISIONS + key interface conventions → platform memory files**
146
+
147
+ ### Steps
148
+
149
+ **2b-1.** Detect platform from `.prizmkit/config.json` `"platform"` field (or auto-detect from directory structure):
150
+ - `claude` → target: `CLAUDE.md` in project root
151
+ - `codebuddy` → targets: BOTH `CODEBUDDY.md` in project root AND `memory/MEMORY.md` (dual-write required)
152
+
153
+ **2b-2.** Collect sedimentation candidates:
154
+ - From `agents/*.md`: DECISIONS and INTERFACES_DISCOVERED entries
155
+ - From git diff analysis: any project-level conventions established
156
+ - Filter: only entries that answer "Would a new session benefit from knowing this decision/convention?"
157
+
158
+ **2b-3.** Read existing memory file(s) content. Check for duplicates or near-duplicates.
159
+ - For Claude Code: read `CLAUDE.md`
160
+ - For CodeBuddy: read BOTH `CODEBUDDY.md` AND `memory/MEMORY.md`
161
+
162
+ **2b-4.** Append to memory file(s) using this format:
163
+ ```markdown
164
+ ### F-XXX: <feature-title>
165
+ - DECISION: <decision content> — <rationale>
166
+ - INTERFACE: <module.function>: <convention>
167
+ ```
168
+
169
+ **2b-5.** For CodeBuddy platform: write identical content to BOTH `CODEBUDDY.md` AND `memory/MEMORY.md` (dual-write, both must be updated).
170
+
171
+ **2b-6.** If no `agents/` directory exists in the feature directory, still attempt to extract DECISIONS from git diff and plan.md. Skip only if no meaningful decisions were made.
172
+
173
+ ---
174
+
117
175
  ## Final: Changelog + Stage
118
176
 
119
177
  **3a.** Append to `.prizm-docs/changelog.prizm`:
@@ -136,7 +194,7 @@ git add .prizm-docs/
136
194
  In the dev-pipeline, this skill is the **single doc maintenance step** before commit:
137
195
 
138
196
  ```
139
- implement → code-review → retrospective (memory maintenance) → committer (pure commit)
197
+ implement → code-review → retrospective (architecture sync + memory sedimentation) → committer (pure commit)
140
198
  ```
141
199
 
142
200
  The pipeline enforces a **docs pass condition**: `.prizm-docs/` must show changes in the final commit. This skill is the sole satisfier of that requirement.
@@ -146,11 +204,14 @@ The pipeline enforces a **docs pass condition**: `.prizm-docs/` must show change
146
204
  | From | To | Condition |
147
205
  |------|----|-----------|
148
206
  | `prizmkit-code-review` | **this skill** | Review passes or work is complete |
149
- | **this skill** | `prizmkit-committer` | Memory maintained, ready to commit |
207
+ | **this skill** | `prizmkit-committer` | Architecture synced + memory sedimented, ready to commit |
150
208
  | `prizmkit-committer` | — | Committed |
151
209
 
152
210
  ## Output
153
211
 
154
- - `.prizm-docs/*.prizm` — Structurally synced + knowledge enriched
212
+ - `.prizm-docs/*.prizm` — Structurally synced + TRAPS/RULES enriched (architecture index)
155
213
  - `.prizm-docs/changelog.prizm` — Appended entries
156
- - All changes staged via `git add .prizm-docs/`
214
+ - Platform memory file(s) DECISIONS + interface conventions sedimented (project memory)
215
+ - Claude Code: `CLAUDE.md`
216
+ - CodeBuddy: BOTH `CODEBUDDY.md` AND `memory/MEMORY.md`
217
+ - All `.prizm-docs/` changes staged via `git add .prizm-docs/`
@@ -25,7 +25,7 @@ Create a new Architecture Decision Record.
25
25
  - **Consequences**: Identify positive and negative consequences
26
26
  - **Alternatives considered**: Ask user about alternatives and why they were rejected
27
27
  3. Write to `docs/adr/NNNN-title.md` (zero-padded number, kebab-case title)
28
- 4. Also record in `.prizm-docs/` DECISIONS section of relevant module doc
28
+ 4. Record in platform memory file (`CLAUDE.md` for Claude Code, BOTH `CODEBUDDY.md` AND `memory/MEMORY.md` for CodeBuddy) as a DECISION entry
29
29
 
30
30
  ### `/prizmkit-adr`.list
31
31
 
@@ -64,4 +64,4 @@ All internal asset paths MUST use `${SKILL_DIR}` placeholder for cross-IDE compa
64
64
  ## Output
65
65
 
66
66
  - ADR files in `docs/adr/` directory
67
- - Updated DECISIONS section in relevant `.prizm-docs/` module doc
67
+ - Updated DECISIONS in platform memory file (`CLAUDE.md` or `CODEBUDDY.md` + `memory/MEMORY.md`)
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  name: "refactor-workflow"
3
3
  tier: 1
4
- description: "End-to-end refactor workflow: analyze → plan → implement → review → commit. 5-phase behavior-preserving pipeline with mandatory test gates. Use this skill whenever the user wants to restructure, clean up, or optimize code without changing behavior. Trigger on: 'refactor', 'clean up code', 'restructure', 'optimize code structure', 'extract module', '重构', '优化代码结构', '代码重构'. (project)"
4
+ description: "End-to-end refactor workflow: analyze → plan → implement → review → commit. 5-phase behavior-preserving pipeline with mandatory test gates. Use this skill whenever the user wants to restructure, clean up, or optimize code without changing behavior. Trigger on: 'refactor', 'clean up code', 'restructure', 'optimize code structure', 'extract module', 'code refactoring'. (project)"
5
5
  ---
6
6
 
7
7
  # PrizmKit Refactor Workflow
@@ -9,7 +9,7 @@ description: "End-to-end refactor workflow: analyze → plan → implement → r
9
9
  End-to-end orchestration skill for code refactoring and optimization. Chains existing PrizmKit skills into a 5-phase behavior-preserving pipeline with mandatory test gates after each task.
10
10
 
11
11
  ### When to Use
12
- - User says "refactor", "clean up code", "restructure", "extract module", "重构", "优化代码结构"
12
+ - User says "refactor", "clean up code", "restructure", "extract module", "code refactoring", "optimize code structure"
13
13
  - Code has accumulated tech debt that needs structural improvement
14
14
  - Module needs to be split, merged, or reorganized
15
15
  - When behavior must remain unchanged but internal quality needs improvement
@@ -34,9 +34,9 @@ refactor-workflow
34
34
 
35
35
  | Phase | Name | Skill Used | Artifact |
36
36
  |-------|------|-----------|----------|
37
- | 1 | Analyze 代码分析 | Built-in code analysis + code reading | → `refactor-analysis.md` |
38
- | 2 | Plan 重构方案与任务 | `/prizmkit-plan` | → `plan.md` ( Tasks section) |
39
- | 3 | Implement 实现 | `/prizmkit-implement` | (code changes) |
37
+ | 1 | Analyze (Code Analysis) | Built-in code analysis + code reading | → `refactor-analysis.md` |
38
+ | 2 | Plan (Refactor Plan & Tasks) | `/prizmkit-plan` | → `plan.md` (with Tasks section) |
39
+ | 3 | Implement | `/prizmkit-implement` | (code changes) |
40
40
  | 4 | Code Review | `/prizmkit-code-review` | (review report) |
41
41
  | 5 | Commit | `/prizmkit-committer` | git commit |
42
42
 
@@ -56,12 +56,12 @@ Refactor artifacts stored at `.prizmkit/refactor/<refactor-slug>/`:
56
56
 
57
57
  **INPUT**: Target description. Can be:
58
58
  - Module or file path (e.g., "src/auth/")
59
- - Natural language description (e.g., "重构认证模块,提取公共逻辑")
59
+ - Natural language description (e.g., "refactor the auth module, extract shared logic")
60
60
  - Specific refactoring goal (e.g., "extract payment processing into separate service")
61
61
 
62
62
  ---
63
63
 
64
- ## Phase 1: Analyze — 代码分析
64
+ ## Phase 1: Analyze — Code Analysis
65
65
 
66
66
  **Goal**: Assess current code state, identify refactoring targets, establish baseline.
67
67
 
@@ -93,7 +93,7 @@ Refactor artifacts stored at `.prizmkit/refactor/<refactor-slug>/`:
93
93
 
94
94
  ---
95
95
 
96
- ## Phase 2: Plan — 重构方案与任务
96
+ ## Phase 2: Plan — Refactor Plan & Tasks
97
97
 
98
98
  **Goal**: Generate technical refactoring plan that preserves behavior, including task breakdown.
99
99
 
@@ -115,7 +115,7 @@ Refactor artifacts stored at `.prizmkit/refactor/<refactor-slug>/`:
115
115
 
116
116
  ---
117
117
 
118
- ## Phase 3: Implement — 实现
118
+ ## Phase 3: Implement
119
119
 
120
120
  **Goal**: Execute refactoring tasks with mandatory test verification after each task.
121
121
 
@@ -140,7 +140,7 @@ Refactor artifacts stored at `.prizmkit/refactor/<refactor-slug>/`:
140
140
 
141
141
  ---
142
142
 
143
- ## Phase 4: Code Review — 代码审查
143
+ ## Phase 4: Code Review
144
144
 
145
145
  **Goal**: Verify refactoring quality and behavior preservation.
146
146
 
@@ -162,7 +162,7 @@ Refactor artifacts stored at `.prizmkit/refactor/<refactor-slug>/`:
162
162
 
163
163
  ---
164
164
 
165
- ## Phase 5: Commit — 提交
165
+ ## Phase 5: Commit
166
166
 
167
167
  **Goal**: Commit with refactor convention.
168
168
 
@@ -182,7 +182,7 @@ Refactor artifacts stored at `.prizmkit/refactor/<refactor-slug>/`:
182
182
 
183
183
  ---
184
184
 
185
- ## Fast Path — 快速路径
185
+ ## Fast Path
186
186
 
187
187
  For single-file refactoring (rename, extract method, <30 lines changed):
188
188
 
@@ -213,7 +213,7 @@ Skip Phase 2's detailed planning process, but still generate a lightweight `plan
213
213
 
214
214
  ---
215
215
 
216
- ## Resume — 中断恢复
216
+ ## Resume — Interruption Recovery
217
217
 
218
218
  The pipeline supports resuming from the last completed phase by detecting existing artifacts.
219
219
 
@@ -6,7 +6,7 @@
6
6
  "communication": {
7
7
  "protocol": "SendMessage",
8
8
  "routing": "mesh",
9
- "note": "Teammates 间通过 SendMessage 直接通信,关键消息同时通知 Orchestrator"
9
+ "note": "Teammates communicate directly via SendMessage; key messages must also be sent to Orchestrator"
10
10
  },
11
11
  "members": [
12
12
  {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "prizmkit",
3
- "version": "1.0.67",
3
+ "version": "1.0.74",
4
4
  "description": "Create a new PrizmKit-powered project with clean initialization — no framework dev files, just what you need.",
5
5
  "type": "module",
6
6
  "bin": {
package/src/upgrade.js CHANGED
@@ -213,13 +213,25 @@ export async function runUpgrade(directory, options = {}) {
213
213
  }
214
214
 
215
215
  // 3. Resolve new skill list using old manifest's suite + platform (or defaults)
216
- const platform = oldManifest?.platform || 'claude';
216
+ const oldManifestPlatform = oldManifest?.platform || 'claude';
217
217
  const suite = oldManifest?.suite || 'full';
218
218
  const team = oldManifest?.options?.team ?? true;
219
219
  const pipeline = oldManifest?.options?.pipeline ?? true;
220
220
  const rulesPreset = oldManifest?.options?.rules || 'recommended';
221
221
  const aiCli = userConfig.ai_cli || oldManifest?.options?.aiCli || '';
222
222
 
223
+ // Filesystem-based platform detection (overrides manifest if dirs exist)
224
+ const hasClaude = await fs.pathExists(path.join(projectRoot, '.claude', 'commands'))
225
+ || await fs.pathExists(path.join(projectRoot, '.claude', 'agents'));
226
+ const hasCodeBuddy = await fs.pathExists(path.join(projectRoot, '.codebuddy', 'skills'))
227
+ || await fs.pathExists(path.join(projectRoot, '.codebuddy', 'agents'));
228
+
229
+ let platform;
230
+ if (hasClaude && hasCodeBuddy) platform = 'both';
231
+ else if (hasCodeBuddy) platform = 'codebuddy';
232
+ else if (hasClaude) platform = 'claude';
233
+ else platform = oldManifestPlatform; // fallback to manifest
234
+
223
235
  const newSkillList = await resolveSkillList(suite);
224
236
  const agentsDir = getAgentsDir();
225
237
  const newAgentFiles = (await fs.readdir(agentsDir)).filter(f => f.endsWith('.md'));
@@ -255,7 +267,7 @@ export async function runUpgrade(directory, options = {}) {
255
267
  const oldVersion = oldManifest?.version || 'unknown';
256
268
  console.log(chalk.bold(' Upgrade Summary:'));
257
269
  console.log(` Version: ${chalk.gray(oldVersion)} → ${chalk.cyan(pkg.version)}`);
258
- console.log(` Platform: ${platform}`);
270
+ console.log(` Platform: ${platform}${platform !== oldManifestPlatform ? chalk.yellow(` (detected from filesystem, manifest had: ${oldManifestPlatform})`) : ''}`);
259
271
  console.log(` Suite: ${suite}`);
260
272
  console.log('');
261
273