AGENTS.md · diff
git:20260909.7a703fe to git:20260910.256ad8e
1 added, 0 removed. Audit A to A.
# AGENTS.md - OMK 项目约定
OMK(Observe. Measure. Know.)通过固定模型、改变知识载体,观测和测量 prompt、RAG、skill、agent、workflow 的版本差异。所有改动优先保护测量可比性、证据完整性和用户数据。
本文件是工具中立的项目入场清单。Claude Code 通过 CLAUDE.md import;不为不同工具复制维护第二份项目规则。
## 开工与交付
- 涉及 commit、PR、分支或发版时,读取 CONTRIBUTING.md 的相关流程;同一任务已读且未变化时复用。
- 修改子目录前,检查从仓库根到目标文件路径上的 AGENTS.md,最近的文件补充或覆盖上层项目约定;普通局部任务不遍历全仓规则。
- 开工先明确需求、非目标、受影响边界和风险。用户确认方向后,在已授权的交付链内连续推进,不在实现、验证、自主 CR 等常规步骤间反复询问下一步。合并和发版分别按已有授权判断,不将合并等同于发布授权。
- 默认直接替换旧实现,不为没有明确需求的旧入口、旧字段或旧行为保留兼容层、别名和双轨分支。涉及已发布的公共契约或存量数据时,先说明影响与替换/迁移方案,向用户确认后执行,不自行决定兼容,也不直接做破坏性替换;当前任务已有明确决定时不重复确认。必要的破坏性变更仍须遵守下述版本化与迁移要求。
- 长任务及时更新对应 Issue/PR 的已有执行清单,状态以实际完成情况为准。
- 开发反馈优先跑受影响验证;首次 push 前默认跑一次 yarn ci,除非用户明确要求更窄验证,或改动仅限不影响生成产物、链接、打包与行为的手写文档/规则。首次 push 后事实未变化时,不为交付机械重跑本地门禁;存在远端 CI 时,以其结果补充确认。事实变化时,后续修复成批完成,并按影响范围重跑精准验证或完整门禁,不把远端 CI 当作增量反馈环。
+ - 测试维护同时做加法和减法:新增或迁移测试时,审视受影响的既有用例,删除失效或仅绑定已替换实现细节的断言,合并重复覆盖,优先复用、改写现有测试;不以用例数量增长代表质量提升,也不为减少数量牺牲关键行为与失败路径的覆盖。
- clean-room 验收只在发布、打包/安装契约变化、真实用户入口变化或风险审查明确要求时执行;触发条件、被测边界与证据未变化时不重复执行。
- 人工启动 Studio 供用户查看时,优先使用用户指定的固定端口,否则使用 CLI 默认固定端口;不主动传 `--port 0`。端口占用时先识别已有服务,确认属于本任务后再复用或重启,不擅自改用随机端口。随机端口仅用于隔离自动化测试或用户明确要求的场景;展示地址仍使用 `server.start()` 返回值。
## 自主 CR 与完成定义
- 改变行为、契约、打包、文档承诺或仓库规则的改动,在首次 push/交付前自主完成一次 CR;纯机械改动快速复核,深度与风险匹配。
- 首次自主 CR 前必须完整阅读 [`CODE_REVIEW.md`](./CODE_REVIEW.md);同一任务规则未变化时复用,不重复加载。以审查者视角只读检查最终变更、直接调用边界、契约和验证证据;发现跨模块影响时沿证据扩大范围。可使用独立 reviewer,否则做 fresh-pass 自审。
- P0~P2 在交付前解决,P3 解决或登记 follow-up。修复后复查受影响面并重跑受影响验证;只有架构/公开行为实质变化、CI 新问题、重要 rebase 冲突或外部审查提出新高风险方向时,才重新做完整 CR。
- Finding 的证据、优先级和格式遵守 CODE_REVIEW.md。无 finding 时明确说明,不制造猜测性问题;门禁、真实用户路径和未验证范围如实报告,不以 CI 绿色代替需求完成。
- 用户要求审查具体 PR 时,将结论直接发布到对应 PR;用户明确要求仅本地审查时不发布,未指定或无法确定对应 PR 时不猜测发布对象。
### CR 运行产物隔离
- artifacts/cr/ 和 knowledge/cr/ 不是源码资产,不得在仓库内创建或保留,也不用 .gitignore 隐藏。纯只读审查不创建过程文件;只有实际运行会写盘的 CR 工具时,才用唯一仓库外临时目录保存全部运行产物,并显式配置输出路径,不得执行回写仓库的结果同步。
- CR 前后检查工作树状态,确保审查工具未产生额外污染,不清理或覆盖用户原有修改。Issue/PR/CI 是持久审查记录;只有用户明确要求时才将报告作为项目资产提交。
## Code Review Rules
- 不静默改变评分口径、统计语义、prompt 字节、Schema identity 或持久化契约。必要变更显式版本化,在 PR 标题/描述标记对应 BREAKING-*、迁移及测量影响。
- eval-core 保持宿主无关和确定性,不反向依赖 CLI、文件系统、网络、环境变量、具体执行器或 Studio。Core 只表达纯契约与确定性变换,副作用放在 eval-workflows 或对应 adapter。
- 保留来源、时间、关联身份与原始证据;派生视图不覆盖原始证据,观测信号不冒充因果结论。
- 测试使用显式临时根和环境隔离,覆盖失败/中断后的 cleanup 路径;生产写入只落到公开存储契约允许的位置,不擅自写用户目录或全局状态。
- 新建或可安全改名的判别字段使用 eventKind、runtimeKind 等限定名;裸 kind 默认保留给 Artifact.kind。已发布、落盘或对外暴露的 public schema 既有 kind 不顺手改名;必要改名单独迁移并保持旧文件可读。细节见 docs/specs/terminology-spec.md §5.4。
- 用户可见服务 URL 使用 server.start() 返回的实际地址,不硬编码端口。
- .agents/skills/omk/ 是官方 Skill 单一来源,.claude/skills/omk 保持软链,不复制第二份;本文件不重复 Skill 用户教程。
## Git 与写作
- main 是唯一长期分支;从 main 创建短分支,通过 PR 合并,不直接提交 main,也不恢复 develop 流程。发版通过短分支 PR 回 main,再由 tag 触发;具体流程见 CONTRIBUTING.md。
- 分支默认使用 codex/ 前缀。提交格式为 type(scope): 中文 subject,scope 使用稳定模块名,本文件使用 agents-md。
- 用户可见文案中文优先,中文使用全角标点;代码、路径、命令、URL、frontmatter、数学区间、技术标识符及英文技术括注保留对应语法。Conventional Commits 的 type(scope): 前缀保持半角。
- LLM judge 统一称为“评委”,不称“判官”。PR 审查评论语言跟随用户操作系统设置语言。
- PR 说明用户影响、迁移及测量限制,链接相关 Issue/前置 PR;不堆叠行号、测试清单或 diff 已体现的嵌套实现细节。
## 参考入口
- 用户文档:README.md、README.zh.md。
- Skill:.agents/skills/omk/SKILL.md。
- 审查:CODE_REVIEW.md。
- 设计规范:docs/。
- Git 与发版:CONTRIBUTING.md。