@axiomatic-labs/claudeflow 2.14.4 → 2.14.6

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 (2) hide show
  1. package/lib/install.js +52 -0
  2. package/package.json +1 -1
package/lib/install.js CHANGED
@@ -167,6 +167,17 @@ async function run() {
167
167
  if (fs.existsSync(srcTemplates)) {
168
168
  copyDirSync(srcTemplates, dstTemplates);
169
169
  }
170
+
171
+ // Copy v2 orchestrator playbook layer (foundation/methodologies/domain/
172
+ // ui-ux/routing). Required for claudeflow-build / -test / -review skills
173
+ // to @-mention. Without this, those skills' @.claudeflow/playbooks/...
174
+ // refs point to non-existent files.
175
+ const srcPlaybooks = path.join(srcClaudeflow, 'playbooks');
176
+ const dstPlaybooks = path.join(cwd, '.claudeflow', 'playbooks');
177
+ if (fs.existsSync(srcPlaybooks)) {
178
+ copyDirSync(srcPlaybooks, dstPlaybooks);
179
+ }
180
+
170
181
  materializeSharedAppendPrompt(cwd);
171
182
  ensureDefaultClaudeMdRules(cwd);
172
183
  propagateTemplateRules(cwd, srcTemplates);
@@ -200,6 +211,11 @@ async function run() {
200
211
  // Remove previously template-seeded base rules. Project memory now comes
201
212
  // from setup-context, generated project rules, and root CLAUDE.md.
202
213
  pruneLegacyTemplateRules(cwd);
214
+ // v2 cleanup: remove v1 build-orchestrator artifacts (phases/, references/,
215
+ // and v1-only enforcement hooks). These were template-managed in earlier
216
+ // versions but aren't in the v2 manifest, so install.js's stale-removal
217
+ // doesn't always identify them. Be explicit.
218
+ pruneLegacyV1BuildArtifacts(cwd);
203
219
 
204
220
  // Copy commands
205
221
  const srcCommands = path.join(srcClaude, 'commands');
@@ -1167,6 +1183,42 @@ function assertRequiredTemplateRules(rulesDir) {
1167
1183
  }
1168
1184
  }
1169
1185
 
1186
+ // v1 build-orchestrator artifacts that v2 replaces. When upgrading from a
1187
+ // pre-v2 install, these stay on disk because install.js's stale cleanup
1188
+ // can't match files that exist on disk but aren't in the v2 ZIP manifest.
1189
+ // Listing them explicitly here makes the v1 → v2 upgrade leave a clean
1190
+ // .claude/.
1191
+ const LEGACY_V1_BUILD_ARTIFACTS = [
1192
+ // v1 had phases/references inside build/test/review skills; v2 doesn't.
1193
+ '.claude/skills/claudeflow-build/phases',
1194
+ '.claude/skills/claudeflow-build/references',
1195
+ '.claude/skills/claudeflow-test/phases',
1196
+ '.claude/skills/claudeflow-test/references',
1197
+ '.claude/skills/claudeflow-review/phases',
1198
+ '.claude/skills/claudeflow-review/references',
1199
+ // v1 enforcement hooks; v2 uses guard-sensitive-files + validate-closure +
1200
+ // session-env + filter-command-output instead.
1201
+ '.claude/hooks/PreToolUse/enforce-task-creation.js',
1202
+ '.claude/hooks/PreToolUse/enforce-ecosystem-artifacts.js',
1203
+ '.claude/hooks/PreToolUse/freeze-step-contract.js',
1204
+ '.claude/hooks/PreToolUse/freeze-workflow-state.js',
1205
+ '.claude/hooks/PreToolUse/route-exit-plan-mode.js',
1206
+ '.claude/hooks/PreToolUse/stack-debt-guard.js',
1207
+ ];
1208
+
1209
+ function pruneLegacyV1BuildArtifacts(projectRoot) {
1210
+ for (const relPath of LEGACY_V1_BUILD_ARTIFACTS) {
1211
+ const absPath = path.join(projectRoot, relPath);
1212
+ if (!fs.existsSync(absPath)) continue;
1213
+ try {
1214
+ fs.rmSync(absPath, { recursive: true, force: true });
1215
+ } catch {
1216
+ // Best-effort. If the file is locked or permissions issue, skip;
1217
+ // the user can clean up manually. Don't abort the install.
1218
+ }
1219
+ }
1220
+ }
1221
+
1170
1222
  function pruneLegacyTemplateRules(projectRoot) {
1171
1223
  const rulesDir = path.join(projectRoot, '.claude', 'rules');
1172
1224
  for (const filename of LEGACY_TEMPLATE_RULES) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@axiomatic-labs/claudeflow",
3
- "version": "2.14.4",
3
+ "version": "2.14.6",
4
4
  "description": "Claudeflow — AI-powered development toolkit for Claude Code. Skills, agents, hooks, and quality gates that ship production apps.",
5
5
  "bin": {
6
6
  "claudeflow": "./bin/cli.js"