@axiomatic-labs/claudeflow 2.10.8 → 2.10.10
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 +19 -28
- package/lib/version.js +2 -2
- package/package.json +1 -1
package/lib/install.js
CHANGED
|
@@ -6,28 +6,14 @@ const { getLatestRelease, downloadReleaseAsset } = require('./download.js');
|
|
|
6
6
|
const { writeLocalVersion, readLocalVersion } = require('./version.js');
|
|
7
7
|
const ui = require('./ui.js');
|
|
8
8
|
|
|
9
|
-
// Template skills
|
|
10
|
-
//
|
|
11
|
-
|
|
12
|
-
'claudeflow-init',
|
|
13
|
-
'claudeflow-update',
|
|
14
|
-
'claudeflow-install',
|
|
15
|
-
'claudeflow-design-tokens',
|
|
16
|
-
'claudeflow-create-ui',
|
|
17
|
-
'claudeflow-checkpoints',
|
|
18
|
-
'claudeflow-add-skill',
|
|
19
|
-
'claudeflow-add-tools',
|
|
20
|
-
'claudeflow-regen-skills',
|
|
21
|
-
'claudeflow-regen-agents',
|
|
22
|
-
'claudeflow-regen-claudemd',
|
|
23
|
-
'claudeflow-agent-browser',
|
|
24
|
-
'claudeflow-sdd',
|
|
25
|
-
'claudeflow-build',
|
|
26
|
-
]);
|
|
9
|
+
// Template skills are shipped inside the ZIP. Copy every claudeflow-* skill
|
|
10
|
+
// from the release so template subskills stay in sync, while preserving any
|
|
11
|
+
// user-generated skills that are not part of the shipped asset.
|
|
27
12
|
|
|
28
13
|
async function run() {
|
|
29
14
|
const current = readLocalVersion();
|
|
30
15
|
const isUpdate = !!current;
|
|
16
|
+
let copiedTemplateSkillCount = 0;
|
|
31
17
|
|
|
32
18
|
ui.banner(current || undefined);
|
|
33
19
|
|
|
@@ -69,15 +55,16 @@ async function run() {
|
|
|
69
55
|
fs.copyFileSync(srcSettings, dstSettings);
|
|
70
56
|
}
|
|
71
57
|
|
|
72
|
-
// Copy template skills
|
|
58
|
+
// Copy all template-managed skills from the ZIP, including subskills.
|
|
73
59
|
const srcSkills = path.join(srcClaude, 'skills');
|
|
74
60
|
const dstSkills = path.join(cwd, '.claude', 'skills');
|
|
75
61
|
if (fs.existsSync(srcSkills)) {
|
|
76
62
|
fs.mkdirSync(dstSkills, { recursive: true });
|
|
77
63
|
const skillDirs = fs.readdirSync(srcSkills, { withFileTypes: true });
|
|
78
64
|
for (const entry of skillDirs) {
|
|
79
|
-
if (entry.isDirectory() &&
|
|
65
|
+
if (entry.isDirectory() && entry.name.startsWith('claudeflow-')) {
|
|
80
66
|
copyDirSync(path.join(srcSkills, entry.name), path.join(dstSkills, entry.name));
|
|
67
|
+
copiedTemplateSkillCount += 1;
|
|
81
68
|
}
|
|
82
69
|
}
|
|
83
70
|
}
|
|
@@ -157,7 +144,7 @@ async function run() {
|
|
|
157
144
|
|
|
158
145
|
console.log('');
|
|
159
146
|
if (isUpdate) {
|
|
160
|
-
ui.success(`${skillCount} skills (${
|
|
147
|
+
ui.success(`${skillCount} skills (${copiedTemplateSkillCount} template skills updated, user skills preserved)`);
|
|
161
148
|
ui.success(`${hookCount} hooks updated`);
|
|
162
149
|
ui.success(`${docCount} docs updated`);
|
|
163
150
|
|
|
@@ -204,27 +191,31 @@ function showGettingStarted(cwd) {
|
|
|
204
191
|
console.log(` 1. Run ${ui.CYAN}claude${ui.RESET} to start Claude Code`);
|
|
205
192
|
|
|
206
193
|
if (isGreenfield) {
|
|
207
|
-
console.log(` 2. Type ${ui.CYAN}/claudeflow-
|
|
194
|
+
console.log(` 2. Type ${ui.CYAN}/claudeflow-install${ui.RESET} to start setup`);
|
|
208
195
|
console.log('');
|
|
209
|
-
console.log(` ${ui.DIM}Claudeflow will
|
|
210
|
-
console.log(` ${ui.DIM}the
|
|
196
|
+
console.log(` ${ui.DIM}Claudeflow will route you into the new-project setup flow,${ui.RESET}`);
|
|
197
|
+
console.log(` ${ui.DIM}research the stack, and generate project-specific skills.${ui.RESET}`);
|
|
211
198
|
} else if (isMultiStack) {
|
|
212
|
-
console.log(` 2. Type ${ui.CYAN}/claudeflow-
|
|
199
|
+
console.log(` 2. Type ${ui.CYAN}/claudeflow-install${ui.RESET} to start setup`);
|
|
213
200
|
console.log('');
|
|
214
201
|
ui.info(`Multi-stack project detected: ${stackDirs.join(', ')}${rootHasManifest ? ' + root' : ''}`);
|
|
215
202
|
console.log('');
|
|
203
|
+
console.log(` ${ui.DIM}Claudeflow will route you into the update flow and detect${ui.RESET}`);
|
|
204
|
+
console.log(` ${ui.DIM}the relevant stacks before generating project skills.${ui.RESET}`);
|
|
205
|
+
console.log('');
|
|
216
206
|
console.log(` ${ui.BOLD}After setup:${ui.RESET}`);
|
|
217
207
|
console.log(` ${ui.DIM}Just describe what you want — Claudeflow handles the rest.${ui.RESET}`);
|
|
218
208
|
} else {
|
|
219
209
|
// Single-stack existing project
|
|
220
|
-
console.log(` 2. Type ${ui.CYAN}/claudeflow-
|
|
210
|
+
console.log(` 2. Type ${ui.CYAN}/claudeflow-install${ui.RESET} to start setup`);
|
|
211
|
+
console.log(` ${ui.DIM}Claudeflow will route you into the existing-project update flow.${ui.RESET}`);
|
|
221
212
|
console.log(` 3. Tell Claude what you want — it handles the rest`);
|
|
222
213
|
}
|
|
223
214
|
|
|
224
215
|
console.log('');
|
|
225
216
|
console.log(` ${ui.BOLD}Commands:${ui.RESET}`);
|
|
226
|
-
console.log(` ${ui.CYAN}/claudeflow-
|
|
227
|
-
console.log(` ${ui.CYAN}/claudeflow-
|
|
217
|
+
console.log(` ${ui.CYAN}/claudeflow-install${ui.RESET} ${ui.DIM}Route setup automatically for new or existing projects${ui.RESET}`);
|
|
218
|
+
console.log(` ${ui.CYAN}/claudeflow-build${ui.RESET} ${ui.DIM}Execute an approved spec for larger or higher-risk changes${ui.RESET}`);
|
|
228
219
|
console.log(` ${ui.CYAN}/claudeflow-design-tokens${ui.RESET} ${ui.DIM}Create design reference from a site or screenshot${ui.RESET}`);
|
|
229
220
|
console.log(` ${ui.CYAN}/claudeflow-create-ui${ui.RESET} ${ui.DIM}Build pages from visual references${ui.RESET}`);
|
|
230
221
|
console.log(` ${ui.CYAN}/claudeflow-checkpoints${ui.RESET} ${ui.DIM}Auto-save work with git checkpoints${ui.RESET}`);
|
package/lib/version.js
CHANGED
|
@@ -31,7 +31,7 @@ async function run() {
|
|
|
31
31
|
if (local) {
|
|
32
32
|
ui.info(`Installed: ${local}`);
|
|
33
33
|
} else {
|
|
34
|
-
ui.warn('Not installed. Run: claudeflow
|
|
34
|
+
ui.warn('Not installed. Run: npx @axiomatic-labs/claudeflow install');
|
|
35
35
|
}
|
|
36
36
|
|
|
37
37
|
const token = getGitHubToken();
|
|
@@ -50,7 +50,7 @@ async function run() {
|
|
|
50
50
|
if (local && local === latest) {
|
|
51
51
|
ui.success('Up to date.');
|
|
52
52
|
} else if (local) {
|
|
53
|
-
ui.warn(
|
|
53
|
+
ui.warn('Update available. Run: npx @axiomatic-labs/claudeflow install');
|
|
54
54
|
}
|
|
55
55
|
} catch (err) {
|
|
56
56
|
ui.error(`Could not fetch latest release: ${err.message}`);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@axiomatic-labs/claudeflow",
|
|
3
|
-
"version": "2.10.
|
|
3
|
+
"version": "2.10.10",
|
|
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"
|