--- name: diagnose-ai-flavor description: 技能 3 诊断:对目标正文跑 active 规则库,产出带精确片段与证据的发现清单,检测完成自动落库。只查不改;没有本产物,revise-ai-flavor 拒绝启动。 disable-model-invocation: true --- # 诊断(scenario: deai_diagnose | purpose: detection | 槽位: 检测→detector) 何时用:每次生成后对候选正文跑一次;也可对既有正文回溯诊断。诊断是修订的唯一合法前置(专题-09 铁律:没诊断不能改)。 ## 执行顺序 1. `scripts/diagnose_ai_flavor.py run --text-file <正文> --work-ref <作品引用> --output <产物.json>`。 2. 确定性层按五层合同执行:regex、handler、density 由代码运行;carrier scope 会屏蔽明确对白/场内载体;结构/语义层由模型或人产出 finding 后,用 `--external-findings` 注入。 3. 外部 finding 必须绑定当前正文 hash、active 规则、规则版本和 layer;缺任一项直接拒绝。规则库指纹覆盖完整规则内容,触发器未升版本也会使旧诊断失效。 4. 诊断建议保守:blocking mechanical 才可默认 `repair`,其它命中进入 `ask`/仲裁;carve-out 只作为候选,不自动删除。 5. 产物头(text_hash、规则库版本、mode、发现清单)缺任何一项,下游视为诊断未发生。 6. 检测完成即落库:`example_run` + `example_quality_result`(judge_kind=detection,绑正文 sha256);`--offline` 仅作显式离线回放。 ## 输出合同 诊断产物 JSON:产物头 + `findings[]`。每条 finding 带 `id / rule_id / spans / context_window / evidence / confidence / decision_proposal`(确定性层产 ask,blocking 机械规则产 repair;语义层外部注入的 finding 可为 pending/ask/keep)。**到这里一个字没改**;作者可以只看报告不动手。 ## 数据库读写合同 - 读:规则/样例读 `example_ai_flavor_rule` / `example_ai_flavor_sample`(DDL-111 运行时权威);数据库不可用失败关闭,不静默回退 Git;`--offline` 显式使用 `humanization/` 文件资产(离线夹具/回放)。 - 写:`example_run`(幂等 upsert,run_id=作品+文本哈希+规则库版本)、`example_quality_result`(append-only)。 ## 红线 - 诊断不得改正文、不得产 patch。 - `decision_proposal` 只是机械层初步建议;候选/语义命中必须经过功能仲裁,不能当执行指令。 - 命中不等于修改命令:发现清单是给仲裁的输入,不是执行指令。