prizmkit 1.0.25 → 1.0.26

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.
@@ -1,5 +1,5 @@
1
1
  {
2
- "frameworkVersion": "1.0.25",
3
- "bundledAt": "2026-03-15T17:27:01.825Z",
4
- "bundledFrom": "9c199f7"
2
+ "frameworkVersion": "1.0.26",
3
+ "bundledAt": "2026-03-15T17:57:13.772Z",
4
+ "bundledFrom": "896326f"
5
5
  }
@@ -64,15 +64,14 @@ export function convertSkillToCommand(skillContent, skillName) {
64
64
  description: desc,
65
65
  };
66
66
 
67
- // Rewrite ${SKILL_DIR} references to use relative path from .claude/commands/<name>/
67
+ // Rewrite ${SKILL_DIR} references to .claude/command-assets/<name>
68
+ // Assets are stored outside .claude/commands/ to prevent Claude Code from
69
+ // registering asset .md files as slash commands (e.g. /skillName:assets:file).
68
70
  let convertedBody = body;
69
71
 
70
- // Replace ${SKILL_DIR} with a Claude Code compatible path
71
- // In Claude Code, commands in a directory can reference sibling files
72
- // Use project-root-relative paths as fallback
73
72
  convertedBody = convertedBody.replace(
74
73
  /\$\{SKILL_DIR\}/g,
75
- `.claude/commands/${skillName}`
74
+ `.claude/command-assets/${skillName}`
76
75
  );
77
76
 
78
77
  // Replace "invoke the X skill" or "prizmkit.X" patterns with /X slash command
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.0.25",
2
+ "version": "1.0.26",
3
3
  "skills": {
4
4
  "prizm-kit": {
5
5
  "description": "Full-lifecycle dev toolkit. Covers spec-driven development, Prizm context docs, code quality, debugging, deployment, and knowledge management.",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "prizmkit",
3
- "version": "1.0.25",
3
+ "version": "1.0.26",
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
@@ -177,7 +177,9 @@ async function installSkills(platform, skills, projectRoot, dryRun) {
177
177
  await fs.writeFile(path.join(commandsDir, `${skillName}.md`), converted);
178
178
 
179
179
  if (hasAssets || hasScripts) {
180
- const assetTargetDir = path.join(commandsDir, skillName);
180
+ // Place assets/scripts outside .claude/commands/ to prevent Claude Code
181
+ // from registering them as slash commands (e.g. /skillName:assets:file).
182
+ const assetTargetDir = path.join(projectRoot, '.claude', 'command-assets', skillName);
181
183
  await fs.ensureDir(assetTargetDir);
182
184
  for (const subdir of ['assets', 'scripts']) {
183
185
  const srcSubdir = path.join(corePath, subdir);
@@ -708,11 +710,24 @@ export async function scaffold(config) {
708
710
  }
709
711
  }
710
712
 
711
- // 10. Git pre-commit hook
713
+ // 10. Clean up stray .codebuddy/ directory left by third-party tools (e.g. npx skills)
714
+ // when installing for Claude Code only. CodeBuddy files should never appear in a
715
+ // claude-only install.
716
+ if (!dryRun && !platforms.includes('codebuddy')) {
717
+ const strayCbDir = path.join(projectRoot, '.codebuddy');
718
+ if (await fs.pathExists(strayCbDir)) {
719
+ const entries = await fs.readdir(strayCbDir);
720
+ if (entries.length === 0) {
721
+ await fs.remove(strayCbDir);
722
+ }
723
+ }
724
+ }
725
+
726
+ // 11. Git pre-commit hook
712
727
  console.log(chalk.blue(' Git Hook:'));
713
728
  await installGitHook(projectRoot, dryRun);
714
729
 
715
- // 11. PrizmKit scripts (always installed)
730
+ // 12. PrizmKit scripts (always installed)
716
731
  console.log(chalk.blue(' PrizmKit 脚本:'));
717
732
  await installPrizmkitScripts(projectRoot, dryRun);
718
733