别把整份代码规范塞给 Codex:我用这 5 类项目规则减少无关修改
上一篇我把前端代码风格拆成了格式、结构、状态、契约和行为 5 个层次。问题随之而来已经识别出的项目风格哪些应该写成规则让 Codex 每次都遵守最直接的做法是把团队现有代码规范、开发手册、目录说明和历史经验全部整理进一个文件。我不建议这样做。规则越长不代表约束越强。真正影响当前任务的内容可能被大量背景说明淹没一些已经由格式化和 Lint 工具控制的要求被重复描述只适合某个模块的写法被错误提升成全局规范尚未形成共识的经验也可能被写成硬规则。最后Codex 读到了很多文字却仍然不知道当前任务允许改到哪里应该参考哪一套实现哪些公共契约不能动异常和生命周期怎样处理修改后必须拿出什么证据。所以我现在筛选项目规则时不问“这条规范重要不重要”而问四个更具体的问题它是否会在多个任务中重复出现它是否已经稳定不需要每次重新讨论它能否被写成明确动作或边界它是否有代码、配置或检查可以验证四个条件大致成立才值得成为持久项目规则。先分清项目规则不等于团队所有知识团队知识里至少有四种内容它们不应该全部进入同一个规则文件。稳定项目约束例如必须使用现有请求封装、公共组件修改需要先查全部引用、当前目录使用指定检查脚本。这类内容适合成为项目规则。当前任务约束例如“本次不改接口协议”“只处理编辑弹窗不重构列表”。它只对当前任务有效应该写在任务卡或当前提示中。背景说明和设计原因例如某段架构为什么演进成现在这样。这些信息有助于理解但不一定适合压缩成每次执行都加载的硬指令。可以放在专门文档中由规则指向它。尚未确定的选择例如团队还在讨论使用局部状态还是全局状态。它应该被标成待决定问题不能提前写成 Codex 必须遵守的标准。如果这四类内容混在一起规则文件很快会同时扮演规范、需求、架构文档和会议记录最终谁也看不清哪些内容必须执行。第一类规则修改范围与禁止项我最先写的不是代码写法而是修改边界。前端项目很容易因为一个局部需求牵出公共组件、全局样式、请求封装和状态模块。Codex 如果只知道“完成目标”通常会选择一条自洽的实现路径但这条路径不一定符合团队愿意接受的修改范围。有效的范围规则应该说明哪些位置默认允许修改哪些公共位置修改前必须先说明影响哪些目录属于生成代码或第三方代码禁止直接编辑哪些无关重构、格式化和依赖变化默认不允许发现计划外文件时应该怎样暂停。例如## 修改范围 - 业务页面任务默认只修改当前功能链上的文件。 - 修改公共组件、公共请求层、全局状态或路由守卫前先列出调用方和兼容影响不得直接扩大范围。 - 不编辑生成目录、构建产物和第三方代码。 - 不在功能修改中夹带无关重命名、全文件格式化、依赖升级或结构重构。 - 实际范围超过计划时先更新计划和验收方式再继续。这类规则能直接减少差异噪声。它不会限制 Codex 发现问题。AI 仍然可以指出公共模块存在隐患但“发现问题”和“顺手修复”应该是两件事。第二类规则参考实现与选择顺序只写“遵守现有代码风格”太模糊我会明确参考顺序。有效的参考规则应该回答当前模块优先参考哪些位置哪些目录属于旧版或只能作为反例多种写法冲突时按什么顺序判断参考代码中的哪些部分可以迁移没有可信参考时应该怎样处理。例如## 参考实现 - 新增列表行为时优先参考当前模块中仍在维护的同类页面不以旧版目录或演示页面作为默认标准。 - 参考优先级当前任务明确要求 当前目录规则 直接调用契约 当前模块稳定实现 其他模块实现 框架通用写法。 - 使用参考前说明相同点、差异和不能照搬的部分。 - 找到多种冲突模式时列出证据并暂停不按文件数量自行选择。这类规则把“模仿”改成了有来源的选择过程。需要注意规则不应固定某个临时文件路径。如果参考页面经常变化更合适的写法是描述参考条件并在当前任务中给出具体文件。第三类规则公共契约与职责边界这类规则用于防止 Codex 为了方便局部实现改变项目已经稳定的接口。可以覆盖页面、组件、状态和请求层的职责Props、Emits、插槽和暴露方法的基本约定接口数据在哪里转换类型定义的来源公共组件和公共方法的兼容要求新增抽象的条件。例如## 契约与职责 - 页面负责连接用户入口和业务流程请求参数转换保持在项目现有转换位置不在展示组件中拼装接口协议。 - 子组件不得为了同步方便复制长期状态状态唯一来源以当前模块现有实现为准。 - 修改公共 Props、Emits、类型或请求契约前先查全部直接调用方并说明兼容策略。 - 单一调用点的局部逻辑默认不新增公共封装确需抽取时说明复用对象和验证范围。这里最好避免绝对化术语。比如“所有状态都必须放 Pinia”通常不是好规则因为表单临时状态、跨页面状态和服务器缓存并不属于同一种问题。更可执行的规则是说明什么状态属于公共层什么状态应留在组件或页面以及出现例外时需要什么理由。第四类规则异常、反馈与生命周期很多项目规则只约束正常路径导致 AI 生成代码的异常行为每次都不一样。我会把高频行为写清Loading 的作用范围重复提交怎样阻止请求失败后保留还是恢复哪些状态错误提示使用哪个项目能力弹窗关闭、页面离开和重新进入时怎样清理异步竞态怎样避免旧结果覆盖新状态成功后由谁刷新数据。例如## 异常与生命周期 - 提交动作使用项目现有按钮状态或请求状态能力未结束前不得产生不受控的重复请求。 - 请求失败时按当前业务要求保留用户输入是否关闭弹窗不能由实现自行决定。 - 打开、关闭和切换对象时显式检查表单数据、校验信息、Loading 和未完成请求的处理。 - 成功后的刷新、页码和筛选状态由页面现有数据流决定不在子组件中直接重建列表状态。这类规则必须允许业务差异。“失败时永远保留数据”或者“弹窗关闭时永远清空”都可能过度统一。项目规则应该写稳定原则具体结果仍由任务验收标准决定。第五类规则验证和交付证据没有验证规则前四类规则很难知道是否真的执行。我会明确修改前需要确认什么基线每类文件修改后运行哪个已有检查哪些页面路径必须人工验证完整差异要检查哪些越界信号无法运行的检查怎样报告交付说明至少包含什么。例如## 验证与交付 - 优先运行仓库已有的类型、测试、Lint 和构建脚本不自行假定检查范围。 - 页面行为变化必须列出正常、失败及与本次需求相关的连续操作路径。 - 交付前审查完整差异确认没有计划外文件、无关格式化、临时日志和依赖变化。 - 结论分为已通过、未通过和未验证环境无法执行的检查不得写成通过。 - 交付说明包含实际修改范围、检查结果、页面验证、已知限制和剩余风险。验证规则的价值是把“遵守项目规范”变成可以观察的结果。我用四个字段写一条可执行规则一条项目规则如果只有口号很难约束实现。我会尽量包含四个字段触发场景 要求动作 判断证据 例外处理例如把下面这句公共组件要谨慎修改。改成当任务需要修改公共组件的 Props、Emits 或默认行为时 1. 先查全部直接调用方 2. 列出可能发生变化的现有行为 3. 给出兼容方案和对应检查 4. 未确认兼容策略前暂停修改。 仅内部实现且公开行为不变的局部修复可以按普通组件任务处理但仍需回归主要调用路径。前一句表达态度后一句才能指导动作。再比如“遵守代码风格”可以改成新增页面逻辑前先选择当前模块一个职责相同的稳定实现作为参考说明结构、状态、契约和异常处理的相同点与差异没有可信参考或参考冲突时将其列为待确认项不自行引入新模式。规则越能指出何时触发、做什么、怎样证明以及何时暂停越容易在任务中真正生效。规则应该放在哪里取决于它约束多大范围OpenAI 的 Codex 文档说明AGENTS.md可以用于提供持久的项目指令Codex 会从项目根目录沿当前工作目录读取指令离当前目录更近的文件可以提供更具体的约束。因此我会按适用范围分层而不是把所有内容放在仓库根目录。仓库级规则适合放包管理和基础命令全仓库禁止项通用验证要求公共模块修改流程交付和审查要求。应用或模块级规则适合放当前应用的目录职责页面、状态和请求封装该模块的参考实现特定测试或构建方式与其他应用不同的约束。当前任务提示适合放本次目标本次允许和禁止范围当前需求中的例外具体参考文件本次验收路径。规则离代码越近不代表优先级可以无限覆盖业务要求。当前任务如果需要偏离稳定规则应该显式说明原因和验收方式而不是让两套指令暗中冲突。官方文档还建议把规则写得简洁说明需要识别的行为以及安全路径或例外并把格式和 Lint 等机械检查交给持续集成或对应工具。这与我的使用感受一致持久规则应该保留工程判断机器已经能稳定判断的格式问题不必反复占用上下文。哪些内容我不会写进持久规则单次需求细节某个字段是否必填、某次弹窗保存后是否关闭只属于具体任务除非它已经成为跨模块稳定约定。没有共识的偏好“我更喜欢这种写法”不能自动成为项目标准。先通过真实任务验证再决定是否沉淀。已由工具完整执行的格式要求可以记录检查命令和范围但没必要把格式配置翻译成几十条自然语言。不能验证的效果承诺例如“这样写性能更好”“这种结构更容易维护”。没有基线和适用条件时它们只是判断不是规则。过度具体、很快失效的实现细节把当前文件名、变量名和暂时目录结构写死项目一调整规则就会误导后续任务。规则减少无关修改需要同时设置“允许”和“停止”很多规则只告诉 Codex 应该怎么写没有说明什么时候不应该继续。我会给关键规则配暂停条件触发情况Codex 应做什么需要修改计划外公共模块列影响和调用方暂停等待范围更新同类实现存在冲突说明差异和证据不自行投票规则与当前代码不一致判断是旧代码、规则过期还是特例检查无法运行说明原因与替代验证标记未验证需求要求偏离项目惯例明确偏离原因、范围和回归路径发现可顺手修复的问题记录建议不混入当前差异“允许做什么”控制实现方向“什么时候停”控制风险扩散。一份可以直接裁剪的前端项目规则模板# 前端项目协作规则 ​ ## 1. 当前范围 - 本目录负责 - 默认允许修改 - 修改前需要确认 - 禁止直接编辑 - 不夹带的无关工作 ​ ## 2. 参考顺序 - 当前模块参考条件 - 旧版、示例和特殊实现 - 多种写法冲突时 - 没有可信参考时 ​ ## 3. 职责与契约 - 页面、组件、状态和请求怎样分工 - 公共 Props、Emits、类型和请求契约的修改要求 - 状态唯一来源与数据转换位置 - 新增公共抽象的条件 ​ ## 4. 异常与生命周期 - Loading 与重复操作 - 请求失败后的状态 - 打开、关闭、离开和重入 - 异步竞态 - 成功后的刷新责任 ​ ## 5. 验证与交付 - 仓库已有检查 - 页面验证路径 - 完整差异检查 - 无法验证时的报告方式 - 交付说明必须包含 ​ ## 6. 暂停条件 - 计划外公共修改 - 规则或参考冲突 - 契约不明确 - 验证能力缺失这份模板不是要求每个项目填满所有栏目。真正使用时应该删除与当前目录无关的内容只保留高频、稳定、可执行和可验证的规则。写完规则后我会做一次反向检查它解决过真实重复问题吗如果从未在项目中发生也没有明确风险依据先不要为了“完整”添加。它能指导动作吗“保持优雅”“注意性能”“合理拆分”都难以执行需要补充触发场景和判断证据。它是否放在正确范围只适合一个业务模块的规则不应影响整个仓库。它是否与自动工具重复机械格式交给工具规则保留范围、契约、行为和验证要求。它是否允许例外和暂停没有例外的绝对规则很容易迫使 Codex 在特殊场景中做出错误统一。写在最后我用项目规则约束 Codex不追求把团队所有知识都写进去。我优先保留 5 类内容修改范围和禁止项参考实现与选择顺序公共契约和职责边界异常、反馈与生命周期验证方式和交付证据。每条规则尽量包含触发场景、要求动作、判断证据和例外处理再按仓库、应用或模块的作用范围放置。这样做的目标不是让 Codex 机械复制现有代码而是减少与当前需求无关的自由度不随意选择参考、不顺手创造新模式、不扩大修改范围也不在没有证据时宣布完成。下一篇会进入第 2 周 Day 3修改一个前端组件之前为什么必须先查调用链。我会具体拆解入口、Props、Emits、插槽、暴露方法、状态和样式依赖说明怎样判断一个看似局部的改动会影响到哪里。本系列持续更新。后续会用调用链和影响范围继续检验这些项目规则看看它们能否真正控制多文件修改而不是只停留在文档中。每日好工具推荐在这里推荐一款超好用的图片压缩工具——“图压”在线图片压缩免费压缩 JPG、PNG、WebP - 图压工具。同事安利给我的用过后真的觉得太香了支持批量压缩、调整压缩百分比最关键的是它是离线程序下载到本地就能反复用。我平时做自媒体和写前端时经常用到再也不用去网上找在线压缩工具了。它也带在线压缩功能很方便。

