prizmkit 1.1.42 → 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.
Files changed (88) hide show
  1. package/bundled/VERSION.json +3 -3
  2. package/bundled/adapters/claude/settings-adapter.js +4 -4
  3. package/bundled/adapters/codebuddy/settings-adapter.js +1 -1
  4. package/bundled/agents/prizm-dev-team-critic.md +9 -9
  5. package/bundled/agents/prizm-dev-team-dev.md +13 -13
  6. package/bundled/agents/prizm-dev-team-reviewer.md +2 -2
  7. package/bundled/dev-pipeline/.env.example +6 -6
  8. package/bundled/dev-pipeline/README.md +32 -32
  9. package/bundled/dev-pipeline/assets/prizm-dev-team-integration.md +1 -1
  10. package/bundled/dev-pipeline/launch-bugfix-daemon.sh +5 -2
  11. package/bundled/dev-pipeline/launch-feature-daemon.sh +5 -2
  12. package/bundled/dev-pipeline/launch-refactor-daemon.sh +5 -2
  13. package/bundled/dev-pipeline/lib/common.sh +34 -5
  14. package/bundled/dev-pipeline/reset-bug.sh +7 -5
  15. package/bundled/dev-pipeline/reset-feature.sh +7 -5
  16. package/bundled/dev-pipeline/reset-refactor.sh +7 -5
  17. package/bundled/dev-pipeline/run-bugfix.sh +14 -11
  18. package/bundled/dev-pipeline/run-feature.sh +15 -12
  19. package/bundled/dev-pipeline/run-recovery.sh +6 -3
  20. package/bundled/dev-pipeline/run-refactor.sh +15 -12
  21. package/bundled/dev-pipeline/scripts/generate-bootstrap-prompt.py +14 -14
  22. package/bundled/dev-pipeline/scripts/generate-bugfix-prompt.py +9 -4
  23. package/bundled/dev-pipeline/scripts/generate-recovery-prompt.py +18 -12
  24. package/bundled/dev-pipeline/scripts/generate-refactor-prompt.py +9 -4
  25. package/bundled/dev-pipeline/scripts/parse-stream-progress.py +1 -1
  26. package/bundled/dev-pipeline/scripts/update-bug-status.py +9 -1
  27. package/bundled/dev-pipeline/scripts/update-feature-status.py +13 -1
  28. package/bundled/dev-pipeline/scripts/update-refactor-status.py +9 -1
  29. package/bundled/dev-pipeline/templates/agent-prompts/critic-plan-challenge.md +1 -1
  30. package/bundled/dev-pipeline/templates/bootstrap-prompt.md +2 -2
  31. package/bundled/dev-pipeline/templates/bootstrap-tier1.md +8 -8
  32. package/bundled/dev-pipeline/templates/bootstrap-tier2.md +11 -11
  33. package/bundled/dev-pipeline/templates/bootstrap-tier3.md +9 -9
  34. package/bundled/dev-pipeline/templates/bugfix-bootstrap-prompt.md +6 -6
  35. package/bundled/dev-pipeline/templates/refactor-bootstrap-prompt.md +3 -3
  36. package/bundled/dev-pipeline/templates/sections/phase-commit-full.md +5 -5
  37. package/bundled/dev-pipeline/templates/sections/phase-commit.md +6 -6
  38. package/bundled/dev-pipeline/templates/sections/phase-context-snapshot-agent-suffix.md +1 -1
  39. package/bundled/dev-pipeline/templates/sections/phase-context-snapshot-base.md +1 -1
  40. package/bundled/dev-pipeline/templates/sections/phase-specify-plan-full.md +2 -2
  41. package/bundled/dev-pipeline/templates/sections/phase0-init.md +1 -1
  42. package/bundled/dev-pipeline/tests/test-path-resolution.sh +100 -0
  43. package/bundled/rules/USAGE.md +2 -2
  44. package/bundled/rules/_rules-metadata.json +1 -1
  45. package/bundled/rules/prizm/prizm-commit-workflow.md +1 -1
  46. package/bundled/rules/prizm/prizm-documentation.md +4 -4
  47. package/bundled/rules/prizm/prizm-progressive-loading.md +3 -3
  48. package/bundled/skills/_metadata.json +4 -4
  49. package/bundled/skills/app-planner/SKILL.md +35 -7
  50. package/bundled/skills/bug-fix-workflow/SKILL.md +6 -6
  51. package/bundled/skills/bug-planner/SKILL.md +5 -5
  52. package/bundled/skills/bugfix-pipeline-launcher/SKILL.md +21 -21
  53. package/bundled/skills/feature-pipeline-launcher/SKILL.md +21 -21
  54. package/bundled/skills/feature-planner/SKILL.md +5 -5
  55. package/bundled/skills/feature-workflow/SKILL.md +8 -8
  56. package/bundled/skills/prizm-kit/SKILL.md +10 -10
  57. package/bundled/skills/prizmkit-committer/SKILL.md +2 -2
  58. package/bundled/skills/prizmkit-implement/SKILL.md +2 -2
  59. package/bundled/skills/prizmkit-init/SKILL.md +17 -17
  60. package/bundled/skills/prizmkit-plan/SKILL.md +3 -3
  61. package/bundled/skills/prizmkit-plan/references/verification-checklist.md +2 -2
  62. package/bundled/skills/prizmkit-prizm-docs/SKILL.md +17 -17
  63. package/bundled/skills/prizmkit-prizm-docs/assets/prizm-docs-format.md +45 -45
  64. package/bundled/skills/prizmkit-prizm-docs/references/op-init.md +9 -9
  65. package/bundled/skills/prizmkit-prizm-docs/references/op-rebuild.md +1 -1
  66. package/bundled/skills/prizmkit-prizm-docs/references/op-status.md +2 -2
  67. package/bundled/skills/prizmkit-prizm-docs/references/op-update.md +3 -3
  68. package/bundled/skills/prizmkit-prizm-docs/references/op-validate.md +1 -1
  69. package/bundled/skills/prizmkit-retrospective/SKILL.md +10 -10
  70. package/bundled/skills/prizmkit-retrospective/references/knowledge-injection-steps.md +3 -3
  71. package/bundled/skills/prizmkit-retrospective/references/structural-sync-steps.md +1 -1
  72. package/bundled/skills/recovery-workflow/SKILL.md +15 -15
  73. package/bundled/skills/recovery-workflow/scripts/detect-recovery-state.py +0 -1
  74. package/bundled/skills/refactor-pipeline-launcher/SKILL.md +21 -21
  75. package/bundled/skills/refactor-planner/SKILL.md +6 -6
  76. package/bundled/skills/refactor-workflow/SKILL.md +9 -9
  77. package/bundled/team/prizm-dev-team.json +1 -1
  78. package/bundled/templates/hooks/commit-intent.json +2 -2
  79. package/bundled/templates/hooks/diff-prizm-docs.sh +8 -8
  80. package/bundled/templates/hooks/prizm-pre-commit.sh +4 -4
  81. package/bundled/templates/hooks/validate-prizm-docs.sh +4 -4
  82. package/bundled/templates/project-memory-template.md +4 -4
  83. package/package.json +1 -1
  84. package/src/clean.js +1 -3
  85. package/src/config.js +1 -1
  86. package/src/gitignore-template.js +4 -24
  87. package/src/scaffold.js +12 -11
  88. package/src/upgrade.js +3 -3
