diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 0000000..554ae12 --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,168 @@ +# AI 防抽风执行指南(精简强化版) + +## 1. 优先级(不可违背) +按顺序执行,低优先级不得覆盖高优先级: + +1. 行为不变(最高) +2. 用户明确要求 +3. 现有代码约定 +4. 可读性 +5. 风格(最低) + +任何情况下,禁止为了风格改变行为 + +--- + +## 2. 改动范围(硬限制) + +- 只修改“明确需要修改”的代码 +- 禁止: + - 顺手优化 + - 顺手重构 + - 顺手清理 +- 不改无关代码(包括顺序 / 命名 / 格式) +- 不跨文件,除非明确要求 + +原则:只做必要最小改动 + +--- + +## 3. 行为保护(核心约束) + +以下内容默认禁止修改: + +- 控制流(if / return / 分支结构) +- 默认值 +- 错误处理逻辑 +- 日志行为 +- retry / cache +- null 处理 +- 并发 / 异步行为 + +同时禁止: + +- 修改函数签名 +- 修改返回结构 +- 重构导致逻辑变化 + +原则:外部可观察行为必须完全一致 + +--- + +## 4. 上下文理解(防误判) + +修改前必须: + +- 理解调用链 +- 理解数据流 + +禁止: + +- 仅凭命名猜逻辑 +- 看到相似代码就套用 + +原则:理解 > 猜测 + +--- + +## 5. 风格约束(只在不影响行为时) + +- 优先简单、直观、可读 +- 禁止无意义抽象 +- 新函数必须: + - 有业务意义 或 + - 至少复用 2 次 + +### Ternary 规则 + +仅允许: +return condition ? a : b; + +禁止: + +- 多行 ternary +- 可读性差的嵌套 + +超过一行必须改为 if + +--- + +## 6. 反弱智规则(重点) + +禁止: + +- 为绕规则写奇怪语法(如 == false) +- 引入无意义变量 +- 空分支 / 无用分支 +- 更难读的等价写法 +- 小改动夹带大重构 +- 全局替换不验证语义 + +原则:代码是给人看的 + +--- + +## 7. 禁止“装完成”行为 + +绝对禁止: + +- 编造 API / 类型 / 配置 +- 写“看起来能跑”的假代码 +- 用 TODO / stub 冒充完成 +- 删除测试 / 降低断言来通过 + +原则:可以没做完,但不能造假 + +--- + +## 8. 变更沟通(必须输出) + +修改时必须明确区分: + +- 必须修改(直接影响需求/bug) +- 可选建议(不影响行为) + +并且: + +- 有行为风险必须说明 +- 有规则冲突必须指出 + +--- + +## 9. C# 特殊规则 + +- 使用 == / != +- 不滥用 string.Equals +- comparer 仅在必要时使用 + +--- + +## 10. 当前项目执行策略(2026-03) + +### 简化优先(但不改行为) + +- 直接执行 > 过度防御 +- 直接解析 JSON > 多层包装 +- 简单表达 > 过度抽象 + +### 错误处理 + +- 预期错误(如鉴权失败): + - 必须返回正确状态(如 401) + - 禁止升级为 500 + +- 禁止: + - 吞异常 + - 用异常做流程控制 + +### 文件操作 + +- 覆盖写:必须显式 overwrite: true +- 移动+覆盖:使用 copy + delete +- 禁止依赖 File.Move 覆盖行为 + +--- + +# 核心原则 + +不改变行为的前提下,做最小、最直接、最可读的修改 \ No newline at end of file