相关新闻

Codex 写的前端代码能运行,为什么还是一眼不像这个项目?

Codex 写的前端代码能运行,为什么还是一眼不像这个项目?

前两篇解决了 Codex 接手陌生前端项目的第一步:先确认项目边界、规则、执行方式和启动链,再沿目录、配置和入口文件建立最小项目地图。 地图建立以后,文件通常已经找对了,但新的问题很快会出现: Codex 写出的代码可以…

2026/8/6 19:55:32 阅读更多 →
Copilot改按量计费后,我找了个不绑客户端的平替方案

Copilot改按量计费后,我找了个不绑客户端的平替方案

Copilot改按量计费后,我找了个不绑客户端的平替方案写代码写了十几年,AI编程工具换了一茬又一茬。Cursor估值冲到500亿美元,Claude Code年化收入25亿,Copilot付费用户超470万。三家里都用过一阵,去年6月Copilot全面转按…

2026/8/6 19:55:32 阅读更多 →
专业的论文降AIGC率哪个更靠谱

专业的论文降AIGC率哪个更靠谱

嘿,朋友!我深耕论文降AIGC率这个垂类都5年啦,经手过10w 爆款内容,今天就跟你好好唠唠专业的论文降AIGC率到底哪家更靠谱。行业深度观察现在写论文的时候,很多人会借助AIGC工具来找找灵感、补补资料。但难题也来了&…

