<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>CodeBuddy on 言黎的个人博客</title><link>https://ptw-cwl.github.io/tags/codebuddy/</link><description>Recent content in CodeBuddy on 言黎的个人博客</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Sat, 15 Aug 2026 11:52:22 +0800</lastBuildDate><atom:link href="https://ptw-cwl.github.io/tags/codebuddy/index.xml" rel="self" type="application/rss+xml"/><item><title>给 CodeBuddy 配一套能用的项目规则</title><link>https://ptw-cwl.github.io/posts/codebuddy-rules-guide/</link><pubDate>Sat, 15 Aug 2026 11:44:39 +0800</pubDate><guid>https://ptw-cwl.github.io/posts/codebuddy-rules-guide/</guid><description>&lt;p&gt;给项目配 CodeBuddy 规则，踩了几个文档没写清楚的坑。把最后能用的做法记下来，免得以后忘了。&lt;/p&gt;&#10;&lt;h2 id="先说为什么写规则"&gt;先说为什么写规则&lt;/h2&gt;&#10;&lt;p&gt;AI 写代码最麻烦的就是它不知道项目的来龙去脉。每个项目总有些代码之外的事——构建方式、目录约定、部署流程——每次新对话都得重新解释一遍，说多了自己也烦。规则就是把这些背景固化下来，让 AI 开工前自己读。&lt;/p&gt;&#10;&lt;h2 id="放哪项目级和用户级分工"&gt;放哪：项目级和用户级分工&lt;/h2&gt;&#10;&lt;p&gt;规则放三个地方，分工不一样：&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;项目规则：仓库里 &lt;code&gt;.codebuddy/rules/&lt;/code&gt;，跟着 git 走，适合团队共享&lt;/li&gt;&#10;&lt;li&gt;用户规则：系统用户目录下，本机所有项目通用，不提交&lt;/li&gt;&#10;&lt;li&gt;项目根目录的 &lt;code&gt;CODEBUDDY.md&lt;/code&gt;：不用元数据，适合约定特别简单的项目&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;我现在的用法是：跟具体项目绑定的知识（构建方式、目录约定这类）放项目级；&amp;ldquo;怎么创建规则&amp;quot;这类任何项目都通用的放用户级，新建项目不用重新写一遍。&lt;/p&gt;&#10;&lt;h2 id="文件格式踩的第一个坑"&gt;文件格式：踩的第一个坑&lt;/h2&gt;&#10;&lt;p&gt;CodeBuddy 官方有两份文档，说的不一样。IDE 里点&amp;quot;新建规则&amp;quot;生成的是 &lt;code&gt;规则名/RULE.mdc&lt;/code&gt; 文件夹结构；命令行文档写的是 &lt;code&gt;.codebuddy/rules/*.md&lt;/code&gt; 平铺，支持子目录。我一开始用 RULE.mdc，后来看别的项目发现人家用平铺。&lt;/p&gt;&#10;&lt;p&gt;实测两种都能识别。平铺的好处是 git 对比直观、批量处理方便，最后统一成平铺，格式长这样：&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-markdown" data-lang="markdown"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;---&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;description&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;一句话说明规则职责&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;alwaysApply&lt;/span&gt;: &lt;span style="color:#66d9ef"&gt;true&lt;/span&gt; &lt;span style="color:#75715e"&gt;# true=总是加载；false=按 globs 按需加载&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;enabled&lt;/span&gt;: &lt;span style="color:#66d9ef"&gt;true&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;globs&lt;/span&gt;: &lt;span style="color:#75715e"&gt;# alwaysApply: false 时才需要&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - &lt;span style="color:#e6db74"&gt;&amp;#34;**/*.md&amp;#34;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;updatedAt&lt;/span&gt;: &lt;span style="color:#e6db74"&gt;2026-08-15T12:00:00.000Z&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;provider&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;user&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;---&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;# 规则标题&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;具体内容……&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;provider: user&lt;/code&gt; 表示手写的规则，CodeBuddy 靠这个区分自动生成的记忆文件。&lt;/p&gt;&#10;&lt;h2 id="always-别开太多"&gt;always 别开太多&lt;/h2&gt;&#10;&lt;p&gt;规则是每次会话开始加载的，全开的话上下文占用很可观。我的判断标准：&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;每次都必须知道的（项目概述、部署方式、规则索引）设 &lt;code&gt;alwaysApply: true&lt;/code&gt;&lt;/li&gt;&#10;&lt;li&gt;具体语言、具体文件的规范设 &lt;code&gt;false&lt;/code&gt;，再用 &lt;code&gt;globs&lt;/code&gt; 限定范围，比如 &lt;code&gt;[&amp;quot;**/*.java&amp;quot;]&lt;/code&gt;，只有改 Java 文件时才加载&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;全开的不超过 5 条，剩下的能按需就按需。&lt;/p&gt;</description></item></channel></rss>