首页 文章 精选 留言 我的

精选列表

搜索[coding],共3372篇文章
优秀的个人博客,低调大师

给Coding Agent立规矩:一套可落地的六层治理架构

> AI 编码助手最大的风险不是写得差,而是"不受约束地做错事"。我把个人工作台的治理体系拆成了六层——宪法层定原则、执法层做硬拦截、流程层管怎么做、知识层管经验复用、协作层管交叉评审、记忆层管跨会话沉淀。核心思路一句话:**提示词是君子协定,机制才是法律。** > > 文中机制基于 ZCode 的 AGENTS.md / hooks / 子代理 / 记忆体系实现,但设计思路适用于所有具备"规则文件 + hooks + 子代理"能力的 CLI 编码智能体(Claude Code、CodeBuddy 等)。 ## 一、为什么需要治理:三类典型的翻车现场 用过 AI 编码智能体的人,多半撞见过三类问题: 1. **数据误伤。**"帮我整理一下这张表"——它很勤快地清洗完,直接把结果**写回了原文件**。清洗逻辑有 bug?抱歉,覆盖就是覆盖了,原始数据没了。 2. **流程失控。**一句模糊需求,它直接改了十几个文件,方向还不对。返工的成本比你自己写还高。 3. **质量幻觉。**它说"完成了,测试通过"。但"测试"是它临时编的两行断言,主流程根本没跑过。自己写、自己查、自己宣布合格——既当运动员,又当裁判。 三类问题的共同根源:**模型的"自觉"是概率性的,关键约束不能只存在于提示词里。** 这套架构的出发点,就是把最重要的规则从"约定"升级为"机制"。 ## 二、总体设计:六层治理模型 ``` L1 宪法层 AGENTS.md 工作宪法 │ —— 每次会话自动注入,只写原则级规则 L2 执法层 Hooks + 保护清单(data-guard.lock) │ —— Write/Edit/Bash 硬拦截、契约门、报告门、纪律卡片注入 L3 流程层 Skills(按需加载) │ —— 数据安全细则、开工契约、检查-修复循环 L4 知识层 知识库 + 路由表 │ —— 查阅型工程经验,场景命中时才读 L5 协作层 Subagents(窄而专) │ —— 设计评审、独立第三方代码审查 L6 记忆层 Memory(跨会话持久化) —— 用户偏好、项目上下文、反馈教训 ``` 各层职责与加载方式: | 层 | 载体 | 职责 | 加载方式 | | --------- | ---------------- | ---------------------------------------- | ------------------ | | L1 宪法层 | AGENTS.md | 定原则:数据红线、开工契约、质量闭环 | 每次会话自动注入 | | L2 执法层 | Hooks + 保护清单 | 违规硬拦、流程门禁、纪律提醒 | 框架事件触发 | | L3 流程层 | Skills | 具体流程:怎么保数据、怎么开工、怎么验收 | 按需加载 | | L4 知识层 | 知识库 + 路由表 | 查阅型经验复用 | 场景命中时读取 | | L5 协作层 | Subagents | 审美把关、独立评审 | 主智能体委派 | | L6 记忆层 | 记忆文件 | 跨会话沉淀 | 索引常驻、正文按需 | 两条设计主线贯穿全部六层: **上下文经济学。** 宪法只有几百字,常驻每次会话;细则全部外置——流程细节放 skill,经验放知识库,命中场景才加载。避免把所有规范堆进系统提示词,既烧 token,又稀释模型对关键规则的注意力。 **约定与执法分离。** 原则写在宪法里(模型读了会遵守,大部分时候);可机械化判断的环节交给 hooks 强制执行(模型想违反也违反不了)。判断标准很简单:**这件事能不能用一个 if 语句判断?能,就别指望自觉。** ## 三、L1 + L2:宪法与执法——让红线真正"硬"起来 ### 3.1 宪法层:几百字定方向 AGENTS.md 是整个体系的根文件,每次会话开始自动注入。它只写原则级内容,每一条都短到模型不可能"没看到": - **数据安全红线(最高优先级)**:用户数据文件默认只读;"整理/修复/清洗"类请求的输出一律写带时间戳的新文件,绝不写回原文件;删除或覆盖任何文件前,先查看目标内容。 - **先讨论后动手**:非平凡任务先调查再提问,提交目标/阻塞性问题/假设/计划,批准后才动手。 - **质量闭环**:实现完成后走检查-修复循环,无新的必须修复项才算完成。 - **标准不将就**:在"够用了"和"做对了"之间选后者;交付时交代残留风险与下一级路径。 ### 3.2 执法层:四个机制 宪法定规矩,执法层负责"违者必究"。实现上是一个脚本,挂在框架的四类事件上: | 机制 | 触发点 | 行为 | | ------------ | ---------------------------------------- | -------------------------------------- | | 数据红线拦截 | Write / Edit / Bash | 写目标命中保护清单 → 硬拒绝(无限次) | | 开工契约门 | 非平凡任务动手前 | 未走契约流程 → 拒绝并要求补流程 | | 交付报告门 | 任务声称完成时 | 无交付报告 → 拒绝并要求补报告 | | 纪律卡片注入 | 会话开始 / 上下文压缩后 / 首次代码改动后 | 注入精简版纪律提醒 | 数据红线的运行方式值得展开讲。全局和每个项目各有一份保护清单 `data-guard.lock`,格式极其简单——每行一个路径或 glob: ``` D:\data\客户名单.xlsx D:\data\原始采集\** ``` 任务开始时,智能体把本次要读的输入数据路径登记进清单;此后任何 Write/Edit 工具调用、任何 Bash 命令,只要写目标命中清单,直接被 hook 拒绝执行。**解除保护只能由用户手动删除条目**——智能体自己无权解锁。 ### 3.3 诚实的取舍 执法层不是万能的,设计文档里明写着已知限制,这些取舍我认为值得公开: - **fail-open**:hook 自身解析失败时一律放行——宁可极端情况下漏拦,也不让执法系统的故障卡死整个会话。可用性优先于完备性,这是有意为之。 - **Bash 是绊线,不是城墙**:只拦"命令文本同时包含保护路径和写操作符(`>`、`sed -i`、`rm` 等)"的命令;脚本内部的间接写拦不住。所以主防线永远在 Write/Edit 工具层,Bash 拦截只是兜底。 - **解除权在人**:所有自动化都可以被用户一键停用。治理体系约束智能体,不绑架用户。 这套防线的由来是一次真实事故:一份重要登记表,被一条"本应只改临时副本"的代码路径写坏,数据映射全部丢失,只能手工恢复。复盘结论很清楚——"我只改副本"是约定,而约定之外还有一百条代码路径能碰到原文件。所以红线必须靠机制:**登记路径 → 所有写出过守卫 → 输出带时间戳且不覆盖同名文件 → 任务结束时复核输入文件哈希未变**,最后一步作为"我没碰你的数据"的客观证据交付给用户。 ## 四、L3 流程层:开工契约与检查-修复循环 ### 4.1 开工契约:像按返工计费的承包商那样工作 任何非平凡编码任务,动手前必须走四步: 1. **先调查**:一分钟内能查到的信息(框架版本、目录结构、已有抽象),不许当问题去问用户; 2. **提交契约**:目标(含逐条可独立判 PASS/FAIL 的验收标准)、阻塞性问题(0–5 个,每个附推荐答案)、可证伪的假设、计划(含被舍弃的备选方案及理由); 3. **停手,等待批准**; 4. **批准后落盘**:契约写入项目 `docs/spec.md`,成为交付验收时的审查基准。 一个容易被忽略的设计:**问题必须带推荐答案**。"用 A 还是 B?"是开放式问题,用户还得自己调研;"建议用 A,理由是 X,没有异议我将按 A 执行"才是阻塞性问题——用户回一句"同意"就能推进。把用户的决策成本压到最低。 流程按"爆炸半径"伸缩:改个错别字直接做;新建模块、动 schema、涉及鉴权/资金/数据迁移/删除的改动,全套走满,并比平时更怀疑自己的假设。 ### 4.2 检查-修复循环:开发完成 ≠ 可以交付 写完代码后的验收是一个循环,每轮 = 静态审查 + 动态验证 + 修复 + 回归: - **静态轮(读代码)**:委派一个**没有写过这段代码**的独立评审子代理,对照 spec 验收标准逐项判 PASS/FAIL,输出 🔴(必须修复)/ 🟡(建议修复)/ 🟢(可选)分级问题清单。评审视角按轮轮换:第一轮对照 spec 查正确性,第二轮专攻边界与失败路径(畸形输入、超时、部分失败),第三轮起查安全、数据红线和回归。 - **动态轮(跑起来)**:至少执行一种真实验证——全量测试套件、用已知数字做断言的真实数据只读集成测试、主流程冒烟、GUI 截图回归。"测试通过"必须是跑出来的,不是编出来的。 - **修复纪律**:只修 🔴 和影响验收的 🟡;修完不顺手重构——每多改一处,回归面积就大一分。 - **回归**:每轮修复后,把此前各轮的静态发现项和动态断言重跑一遍,防止"修 A 破 B"。 终止条件有三条(先到为准):连续一整轮无新必须修复项;到达轮次上限(默认 3 轮,大改动最多 5 轮);连续两轮问题清单无任何新增——审查者在重复自己,继续跑只是烧 token。 特别注意:**"再也挑不出任何意见"不是终止条件**。审查者永远能给出版式和风格建议,停的标准是"没有新的必须修复项",不是"没有新意见"。没有终止条件的评审循环会空转到天荒地老。 ## 五、L4 知识层:流程型做成 skill,查阅型做成文档 经验沉淀分两类,存放方式不同: - **有明确触发动作的流程规范 → skill**。比如"做数据清洗前先登记保护清单"——有触发条件、有执行步骤,适合被框架强制调用。 - **查阅型的参考经验 → 知识库文档**。比如"Windows 中文环境的编码坑"、"桌面应用打包分发要点"——没有固定步骤,是遇到时才需要翻的参考资料。 知识库靠一张路由表工作:根文件里维护"何时 → 文档"的映射表,场景命中时智能体先读对应文档再动手。"何时"必须写得具体可判断——"涉及数据库迁移时"是好条件,"数据库相关"不是。 登记规范也很克制:目录层级最多两级,更深的关联用文档内的"相关"指针串接;同主题的新经验合并进已有文档,不另开新文件。**知识库要防的是腐化,不是堆积。** ## 六、L5 + L6:协作层与记忆层 ### 6.1 窄而专的 subagent:跨模型交叉评审 主智能体负责拆解任务与整合产出,两类工作固定委派出去: - **设计评审** → 设计子代理(视觉模型):UI 方案、设计系统、界面走查,给到具体数值级改法; - **代码评审** → 独立评审子代理(另一家厂商的模型):对照验收标准做第三方评审,只评估、不重写。 独立评审子代理有两个关键约束:委派时**必须附验收标准**(否则评审没有锚点);它基于与主智能体**不同的模型**——换一个模型视角等于换一双眼睛,同时规避"自己写自己审"的沉没成本和思维盲区。它的能力边界也写明:纯文本评审、看不了截图,图片类证据自动分流给视觉模型——分工边界清清楚楚,不靠临场发挥。 ### 6.2 记忆层:让同一个坑只摔一次 跨会话记忆按四类归档:用户是谁(user)、做事方式的反馈(feedback)、项目上下文(project)、外部资源指针(reference)。每条记忆一个文件、一行索引;索引常驻上下文,正文按需读取。 它真正的价值在闭环:数据事故的复盘沉淀为红线规则,红线上升为宪法,宪法配上执法 hook——**同一个坑,机制保证不会掉第二次。** ## 七、演进机制:架构自己怎么长大 静态的规范会过时,所以体系内置了演进信号。执行任务中出现三类信号,就说明有规则该固化了: - 同类分岔判断反复靠现场发挥; - 工序交接靠对话记忆而非文件; - 需要人口头指挥"该走哪条路"。 固化路径对应三档:明文规则(进宪法)、文件接口(进知识库)、流程规范(进 skill)。反方向也有约束:没有真信号不硬凑,提醒要具体到"改哪、为什么",且不打断进行中的任务。**规范体系本身,也服从最小必要原则。** ## 八、落地清单:从零搭一套 1. **先写宪法**(半天):把最高频的 3 个痛点写成根文件里的原则。几百字,别贪多; 2. **给数据上锁**(一天):Write/Edit hook 拦截 + 路径登记清单。这是 ROI 最高的一层,值得最先做; 3. **抽象开工契约**:哪怕只做到"动手前先给目标和验收标准,等人点头",也已消灭大部分返工; 4. **把验收外包给另一个模型**:评审子代理 + PASS/FAIL 清单 + 严重度分诊 + 终止条件; 5. **攒知识库**:从路由表开始,同类问题遇到第二次再建文档,不预建; 6. **定期复盘**:翻车 → 写规则 → 能用 if 语句判断的,配 hook。 ## 结语 这套架构没有什么黑科技——规则文件、hooks、子代理、记忆文件,都是框架的原生能力。它真正花力气的地方,是**区分"约定"与"机制"**:模型读了会照做的,写成约定,保持轻;必须发生的,做成机制,宁重勿漏。 AI 编码智能体的能力上限由模型决定,但下限由治理决定。模型每个月都在变强,而一套好的治理架构,是可以复利的。

