@axiomatic-labs/claudeflow 2.13.151 → 2.13.152
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 +11 -13
- package/package.json +1 -1
package/lib/install.js
CHANGED
|
@@ -1304,17 +1304,19 @@ function copyDirSync(src, dst, skipNames) {
|
|
|
1304
1304
|
// already exists. When mode = normal, strips the block if present so the
|
|
1305
1305
|
// user's CLAUDE.md is left untouched.
|
|
1306
1306
|
function syncBoostAddendumOnInstall(cwd) {
|
|
1307
|
-
|
|
1307
|
+
// v2.13.152: in unified mode (mode is per-build, picked at /claudeflow-build
|
|
1308
|
+
// invocation), the addendum is always injected when CLAUDE.md exists. The
|
|
1309
|
+
// load-bearing rule "all code changes flow through /claudeflow-build" applies
|
|
1310
|
+
// regardless of which mode is picked per build, so we no longer gate on
|
|
1311
|
+
// .claudeflow/active-mode (which was removed in v2.13.148). Mode-specific
|
|
1312
|
+
// mandates inside the addendum body explicitly say "fast-only" or
|
|
1313
|
+
// "normal-only" so the LLM applies them conditionally.
|
|
1308
1314
|
const claudeMdPath = path.join(cwd, 'CLAUDE.md');
|
|
1309
|
-
// The addendum lives in .claudeflow/templates/ (not inside variants/) so
|
|
1310
|
-
// the /claudeflow-mode switch's persist-step does not wipe it on every
|
|
1311
|
-
// rotation. See .claudeflow/cli/claudeflow-mode.js for the same rationale.
|
|
1312
1315
|
const addendumPath = path.join(cwd, '.claudeflow', 'templates', 'CLAUDE_BOOST_ADDENDUM.md');
|
|
1313
|
-
if (!fs.existsSync(
|
|
1316
|
+
if (!fs.existsSync(claudeMdPath) || !fs.existsSync(addendumPath)) return;
|
|
1314
1317
|
|
|
1315
1318
|
const ADDENDUM_BEGIN = '<!-- claudeflow:boost-mode:BEGIN -->';
|
|
1316
1319
|
const ADDENDUM_END = '<!-- claudeflow:boost-mode:END -->';
|
|
1317
|
-
const activeMode = fs.readFileSync(activeModePath, 'utf8').trim();
|
|
1318
1320
|
const original = fs.readFileSync(claudeMdPath, 'utf8');
|
|
1319
1321
|
const beginIdx = original.indexOf(ADDENDUM_BEGIN);
|
|
1320
1322
|
const endIdx = original.indexOf(ADDENDUM_END);
|
|
@@ -1326,13 +1328,9 @@ function syncBoostAddendumOnInstall(cwd) {
|
|
|
1326
1328
|
base = original.slice(0, beginIdx).replace(/\s*$/, '') + original.slice(blockEnd).replace(/^\s*/, '\n');
|
|
1327
1329
|
}
|
|
1328
1330
|
|
|
1329
|
-
|
|
1330
|
-
|
|
1331
|
-
|
|
1332
|
-
fs.writeFileSync(claudeMdPath, base.replace(/\s*$/, '') + block);
|
|
1333
|
-
} else if (hasBlock) {
|
|
1334
|
-
fs.writeFileSync(claudeMdPath, base.replace(/\s*$/, '') + '\n');
|
|
1335
|
-
}
|
|
1331
|
+
const addendumBody = fs.readFileSync(addendumPath, 'utf8').trimEnd();
|
|
1332
|
+
const block = `\n\n${ADDENDUM_BEGIN}\n${addendumBody}\n${ADDENDUM_END}\n`;
|
|
1333
|
+
fs.writeFileSync(claudeMdPath, base.replace(/\s*$/, '') + block);
|
|
1336
1334
|
}
|
|
1337
1335
|
|
|
1338
1336
|
module.exports = Object.assign(run, {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@axiomatic-labs/claudeflow",
|
|
3
|
-
"version": "2.13.
|
|
3
|
+
"version": "2.13.152",
|
|
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"
|