47 lines
4.4 KiB
Markdown
47 lines
4.4 KiB
Markdown
# 2026-08-30 提交前四维形而上审查报告
|
||
|
||
> 审查对象:本次「harness 规则与实现差异修复」全量改动(38 文件,+509/−339)。
|
||
> 审查方法:按 [`metaphysical-diff-review`](../muse/lifecycle/quality/skills/audit/审查变更是否合理/SKILL.md) 四维方法执行。
|
||
> **独立性局限声明**:本审查与改动作者同会话执行(当前宿主无子代理派发机制;直调外部模型审查会绕过额度治理红线)。程序与证据标准按技能合同执行,但真正独立的审查应在提交前由全新会话装载该技能复跑一次。
|
||
|
||
## verdict: PASS
|
||
|
||
四维全部通过;机械门前置条件满足(全量离线 118 passed + 9 设计内 blocked + 0 failed;`skill_harness --strict` 59 Skill 阻断 0 发现 0;`skills_index --check` 三方一致;architecture 9 文件逐个全绿;`git diff --check` 干净)。
|
||
|
||
## 1. 逻辑完整性 — PASS
|
||
|
||
- 三个新硬门(TOOL_NOT_READONLY / MODEL_POLICY_VIOLATION / governed-chain 放行)各有专属测试(`tests/skills/dispatch-agent-task/test_dispatch_agent_task.py` +88 行,28 用例全绿)。
|
||
- 删除物无孤儿:`project_paths.py` 删除前验证零引用;`offline_only` 参数 5 处引用全清且无文档残留;`harness/harness/` 仅含 pycache。
|
||
- `mismatched_models` 在回执引用前无条件绑定(检查块总是执行)。
|
||
- muse.db 清理闭环:删前集合与预期断言相等才执行 → 267MB 文件备份 → 删后计数复核(81/26/6 → 76/0/4)→ 污染源堵漏(`sqlite_path` 三层透传 + 9 处测试隔离)→ 复跑全量测试计数零漂移。
|
||
- 反向核对变更说明:Phase 0–3 报告声称的每一项修复均能在 diff 中定位对应 hunk,无凭空声明。
|
||
|
||
## 2. 一致性 — PASS
|
||
|
||
- 技能计数三方一致:59 = 15 方法 + 44 编排(AGENTS.md / 两份索引 / skills.json,`skills_index --check` 机械验证)。
|
||
- writer 输出契约三层对齐:writer.md 数据契约 ↔ `writer-candidate-body-v1` schema ↔ 角色合同两阶段登记。
|
||
- 角色名英文 ID 与 `ROLE_NAMES` / `EXPECTED_ROLES` / 五个提示词 frontmatter 一致(`test_skill_catalog` 绿)。
|
||
- SQLite 运行态账本在 AGENTS.md §1、红线 1.1、08 域 §2/§6.1、表映射.md 四处同一口径(不产生 Canonical、冲突以 PG 为准)。
|
||
- 检索语义分层明确:PG 面 `canonical_entity`/`draft`,本地面 `local_card`(docstring 声明 + 失败关闭字段),不冒充。
|
||
|
||
## 3. 合理性 — PASS
|
||
|
||
- 模型核对置于结构化校验之后(保持输出合同错误优先级),代码注释载明理由。
|
||
- provider 前缀剥离(`split("/", 1)[-1]`)与框架 `requested_model_id = provider/model` 构造同构,不引入宽松子串。
|
||
- 检索 truthful 化选择失败关闭(`bindingStatus=None`、`productionRetrievalEligible=False`)而非伪造资格,与 `ProductionCardIndexRepository` 的拒绝语义闭环——错误会被大声暴露而不是静默放行。
|
||
- web/app.py 按裁决方案 A 登记为本地留痕通道而非删除,保留单机闭环能力,写面闭集由既有 e2e 机械测试固定。
|
||
- 审计④后半(judge 输入禁看扫描)经核实判定为误报未实施:正确层(盲评桥 `FORBIDDEN_KEYS` + `_walk_for_leakage` + 组装即校验)已有机械门与测试,在通用派发入口重复扫描会误伤合法字段——不修反而是对的。
|
||
|
||
## 4. 可行性 — PASS
|
||
|
||
- 引用存在性:`role_policy.py` 对 `muse_llm`/`muse_role` 的导入路径在派发脚本上下文已建立(role_task 先行导入);`Mapping` 已在 store.py 导入清单。
|
||
- README 门禁命令原样实跑通过(本轮验证记录在案)。
|
||
- 生产默认不变:`produce_next_chapter` 等生产入口不传 `sqlite_path`(缺省 data/muse.db 即生产账本),只有测试显式隔离。
|
||
- 迁移对账改为关联计数后语义自洽(迁移后新增本地人审不计入、不再误报)。
|
||
|
||
## 遗留观察(不阻断)
|
||
|
||
1. `RunDispatchTest` 的临时目录用 `mkdtemp` 未显式清理——测试卫生小项,非本轮范围。
|
||
2. 本地 muse.db 检索现在对无内容指针行返回空集(诚实行为);真实内容检索仍依赖 PG 在线,单机离线检索能力是已登记的目标合同缺口(08 域 §10)。
|
||
3. `.agent/skills/_index.md` 经 `--write` 再生成内容零变化(无痕),前一会话对 `.agent/_index.md`/`.agent/目录.md` 的未提交修改保持原样未动。
|