@@ -1,12 +1,12 @@
1
1
  #!/bin/sh
2
2
  # PrizmKit: diff-prizm-docs.sh
3
- # Outputs structural differences between .prizm-docs/ and source code.
4
- # Silent (exit 0) if no differences or if .prizm-docs doesn't exist.
3
+ # Outputs structural differences between .prizmkit/prizm-docs/ and source code.
4
+ # Silent (exit 0) if no differences or if .prizmkit/prizm-docs doesn't exist.
5
5
  # POSIX sh only — no arrays, no bashisms.
6
6
 
7
7
  set -e
8
8
 
9
- ROOT_PRIZM=".prizm-docs/root.prizm"
9
+ ROOT_PRIZM=".prizmkit/prizm-docs/root.prizm"
10
10
 
11
11
  # 1. Exit silently if no root.prizm
12
12
  [ -f "$ROOT_PRIZM" ] || exit 0
@@ -85,7 +85,7 @@ echo "$REGISTERED_PATHS" | while IFS= read -r source_path; do
85
85
  [ -z "$source_path" ] && continue
86
86
 
87
87
  # Derive L1 prizm file path
88
- l1_file=".prizm-docs/${source_path}.prizm"
88
+ l1_file=".prizmkit/prizm-docs/${source_path}.prizm"
89
89
 