优秀的个人博客,低调大师

OpenSpec 上手:面向 AI Coding 开发者的 OPSX 工作流全指南

# **一、你有没有遇到过这种崩溃时刻** 上午跟 AI 聊了半小时需求,中午让它写代码,下午发现它记岔了一半;同事接手你的仓库,翻遍聊天记录也搞不清"为什么这里要这么写";同一个团队,两个人各自和 AI 对话,两周后代码风格分成了两派。 **AI 编码时代最贵的成本,不是生成,而是返工。** 而返工的根,几乎都在"没约定"三个字。 这就是 **OpenSpec** 要治的病——一个由 Fission-AI 开源的**轻量规范驱动开发(SDD)框架**,专门面向 AI 编码协作。本文写给正在用 Cursor、Claude Code、Copilot 的开发者,读完你会知道要不要给自己的项目也接一个。 # **二、AI 编码到底在痛什么** 原生 AI 编码就是靠"聊天窗口"传递需求,几个老毛病绕不开: - • **需求只存在聊天里**,一关窗口就丢 - • **无文档追溯**,一个月后回来自己都看不懂 - • **跨仓库难统一**,多项目共用一套标准全靠人肉记 - • **团队规范漂移**,每个人和 AI 对话的口径都不一样 - • **AI 实现偏离预期**,写完才发现要返工 OpenSpec 的思路很直接:在代码和需求之间**塞一层可版本化、可审阅的规范**,让人和 AI 先对齐、再动手。**OPSX 就是要治这个。** # **三、核心思想:先约定,后编码** 一句话概括——**先约定,后编码**。 写代码前,你和 AI 一起把需求、规范、任务清单落成 Markdown 文件;写完之后,AI 自己拿这份约定校验代码是否走样;变更做完,规范沉淀到主库,下一个功能继续复用。 你可以把它理解为**给 AI 一份可版本化的合同**:合同白纸黑字,履约与否肉眼可查,出错也知道追哪一行。 # **四、四个必须先搞懂的概念** - • **变更(Change)**:一次独立的开发任务,放在 `openspec/changes/` 目录下,一次需求一个文件夹。 - • **工件(Artifact)**:变更全流程的产出物——提案 `proposal.md`、规范 `specs/`、设计 `design.md`、任务清单 `tasks.md`。artifact 之间**有依赖关系,构成一张 DAG**——细节看下一节。 - • **规范(Specs)**:项目全局或模块的通用设计约定,存 `openspec/specs/`,可被多个变更共享。 - • **同步与归档**:变更做完,规范可以先 `sync` 合并进主库,再 `archive` 封存整个变更。 # **五、OPSX:不是阶段,是动作** ![](https://developer.qcloudimg.com/http-save/yehe-11737050/90d7f7811fa88b86dd8a9478e8710ee0.png) 真正让 OpenSpec 值得从旧工作流迁过来的,是它的新招牌——**OPSX**。 一句话通俗定义:**动作 = 你在做的事情**(提案、写代码、修订、归档),**而不是流程里非走不可的一个格子**。 这三条是 OPSX 的核心主张: - • **你能任意顺序、任意时机组合动作**——写了一半 apply 发现设计不对?回头 update 一下再继续,不用推倒重来。 - • **dependencies 是 enabler 不是 gate**——依赖告诉你"下一步可以做什么",而不是"这一步没做完你不许动别的"。 - • **Legacy 旧工作流的 phase-lock 被 OPSX 显式取代**——过去必须走"规划 → 实施 → 归档"三段闸门,现在闸门拆了。 ### **DAG + 三态:为什么可以自由跳跃** 底下的机制其实很简单——artifact 之间是一张有向无环图(DAG),每个 artifact 有三态: ``` BLOCKED ──► READY ──► DONE │ │ │ 缺依赖 依赖齐备 文件已存在 ``` `proposal → specs → design → tasks` 的依赖关系决定谁能做,**状态由"这个文件在磁盘上有没有"决定**——不是由"你走到哪个阶段"决定。所以你 update 一下 design.md,tasks.md 不会因此被强制重跑;apply 到一半改了 specs,next apply 自动往前走。 ### **Legacy vs OPSX 一张表看清** |维度|Legacy|OPSX| | --- | --- | --- | |结构|一份大提案文档|独立工件 + 依赖图| |工作流|线性阶段:规划 → 实施 → 归档|流动动作,随时可做任何一步| |迭代|想回头改很别扭|边做边改工件,自然而然| |定制|固定结构|schema 驱动,可自定义工件| ![](https://developer.qcloudimg.com/http-save/yehe-11737050/4b5af595f0247d872949cd68a59e63b5.png) **工作本来就不是线性的。OPSX 只是不再假装它是。** # **六、命令速查(核心 6 + 扩展 6)** **核心命令**(默认 profile 就有,装完 `openspec init` 到手): |命令|阶段|一句话功能| | --- | --- | --- | |/opsx:explore|探索|只讨论、不写文件,梳理需求与选型| |/opsx:propose|规划|一次生成 proposal / specs / design / tasks| |/opsx:apply|执行|按 tasks 清单实施代码| |/opsx:update|修订|修订已有规划工件,保持一致| |/opsx:sync|同步|把变更规范合并回主规范库| |/opsx:archive|归档|归档已完成变更,更新 CHANGELOG| **扩展命令**(需要跑 `openspec config profile` 切到 Expanded、再 `openspec update` 才会出现): |命令|用途| | --- | --- | |/opsx:new|只 scaffold 变更目录,不生成规划内容| |/opsx:continue|一次只生成一个工件,边生成边审阅| |/opsx:ff|快进:一次生成所有规划工件| |/opsx:verify|校验代码是否符合规范| |/opsx:bulk-archive|批量归档多个完成的变更| |/opsx:onboard|交互式 15 分钟教程| > 命令数量以你本机 `.claude/commands/opsx/` 为准——文档说的和你机器上的可能不完全一样。 # **七、两种典型落地场景** ![](https://developer.qcloudimg.com/http-save/yehe-11737050/f9f6fa666079e441d8d897b2c9a52879.png) **场景一:需求还没吃透** 假设你要给系统加一套 OAuth 登录,思路还朦胧。先 `/opsx:explore` 和 AI 掰扯技术选型和边界;方向定了直接 `/opsx:propose "接入 OAuth 登录"`,四份工件一次生成。翻一遍不满意?`/opsx:update` 局部修订。规划稳了 → `/opsx:apply` 出代码。写代码时发现 design 有漏?停下 `/opsx:update` 改完 design,再 `/opsx:apply` 继续。全部做完 → `/opsx:sync` 沉淀通用规范 → `/opsx:archive` 归档收工。**每一步都能刹车、能回头,风险收敛。** **场景二:需求很明确** 只是加个导出 CSV 按钮?跳过 explore,直接 `/opsx:propose "在设置页加导出 CSV 按钮"` → `/opsx:apply` → `/opsx:archive`。**三条命令走完一个功能。** # **八、团队协作:靠 Stores 跨仓库共享规范** ![](https://developer.qcloudimg.com/http-save/yehe-11737050/ceceae944fed2718e4314b2e3c41dde3.png) 个人用 OpenSpec 能防遗忘;到了团队,真正的大杀器是 **Stores(Beta)**——把全局规范单独放一个仓库,让**多个代码仓库共用一套需求标准**。 - • 平台团队维护**只读共享规范**,业务团队直接引用,杜绝 Wiki 文档漂移 - • 跨仓库功能可以在一份变更里统一规划,覆盖多项目代码 - • 支持先规划规范、后落地代码,适配前置规划场景 一句话:**代码是规范的落地产物**,不是反过来。 > Stores 是 Beta 能力,和本文重点讲的 OPSX 是两条正交的路径——不用 OPSX 也能用 Stores,反之亦然。 # **九、OpenSpec 与同类怎么选** **vs GitHub Spec Kit**:Spec Kit 重、流程僵化、依赖 Python;OpenSpec 轻量化,迭代灵活,无强制阶段锁。 **vs AWS Kiro**:Kiro 绑定专属 IDE、仅支持 Claude;OpenSpec 工具中立,兼容 Cursor / Claude Code / Copilot / Codex / Gemini CLI 等 25+ 主流 AI 编码助手。 **vs 无规范原生 AI 开发**:消除模糊对话带来的不可控输出,全流程可追溯、可评审、可沉淀。 # **十、Project Config:让 AI 一次就懂你的项目** 每个新 change 都要重新告诉 AI 一遍技术栈、代码风格、测试框架?累不累?更糟的是——每次口径都会飘一点,一个月后同一个仓库里两份 spec 用的是两套术语。 OpenSpec 提供一个**项目级配置文件**`openspec/config.yaml`,把项目上下文**一次写好,自动注入所有 artifact instructions**——AI 起草每一份 proposal / specs / design / tasks 时都能读到,语义先对齐再动笔。 `openspec init` 时会问你要不要建,也可以随时手写。最小示例: ``` schema: spec-driven context: | 技术栈:TypeScript、React、Node.js 接口约定:RESTful,JSON 响应 测试:Vitest 跑单测,Playwright 跑 e2e 代码风格:ESLint + Prettier,strict TypeScript rules: proposal: - 必须包含回滚方案 - 标注受影响的团队 specs: - Scenario 用 Given/When/Then 格式 ``` 两个字段各司其职:**`context**` 一次注入所有 artifact,跟每一份文档都相关的通用背景放这里;**`rules**` 按 artifact 分别注入,key 就是 artifact ID(`proposal` / `specs` / `design` / `tasks`),每种工件独有的硬性约束单独列。 **复制粘贴,改成你自己的。** 从此 AI 起草文档时,你的团队规矩它先看一遍——比在每次对话开头贴一遍上下文靠谱得多。 # **十一、三步上手** 要求 Node.js 20.19.0+,全局 CLI 一键装完。 ``` # 1. 安装 npm install -g @fission-ai/openspec@latest # 2. 项目根目录初始化 openspec init # 3. 挑一个入口 # 需求模糊 → /opsx:explore # 需求清楚 → /opsx:propose "你的一句话需求" ``` 想看全局面板,跑 `openspec view`,终端里就是一块仪表盘:规范总量、进行中/已完成变更、任务完成进度一目了然。 # **十二、常见问题** **Q1:斜杠命令在编辑器里不显示?** A:跑 `openspec update` 刷指令,重启 Cursor / VS Code,确认项目根有 `openspec/` 目录,确认用的是支持斜杠命令的 AI 工具。 **Q2:规划做到一半发现方向偏了?** A:用 `/opsx:update` 局部修订 proposal / design / specs / tasks,保持工件之间一致,不用推倒重来。 **Q3:`sync` 和 `archive` 有啥区别?** A:`sync` 只合并规范,变更本身还活跃;`archive` 归档前会自动跑一次 sync,然后封存变更。 **Q4:我本机 opsx 命令数量跟文档不一致怎么办?** A:一切以你本机 `.claude/commands/opsx/` 里真实存在的文件为准。想开更多扩展命令:跑 `openspec config profile` 切 profile,再 `openspec update` 刷新。 **Q5:Custom Schemas 是啥?我要不要用?** A:不需要立刻用。默认 `spec-driven` 已经够跑日常项目。有特殊工作流(比如想在 proposal 前多一个 research 工件)再用:`openspec schema fork spec-driven my-workflow` 起个模板改。 # **十三、什么时候续做,什么时候新开一个 change** 你不做 SDD 也可以读这段——**它其实是软件迭代的普适判断力**。 两条清晰的分叉线索: - • **同一 intent,精修执行 → update**:范围收窄、边缘 case 冒出来、发现小设计偏差——都还是"同一件事"。例:`Add dark mode` → `Add dark mode toggle`。 - • **intent 已变,或范围爆炸 → 新开**:问题本身变了、改到一半发现原提案面目全非、原 change 已经能独立"完成"。例:`Add dark mode` → `Add comprehensive theme system with custom colors, fonts, spacing`。 判断难时问自己三个问题:**同一个问题吗?scope 重叠超 50% 吗?原 change 不做这些改动能不能"完成"?**——三个都倾向 YES 就 update,反之新开。 一句金句:**Update 保留上下文,New 提供清晰度。** 想留思考链就 update,重新出发更清楚就新开。 # **十四、结语** > **编者按**:把 OpenSpec 装进一个存量项目最直接的收益,不是马上快多少,而是——你终于能对着仓库、而不是聊天记录,回答"这个功能当初为什么这样设计"。当 AI 越来越会写代码,**懂得给它立规矩的开发者才是稀缺资源**。 下一个功能,别急着让 AI 开工。先 `/opsx:explore` 聊聊,或者直接 `/opsx:propose` 起一份提案——**先签约,再写代码。** --- 今天的分享就到这里。后续我会持续为大家带来实用的技术干货和前沿的技术资讯。

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册