AGENTS.md · git:20260918.442a82f · 2026-09-18 · sha256 09888d60730463f6
AGENTS.md git:20260918.442a82fA
Immutable. This exact content is served forever at /api/v1/blob/09888d60730463f6.
# AGENTS.md
本文件是 oh-story-claudecode 仓库自身的开发指引,给维护这个 skill 套件的 coding agent 读。它不是部署到用户写作项目里的那份 AGENTS.md;用户项目的 AGENTS.md / CLAUDE.md 由 story-setup 按 `skills/story-setup/references/*/AGENTS.md.tmpl` 生成,与本文件无关。
## 这个仓库是什么
一个网文写作 skill 套件:13 个 skill(`skills/<name>/SKILL.md` + `references/`),加上面向 Claude Code、Codex、OpenCode、OpenClaw、Antigravity、ZCode、Reasonix 七个编程 Agent(宿主)的适配层。产品是写在 Markdown 里的写作方法与工作流契约,不是运行时程序。`scripts/` 下是仓库自己的守卫、测试和代码生成脚本(索引见 [scripts/README.md](scripts/README.md)),不是 skill 运行时脚本。
## 改动前必须知道的规矩
- **frontmatter 单行键值**:`description` 不用 `|`/`>` 块,`metadata` 是单行 JSON,OpenClaw 依赖这一点。
- **不跨 skill 引用文件**:除基础组件 `browser-cdp` 外,一个 skill 的 SKILL.md / references 不得引用另一个 skill 的文件;共享内容走 `scripts/shared-references.json` / `scripts/shared-assets.json` 登记。
- **热路径有字数预算**:SKILL.md、references 和 agent 模板受 `scripts/doc-budget.json` 约束,加正文要么删等量旧文本,要么显式调高预算并说明。
- **工作流编号是契约**:Step / Phase / Stage 编号与引用绑定由 `skill-numbering.py` 守卫,重排要跑它的级联而不是手改。
- **改 agent 模板或 CLAUDE.md.tmpl 后必须重新生成适配层**(OpenCode、Codex、Antigravity 等)并提交生成结果,否则适配层 CI 红。
- **skill 文档禁止裸调 `python3`**,须走 python3 → python → py 探测。
- **改名或移动任一 `scripts/` 脚本**,要同步 `.github/workflows/*.yml`、CONTRIBUTING.md、scripts/README.md 和调用它的兄弟脚本。
- 本文件不得出现 story-setup 用来识别已部署项目的标记文本(各端 AGENTS.md.tmpl 的标题行),否则在仓库根运行 story-setup 会把仓库误判为已部署项目。
完整规则、各编程 Agent 适配维护步骤与提交流程见 [CONTRIBUTING.md](CONTRIBUTING.md)。
## 验证
强制清单以 `.github/workflows/cross-platform.yml` 为准;提交前按 [CONTRIBUTING.md](CONTRIBUTING.md)「CI 检查」里的本地命令跑一遍与改动相关的守卫,至少 `bash scripts/static-check.sh`、`python3 scripts/skill-numbering.py check`、`bash scripts/check-doc-budget.sh`、`bash scripts/check-shared-files.sh`。
## 重要改动必须留笔记
决策笔记放在 `.agents/notes/{proposed,implemented,rejected}/{feature,bug-fix,simplification,architecture,process,testing}/yyyy-mm-dd-topic.md`,沿用 DeepSeek Harness 的 agent-notes 约定(方法见 https://github.com/czm15053/write-notes-like-deepseek)。正文中文,小节标题保留英文。
1. 非平凡改动(改了 agent 可观察的工作流步骤、跨 skill 契约、主产物或落盘格式、适配层结构、守卫脚本与 CI、测试策略)动手前,先在 `.agents/notes/` 里搜同主题旧笔记:有归属就地更新事实;没有就先写 `proposed/`,落地时随同代码在同一次提交里转 `implemented/`。纯机械改动(排版、改名、版本号、不改行为的补丁)直接提交,不写。
2. 每篇必有 `## Problem`、`## Decision`(现在时,只写已落地事实)或 `## Proposal`、`## Alternatives considered`(每个被否方案先写它最强的理由再写为何不用,没考虑过的不要编)、`## Consequences`(收益和代价都写)。
3. 禁止把一篇笔记改写成相反的决定:事实(路径、名字、默认值)就地改;决定翻转就另开一篇并互链。
4. 不建 `INDEX.md`,目录位置就是状态;检索用 `rg --hidden .agents/notes/`。