90
90
  if [ ! -f "$l1_file" ]; then
91
91
  continue
@@ -104,7 +104,7 @@ echo "$REGISTERED_PATHS" | while IFS= read -r source_path; do
104
104
  done
105
105
 
106
106
  # 5. Find orphan docs
107
- find .prizm-docs -name '*.prizm' 2>/dev/null | while IFS= read -r prizm_file; do
107
+ find .prizmkit/prizm-docs -name '*.prizm' 2>/dev/null | while IFS= read -r prizm_file; do
108
108
  _basename=$(basename "$prizm_file")
109
109
  case "$_basename" in
110
110
  root.prizm|changelog.prizm|changelog-archive.prizm)
@@ -112,8 +112,8 @@ find .prizm-docs -name '*.prizm' 2>/dev/null | while IFS= read -r prizm_file; do
112
112
  ;;
113
113
  esac
114
114
 
115
- # Derive source path: remove .prizm-docs/ prefix and .prizm suffix
116
- source_path=$(echo "$prizm_file" | sed 's|^\.prizm-docs/||' | sed 's|\.prizm$||')
115
+ # Derive source path: remove .prizmkit/prizm-docs/ prefix and .prizm suffix
116
+ source_path=$(echo "$prizm_file" | sed 's|^\.prizmkit/prizm-docs/||' | sed 's|\.prizm$||')
117
117
 
118
118
  if [ ! -d "$source_path" ]; then
119
119
  echo "ORPHAN_DOC: $prizm_file | source dir missing"
@@ -131,7 +131,7 @@ find . -mindepth 1 -maxdepth 3 -type d \
131
131
  ! -path '*/target/*' ! -path './target' \
132
132
  ! -path '*/tests/*' ! -path './tests' \
133
133
  ! -path '*/__tests__/*' ! -path './__tests__' \
134
- ! -path '*/.prizm-docs/*' ! -path './.prizm-docs' \
134
+ ! -path '*/.prizmkit/prizm-docs/*' ! -path './.prizmkit/prizm-docs' \
135
135
  ! -path '*/.claude/*' ! -path './.claude' \
136
136
  ! -path '*/.codebuddy/*' ! -path './.codebuddy' \
137
137
  ! -path '*/dev-pipeline/*' ! -path './dev-pipeline' \
@@ -1,13 +1,13 @@
1
1
  #!/bin/sh
2
- # prizm-pre-commit.sh — git pre-commit hook for .prizm-docs validation
2
+ # prizm-pre-commit.sh — git pre-commit hook for .prizmkit/prizm-docs validation
3
3
 
4
4
  PROJECT_ROOT=$(git rev-parse --show-toplevel 2>/dev/null) || exit 0
5
5
 
6
6
  # Only run in prizm projects
7
- [ -f "$PROJECT_ROOT/.prizm-docs/root.prizm" ] || exit 0
7
+ [ -f "$PROJECT_ROOT/.prizmkit/prizm-docs/root.prizm" ] || exit 0
8
8
 
9
9
  VALIDATE_SCRIPT="$PROJECT_ROOT/.prizmkit/scripts/validate-prizm-docs.sh"
10
- [ -f "$VALIDATE_SCRIPT" ] || VALIDATE_SCRIPT="$PROJECT_ROOT/dev-pipeline/scripts/validate-prizm-docs.sh"
10
+ [ -f "$VALIDATE_SCRIPT" ] || VALIDATE_SCRIPT="$PROJECT_ROOT/.prizmkit/dev-pipeline/scripts/validate-prizm-docs.sh"
11
11
 
12
12
  if [ -f "$VALIDATE_SCRIPT" ]; then
13
13
  sh "$VALIDATE_SCRIPT" --staged
@@ -37,7 +37,7 @@ for FILE in $FILES; do
37
37
  *root.prizm) LIMIT=4096 ;;
38
38
  *)
39
39
  DIR=$(dirname "$FILE")
40
- if [ "$DIR" = ".prizm-docs" ]; then
40
+ if [ "$DIR" = ".prizmkit/prizm-docs" ]; then
41
41
  LIMIT=3072
42
42
  else
43
43
  LIMIT=5120
