--- name: 记录运行证据 description: 记录模型调用、运行登记、不可变回执、CAS revision 和受控 raw 证据。执行器或业务 Skill 需要持久化一次运行、追加失败证据、补回执引用或管理 raw 备份时使用;不负责调用模型或裁决内容质量。 disable-model-invocation: true --- # 记录运行证据 本 Skill 服务执行适配器和业务 Skill,只负责把一次运行的输入、输出、状态与证据保存成可核验记录。受治理角色执行属于 `执行角色任务`,质量评分属于 `评估内容质量`,Gate 裁决属于 `判定质量是否合格`。 ## scripts 入口 | 模块 | 职责 | |---|---| | `run_registry.py` | 创建和结束 `example_run`,维持运行状态与幂等边界。 | | `persist_llm_call.py` | 把模型调用的 prompt、response、用量与 raw 指针原子登记。 | | `agent_trace.py` | 框架派发留痕:事件账本 `example_agent_event` 写入 + raw/逐回合 llm_call 原子落库(07 §2 框架派发)。 | | `persist_raw.py` | 将完整 raw 写入 `example_raw_lease` 与 `example_raw_content`,写前拦截凭据。 | | `record_failed_run.py` | 为失败运行追加错误回执与隔离的质量结果。 | | `repair_receipt_evidence.py` | 对成功回执追加 evidence revision,不更新旧回执。 | | `file_cas.py` | 用内容哈希维护不可变 revision journal。 | | `raw_vault.py` | 可选的仓外 raw 保险库与迁移回执,不是默认权威存储。 | | `lesson_registry.py` | 经验升格链登记:把一次运行的 lesson/win 证据写入 `example_lesson`,并流转 `proposed → reviewing → promoted/rejected`。 | ## 复利合同 经验登记与运行证据同源:**一条经验只有绑得住 `run_id` 与候选哈希,后来的人才验证得了它**。因此 `lesson_registry` 与 `example_run` 同属本 Skill,各业务 Skill 调 `propose_lesson` 而不各自建表。 本 Skill 是模式 B 的**落点依赖**(平台底座),不自产创作效果信号:`compounding=none`,D8 不适用(模式 C)。 - `propose_lesson` 只登记 `status=proposed`,不做任何升格判断,也不把单章 n=1 结果当成普适结论。 - 状态机由 DB 触发器强制:跳过评审的自动升格被拒;`promoted` 必须指明目标类型(pattern/skill/tool)与落点;终态不可再流转。 - 升格是人的决定。`decided_by` 必填,任何调用方都不得代替人批准。 ## 合同 - raw 以 PostgreSQL 为主:完整 prompt、response、oracle 和供应商响应写入受控表;仓外 vault 仅作显式备份。 - 证据只追加,不覆盖历史;内容哈希、owner、run_id 或回执绑定不完整时失败关闭。 - 密钥、token 和凭据不得进入 raw 表、回执或错误对象。 - `runtime` 等 creator/updater 值属于存量数据库审计标识,不因 Skill 名称变化而改写。 ## 数据边界 - 读取运行、调用、raw 和回执当前状态,只为校验绑定与幂等。 - 写入 `example_run`、`example_llm_call`、`example_raw_lease`、`example_raw_content`、`example_run_receipt`、`example_lesson` 和相应质量失败记录。 - 不调用 Claude/New-API,不生成候选,不判断内容是否通过。 ## 输出 - 面向当前任务的可执行判断、检查清单或改写建议(Markdown 结构化段落)。 - 不直接落库、不代替 `写下一章` / `决定正文候选去留` 写 Canonical。