muse-agent-example/AGENTS.md

247 lines
32 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# AGENTS.md —— agent-example 项目工作入口
> 适用范围:本文件只约束 `agent-example/`。父仓 [`../AGENTS.md`](../AGENTS.md) 的通用工程、证据和协作规则继续生效;本文件只补充本地创作仓的规则,不重复父仓规范。
> **Skill 发现入口(必读)**:读完本文件后必须读 [`.agent/skills/_index.md`](.agent/skills/_index.md)(Skill 发现总索引);需要某项能力时按索引中的 `skill_file` 读对应 `SKILL.md`。发现只靠 AGENTS.md → 总索引 → SKILL.md 的渐进披露,不依赖任何 coding agent 的 skill 自动发现。
## 1. 项目定位
`agent-example` 的目标定位是物理位于 `oh-my-muse` 内、拥有独立 `.git/` 的单用户缩小版 Muse,以 PostgreSQL 为正式内容权威。目标系统由 ReAct Agent、角色 Agent、Skill 和确定性工具协作,在本地完成作品、实体、范式、规划、正文、审核、用户决策与经验复利;不实现管理员、多用户、租户、市场、计费或资产交易。
- 完整 Muse 的产品、业务和总体架构 SoT 在 [`../design-docs/`](../design-docs);本仓只定义单用户、数据库为权威的简化实现合同,发现通用设计问题后回填父仓 SoT。
- 本仓正式内容的权威是 PostgreSQL(`muse-example` 库):作品、章、正文、实体、范式、用户决策、运行回执和 raw 都在库里。判断“系统里有没有这个东西”,以库里能不能查到为准;不得把库外的文件或临时快照说成正式内容。
- Git 是代码、Skill、Agent 提示词、`muse/content/meta/`、文档和 DDL 的权威,并可以对作品相关信息和作品文本留痕(版本历史与备份);但 Git 留痕不是正式内容权威,正式内容以库为准,只读看板只读库,两者冲突时以库为准。库内向量索引是数据库一侧的检索加速,不是独立权威。可恢复性靠数据库备份加快库里代码与 DDL 重建,见 [数据权威与可视化领域 SoT](muse/sot/domains/08-数据权威与可视化领域.md)。
- 本仓继续承担真实创作、拆书、回放评测和候选审查;这些活动服务缩小版 Muse 的能力验证,不把开发期 Gate 当作产品主流程。
## 2. SoT 与职责边界
SoT 按主题分域,不做跨主题的全局排序。可执行脚本与书面合同不一致时视为缺陷,不得自行拼接两套口径;本文件已经明确判定失效的旧路径,不因仍出现在历史文档或 skill 中而恢复有效。
| 载体 | 权威职责 |
|---|---|
| [`../AGENTS.md`](../AGENTS.md) + 本文件 | 父仓通用规则与本地创作仓工作边界。更具体的本地规则只做收窄,不取消父仓规则。 |
| [`CLAUDE.md`](CLAUDE.md) | Claude Code 兼容入口,只引用本文件,不定义独立规则或 SoT。 |
| [`../design-docs/`](../design-docs) | Muse 的概念、产品、业务和总体架构 SoT。 |
| [`muse/sot/domains/`](muse/sot/domains/_index.md) | 本仓领域边界、数据权威、落库合同和领域协作的 SoT。 |
| [`muse/sot/边界合同.md`](muse/sot/边界合同.md) | 组件职责边界与约束归属的唯一事实源:什么约束放提示词、工具、脚本、静态层;智能体/Skill/工具 server/主代理各自不做什么。 |
| [`muse/content/meta/schemas/`](muse/content/meta/schemas) | 23 型结构本体的字段合同;库内 payload 结构以该合同为准。 |
| [`muse/lifecycle/flow/chains/`](muse/lifecycle/flow/chains) | scenario、purpose、功能 skill、角色槽位和保护节点的链路登记。 |
| [`.agent/skills/`](.agent/skills/) | 只挂载 15 个 `model_routed` 方法 Skill;编排 Skill 的业务源位于 `muse/**/skills/`。所有位置由 `muse/lifecycle/quality/harness/manifests/skills.json` 的 `skill_path` 登记。 |
| [`tests/skills/`](tests/skills/) | Skill 的实现测试、集成测试和 fake pipeline 测试;它们提供回归证据,不拥有运行合同,也不等同于 Skill 行为评测。带确定性实现的 Skill 在此回归,纯模型判断的 Skill 靠行为评测。 |
| [`.agent/`](.agent/_index.md) | 运行期挂载面与方法 Skill 索引;领域设计位于 `muse/sot/`,新增、删除或重命名必须同步各级 `_index.md`。 |
| [`docs/`](docs) | 单次任务探索、计划、评测资料、样张和历史执行证据;任务完成后把稳定结论蒸馏到 `muse/sot/` 或 `.agent/`,不得长期拥有领域定义。 |
| [`README.md`](README.md) | 项目背景和历史路线概览。目录、阶段、技能数量和存储方式等描述可能陈旧,不得覆盖本文件、`muse/`、skill 或磁盘事实。 |
`muse/sot/domains/` 一个领域一份 SoT,索引只登记 owner 和协作关系,不复制字段与流程细节。`.agent/` 内挂载内容增删改名必须同步对应层级 `_index.md`。`docs/` 只记录单次任务过程、评测资料、样张和历史证据,不得覆盖领域 SoT。父仓 `design-docs/` 已拥有的完整产品概念,本仓只引用并定义单用户本地实现差异。
## 3. 真实目录与能力
```text
agent-example/
├── .git/ # 独立 Git 仓元数据
├── framework/ # FrameworkPort、Pi 适配器与通用执行对象
├── .agent/
│ ├── agents/ # 5 个 LLM 角色身份提示
│ └── skills/ # 15 个方法 Skill 的嵌套源与方法索引
├── muse/
│ ├── sot/ # 领域边界、角色合同与架构 SoT
│ ├── content/ # 作品、实体、范式、结构 schema
│ ├── lifecycle/ # 上下文、创作流程、质量、编排与 harness
│ ├── authority/ # DB、证据、只读看板与决策通道
│ └── platform/ # 连接、模型、嵌入等共享包
├── tests/ # Skill 实现测试与架构门禁
├── docs/ # 计划、评测资料、样张与历史执行记录
├── .venv/ # 本地 Python 运行环境
├── requirements.txt # Python 依赖清单
├── CLAUDE.md # Claude Code 兼容入口,只引用 AGENTS.md
└── README.md # 历史概览,不是当前运行态 SoT
```
5 个角色:`writer`、`planner`、`extractor`、`detector`、`judge`。角色身份在 `.agent/agents/*.md`;稳定角色合同唯一事实源是 [角色合同](muse/sot/角色合同.md),不把输入边界、模型策略、工具权限和输出合同散落进角色文件。Muse 先解析角色合同、冻结上下文、模型策略和输出 Schema,再通过 `FrameworkExecutionRequest` 调用 `framework/adapters/`;当前生产适配器是 Pi。本机 DSH 已更新为 `0.1.1-rc.2`,`web`/`headless` profile 配置检查已通过,但真实模型和 Muse 业务旅程尚未形成证据;DSH 只作为无工具 fresh 对照接缝,不把安装或配置痕迹当生产可用事实。角色是主会话派发的子代理:按 [07-Agent与Skill领域 §2](muse/sot/domains/07-Agent与Skill领域.md) 的派发合同起全新会话,注入身份提示、对应角色合同和冻结输入,输出由派发方校验并落证据;不依赖任何宿主的原生角色装载机制(如 Claude Code `--agent`),Claude CLI 不是角色运行底座。
### Skill 合同责任方索引
实际清单与物理位置以 `muse/lifecycle/quality/harness/manifests/skills.json` 的 `skill_path` 为准。方法发现总索引见 [`.agent/skills/_index.md`](.agent/skills/_index.md),编排发现索引见 [`muse/_skills_index.md`](muse/_skills_index.md)。索引由 `muse/lifecycle/quality/harness/skills_index.py --write` 生成;skill 增删改名后必须重新生成,一致性由架构测试机械校验。
本表是另一条轴:登记每个 skill 的合同责任方、协作领域和领域 SoT,不复制各 Skill 的完整合同。每个 skill 必须登记一个合同责任方(业务领域或平台领域),但可以同时消费或影响多个协作领域;跨域调用、场景关系和保护节点在 `muse/lifecycle/flow/chains/` 登记。合同责任方表示谁维护该 Skill 的稳定能力合同,不表示 Skill 只能属于一个业务领域。
| 合同责任方 / 能力域 | 领域 SoT | Skill |
|---|---|---|
| 平台运行与证据 | 07-Agent 与 Skill、08-数据权威与可视化 | `access-database`、`call-content-model`、`execute-role-task`、`record-run-evidence`、`refresh-runtime-probe` |
| 上下文与知识检索 | 02-实体、04-上下文、08-数据权威与可视化 | `assemble-context`、`embed-knowledge`、`freeze-context`、`search-knowledge` |
| 导入、清洗与抽取 | 02-实体、05-创作流程 | `clean-book-text`、`deconstruct-book`、`inspect-parse-health`、`extract-chapter-knowledge`、`extract-work-knowledge`、`backup-work-extraction`、`reset-work-extraction`、`repair-work-extraction`、`import-book`、`review-knowledge-cards` |
| 规划与作品基础 | 05-创作流程 | `design-story-foundation`、`merge-story-candidates`、`plan-chapter`、`plan-story`、`concept-design`、`story-structure`、`story-planning`、`narrative-momentum`、`foreshadow-payoff`、`story-ending` |
| 写作与候选主权 | 01-作品、05-创作流程 | `decide-candidate`、`confirm-knowledge-draft`、`expand-scene`、`polish-prose`、`rewrite-selection`、`write-next-chapter`、`scene-craft`、`dialogue-craft`、`character-design`、`character-presentation`、`show-and-omission`、`narration-pov`、`prose-craft`、`theme-and-stance` |
| 质量与回放评测 | 06-质量与复利、05-创作流程 | `check-content-consistency`、`score-content-quality`、`adjudicate-quality-gate`、`optimize-content-quality`、`evaluate-frozen-replay`、`replay-writer-gate`、`load-replay-reference-work`、`novel-diagnosis` |
| 去 AI 味与人感 | 06-质量与复利、父仓专题-09 | `capture-ai-flavor-cases`、`promote-ai-flavor-rule`、`diagnose-ai-flavor`、`establish-voice-baseline`、`prevent-ai-flavor`、`revise-ai-flavor` |
58 个 skill 一律是本仓正式 skill,受同一套合同与门禁约束,不分等级:都须满足 [07-Agent与Skill领域 §3](muse/sot/domains/07-Agent与Skill领域.md) 的合同,都在 `skills.json` 登记,都进质量评分。全仓技能发现完全由 `AGENTS.md` 与渐进式目录契约驱动,彻底废除对宿主私有目录扫描的物理投影依赖。绑创作 scenario 的在 `muse/lifecycle/flow/chains/` 登记;平台与工具类由主会话或其它 Skill 直接调用。
**不按"是不是系统运行时"分等级。** 一个 Skill 当前有没有 `scripts/`、有没有数据库合同、有没有接入复利,是实现成熟度而非本质:`plan-chapter`、`expand-scene`、`polish-prose` 以模型判断为主、自身不带 Tool,落库由它们调用的 Skill 承担;`story-structure`、`scene-craft` 一类创作方法 Skill 目前只有 `SKILL.md` 与 `references/`,那是**未接入复利的欠账**,不是它们的天然形态(改造方向见下)。把成熟度写成类别,等于给未完成的 Skill 发永久豁免证。
`muse/lifecycle/quality/humanization/` 是“去 AI 味与人感”Skill 家族的能力域:`muse/lifecycle/quality/humanization/src/deai/` 是共享运行时库(包名 `muse-deai`,经 `requirements.txt` 的 `-e ./muse/lifecycle/quality/humanization` 安装)。被两个以上 Skill 或看板消费的确定性实现一律装成顶层可安装包,所属 Skill 只留 CLI:`muse-db`(连接)、`muse-llm`(模型调用、额度窗与 `muse_role` 角色执行)、`muse-embed`(嵌入),分别来自 `muse/platform/db`、`muse/platform/llm`、`muse/platform/embed`,由 `requirements.txt` 以 editable 方式安装。调用方 `import` 已安装的包,不得 `sys.path` 指向 `access-database/scripts`、`call-content-model/scripts`、`embed-knowledge/scripts`、`execute-role-task/scripts`、`establish-voice-baseline/scripts` 或 `muse/lifecycle/quality/humanization/src`;门禁见 [`tests/architecture/test_import_boundaries.py`](tests/architecture/test_import_boundaries.py)。规则与样例的运行时权威是 `example_ai_flavor_rule` / `example_ai_flavor_sample`(DDL-111,`muse/lifecycle/quality/humanization/tools/seed_rules_db.py` 种子同步,生产读取失败关闭,不静默回退 Git);案例卡与声音账同样入库。仓内 YAML/JSON 是迁移种子、离线夹具和结构合同;规则生命周期变更经 YAML 评测/激活后同步入库。规则记录不各自注册为 Skill,Skill 负责动作和消费边界。`muse/lifecycle/quality/humanization/tests`、`tools`、`eval` 仍按包内惯例装载源码树。
其中 15 个创作方法 Skill 由 7 本写作书的方法论单元按创作领域合并而来(`SKILL.md` 入口 + `references/` 全量内容),供 writer、planner、judge 在对应创作阶段取用。蒸馏与裁剪的历史留痕见 `docs/2026-08-19-craft-distillation-trace.md`(原料与旧 SoT 由 git 历史保留)。**`craft` 不再作为 Skill 的分类标签**:该词在本仓只有一个含义,即公共范式库的范式型之一(技法型,见 [03-范式领域 §2](muse/sot/domains/03-范式领域.md))。
每个 Skill 的分类字段(`lifecycle` / `invocation` / `side_effects` / `compounding`)统一在 [`muse/lifecycle/quality/harness/manifests/skills.json`](muse/lifecycle/quality/harness/manifests/skills.json) 逐个登记,由 `muse/lifecycle/quality/harness/skill_harness.py` 机械校验;取值定义与质量评分口径见 [`muse/lifecycle/quality/harness/specs/skill-quality-rubric.md`](muse/lifecycle/quality/harness/specs/skill-quality-rubric.md)。
**复利接入是所有创作 Skill 的共同要求,不是少数 Skill 的特权。** 一个创作 Skill 用过一次之后系统应当更强:它的方法要沉淀为库内可被后续运行消费、可被证据修正的资产(范式卡、AI 味规则、声音账、`example_lesson` 登记),走 [06-质量与复利领域 §6](muse/sot/domains/06-质量与复利领域.md) 既有的升格链,不新建平行基建。既有闭环范本是去 AI 味五技能。`compounding = none` 是欠账,由评分维度 D8 记账,现存缺口清单见 `docs/2026-08-20-skill-质量审查与复利改造清单.md`。
Skill 领域列表的新增、删除、改名或主领域调整,必须同时检查 manifest 的 `skill_path`、`.agent/skills/` 方法挂载面、`muse/lifecycle/flow/chains/README.md` 和相关领域索引,并运行对应索引生成器;不得只改本表造成索引漂移。
上下文目标合同以 [上下文领域 SoT](muse/sot/domains/04-上下文领域.md) 为准:数据库读取器是核心实现,库内检索加速(向量)只做候选召回;任何命中都要回读库行并校验 hash。Skill 对自己读写哪些表负责,并把经手的输入和产出落库;没落库的输入产出在系统视角里等于不存在。
## 4. 反序验证顺序
本仓优化与验证采用反序推进:
```text
清洗 / 抽卡 / 范式
↓
正文智能体
↓
细纲智能体
↓
大纲 + 设定智能体
```
这是为了从底层证据与消费效果向上验证,不是正向生产调用顺序。不得把它改写成“大纲设定 → 细纲 → 正文”的实施进度,也不得因为某一层的单个样例可用,就宣称上层或整条创作链已经完成。
## 5. 创作与证据核心契约
1. **卡是索引,不是原文替代。** 卡用于定位实体、关系、来源和章号;生成或审查使用卡内历史事实前,必须沿 `sourceRefs/sourceVersion/stateAsOf` 回读冻结快照中的历史原文。
2. **严格冻结。** 所有历史原文、里程碑和窗口上界必须 `<= asOf`;目标章正文、目标章细纲答案、目标章出场清单及未来章、未来里程碑、终态摘要一律禁读。无法证明上界的来源按未知或省略处理。
3. **双证据而非卡片灌入。** 正文上下文以目标章前连续历史正文为基线,卡只触发补充原文回读;未经原文或正式设定、Canonical 状态、已确认细纲支持的卡内容不能单独成为事实证据。
4. **正文按细纲执行。** 细纲的硬事件、结果方向、伏笔动作、必须出场实体和章末钩子不可删除、反转或提前回收;缺细纲时停止,不由 writer 自编。
5. **先审后入。** 正文和规划先形成 Shadow 候选;机械门、语义检测或质量审查不通过时必须修订并以新候选版本重跑,不得绕过审查直接写入 Canonical。
## 6. 模型边界
- 清洗、抽卡、范式拆取及其模型调用统一走 `call-content-model` Skill,不裸调 New-API。治理政策固定为 5 小时额度窗:MiniMax 模型累计花费上限 `$24`,全模型成功调用上限 `6000`;运行适配器、正式配置和账本是额度合同的事实源,共享库 `muse_llm` 与 `muse_db.WINDOW_BUDGET_USD` / `WINDOW_CALL_CAP` 是实现,Skill CLI 只做入口,`test_quota.py` 只提供回归证据;模型链切换必须由该治理入口留下日志。
- 角色模型归属和派发字段以 [角色合同](muse/sot/角色合同.md) 为准:`planner`/`writer`/`judge` 固定 `opus`;`extractor`/`detector` 可在合同允许的治理策略内运行。每次框架调用必须显式传入 `provider`、`model` 和 `thinking`,不得从环境变量静默补全。拆书/导入侧抽取经 `call-content-model`/`deconstruct-book` Skill 走 MiniMax-M3,不走角色 model 派发;创作期章后抽取作为角色派发,可用 `opus`。
- 确定性脚本、合同校验、快照冻结、泄漏审计和报告生成不调用模型;除非对应 `SKILL.md` 明确声明模型步骤,不得把机械任务升级为模型任务。
- 固定 Opus 角色生成或评测只在对应任务 SoT、显式预算、冻结 profile 和原文用途授权全部满足后运行;自动化调用走 Anthropic 兼容 HTTP 适配器,不读取 Claude Code 配置,不启动模型 CLI。任一前置门失败都关闭执行。
- 角色的模型策略版本、模型别名、完整模型 ID、预算和回执必须与冻结配置一致。`planner`/`writer`/`judge` 不得因模型不可用而降级到内容模型链或更换供应商;需要变更时先取得明确授权并更新角色合同、profile 与探针。
## 7. 会话编排与汇报
- 主会话负责上下文组装、任务编排、机械校验和结果裁决;设定、大纲、细纲、正文和知识卡等创作内容由 `.agent/agents/` 中对应角色以子代理形式派发产生。该边界不限制主会话执行授权范围内的框架维护、只读核验和测试。
- 派发角色时必须显式指定模型,并遵守第 6 节的角色模型归属;不得由调用方静默换模型或绕过 skill 的模型治理。
- 每次创作生成结束后,向用户说明使用了哪些依据、候选或报告位于哪里,以及涉及哪些伏笔动作;不得把运行日志当作用户可观察的结果界面。
- 全程使用简体中文。任务正常执行期间只汇报关键里程碑;任务终止或需要用户决策时,第一句先说明用户现在需要做什么。
- 内部代号和英文术语要么不用,要么当场用白话解释;一句话只表达一件事,常规汇报以 30 秒内可读完为限。
- **汇报禁止 AI 味**:不堆抽象标签、不用空转缓冲词(其实/往往/某种程度上)、不假对照(不是 A 而是 B)、不凑数排比、不段末升华;具体压倒抽象,名词给实物、动词给动作。
- **需要用户决策时,每个决策点必须交代清楚**:前因后果(为什么需要这个决策、背景与约束是什么)、每个选项各自带来什么后果(选 A 影响什么、选 B 影响什么、对下游和全书走向各自意味着什么),用清晰的中文语义写;不许只列选项不交代后果,不许把后果写成抽象标签。
## 8. 数据与合规边界
- 主代理和业务 agent 不裸连 PostgreSQL 或 New-API。查询、写入和 DDL 走对应 skill 的 `scripts/`;专用导入、嵌入、检索也走各自 skill。
- 数据库写入、迁移、授权快照变更和批量运行必须先取得明确授权。DDL 先落 `muse/authority/db/ddl/` 的审计文件,再通过 `access-database` Skill 应用;不得用一次性直连命令绕过。
- 原书全文、完整问答、候选正文、标准答案和供应商响应按 raw 规则进库(单独表加访问控制,只读看板可看全文),授权、冻结边界遵守 `evaluate-frozen-replay` 合同。对外或跨任务引用的最终报告仍只保留评分、摘要、章节定位、失败类别和哈希,不直接复制全文。
- 未绑定、未授权、来源状态无效或超出用途范围的 `muse/content/entity/sources/` 与数据库来源不得进入上下文;失败时明确记录 `not_authorized`、`stale_source` 等原因,不静默降级。
## 9. 候选、改动与提交
- 创作候选默认不提交。用户明确选择接受或修改后合并,且实时审查通过后,才可经 `decide-candidate` 流程进入正式事实;丢弃也必须针对用户明确指定的候选。
- 框架改动与创作内容分开审查、分开提交。不得把 agents、skills、meta、脚本改动和正文、规划、知识卡候选混在同一提交。
- 任何 `git add` 或 `git commit` 都必须先取得用户明确授权;获得授权后,提交信息使用 `作品(书名): 动作 摘要` 或 `框架: 摘要`。
- **提交前必须形而上审查。** 取得授权后、执行 `git add` 前,必须起一个独立子代理,对即将提交的全部内容(先 `git diff` 出真实改动)从形而上层面审查四个维度:**逻辑完整性**(论点/合同/链路有无缺环、边界是否闭合)、**一致性**(与既有 SSOT、术语、字段合同、相邻文档有无矛盾)、**合理性**(设计取舍是否站得住、是否过度或不足)、**可行性**(是否真能落地运行、测试是否支撑结论)。审查只读、不改代码;四维给出明确结论(通过 / 带条件通过 / 不通过 + 具体问题),通过后才允许提交。框架改动与创作内容分别审查。
- 不覆盖、不还原、不暂存其他工作者或用户已有改动。执行前后都要核对真实 diff,只处理当前授权范围。
## 10. 评测结论与验证入口
- 明确区分**已验证事实**、**推断**和**假设**。报告必须给出证据来源;没有机械输出或运行证据时,不声称完成、修复或通过。
- 禁止从 `n=1` 样本推出普适结论。至少分析假阴、假阳、样本偏差和混淆因素;需要判断卡或模型效果时使用同任务、同模型、同预算、同公共上下文的对照,并把不稳定样本排除在方向结论之外。
- Python 一律使用仓内解释器 `.venv/bin/python`。先读目标 Skill 的 `SKILL.md`,再按 `muse/lifecycle/quality/harness/manifests/` 登记的类别和依赖选择相关验证;下面命令仅是现有局部验证入口示例:
```bash
.venv/bin/python tests/skills/plan-chapter/test_contract.py
.venv/bin/python tests/skills/call-content-model/test_quota.py
.venv/bin/python tests/skills/assemble-context/test_writer_contract.py
git diff --check
```
只运行与改动和风险相关的检查。测试涉及真实 PostgreSQL、New-API、Claude 或原文时,先核对授权、预算和副作用;不能把离线自测通过表述为真实链路通过。
## 11. Agent 提示词与 Skill 审查标准
新增、修改或定期复核任何 agent 提示词、skill 时,按本节逐条审。总原则:**一份提示词、一个 skill 只服务一个明确意图;与意图无关的词、约束、机制都是污染——它让执行者分心,也让合同两张皮。**
### 11.1 Agent 提示词(`.agent/agents/*.md` 与角色系统提示词)
角色稳定合同见 [角色合同](muse/sot/角色合同.md)。角色文件可以包含 Agent-facing 的身份、Skill 路由、推荐工具能力和工作方法;审查硬边界、模型策略、实际工具权限和结构化输出时以中心合同与适配器为准。
逐条问四个问题:
1. **面对谁**:这份提示词读给哪个模型/角色?它只该有这一个身份,不该同时背「执行器/评测器/审查器」之类第二身份。
2. **每个词都有意义吗**:逐词问——它对「这个角色干好本业」有用吗?框架名、schema 名、字段名、运行身份、哈希、评测状态这类机器词,对创作/规划/抽取/检测等本体任务毫无意义,是其它层的泄漏,应删。
3. **约束是该有的限制吗**:每条约束问——它是角色意图本身需要的,还是支架(harness)本就能强制的?**输出格式**由结构化输出 Schema 强制、**实际工具可用性**由调用参数强制、**盲化**由「输入里压根没有该信息」保证;角色文件可以解释 Skill 和工具的用途,但不能把提示文字当权限或结构门。
4. **正向与负向**:分清哪些部分**帮**角色达成意图(正向:本业纪律、领域边界、知情范围),哪些**妨碍**它(负向:与本业无关的机器约束、诱导照搬输入原文的措辞、让模型惦记评测的暗示)。负向部分删除或移到它该在的层。
> 反例(已纠正):评测写手提示词曾塞入「你是 Gate A 离线回放的 writer…只输出 candidateBody…不输出哈希/身份…不访问 MCP」,把评测支架混进创作提示词——既没有写作指导,又诱导写手照抄细纲概述句。正解:角色文件保留写作方法、Skill 路由和工具用途;输出格式、实际工具权限、盲化和证据绑定交给中心合同、Schema 与适配器。
### 11.2 Skill(以 `muse/lifecycle/quality/harness/manifests/skills.json` 的 `skill_path` 为准)
分类取值、七个评分维度、必备节清单和严重度定义的 Owner 是 [`muse/lifecycle/quality/harness/specs/skill-quality-rubric.md`](muse/lifecycle/quality/harness/specs/skill-quality-rubric.md);本节只规定审查怎么进行。**先跑机械门,再人工审**,不得用机械门跑绿代替人工判断:
```bash
.venv/bin/python muse/lifecycle/quality/harness/skill_harness.py --strict # 阻断项与质量发现一并必须为零
.venv/bin/python muse/lifecycle/quality/harness/test_skill_harness.py -q # 审计器回归
```
人工逐条问七个问题,括号内是对应维度:
1. **给谁用**:消费者必须明确、单一——主会话编排、某个角色 agent,还是别的 skill。只能由编排调用的必须声明 `orchestrated`;"不得由 Agent 自行触发"这类禁令写在散文里不算数。
2. **该用时会不会被用上**(D1,只对 `model_routed` 适用):`description` 是模型唯一的路由依据,必须写清做什么、何时用、何时不用,并对易混的 skill 点名交接。
3. **目的单一**(D2):一个 skill 只实现一个能力。功能并列、又当编排又当执行的,拆。
4. **边界不重叠**(D3):显式写出不做什么;集合内不得存在未声明的职责重叠。
5. **合同完整**(D4):必备节按分类裁剪;`scripts/` 只放运行时确定性实现与机械门,测试归 `tests/skills/`,清单与模板归 `references/`。
6. **可靠性与失败关闭**(D5):失败明确关闭,不静默降级、不返回假成功;错误带稳定码、不泄漏原文与密钥;确定性步骤真不调模型;走 `.venv`,不裸调 PG/New-API/模型。
7. **机制优先与边界一致**(D6、D7):能由 frontmatter、schema、adapter 或 `scripts/` 强制的约束不写成散文叮嘱;引用的路径、合同、字段与现行 SoT 一致,引用已失效合同的不得执行;`SKILL.md` 只留执行时必须常驻的内容。
还要问第八个问题——**用过之后系统有没有更强**(D8,`lifecycle ≠ platform` 适用):本次的方法与观察有没有沉淀成库内可被后续运行消费的资产,还是用完即散。
维度按 `lifecycle`、`invocation`、`side_effects`、`compounding` 裁剪适用范围,具体见评分标准第 3 节,不在本文件重复。
目录名必须等于 frontmatter `name`。执行动作的 Skill 命名采用小写 `动作-对象`,名称表达可调用能力,不复用 `scenario`、内部模块名或含混阶段词;创作方法 Skill 用小写领域名(如 `scene-craft`、`narration-pov`)。`scenario`、`source_type`、updater 和备份逻辑键是独立稳定标识,不随 Skill 改名。
### 11.3 审查产出
每次审查对每个被审对象给出:**面对谁 / 目的**、**逐条问题**(正向资产 + 负向污染,各标严重度)、**具体修改建议**。严重度只取阻断 / 严重 / 一般三级,定义见评分标准第 5 节,不由审查者临场发挥。审查只读、不改代码;修改另起授权,框架改动与创作内容分开提交。
## 12. 框架无关指令体系与去 AI 规范
全仓执行框架无关通用指令集设计,彻底杜绝英文术语混杂与宿主框架绑定。
### 12.1 框架无关指令设计(跨宿主通用)
1. **中立语法**:工具与技能引用一律使用反引号包裹的标准中文单名(如 `` `深模块设计` ``、`` `章级细纲` ``、`` `一致性检测` ``),严禁绑定特定宿主的斜杠命令(`/cmd`)、私有 CLI 标志或绝对物理路径,确保在 Claude、OpenAI、Codex、Pi、DSH 等任意 Agent 环境下均可无缝解析。
2. **纯粹指令语义**:指令文本剔除模糊描述与套话,严格只承担四类要素:**判定条件**(前置断言与阻断)、**执行动词**(明确有序步骤)、**数据契约**(输入输出结构)、**硬性禁止**(绝对红线与终止边界)。详见 [`.agent/规范/指令集规范.md`](.agent/规范/指令集规范.md)。
3. **双轴解耦**:将静态部署(核心底座、交互编排、可选扩展三部分)与动态研发时序(意图 $\rightarrow$ 设计 $\rightarrow$ 编码 $\rightarrow$ 治理 $\rightarrow$ 门禁 $\rightarrow$ 沉淀六阶段,详见 [`.agent/rules/执行流程.md`](.agent/rules/执行流程.md))彻底解耦,流程不随安装参数或部署环境变形。
### 12.2 全中文单名与上下文隔离
1. **三位一体单名制**:目录名、配置元数据 `name` 与正文自称完全统一为纯中文,杜绝“中文名 + 英文 ID”双轨歧义;智能体角色单名统一为 `写手`、`规划`、`检测`、`裁判`、`抽取`。详见 [`.agent/规范/术语规范.md`](.agent/规范/术语规范.md)。
2. **上下文洁癖**:Agent 运行时只加载纯中文执行正文;来源版本与历史修改记录物理隔离在溯源区,严禁历史元数据占用运行期 Token。
### 12.3 去 AI 味道工程规范
1. **人读文档**:坚决剔除“旨在、值得注意的是、综上所述、全面赋能、深度赋能”等清嗓子套话与假宏大叙事,直陈命令、默认值与失败后果。
2. **Agent 指令(Stop Ladder)**:以 Stop Ladder 决策阶梯与因果关联判据替代空洞说教,严格恪守“做被要求的工作,保留必要后果,其余全部停下”。详见 [`.agent/规范/去AI味道工程规范.md`](.agent/规范/去AI味道工程规范.md) 与 [`.agent/约束/红线约束.md`](.agent/约束/红线约束.md)。
<!-- my-skills-cli:begin -->
## 项目 harness
先读本表,再打开对应目录的 `目录.md`,按其中清单读取具体文件。
不要按宿主框架另建一套规则,也不依赖宿主的 skill 自动发现。
| 类别 | 读 | 说明 |
|------|-----|------|
| 项目设计与实施 | `docs/目录.md` | 架构、方案、实施计划/Runbook、模块概要与回顾(人机共读) |
| 团队规则与技能 | `.agent/目录.md` | 团队长期生效的硬规则、约束、代码规范与专属 Skill(<名>/SKILL.md 格式) |
| 个人配置 | `.agents.local/AGENTS.md` | 存在则先读:个人指令集、skill、草稿、便签(默认不提交) |
### 维护纪律
处理任何代码变更时,以项目已有架构、领域模型、ADR、编码规范和测试为准,优先保持代码可读、简单、局部且可维护,禁止无证据叠加抽象;新方案完成后必须清理被替代的实现、重复路径、旧配置、旧测试和文档残留,控制长期熵增。
提交:`AGENTS.md`、`docs/`、`.agent/` 全部内容。
不提交:`.agents.local/`、`.claude/`、`.codex/`、`.pi/`、`.opencode/`、`.cursor/`。
<!-- my-skills-cli:end -->