经验教训
ADLC阶段:P7(更接近)
将起诉结论转化为永久辩护。 每一次反复发现都要付一次钱.
ADLC部分库存中的C9。 如果没有这一工具,生命周期不会变得更便宜——每跑一次都要重新获得经验教训.
它会做什么
- 阅读JSONL分类账中的起诉结果(默认:
.adlc/findings.jsonl(中文(简体) ) - 跳过条目为
verdict === 'killed'; 表面形状错误的行 - 按语义相似性分类的集群结果(token-set Jaccard {}0.5)
- 大小的每组路线
--min联合国 最廉价的永久防御数字 :- 线性 - 任何成员脱口而出都含有引文的或可识别的标记(TODO、FIXME、eslint-disable等) – 释放出一个grep-gate JSON描述符+可运行标记符
check-<name>.mjs脚本 - 杀人 - 类别是
convention, (中文(简体) ),pattern, (中文(简体) ),architecture,或style发射aSKILL.md有前题和证据的插文 - SPEC-GAP 计划 - 否则 - 附加一个问题:
interrogation-template.mdp1 地址
- 线性 - 任何成员脱口而出都含有引文的或可识别的标记(TODO、FIXME、eslint-disable等) – 释放出一个grep-gate JSON描述符+可运行标记符
- 默认: 干跑( 打印将写入的内容) 。 添加
--write以发送文件. - 与
--gate: 退出 2, 如果任何集群没有在其中存在的非空防御文件--out-dir,或如果发现分类账中包含无法解析/变形行数超过--tolerate-malformed
使用量
lesson-foundry [options]
Options:
--ledger <name> Ledger name to read findings from (default: findings)
--min <n> Minimum cluster size to surface (default: 2)
--out-dir <path> Output directory for defense files (default: .adlc/lessons)
--write Emit files (default: dry-run — prints what WOULD be written).
An existing non-empty artifact is kept; an empty one is regenerated
--gate Exit 2 if any cluster >= --min has no non-empty defense file in --out-dir
--allow-missing-ledger Allow missing ledger file when --gate is set (bootstrap opt-in).
--tolerate-malformed <n> Tolerate up to <n> unparseable/malformed ledger lines before failing --gate (default: 0)
--llm Refine cluster wording via one mid-tier LLM call per cluster;
exits 1 (writing nothing) when no cluster could be refined
--prompt-only Print LLM prompts and exit 0 (works with zero API keys)
--json Machine-readable output (stdout JSON, errors to stderr)
退出代码
| 代码 | 含义 |
|---|---|
| 0 个 | 门口——没有重复的无银行的经验教训(或门口没有设置) |
| 1个 | 操作错误——输入错误、无法读取的分类账、写作失败,或 --llm 无分组 |
| 2个 | 门失败——一个或多个集群在-out-dir中没有非空防御文件,或者分类账中包含错误的行 |
发送文件形状
电话: <name>.lint.json
{
"name": "cluster-name",
"pattern": "ESCAPED_LITERAL_OR_MARKER",
"paths": ["**"],
"message": "lesson-foundry: recurring finding — <desc>"
}
电话: check-<name>.mjs
一个可运行的Node.js脚本为图案的回放提供grep,并在匹配时出站2个出站,清空后为0个出站. 运行它作为CI门.
杀: <name>.SKILL.md
用 YAML 前题标记下 (name, (中文(简体) ), description, (中文(简体) ), category, (中文(简体) ), triggers)和包含规则,证据引用和出处计数的一具尸体. 准备装入任何技术开采管道.
SPEC-GAP: (英语) interrogation-template.md
附加到每个 spec-gap 集群带有复选框问题的文件 。 在P1谱中回答这些问题,以防止重复发现.
实例
干跑看将产生什么:
lesson-foundry --ledger findings --min 2
写入辩护文件 :
lesson-foundry --ledger findings --min 2 --write --out-dir .adlc/lessons
CI 的门( 如果任何重复的课没有存入银行则失败) :
lesson-foundry --ledger findings --min 2 --gate
机器可读输出 :
lesson-foundry --min 2 --gate --json
通过LLM改进措辞:
lesson-foundry --min 2 --write --llm
打印 LLM 提示而不调用任何 API :
lesson-foundry --min 2 --prompt-only
与兄弟姐妹工具的关系
| 工具 | 关系 |
|---|---|
adversarial-review | 调查结果的主要来源——其JSONL产出为分类账提供经验教训 |
skill-mining | sKILL.md分枝;技能开采管理全技能登记册 |
spec-lint | 课程创建附件 interrogation-template.md; spec-lint 门在 spec 质量上 |
rails-guard | 建立课时发布的国防文件应该像铁路一样公关——只读到其他工具 |
ADLC 阶段
P7——复合体相近. 起诉结果在多个ADLC周期内累积。 效果是"一分一秒":每一课都得到准确的酬劳,反复出现的结果从概率检测(LLM审查,~每捕获一美元)降级到决定性检测(lint/grep,~永远免费).
核心差距
无。 所有所需功能均可在 @adlc/core。 。 。 .