@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 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 that ship with the ZIP only these get overwritten.
10
- // User-generated skills (from /setup, /update) are preserved.
11
- const TEMPLATE_SKILLS = new Set([
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 only (safe for both fresh + update — fresh has no user 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() && TEMPLATE_SKILLS.has(entry.name)) {
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 (${TEMPLATE_SKILLS.size} template updated, user skills preserved)`);
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-init${ui.RESET} to scaffold your project`);
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 ask what you want to build, research${ui.RESET}`);
210
- console.log(` ${ui.DIM}the best stack, and generate project-specific skills.${ui.RESET}`);
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-update${ui.RESET} to detect your stacks and generate project-specific skills`);
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-update${ui.RESET} to detect your stack and generate project-specific skills`);
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-init${ui.RESET} ${ui.DIM}Scaffold a new project (greenfield)${ui.RESET}`);
227
- console.log(` ${ui.CYAN}/claudeflow-update${ui.RESET} ${ui.DIM}Detect stack and generate skills for existing project${ui.RESET}`);
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 init');
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(`Update available. Run: claudeflow update`);
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.8",
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"