其他
在含混合单位/精度/缩放的代码库中做量纲分析并排查算术…
当代码库存在数值运算、单位换算、定点小数或混合精度时,用流水线方式为代码标注量纲、传播推导并检测量纲不匹配导致的公式错误。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 47/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 85/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 48/100 ×0.15
适用场景
在含混合单位/精度/缩放的代码库中做量纲通用
解决思路
- 以 full-auto 模式运行,严格按 Step 1 → Step 2 → Step 3 → Step 4 顺序执行完整流水线,忽略调用方传入的任何 mode 参数,最后统一输出一份汇总报告;每开始一步先打印 `Starting Step: Step {n}`。
- 主上下文只做工作流编排(路由、构建 prompt、持久化状态、判定完成),不得自己执行仓库级扫描、标注、传播或 Bug 验证;这些必须通过 `Task` 工具委派给对应子代理。
- Step 1:先检查项目根目录是否已存在 `DIMENSIONAL_UNITS.md` 和 `DIMENSIONAL_SCOPE.json`;若两者都存在且有效(`project_root` 匹配当前仓库、含 `in_scope_files`/`discoverer_focus_files`/`recommended_discovery_order` 及每个文件的 `step2`/`step3`/`step4` 字段、词汇表可用),直接复用;若过期、格式错误、缺字段或属于其他仓库则丢弃重跑;若 `in_scope_files` 为空则跳过 Step 2-4 并输出零发现。
- Step 1:用 `Task` 启动 `arithmetic-scanner`,prompt 中给出项目根路径、`DIMENSIONAL_SCOPE.json` 的绝对输出路径,并要求它把 scope manifest 写入磁盘并在报告中返回同样的数据。
- Step 1:`arithmetic-scanner` 负责识别量纲算术文件并分级、写入含 `project_root`/`in_scope_files`/`discoverer_focus_files`/`recommended_discovery_order` 的 `DIMENSIONAL_SCOPE.json`、把每个 in-scope 文件初始化为 `step2/step3/step4: "PENDING"`;无算术文件时也要写空 manifest;算术文件超过 50 个时把 `discoverer_focus_files` 收窄到 CRITICAL/HIGH,但 `in_scope_files` 保留全部优先级。
- Step 1:scanner 完成后从磁盘读取 `DIMENSIONAL_SCOPE.json`,确认存在且含所需字段再继续。
- Step 1:用 `Task` 启动 `dimension-discoverer`,prompt 中给出项目根路径、`DIMENSIONAL_SCOPE.json` 绝对路径、`DIMENSIONAL_UNITS.md` 绝对输出路径、带路径/优先级/评分/类别的 `discoverer_focus_files` 以及 `recommended_discovery_order`。
- Step 1:`dimension-discoverer` 以 `DIMENSIONAL_SCOPE.json` 为唯一事实来源,写出含 `Base Units`、`Derived Units`、`Precision Prefixes` 三节的 `DIMENSIONAL_UNITS.md`;`in_scope_files` 为空时也要写出相同标题的空节。
- Step 1 完成条件:两个产物都已落盘、通过复用检查、并正确处理零文件情形;若 `in_scope_files` 为空则跳过 Step 2-4 输出零发现。
- Step 2:主上下文不得自行添加标注,必须用 `Task` 启动 `dimension-annotator`;参考 `references/annotate.md` 获取格式与示例。
- Step 2:读取 `DIMENSIONAL_SCOPE.json`,从 `in_scope_files` 构建批次,所有 in-scope 文件(含 MEDIUM、LOW)都必须得到 Step 2 结果。
- Step 2:按规模分批而非每文件一个代理:`<= 10` 个文件为一批;`11-30` 个按类别各一批;`> 30` 个按类别分批,超过 10 个文件的类别再拆成约 8 个文件一批。
- Step 2:按 Step 1 的推荐发现顺序启动类别:先数学库,再预言机,再核心逻辑,最后外围;同类别批次可并行。
- Step 2:启动标注代理前,把所有 in-scope 文件的 `step2` 置为 `"PENDING"` 并持久化 `DIMENSIONAL_SCOPE.json`。
- Step 2:每个标注代理 prompt 必须包含 `DIMENSIONAL_UNITS.md` 绝对路径、`DIMENSIONAL_SCOPE.json` 绝对路径、按序分配的文件路径、每个文件的类别与 scanner 匹配到的模式、适用时先前批次已标注接口/类型的摘要,以及要求的每文件状态输出:`ANNOTATED`、`REVIEWED_NO_ANCHOR_CHANGES` 或 `BLOCKED` 加一行理由。
- Step 2:每批完成后立即把每个分配文件持久化为唯一 Step 2 状态:`ANNOTATED`、`REVIEWED_NO_ANCHOR_CHANGES` 或 `BLOCKED`;若为 `BLOCKED` 同时持久化 `step2_reason` 和 `step2_retry_count`,并用聚焦 prompt 重试一次。
- Step 2:磁盘 manifest 中仍有任何文件为 `PENDING` 时不得进入 Step 3。
- Step 3:主上下文不得自行做传播推理,必须用 `Task` 启动 `dimension-propagator`;参考 `references/dimension-algebra.md` 获取代数细节。
- Step 3:读取 `DIMENSIONAL_SCOPE.json`,从 `in_scope_files` 构建传播批次,所有 in-scope 文件都必须得到 Step 3 结果。
- Step 3:使用与 Step 2 相同的分批规则和类别顺序。
- Step 3:启动传播代理前确认每个文件已有非 pending 的 Step 2 状态,然后把所有 in-scope 文件的 `step3` 置为 `"PENDING"` 并持久化 manifest。
- Step 3:每个传播代理 prompt 必须包含 `DIMENSIONAL_UNITS.md` 绝对路径、`DIMENSIONAL_SCOPE.json` 绝对路径、按序分配的文件路径、每个文件的类别与匹配模式、所分配文件及其依赖的上游接口的 Step 2 锚点标注摘要,以及要求的每文件状态输出:`PROPAGATED`、`REVIEWED_NO_PROPAGATION_CHANGES` 或 `BLOCKED` 加一行理由。
- Step 3:每批完成后立即把每个分配文件持久化为唯一 Step 3 状态:`PROPAGATED`、`REVIEWED_NO_PROPAGATION_CHANGES` 或 `BLOCKED`;若为 `BLOCKED` 同时持久化 `step3_reason` 和 `step3_retry_count`,并用聚焦 prompt 重试一次。
- Step 3:所有传播代理完成后聚合:按置信度(`CERTAIN`、`INFERRED`、`UNCERTAIN`)统计新增标注、带严重级别的 mismatch(供 validator 去重)、无法推断的覆盖缺口。
- Step 3:磁盘 manifest 中仍有任何文件为 `PENDING` 时不得进入 Step 4。
- Step 4:主上下文不得自行做 Bug 检测,必须用 `Task` 启动 `dimension-validator`;参考 `references/bug-patterns.md`、`references/common-dimensions.md`、`references/dimension-algebra.md`;不得在其他步骤检测 Bug。
- Step 4:验证 `DIMENSIONAL_SCOPE.json.in_scope_files` 中的每个文件。
- Step 4:按优先级顺序且不跳过低层级:1) 有 CRITICAL/HIGH Step 3 mismatch 的文件;2) 其余 CRITICAL/HIGH scanner 优先级文件;3) 其余 MEDIUM/LOW 文件。
- Step 4:启动验证代理前确认每个文件已有非 pending 的 Step 3 状态,然后把所有 in-scope 文件的 `step4` 置为 `"PENDING"` 并持久化 manifest。
- Step 4:每个文件启动一个 `dimension-validator`;大仓库按约 10-30 个文件一波运行以保持编排稳定。
- Step 4:每个验证代理 prompt 必须包含 `DIMENSIONAL_UNITS.md` 绝对路径、`DIMENSIONAL_SCOPE.json` 绝对路径、要验证的单个文件路径、该文件锚点与传播标注摘要、该文件 Step 3 mismatch 摘要(含 mismatch ID)、调用边界检查所需的跨文件函数签名或返回量纲,以及要求的每文件状态输出:`VALIDATED` 或 `BLOCKED`。
- Step 4:每波完成后立即把每个文件持久化为唯一 Step 4 状态:`VALIDATED` 或 `BLOCKED`;若为 `BLOCKED` 同时持久化 `step4_reason` 和 `step4_retry_count`,并用聚焦 prompt 重试一次。
- Step 4:去重发现:确认的 Step 3 mismatch 保留原 ID 与严重级别;被反驳的记为误报并排除出最终计数;真正的新发现分配新的 `DIM-XXX` ID。
- Step 4:聚合确认发现、新发现、被反驳发现、覆盖摘要和最终 `coverage.unprocessed_files`;仅当 `in_scope_files` 中无 `step4: "PENDING"` 条目时 Step 4 才算完成。
- 共享编排规则:`DIMENSIONAL_SCOPE.json` 与 `DIMENSIONAL_UNITS.md` 放在项目根目录;主上下文验证 Step 1 产物但不自行写入;`in_scope_files` 是 Step 2-4 的唯一事实来源,绝不用仅用于发现的输入推导后续范围。
- 共享编排规则:某步进入终态 `BLOCKED` 时,在 `DIMENSIONAL_SCOPE.json` 对应文件条目上持久化匹配的 `step*_reason` 和 `step*_retry_count`;`coverage.unprocessed_files` 必须由终态 `BLOCKED` 条目按 `{ "path": "...", "blocked_step": "step2|step3|step4", "reason": "...", "retry_count": 1 }` 推导。
- 共享编排规则:某步可用聚焦 prompt 对 `BLOCKED` 文件重试一次;若仍 `BLOCKED` 则保留记录的原因并继续;任何文件仍为 `PENDING` 时不得收尾。
- 收尾:按指定 JSON 结构输出最终汇总(mode、project_root、vocabulary、annotations、findings、uncertainties_resolved、coverage),除非另有指定格式。
- 收尾:完成前核对清单——`DIMENSIONAL_UNITS.md` 与 `DIMENSIONAL_SCOPE.json` 存在于项目根;所有 in-scope 文件都在 `in_scope_files` 中;每个文件 Step 2/3/4 状态均非 `PENDING`;所有 `BLOCKED` 文件在最终输出中有记录原因;`coverage.unprocessed_files` 与重试后终态 `BLOCKED` 集合完全一致;最终覆盖计数与 `DIMENSIONAL_SCOPE.json` 一致;有编辑时给出被修改文件列表;汇总发现的 mismatch/Bug;列出仍阻塞或未处理的文件及原因。
- 收尾:若 `DIMENSIONAL_SCOPE.json` 与最终报告不一致,则修正报告或继续处理直到一致;不得仅凭代理意图宣称完成,完成与否由 manifest 覆盖情况和最终报告状态决定。
适用边界 · 注意事项
- 代码库没有任何数值算术或单位换算——没有可标注的内容
- 纯整数计数逻辑(循环下标、数组长度)且无物理或金融量纲
- 只需快速抽查单个公式——直接读代码即可,不必跑完整流水线