102 lines
7.6 KiB
Markdown
102 lines
7.6 KiB
Markdown
---
|
||
name: 记录机器味案例
|
||
description: 从已有作品或创作反馈中抽取可复核的 AI 味案例卡,保留来源哈希与位置并做来源重验证。需要反向积累人感样例、记录一次写作事故或批量回填既有作品时使用;不做标注确认与规则升格,不直接修改正文、范式或生产规则。
|
||
disable-model-invocation: true
|
||
---
|
||
|
||
# 抽取 AI 味案例卡
|
||
|
||
## 在五技能接力链中的位置
|
||
|
||
本 Skill 是技能 5「挖掘」的**采集**入口(链路登记见 [`chains/README.md`](../../../../flow/chains/README.md) 的 AI 味接力段):
|
||
|
||
```text
|
||
创作/已有作品 → 案例卡采集(本 Skill)→ 来源重验证(本 Skill)
|
||
→ 标注 / canonical / 样例投影 / 规则候选 / 评测 / 激活(建立机器味规则)
|
||
→ humanization/rules active → 技能 2/3 消费
|
||
```
|
||
|
||
- 它**不碰本次创作正文**:只记账(作者回退、误杀、门禁失败都走 `feedback` 入卡),在背后为规则库供料;
|
||
- 采集快、升格慢:卡片默认 `shadow`,之后的每一步状态推进都归 `建立机器味规则`。
|
||
|
||
## 目的与边界
|
||
|
||
本 Skill 只生产质量证据层的 `ai_flavor_case` 卡片,并做来源重验证。它不是作品实体卡,也不是公共范式卡;卡片默认处于 `shadow`,不能进入生成上下文,不能直接改变正文或规则。
|
||
|
||
输入有两条来源链:
|
||
|
||
- `backfill`:扫描已有作品,记录表面候选、全文哈希、章节/行位置和上下文。来源未明确授权时只保存哈希与位置,不把原文写入仓库。
|
||
- `live_feedback`:记录创作中发现的具体问题、候选正文哈希和人工判断,允许快速入卡,但同样先停在 `shadow`。
|
||
|
||
确定性脚本负责发现、哈希、状态、结构门禁和自动落库;“这是 AI 味还是有意写法”由 `建立机器味规则` 的人工/独立评审标注。
|
||
|
||
## 数据与副作用合同
|
||
|
||
- 读取:用户明确提供的文本文件,以及本 Skill 输出的案例卡 YAML/JSON。
|
||
- 写入:检测命令指定的回执文件,以及 `muse-example` 中的案例卡与重验证账本;不写正文、`knowledge/` 正式资产或生产规则目录,也不写质量评测账。
|
||
- 自动落库:`scan`、`inventory`、`feedback` 在检测完成后自动以一个事务写入数据库。`--offline` 是显式例外,只用于离线合同测试或数据库恢复准备;不能把离线文件当正式内容。
|
||
- 恢复入口:`persist_cases.py` 只用于把已审计的 inventory/revalidation 文件恢复或迁移入库,正常检测不得依赖它单独执行。
|
||
- 模型:扫描、哈希、校验都不调用模型;语义标注由 `建立机器味规则` 承接。
|
||
- 失败:任何来源、哈希、状态或反例门失败都返回 `CASE_CARD_CONTRACT_FAILED`,不输出部分成功的卡。
|
||
- 规则权威边界:运行时规则/样例权威在 `example_ai_flavor_rule` / `example_ai_flavor_sample`(DDL-111);规则生命周期不在本 Skill,归 `建立机器味规则`。
|
||
|
||
## 运行
|
||
|
||
采集只是第一步;标注、确认、样例投影、规则候选归纳、评测与激活由 `建立机器味规则` 承担。本 Skill CLI **只**暴露:`scan` / `inventory` / `feedback` / `validate` / `revalidate`。`confirm_card` / `project_sample` 是供 promote 导入的库函数,采集入口不提供对应子命令。
|
||
|
||
```bash
|
||
# 既有作品反向扫描;research_only 是默认安全值,输出 hash-only 卡
|
||
.venv/bin/python muse/lifecycle/quality/humanization/skills/记录机器味案例/scripts/capture_cases.py scan \
|
||
/path/to/work.txt --work-ref work-7 --output /tmp/ai-flavor-cases.yaml
|
||
# 命令结束时自动写入 muse-example;同时生成 .inventory.json/.revalidation.json 回执
|
||
|
||
# 批量回填并固化可复核清单;只写来源哈希、位置和观察,不复制第三方正文
|
||
.venv/bin/python muse/lifecycle/quality/humanization/skills/记录机器味案例/scripts/capture_cases.py inventory \
|
||
/path/to/works --source-root-ref 小说清单 --output /path/to/backfill-inventory.json \
|
||
--generated-on 2026-08-13
|
||
# 8 本作品的卡与逐卡重验证在同一检测运行中自动入库
|
||
|
||
# 创作反馈快速入卡(正文只在本次受控输入中读取)
|
||
.venv/bin/python muse/lifecycle/quality/humanization/skills/记录机器味案例/scripts/capture_cases.py feedback \
|
||
--text-file /tmp/candidate.txt --work-ref work-12 --run-ref run-abc \
|
||
--issue "段尾抽象升华没有功能" --output /tmp/feedback-card.yaml
|
||
# 创作反馈也会自动入库,保留 run_ref 绑定
|
||
|
||
# 明确只做离线构造(不会写库)
|
||
.venv/bin/python muse/lifecycle/quality/humanization/skills/记录机器味案例/scripts/capture_cases.py inventory \
|
||
/path/to/works --output /tmp/inventory.json --offline
|
||
|
||
# 对卡片做结构与来源门禁
|
||
.venv/bin/python muse/lifecycle/quality/humanization/skills/记录机器味案例/scripts/capture_cases.py validate \
|
||
/tmp/ai-flavor-cases.yaml
|
||
|
||
# 在确认/投影/规则使用前手工重验证来源;默认自动追加数据库回执。
|
||
.venv/bin/python muse/lifecycle/quality/humanization/skills/记录机器味案例/scripts/capture_cases.py revalidate \
|
||
/path/to/ai-flavor-cases.yaml --source-root /path/to/source-root \
|
||
--checked-on 2026-08-14 --output /tmp/ai-flavor-revalidation.json
|
||
# 仅需离线回执时显式加 --offline
|
||
```
|
||
|
||
`owned`、`licensed` 和 `public_domain` 才允许把片段写入卡;`research_only`、`unauthorized` 只能 hash-only,且永远不能确认。`source_sha256` 针对原始文件字节,`excerpt_sha256` 针对保存的片段,二者不可由模型自报。
|
||
重验证不会在看板打开时自动发生;它是确认、样例投影和规则消费前的显式 fail-closed 门。若来源无法获取,状态判定为 `unavailable`,不可判定为有效。
|
||
|
||
## 状态与交接
|
||
|
||
1. `scan`/`feedback` 产生 `shadow + unclassified`——这是本 Skill 的终点。
|
||
2. 之后的标注(`sf` / `snf` / `boundary` / `regression`)、`canonical` 确认、样例投影、规则候选归纳、评测与激活全部归 `建立机器味规则`。
|
||
3. `revalidate` 产出的 verified 回执是交接件:下游每一步都要拿它做 fail-closed 复核。
|
||
|
||
详细字段和失败码见 [`references/case-card-contract.md`](references/case-card-contract.md)。
|
||
|
||
首版回填清单与候选规则种子见 [`references/fixtures/`](references/fixtures/);其中既有作品只保留 hash/位置,不能直接确认。
|
||
`inventory`/`revalidate` 的 `--output` 导出是可复核的恢复证据;正式内容在 `muse-example` 的
|
||
`example_ai_flavor_case`、`example_ai_flavor_revalidation_batch`、`example_ai_flavor_revalidation` 三张表。
|
||
`muse/authority/studio/read/server.py` 的 `/ai-flavor` 默认查这三张表,数据库不可用时读它自己的 `muse/authority/studio/read/fixtures/` 离线回退(导出件由人放入,看板不读本 Skill 目录);页面不会因打开而重新读取原文。
|
||
|
||
状态语义:案例卡 `shadow` 只供复核,`canonical` 仅表示获授权且完成评审,`rejected`/`archived` 不进入生成上下文;重验证 `verified` 才能确认、投影样例或消费规则,`stale`(全文哈希变化)、`unavailable`(来源不可得)和 `card_mismatch`(锚点变化)都使当前卡在这些动作上失效,但历史回执保留。
|
||
|
||
## 复利合同
|
||
|
||
- **消费**:研究限定来源与已有案例卡;不把第三方正文写入正式内容。
|
||
- **回写**:`persist_cases.persist` 批次落库成功后经 `propose_lesson_dedup` 登记「AI味案例卡批次已落库」(`run_id`/`candidate_sha256` 均绑 `report_sha256`);规则升格仍归 `建立机器味规则`。离线/测试可传 `persist_lesson=False`。
|