降耗①:按区注入排除 README,去掉与 @import 的重复

README(红线速查/一页纸总则)已由 CLAUDE.md 用 @import 常驻每次会话,
按区注入里再读一遍是纯重复。readDirDocs 过滤掉 README.md,只注编号正文。

- server 首注 54,339 → 49,416 字符(省 ~4.9K)
- client 首注(含 client+engineering 两个 README)省 ~5.5K
- 注入文案标注「README 已随 CLAUDE.md 常驻,此处为编号正文」
- 零规范损失(内容未删,只是不重复注入);pipe-test 确认无 README 段、
  正文与跨区去重逻辑不变

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-07-06 08:35:15 +08:00
co-authored by Claude Opus 4.8
parent ec58d0e584
commit 57b950cf31
+7 -5
View File
@@ -30,13 +30,14 @@ function markInjected(relDir) {
} catch (e) {} } catch (e) {}
} }
// 读取某目录下全部 .md(按文件名排序,README 先于编号靠 sort 自然处理),拼成一段带分隔标题的全文。 // 读取某目录下的编号正文 .md(按文件名排序),拼成一段带分隔标题的全文。
// 排除 README.md:它已被 CLAUDE.md 用 @import 常驻每次会话上下文,注入里再带就是重复。
function readDirDocs(relDir) { function readDirDocs(relDir) {
var abs = path.join(PROJECT_DIR, relDir); var abs = path.join(PROJECT_DIR, relDir);
var files; var files;
try { files = fs.readdirSync(abs); } catch (e) { return ''; } try { files = fs.readdirSync(abs); } catch (e) { return ''; }
var out = []; var out = [];
files.filter(function (f) { return /\.md$/i.test(f); }) files.filter(function (f) { return /\.md$/i.test(f) && !/^README\.md$/i.test(f); })
.sort() .sort()
.forEach(function (f) { .forEach(function (f) {
try { try {
@@ -80,9 +81,10 @@ process.stdin.on('end', function () {
markInjected(d); markInjected(d);
}); });
context = context =
'【必须严格遵守 · ' + area + '开发规范(本会话首次注入完整文档全文)】\n' + '【必须严格遵守 · ' + area + '开发规范(本会话首次注入编号正文全文)】\n' +
'你正在修改' + area + '代码。下面是本次及后续所有改动都必须时刻遵守的完整规范' + '你正在修改' + area + '代码。下面是本次及后续所有改动都必须时刻遵守的完整规范正文' +
'(' + dirs.join('、') + ')。逐条落实,勿凭记忆越线;dev-guide 与 engineering 冲突时以 dev-guide 硬红线为准。\n\n' + '(' + dirs.join('、') + ';各目录 README 的红线速查/一页纸总则已随 CLAUDE.md 常驻上下文,此处不再重复)。' +
'逐条落实,勿凭记忆越线;dev-guide 与 engineering 冲突时以 dev-guide 硬红线为准。\n\n' +
full.join('\n\n'); full.join('\n\n');
} else { } else {
context = context =