- VERSION file as authoritative version source - export.mjs reads VERSION with package.json fallback - bw-ota.ps1 DryRun mode for safe testing - auto-setup.ps1 bumped to v3.2.0 (Phase 8 OTA)
39 lines
1.3 KiB
JavaScript
39 lines
1.3 KiB
JavaScript
#!/usr/bin/env node
|
|
/**
|
|
* patch-r5-claudemd-doc.js · 2026-04-26
|
|
*
|
|
* R5: CLAUDE.md §上下文管理 追加 Agent 隔离软门控说明
|
|
*
|
|
* 幂等: sentinel "Agent 隔离软门控"
|
|
*/
|
|
'use strict';
|
|
const fs = require('fs');
|
|
const path = require('path');
|
|
|
|
const TARGET = path.join(__dirname, '..', '..', 'CLAUDE.md');
|
|
const SENTINEL = 'Agent 隔离软门控';
|
|
|
|
const ANCHOR = '- 重型任务(代码审计/系统自检)优先委托 Agent 子进程(隔离上下文)';
|
|
const NEW = '- 重型任务(代码审计/系统自检)优先委托 Agent 子进程(隔离上下文)— R5 **Agent 隔离软门控** 已自动检测 Bash 循环 (≥6 项)/seq/&&-链 (≥6) 与短期 Write/Edit 累计 (90s 内 ≥5 次), 触发时通过 systemMessage 提示改派 Agent';
|
|
|
|
function main() {
|
|
const src = fs.readFileSync(TARGET, 'utf8');
|
|
if (src.includes(SENTINEL)) {
|
|
console.log('[r5-doc] already applied, skip');
|
|
return;
|
|
}
|
|
if (!src.includes(ANCHOR)) {
|
|
console.error('[r5-doc] anchor not found, manual review needed');
|
|
process.exit(1);
|
|
}
|
|
const next = src.replace(ANCHOR, NEW);
|
|
const bak = TARGET + '.bak.r5doc.' + Date.now();
|
|
fs.copyFileSync(TARGET, bak);
|
|
const tmp = TARGET + '.tmp.' + process.pid;
|
|
fs.writeFileSync(tmp, next, 'utf8');
|
|
fs.renameSync(tmp, TARGET);
|
|
console.log('[r5-doc] OK, bak:', path.basename(bak));
|
|
}
|
|
|
|
main();
|