2026/8/6 19:55:32 阅读更多 →

最新新闻

Unity色彩空间实战:Gamma与sRGB配置指南

Unity色彩空间实战:Gamma与sRGB配置指南

1. 项目概述:为什么你的游戏画面总是不真实?你有没有遇到过这种情况?在Unity里精心制作了一个场景,美术资源都是顶尖的,但最终在屏幕上呈现的效果,总觉得哪里不对劲——颜色发灰、光照混合不自然、阴影过渡…

2026/8/6 20:53:00 阅读更多 →
移动端MCP跨平台部署指南:一次配置,在VS Code、Cursor和Claude Desktop中统一AI开发体验

移动端MCP跨平台部署指南:一次配置,在VS Code、Cursor和Claude Desktop中统一AI开发体验

1. 项目概述:为什么我们需要一个统一的移动端MCP部署方案?如果你和我一样,日常开发需要在VS Code、Cursor和Claude Desktop这几个主力工具之间频繁切换,那你一定遇到过这个痛点:好不容易在VS Code里配置好了一套趁手的…

2026/8/6 20:53:00 阅读更多 →
Navicat无限试用终极指南:如何轻松解除14天限制

Navicat无限试用终极指南:如何轻松解除14天限制

Navicat无限试用终极指南:如何轻松解除14天限制 【免费下载链接】navicat_reset_mac navicat mac版无限重置试用期脚本 Navicat Mac Version Unlimited Trial Reset Script 项目地址: https://gitcode.com/gh_mirrors/na/navicat_reset_mac 还在为Navicat Pr…

