@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.
- package/lib/install.js +52 -0
- 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.
|
|
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"
|