@axiomatic-labs/claudeflow 2.14.43 → 2.14.45

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 +17 -17
  2. package/package.json +1 -1
package/lib/install.js CHANGED
@@ -319,23 +319,6 @@ async function run() {
319
319
  ui.info(`Note: .claudeflow/config/setup-context.json is missing. Builds will fall back to inferring stack from CLAUDE.md + package.json. To regenerate the canonical setup-context, run /claudeflow-init or /claudeflow-update inside Claude Code.`);
320
320
  }
321
321
 
322
- // v2.14.43 Gap #7: warn loudly if enforcement is disabled. A toggle in
323
- // `claudeflow panel` (or a manual edit) can persist enforcementDisabled:
324
- // true across installs/updates, silently disabling all PreToolUse strict
325
- // gates. Without this warning the user is unaware their build discipline
326
- // hooks are off. (Found via Impekble: ct09 + ct05 skipped TaskCreate
327
- // because every enforcement hook was silenced by an old panel toggle.)
328
- try {
329
- const overridesPath = path.join(cwd, '.claudeflow', 'config', 'user-hook-overrides.json');
330
- if (fs.existsSync(overridesPath)) {
331
- const overrides = JSON.parse(fs.readFileSync(overridesPath, 'utf8'));
332
- if (overrides && overrides.enforcementDisabled === true) {
333
- ui.info(`⚠️ ENFORCEMENT IS DISABLED — your .claudeflow/config/user-hook-overrides.json has "enforcementDisabled": true. All Claudeflow PreToolUse strict gates (phase tasks, plan agents, methodology, marker) are silenced. To re-enable: run \`claudeflow panel\` and toggle enforcement on, or edit user-hook-overrides.json to set "enforcementDisabled": false.`);
334
- }
335
- }
336
- } catch {
337
- // Best-effort: malformed JSON should not block install.
338
- }
339
322
  } else {
340
323
  ui.success(`${skillCount} skills installed`);
341
324
  ui.success(`${hookCount} hooks installed`);
@@ -349,6 +332,23 @@ async function run() {
349
332
  ui.done(`Claudeflow ${version} installed.`);
350
333
  }
351
334
 
335
+ // v2.14.43 Gap #7: warn if enforcement is disabled. Lives outside the
336
+ // update/fresh-install branches so it fires in both flows (a user can
337
+ // start with enforcement on, then later toggle it off via panel, and
338
+ // a subsequent fresh install in the same dir would miss the warning if
339
+ // the check sat inside the update branch only).
340
+ try {
341
+ const overridesPath = path.join(cwd, '.claudeflow', 'config', 'user-hook-overrides.json');
342
+ if (fs.existsSync(overridesPath)) {
343
+ const overrides = JSON.parse(fs.readFileSync(overridesPath, 'utf8'));
344
+ if (overrides && overrides.enforcementDisabled === true) {
345
+ ui.info(`⚠️ ENFORCEMENT IS DISABLED — your .claudeflow/config/user-hook-overrides.json has "enforcementDisabled": true. All Claudeflow PreToolUse strict gates (phase tasks, plan agents, methodology, marker) are silenced. To re-enable: run \`claudeflow panel\` and toggle enforcement on, or edit user-hook-overrides.json to set "enforcementDisabled": false.`);
346
+ }
347
+ }
348
+ } catch {
349
+ // Best-effort: malformed JSON should not block install.
350
+ }
351
+
352
352
  // Ensure the `claudeflow` shell command is available and matches the
353
353
  // just-installed template version. Runs for both fresh installs and
354
354
  // updates — the shell command is independent of the project template
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@axiomatic-labs/claudeflow",
3
- "version": "2.14.43",
3
+ "version": "2.14.45",
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"