2026/8/6 20:53:00 阅读更多 →
2026年企业级分布式坐席系统品牌实力盘点:谁在领跑行业?

2026年企业级分布式坐席系统品牌实力盘点:谁在领跑行业?

随着智慧城市、应急调度、能源电力、交通枢纽等行业数字化建设持续深化,分布式KVM坐席系统已成为指挥调度大厅、数据管控中心、多级会商场景的核心基础设施。传统集中式矩阵设备存在扩展性差、跨域传输卡顿、安全防护薄弱等短板,具备低延迟、全域互联、A…

2026/8/6 20:53:00 阅读更多 →
pdf-inspector常见问题解答:解决使用中的疑难杂症

pdf-inspector常见问题解答:解决使用中的疑难杂症

pdf-inspector常见问题解答:解决使用中的疑难杂症 【免费下载链接】pdf-inspector Fast Rust library for PDF inspection, classification, and text extraction. Intelligently detects scanned vs text-based PDFs to enable smart routing decisions. 项目地址…

2026/8/6 20:53:00 阅读更多 →
txtai:一站式AI框架如何用3个核心功能改变语义搜索和LLM应用开发

txtai:一站式AI框架如何用3个核心功能改变语义搜索和LLM应用开发

txtai:一站式AI框架如何用3个核心功能改变语义搜索和LLM应用开发 【免费下载链接】txtai 💡 All-in-one AI framework for semantic search, LLM orchestration and language model workflows 项目地址: https://gitcode.com/GitHub_Trending/tx/txtai…

