@axiomatic-labs/claudeflow 2.14.41 → 2.14.43

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 +18 -0
  2. package/package.json +1 -1
package/lib/install.js CHANGED
@@ -318,6 +318,24 @@ async function run() {
318
318
  if (!fs.existsSync(setupContextPath)) {
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
+
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
+ }
321
339
  } else {
322
340
  ui.success(`${skillCount} skills installed`);
323
341
  ui.success(`${hookCount} hooks installed`);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@axiomatic-labs/claudeflow",
3
- "version": "2.14.41",
3
+ "version": "2.14.43",
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"