prizmkit 1.0.147 → 1.0.149

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 (28) hide show
  1. package/bundled/VERSION.json +3 -3
  2. package/bundled/adapters/claude/command-adapter.js +3 -2
  3. package/bundled/dev-pipeline/run.sh +54 -1
  4. package/bundled/dev-pipeline/scripts/update-feature-status.py +287 -7
  5. package/bundled/dev-pipeline/templates/feature-list-schema.json +1 -1
  6. package/bundled/dev-pipeline/tests/conftest.py +1 -0
  7. package/bundled/dev-pipeline/tests/test_auto_skip.py +446 -0
  8. package/bundled/skills/_metadata.json +9 -1
  9. package/bundled/skills/app-planner/SKILL.md +110 -28
  10. package/bundled/skills/app-planner/references/architecture-decisions.md +48 -0
  11. package/bundled/skills/app-planner/references/brainstorm-guide.md +101 -0
  12. package/bundled/skills/app-planner/references/browser-interaction.md +34 -0
  13. package/bundled/skills/app-planner/references/error-recovery.md +109 -0
  14. package/bundled/skills/app-planner/references/frontend-design-guide.md +71 -0
  15. package/bundled/skills/app-planner/references/incremental-feature-planning.md +112 -0
  16. package/bundled/skills/app-planner/references/new-app-planning.md +85 -0
  17. package/bundled/skills/app-planner/references/project-conventions.md +93 -0
  18. package/bundled/skills/app-planner/references/red-team-checklist.md +40 -0
  19. package/bundled/skills/app-planner/scripts/validate-and-generate.py +1 -1
  20. package/bundled/skills/prizm-kit/SKILL.md +3 -1
  21. package/bundled/skills/prizmkit-committer/SKILL.md +1 -1
  22. package/bundled/skills/prizmkit-deploy/SKILL.md +112 -0
  23. package/bundled/skills/prizmkit-deploy/assets/deploy-template.md +108 -0
  24. package/bundled/skills/prizmkit-plan/SKILL.md +30 -8
  25. package/bundled/skills/prizmkit-plan/assets/plan-template.md +19 -0
  26. package/bundled/skills/prizmkit-retrospective/SKILL.md +3 -1
  27. package/package.json +1 -1
  28. package/src/scaffold.js +5 -4
@@ -57,6 +57,25 @@
57
57
  |------|--------|------------|
58
58
  | [Risk] | [H/M/L] | [Plan] |
59
59
 
60
+ ## Deployment Considerations
61
+ <!-- Skip this section if the feature does not affect deployment (no new services, infra, or environment changes) -->
62
+ <!-- Only fill when: new external service added, new database/cache introduced, new env vars required, or infra topology changes -->
63
+
64
+ ### New Infrastructure Requirements
65
+ - [Component]: [Deployment target from config deploy_strategy] — [any special config needed]
66
+
67
+ ### New Environment Variables
68
+ | Variable | Required | Description | Example |
69
+ |----------|----------|-------------|---------|
70
+ | [VAR_NAME] | yes/no | [Purpose] | [example value] |
71
+
72
+ ### Deployment Impact
73
+ - [ ] No infrastructure changes needed (skip this section)
74
+ - [ ] New service/container required
75
+ - [ ] New environment variables added
76
+ - [ ] Database migration required in production
77
+ - [ ] CI/CD pipeline update needed
78
+
60
79
  ## Pre-Implementation Gates
61
80
  - [ ] Spec coverage: all user stories mapped to components
62
81
  - [ ] Data model reviewed — existing schema conventions documented and followed
@@ -185,7 +185,9 @@ The pipeline enforces a **docs pass condition**: `.prizm-docs/` must show change
185
185
  | From | To | Condition |
186
186
  |------|----|-----------|
187
187
  | `prizmkit-code-review` | **this skill** | Review passes or work is complete |
188
- | **this skill** | `prizmkit-committer` | Architecture synced, ready to commit |
188
+ | **this skill** | `prizmkit-deploy` (conditional) | Architecture synced; deploy only if new tech stack detected |
189
+ | **this skill** | `prizmkit-committer` (direct) | Architecture synced, no deployment doc update needed |
190
+ | `prizmkit-deploy` | `prizmkit-committer` | Deploy docs updated, ready to commit |
189
191
  | `prizmkit-committer` | — | Committed |
190
192
 
191
193
  ## Output
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "prizmkit",
3
- "version": "1.0.147",
3
+ "version": "1.0.149",
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/scaffold.js CHANGED
@@ -156,8 +156,8 @@ export async function installSkills(platform, skills, projectRoot, dryRun) {
156
156
  if (!frontmatter.name) frontmatter.name = skillName;
157
157
  await fs.writeFile(path.join(targetDir, 'SKILL.md'), buildMarkdown(frontmatter, body));
158
158
 
159
- // 复制 assets/ 和 scripts/
160
- for (const subdir of ['assets', 'scripts']) {
159
+ // 复制 assets/、scripts/ 和 references/
160
+ for (const subdir of ['assets', 'scripts', 'references']) {
161
161
  const srcSubdir = path.join(corePath, subdir);
162
162
  if (await fs.pathExists(srcSubdir)) {
163
163
  await fs.copy(srcSubdir, path.join(targetDir, subdir));
@@ -172,6 +172,7 @@ export async function installSkills(platform, skills, projectRoot, dryRun) {
172
172
 
173
173
  const hasAssets = await fs.pathExists(path.join(corePath, 'assets'));
174
174
  const hasScripts = await fs.pathExists(path.join(corePath, 'scripts'));
175
+ const hasReferences = await fs.pathExists(path.join(corePath, 'references'));
175
176
 
176
177
  // Always write the command file at the flat level (.claude/commands/skillName.md)
177
178
  // so Claude Code shows it as /skillName (not /skillName:skillName).
@@ -184,12 +185,12 @@ export async function installSkills(platform, skills, projectRoot, dryRun) {
184
185
  await fs.ensureDir(commandsDir);
185
186
  await fs.writeFile(path.join(commandsDir, `${skillName}.md`), converted);
186
187
 
187
- if (hasAssets || hasScripts) {
188
+ if (hasAssets || hasScripts || hasReferences) {
188
189
  // Place assets/scripts outside .claude/commands/ to prevent Claude Code
189
190
  // from registering them as slash commands (e.g. /skillName:assets:file).
190
191
  const assetTargetDir = path.join(projectRoot, '.claude', 'command-assets', skillName);
191
192
  await fs.ensureDir(assetTargetDir);
192
- for (const subdir of ['assets', 'scripts']) {
193
+ for (const subdir of ['assets', 'scripts', 'references']) {
193
194
  const srcSubdir = path.join(corePath, subdir);
194
195
  if (await fs.pathExists(srcSubdir)) {
195
196
  await fs.copy(srcSubdir, path.join(assetTargetDir, subdir));