@@ -6,11 +6,11 @@ MODE="${1:---staged}"
6
6
  ERRORS=0
7
7
 
8
8
  # Not a prizm project — exit silently
9
- [ -f ".prizm-docs/root.prizm" ] || exit 0
9
+ [ -f ".prizmkit/prizm-docs/root.prizm" ] || exit 0
10
10
 
11
11
  # Collect files to check
12
12
  if [ "$MODE" = "--all" ]; then
13
- FILES=$(find .prizm-docs -name '*.prizm' 2>/dev/null)
13
+ FILES=$(find .prizmkit/prizm-docs -name '*.prizm' 2>/dev/null)
14
14
  elif [ "$MODE" = "--staged" ]; then
15
15
  FILES=$(git diff --cached --name-only 2>/dev/null | grep '\.prizm$')
16
16
  else
@@ -44,9 +44,9 @@ for FILE in $FILES; do
44
44
  HINT="Consolidate MODULE_INDEX, keep top-5 RULES."
45
45
  ;;
46
46
  *)
47
- # L1 = direct child of .prizm-docs/, L2 = nested deeper
47
+ # L1 = direct child of .prizmkit/prizm-docs/, L2 = nested deeper
48
48
  DIR=$(dirname "$FILE")
49
- if [ "$DIR" = ".prizm-docs" ]; then
49
+ if [ "$DIR" = ".prizmkit/prizm-docs" ]; then
50
50
  LIMIT=3072; LEVEL="L1"
51
51
  HINT="Move implementation details to L2."
52
52
  else
@@ -4,14 +4,14 @@
4
4
  This project uses PrizmKit with the Prizm documentation system for AI-optimized progressive context loading.
5
5
 
6
6
  ### Progressive Loading Protocol
7
- - ON SESSION START: Always read `.prizm-docs/root.prizm` first (L0 — project map)
7
+ - ON SESSION START: Always read `.prizmkit/prizm-docs/root.prizm` first (L0 — project map)
8
8
  - 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
9
- - ON TASK: Read L1 (`.prizm-docs/<module>.prizm`) for relevant modules referenced in MODULE_INDEX or MODULE_GROUPS. If entries have keyword tags (e.g., `[login, jwt, oauth]`), match user's task against tags to prioritize which modules to load.
10
- - ON FILE EDIT: Read L2 (`.prizm-docs/<module>/<submodule>.prizm`) before modifying files. Pay attention to TRAPS and DECISIONS.
9
+ - ON TASK: Read L1 (`.prizmkit/prizm-docs/<module>.prizm`) for relevant modules referenced in MODULE_INDEX or MODULE_GROUPS. If entries have keyword tags (e.g., `[login, jwt, oauth]`), match user's task against tags to prioritize which modules to load.
10
+ - ON FILE EDIT: Read L2 (`.prizmkit/prizm-docs/<module>/<submodule>.prizm`) before modifying files. Pay attention to TRAPS and DECISIONS.
11
11
  - NEVER load all .prizm docs at once. Load only what is needed for the current task.
12
12
 
13
13
  ### Auto-Update Protocol
14
- - BEFORE EVERY COMMIT: Update affected `.prizm-docs/` files
14
+ - BEFORE EVERY COMMIT: Update affected `.prizmkit/prizm-docs/` files
15
15
  - Platform hooks (rules or UserPromptSubmit) will remind you automatically
16
16
  - Use `/prizmkit-committer` for the complete commit workflow