2026/8/6 20:51:59 阅读更多 →

日新闻

深入解析LimboAI C++内核:架构设计与性能优化实战

深入解析LimboAI C++内核:架构设计与性能优化实战

1. 项目概述:为什么我们需要深入LimboAI的C内核?如果你是一名使用Godot引擎的游戏开发者,尤其是对AI行为逻辑有较高要求的项目,那么LimboAI这个名字你大概率不会陌生。它作为Godot 4生态中一个备受瞩目的行为树与状态机插件&#…

2026/8/6 0:00:06 阅读更多 →
Unity 2D游戏敌人AI系统:基于PlayMaker状态机与2D Toolkit的实战开发

Unity 2D游戏敌人AI系统:基于PlayMaker状态机与2D Toolkit的实战开发

1. 项目概述与核心思路大家好,我是老张,一个在游戏开发一线摸爬滚打了十多年的老码农。今天咱们接着聊《空洞骑士》风格2D动作游戏的Demo制作。上一期我们搭好了基础框架,处理了角色移动和碰撞,这一期,我们要让游戏世界…

2026/8/6 0:00:06 阅读更多 →
被动防火门市场前景发展趋势

被动防火门市场前景发展趋势

被动防火门依靠材质结构、密闭构造阻隔烟火蔓延,无需电控启动,是建筑被动消防系统核心构件,行业依托新规管控、城市更新、工业安全升级迎来稳定扩容,整体朝着合规化、专项化、低碳化、智能化方向发展。现阶段 GB12955‑2024 新版国…

2026/8/6 0:00:06 阅读更多 →

周新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/5 15:00:43 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/5 13:13:56 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/5 10:20:36 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/5 23:28:39 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/5 21:00:14 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/5 23:46:51 阅读更多 →