17
17
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "prizmkit",
3
- "version": "1.1.42",
3
+ "version": "1.1.46",
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/clean.js CHANGED
@@ -115,8 +115,6 @@ export async function runClean(directory, options = {}) {
115
115
  const fullRemoveTargets = [
116
116
  '.prizmkit',
117
117
  '.dev-team',
118
- 'dev-pipeline',
119
- '.prizm-docs', // AI-generated project context docs
120
118
  'CODEBUDDY.md',
121
119
  'CLAUDE.md',
122
120
  path.join('.prizmkit', 'plans', 'feature-list.json'), // feature-planner output
@@ -204,7 +202,7 @@ export async function runClean(directory, options = {}) {
204
202
  console.log(chalk.green(` 清理完成:已删除 ${removed} 项。`));
205
203
  }
206
204
  console.log('');
207
- console.log(chalk.gray(' 注意:.prizm-docs/ 为 AI 生成的项目上下文文档,已一并清理。'));
205
+ console.log(chalk.gray(' 注意:.prizmkit/prizm-docs/ 为 AI 生成的项目上下文文档,已一并清理。'));
208
206
  console.log(chalk.gray(' 用户自定义的 agent/skill/rule 文件未受影响。'));
209
207
  console.log('');
210
208
  }
package/src/config.js CHANGED
@@ -6,7 +6,7 @@
6
6
  *
7
7
  * Flow: READ manifest → PROMPT user → COMPUTE DIFF → DISPLAY SUMMARY → EXECUTE
8
8
  *
9
- * Preserves runtime files (.prizm-docs/, dev-pipeline/state/, .prizmkit/specs/).
9
+ * Preserves runtime files (.prizmkit/prizm-docs/, .prizmkit/state/, .prizmkit/specs/).
10
10
  */
11
11
 
12
12
  import chalk from 'chalk';
@@ -9,42 +9,22 @@
9
9
  * @returns {string}
10
10
  */
11
11
  export function generateGitignore(options = {}) {
12
+ void options;
12
13
  const lines = [
13
14
  '# ===========================',
14
15
  '# PrizmKit Runtime Artifacts',
15
16
  '# ===========================',
16
17
  '',
17
- '# PrizmKit 运行时状态(不提交)',
18
- '.prizmkit/state/',
18
+ '# PrizmKit 运行时全部产物(state/、prizm-docs/、.env、logs 等)',
19
+ '.prizmkit/*',
19
20
  '',
20
21
  '# 多 Agent 协作临时工作区',
21
22
  '.dev-team/',
22
23
  '',
23
- '# Prizm 文档(按需决定是否提交)',
24
- '# .prizm-docs/',
25
- '',
26
- '# 规划产物(按需决定是否提交)',
27
- '# .prizmkit/plans/',
28
- '',
29
- ];
30
-
31
- if (options.pipeline) {
32
- lines.push(
33
- '# Dev-Pipeline 运行时状态(已迁移到 .prizmkit/state/)',
34
- '.prizmkit/state/features/',
35
- '.prizmkit/state/bugfix/',
36
- '.prizmkit/state/refactor/',
37
- 'dev-pipeline/logs/',
38
- 'dev-pipeline/*.pid',
39
- '',
40
- );
41
- }
42
-
43
- lines.push(
44
24
  '# Playwright CLI 快照和截图',
45
25
  '.playwright-cli/',
46
26
  '',
47
- );
27
+ ];
48
28
 
49
29
  lines.push(
50
30
  '# ===========================',
package/src/scaffold.js CHANGED
@@ -405,7 +405,7 @@ export async function installSettings(platform, projectRoot, options, dryRun) {
405
405
 
406
406
  // Settings
407
407
  const permissions = [
408
- 'Bash(python3 dev-pipeline/scripts/*)',
408
+ 'Bash(python3 .prizmkit/dev-pipeline/scripts/*)',
409
409
  'Bash(git add *)',
410
410
  'Bash(git commit *)',
411
411
  'Bash(git diff *)',
@@ -420,7 +420,7 @@ export async function installSettings(platform, projectRoot, options, dryRun) {
420
420
  const pipelineEntries = await fs.readdir(pipelineDir);
421
421
  const entryScripts = pipelineEntries.filter(f => /^(run-|launch-|retry-|reset-).*\.sh$/.test(f));
422
422
  for (const script of entryScripts) {
423
- permissions.push(`Bash(./dev-pipeline/${script} *)`);
423
+ permissions.push(`Bash(./.prizmkit/dev-pipeline/${script} *)`);
424
424
  }
425
425
  } catch {
426
426
  // Fallback: if readdir fails, add no pipeline permissions
@@ -437,7 +437,7 @@ export async function installSettings(platform, projectRoot, options, dryRun) {
437
437
  hooks: [
438
438
  {
439
439
  type: 'command',
440
- command: 'test -f .prizm-docs/root.prizm && echo "PrizmKit: .prizm-docs found. Read root.prizm for project context." || echo "PrizmKit: No .prizm-docs found. Run /prizmkit-init to bootstrap."',
440
+ command: 'test -f .prizmkit/prizm-docs/root.prizm && echo "PrizmKit: .prizmkit/prizm-docs found. Read root.prizm for project context." || echo "PrizmKit: No .prizmkit/prizm-docs found. Run /prizmkit-init to bootstrap."',
441
441
  },
442
442
  ],
443
443
  },
@@ -634,14 +634,15 @@ export function resolvePipelineFileList() {
634
634
 
635
635
  /**
636
636
  * 安装 dev-pipeline(纯 Copy 模式)
637
- * Returns an array of installed file relative paths (relative to dev-pipeline/).
637
+ * 安装目标:.prizmkit/dev-pipeline/
638
+ * Returns an array of installed file relative paths (relative to .prizmkit/dev-pipeline/).
638
639
  */
639
640
  export async function installPipeline(projectRoot, dryRun, { forceOverwrite = false } = {}) {
640
641
  const pipelineSource = getPipelineDir();
641
- const pipelineTarget = path.join(projectRoot, 'dev-pipeline');
642
+ const pipelineTarget = path.join(projectRoot, '.prizmkit', 'dev-pipeline');
642
643
 
643
644
  if (dryRun) {
644
- console.log(chalk.gray(` [dry-run] dev-pipeline/`));
645
+ console.log(chalk.gray(` [dry-run] .prizmkit/dev-pipeline/`));
645
646
  return [];
646
647
  }
647
648
 
@@ -666,7 +667,7 @@ export async function installPipeline(projectRoot, dryRun, { forceOverwrite = fa
666
667
  const srcStat = await fs.stat(src);
667
668
 
668
669
  if (await fs.pathExists(tgt) && !forceOverwrite) {
669
- console.log(chalk.yellow(` ⚠ dev-pipeline/${item} 已存在,跳过`));
670
+ console.log(chalk.yellow(` ⚠ .prizmkit/dev-pipeline/${item} 已存在,跳过`));
670
671
  // Still collect existing files for manifest tracking
671
672
  if (srcStat.isDirectory()) {
672
673
  installedFiles.push(...collectFilesRecursive(src, item));
@@ -687,14 +688,14 @@ export async function installPipeline(projectRoot, dryRun, { forceOverwrite = fa
687
688
  }
688
689
  }
689
690
 
690
- console.log(chalk.green(` ✓ dev-pipeline/ (${installedCount} 项)`));
691
+ console.log(chalk.green(` ✓ .prizmkit/dev-pipeline/ (${installedCount} 项)`));
691
692
 
692
- // Copy .env.example to project root if it exists in pipeline source
693
+ // Copy .env.example to .prizmkit/.env.example if it exists in pipeline source
693
694
  const envExampleSrc = path.join(pipelineSource, '.env.example');
694
- const envExampleTgt = path.join(projectRoot, '.env.example');
695
+ const envExampleTgt = path.join(projectRoot, '.prizmkit', '.env.example');
695
696
  if (await fs.pathExists(envExampleSrc) && !await fs.pathExists(envExampleTgt)) {
696
697
  await fs.copy(envExampleSrc, envExampleTgt);
697
- console.log(chalk.green(` ✓ .env.example (pipeline environment configuration)`));
698
+ console.log(chalk.green(` ✓ .prizmkit/.env.example (pipeline environment configuration)`));
698
699
  }
699
700
 
700
701
  return installedFiles;
package/src/upgrade.js CHANGED
@@ -125,13 +125,13 @@ export async function removeRuleFiles(platform, projectRoot, ruleFileNames, dryR
125
125
  */
126
126
  export async function removePipelineFiles(projectRoot, fileList, dryRun) {
127
127
  for (const relPath of fileList) {
128
- const filePath = path.join(projectRoot, 'dev-pipeline', relPath);
128
+ const filePath = path.join(projectRoot, '.prizmkit', 'dev-pipeline', relPath);
129
129
  if (await fs.pathExists(filePath)) {
130
130
  if (dryRun) {
131
- console.log(chalk.gray(` [dry-run] remove dev-pipeline/${relPath}`));
131
+ console.log(chalk.gray(` [dry-run] remove .prizmkit/dev-pipeline/${relPath}`));
132
132
  } else {
133
133
  await fs.remove(filePath);
134
- console.log(chalk.red(` ✗ removed dev-pipeline/${relPath}`));
134
+ console.log(chalk.red(` ✗ removed .prizmkit/dev-pipeline/${relPath}`));
135
135
  }
136
136
  }
137
137
  }