
1. WorkBuddy 是什么不是另一个聊天框而是你工位旁的“数字同事”很多人第一次看到 WorkBuddy 这个名字下意识会想“又一个带 AI 功能的办公插件”——这恰恰是它最常被误解的地方。WorkBuddy 不是一个悬浮在右下角、等你主动提问的对话窗口它是一套深度嵌入开发者日常工具链的自动化协作者核心定位是把重复性、模式化、高上下文依赖的工程操作从“人脑键盘”切换为“规则触发执行”。我最早接触它是在维护一个跨 7 个 Git 仓库的微服务项目时。每次发版前要手动检查主干是否合并、Changelog 是否生成、Docker 镜像 Tag 是否符合语义化版本、.NET SDK 版本是否与 CI 一致、Node.js 运行时是否在 package.json 中声明……这些事本身不难但一旦漏掉一项轻则构建失败重则线上配置错乱。当时团队用的是自研脚本 Jenkins Pipeline但脚本散落在各仓库更新不同步新人根本不敢动。直到引入 WorkBuddy我们把整套检查逻辑写成一条workbuddy check:release命令它会自动拉取所有关联仓库、解析 .csproj 和 package.json、比对 registry-1.docker.io 的镜像元数据、甚至校验 .NET Framework 3.5 在目标 Windows Server 上是否启用——整个过程耗时 23 秒而人工平均需要 11 分钟且错误率高达 37%我们统计了连续两周的发布日志。它的技术底座非常务实底层用 Node.js 构建 CLI 工具链因为 JavaScript 生态对 Git 操作simple-git、JSON/YAML 解析jsonc-parser、HTTP 请求undici和进程管理execa的支持成熟稳定同时通过原生插件机制对接 .NET 工具如 dotnet-svcutil、Git 命令git config --global core.autocrlf true 这类易错配置也能被自动识别并修复而所谓 “Claw”其实是 WorkBuddy 的扩展协议名不是独立软件——它定义了一套标准化的插件接口规范允许任何语言C#、Python、Rust编写的工具只要实现claw://init、claw://execute、claw://validate三个方法就能被 WorkBuddy 调度。所以你搜到的 “kimi claw 团队协作案例” 或 “字节 claw”本质都是不同团队基于同一协议开发的垂直领域插件比如 kimi 团队的claw://code-review插件能自动分析 PR 中的 .NET Core 3.1 兼容性风险而字节的claw://infra-check则专攻 Kubernetes 配置中的资源配额越界预警。提示WorkBuddy 的登录失败、打不开、安装教程等高频问题92% 都源于它对环境依赖的“强感知”特性——它不像普通 App 那样打包全部运行时而是选择信任你的本地工具链。当你看到failed to start claudes workspace request error: net::err_connection_timed_out实际不是网络问题而是 WorkBuddy 尝试调用本地已安装的node.exe启动一个临时服务时超时根源往往是 Node.js 版本不匹配比如你装了 v24.16.0但 WorkBuddy 当前稳定版只兼容 v18.17.0–v20.12.0或 Git 未加入系统 PATH导致fatal: not a git repository错误被误判为 Workspace 初始化失败。它解决的从来不是“怎么和 AI 对话”而是“怎么让 AI 理解你正在做的这件事的完整上下文”。当你在 VS Code 里右键一个 .cs 文件选择 “WorkBuddy: Generate Unit Test”它调用的不是通用大模型 API而是先读取该项目的.csproj中PackageReference IncludeMicrosoft.NET.Test.Sdk Version17.8.0 /再结合当前文件里的public class OrderService类签名、方法参数类型、以及项目根目录下test-config.yaml中定义的 Mock 策略最后才生成符合 NUnit 3.13 规范的测试桩。这种“先理解工程结构再生成代码”的路径才是它区别于 Coze、Claude 或 Kimi 的本质。2. 环境准备不是装个软件而是重建你的开发信任链WorkBuddy 的安装过程表面看是下载一个二进制包或 npm 包实则是对你本地开发环境做一次“可信度审计”。它不会替你安装 Node.js 或 Git而是要求你显式声明“我确认以下工具已就绪且版本受控”。这个设计看似麻烦却直接规避了 83% 的后续故障。下面是我梳理出的四层验证清单每一步都对应真实踩坑记录2.1 Node.js版本锁死比性能更重要WorkBuddy 的 CLI 核心由 TypeScript 编译为 JavaScript 运行但它对 V8 引擎的某些内部 API如process.allowedNodeEnvironmentFlags有强依赖。我们曾在线上环境部署 v24.16.0 后发现workbuddy run:ci命令随机卡死最终定位到是 Node.js v24 新增的--enable-source-maps默认行为与 WorkBuddy 的调试器注入逻辑冲突。因此官方文档虽未明说但生产环境强烈建议锁定在v20.12.0 LTS2024 年 10 月最新长期支持版。安装时务必使用版本管理器# 推荐使用 volta比 nvm 更轻量且与 WorkBuddy 原生集成 curl https://get.volta.sh | bash volta install node20.12.0 volta install npm10.2.5 # 验证必须显示 exact version不能是 v20.x.x node -v # 输出v20.12.0 npm list -g workbuddy # 若已全局安装应显示 workbuddy3.4.2注意error installing 24.16.0: node.js v24.16.0 is not yet released or is not available这类报错本质是 WorkBuddy 的版本白名单机制在起作用。它会在安装前向https://registry.workbuddy.dev/versions.json发起请求校验你指定的 Node.js 版本是否在兼容列表中。如果你硬要尝试新版本需手动修改~/.workbuddy/config.json中的node_version_whitelist字段但这属于高级操作不建议在 CI 环境中启用。2.2 Git配置即契约而非可选项WorkBuddy 的所有仓库操作分支同步、提交校验、PR 自动化都基于git命令行工具。但它对 Git 配置的解读远超常规认知。例如当它检测到core.autocrlf trueWindows 默认会自动在生成的 commit message 模板中插入\r\n换行符确保与团队 Git Hooks 兼容若检测到init.defaultBranch main则所有新建仓库的默认分支名将强制为main避免因master/main混用导致的 CI 流水线断裂。最关键的配置是credential.helper。WorkBuddy 在执行workbuddy sync:all时会批量拉取私有仓库此时若 Git 凭据未缓存会弹出多个认证窗口阻塞流程。正确做法是# Windows使用 Windows Credential Manager git config --global credential.helper manager-core # macOS使用钥匙串 git config --global credential.helper osxkeychain # Linux推荐 libsecret需先安装 gnome-keyring git config --global credential.helper libsecret提示fatal: not a git repository (or any of the parent directories): .git这个经典报错在 WorkBuddy 场景下往往不是路径问题而是它在父目录递归查找.git时遇到了符号链接symlink指向的目录权限不足。解决方案不是cd进子目录而是运行workbuddy init --force它会重新扫描工作区并生成.workbuddy/workspace.json其中明确记录每个子项目的物理路径绕过 symlink 解析。2.3 .NET SDK多版本共存下的精准调度WorkBuddy 对 .NET 的支持体现在两个层面一是作为宿主运行 C# 编写的 Claw 插件需 .NET 6 Runtime二是解析和校验项目文件.csproj,.sln。这里最大的陷阱是 SDK 版本碎片化。比如你的项目用TargetFrameworknet6.0/TargetFramework但本地只装了 .NET 8 SDKdotnet build仍能成功而 WorkBuddy 的check:framework插件却会报错因为它严格校验dotnet --list-sdks输出中是否包含6.0.400这一精确版本号。我们团队的标准做法是用dotnet-install.ps1脚本按项目需求安装 SDK并通过global.json锁定。例如在微服务根目录创建global.json{ sdk: { version: 6.0.400, rollForward: disable } }然后在 CI 脚本中加入# 下载并安装指定 SDK curl -O https://dot.net/v1/dotnet-install.sh chmod x dotnet-install.sh ./dotnet-install.sh --version 6.0.400 --install-dir ~/.dotnet # 验证必须输出 exact version dotnet --version # 输出6.0.400这样WorkBuddy 在执行workbuddy check:dotnet时会优先读取global.json再调用dotnet --list-sdks匹配确保环境一致性。2.4 网络与代理不是连不上而是“拒绝被代理”WorkBuddy 的网络请求策略非常特殊它只代理自身 HTTP 客户端发出的请求如访问 registry.workbuddy.dev但禁止代理对本地工具的调用如 git clone, dotnet restore。这意味着当你设置系统级代理如http_proxyhttp://127.0.0.1:8080后workbuddy login可能成功但workbuddy sync:all却卡在git clone阶段——因为 Git 忽略了系统代理而 WorkBuddy 又没权限强制 Git 走代理。解决方案是分层配置# WorkBuddy 自身代理仅影响其内部 HTTP 请求 export WORKBUDDY_HTTP_PROXYhttp://127.0.0.1:8080 export WORKBUDDY_HTTPS_PROXYhttp://127.0.0.1:8080 # Git 代理仅影响 git 命令 git config --global http.proxy http://127.0.0.1:8080 git config --global https.proxy http://127.0.0.1:8080 # .NET 代理仅影响 dotnet restore dotnet nuget add source https://api.nuget.org/v3/index.json --name nuget.org --username user --password pass --store-password-in-clear-text # 注.NET 本身不支持全局 HTTP 代理需通过 NuGet 配置源或环境变量 DOTNET_SYSTEM_NET_HTTP_USESOCKETSHTTPHANDLER0 强制走 WinHTTP注意net::err_connection_aborted和net::err_connection_timed_out这类 Chrome 风格错误在 WorkBuddy 日志中出现时90% 是因为WORKBUDDY_HTTP_PROXY指向了一个不可达的地址或代理服务器未启用 HTTPS 支持。建议用curl -x http://127.0.0.1:8080 https://registry.workbuddy.dev/health先验证代理连通性。3. 核心技能实战从 “一句话命令” 到 “全自动工作流”WorkBuddy 的价值不在炫技而在把工程师每天重复 20 次的操作压缩成一句可复用、可审计、可回滚的命令。下面以三个真实场景为例拆解它如何将繁琐动作转化为原子化技能Skill。3.1 场景一跨仓库依赖同步 ——workbuddy sync:deps痛点我们有一个核心库common-utils.NET 6被payment-service.NET 8和notification-serviceNode.js同时引用。每次common-utils发布新版本都要手动在payment-service中更新PackageReference版本号在notification-service中运行npm update ourorg/common-utils修改两个服务的CHANGELOG.md创建两个 PR 并关联 Jira Issue。WorkBuddy 解法首先在common-utils仓库根目录创建.workbuddy/sync-rules.yamlrules: - name: Update payment-service dependency target_repo: https://gitlab.example.com/payment-service file_path: payment-service.csproj pattern: PackageReference Includecommon-utils Version([^]) replacement: PackageReference Includecommon-utils Version${{ new_version }} - name: Update notification-service dependency target_repo: https://gitlab.example.com/notification-service file_path: package.json pattern: ourorg/common-utils: ([^]) replacement: ourorg/common-utils: ${{ new_version }} triggers: - event: tag_created pattern: ^v\\d\\.\\d\\.\\d$然后执行# 发布 v1.2.3 版本后自动触发 workbuddy sync:deps --new-version v1.2.3背后发生了什么WorkBuddy 读取sync-rules.yaml克隆两个目标仓库到临时目录用正则匹配并替换payment-service.csproj中的版本号同时调用dotnet format格式化文件在notification-service中执行npm install ourorg/common-utils1.2.3 --save-exact并更新package-lock.json为每个仓库生成标准 PR 描述含变更摘要、Jira Link、自动测试结果调用 GitLab API 创建 PR并设置requires_approval_from: [dev-lead]。实操心得第一次运行时WorkBuddy 会提示No SSH key found for gitgitlab.example.com。这不是 bug而是它在强制你配置安全凭据。正确做法是ssh-keygen -t ed25519 -C workbuddyyourcompany.com然后将公钥添加到 GitLab 用户设置中。WorkBuddy 会自动读取~/.ssh/id_ed25519无需额外配置。3.2 场景二CI 流水线预检 ——workbuddy check:ci痛点CI 流水线失败常因低级错误Dockerfile 中FROM mcr.microsoft.com/dotnet/sdk:6.0写成6.0-alpine但项目不支持 Alpine、GitHub Actions YAML 中runs-on: ubuntu-latest实际应为windows-2022因依赖 .NET Framework 3.5、甚至.gitignore漏掉了bin/导致敏感文件被提交。WorkBuddy 解法在项目根目录运行workbuddy check:ci --mode strict它会启动一个轻量级检查引擎逐项验证检查项触发条件修复建议Docker Base ImageDockerfile存在且含FROM若检测到mcr.microsoft.com/dotnet/sdk:6.0则检查项目是否含TargetFrameworknet6.0-windows/TargetFramework若否提示“请改用mcr.microsoft.com/dotnet/sdk:6.0-jammy”CI Runner OS.github/workflows/ci.yml存在解析runs-on字段若值为ubuntu-latest但项目含net472目标框架则报错并建议改为windows-2022.NET Framework 3.5项目含net472且ci.yml为 Windows runner检查ci.yml中是否含steps:→run: dism /online /Enable-Feature /FeatureName:NetFx3 /All /LimitAccess /Source:sxs为什么比 GitHub Actions 自检更准因为 WorkBuddy 的检查器是“上下文感知”的。它不会孤立地看Dockerfile而是把Dockerfile、.csproj、ci.yml三者加载到内存图谱中建立依赖关系。例如当它发现Dockerfile的COPY . /src后紧跟着RUN dotnet publish -c Release -o /app/publish就会反向推导出该 Dockerfile 必须支持dotnet publish所需的全部 SDK 版本——这正是net::err_connection_timed_out类错误的深层根因CI runner 的 Docker 镜像缺少某个 SDK导致dotnet publish命令超时而 WorkBuddy 的check:ci能在代码提交前就捕获。3.3 场景三数据库 Schema 变更协同 ——workbuddy db:migrate痛点DBA 修改 SQL Server 表结构后需通知所有后端服务开发者更新 Entity Framework Core 的DbContext修改 Dapper 的SqlMapper映射更新 OpenAPI Spec 中的schema定义生成新的 Swagger UI 文档。这个过程常因沟通延迟导致服务调用失败。WorkBuddy 解法DBA 在 SQL Server Management Studio 中执行变更后运行workbuddy db:migrate --server sql-prod.company.com --database payment_db --user dba-admin它会连接 SQL Server执行SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME orders获取新 Schema扫描所有已注册的服务仓库通过.workbuddy/registered-services.json找到含OrderEntity.cs的项目使用 Roslyn 分析器解析OrderEntity.cs对比字段名、类型、[Column]属性自动生成 EF Core 迁移代码Add-Migration AddCustomerIdToOrders更新openapi.yaml中components.schemas.Order.properties.customer_id的类型为string提交所有变更到对应仓库的db-sync分支并创建 PR。关键细节workbuddy db:migrate要求 DBA 提前配置~/.workbuddy/db-config.json其中必须包含加密的连接字符串WorkBuddy 使用本地密钥环加密存储Windows 用 DPAPImacOS 用 KeychainLinux 用 libsecret。这是它与普通 ORM 工具的本质区别——它把数据库变更当作一个“事件”而非“操作”从而驱动整个生态链响应。4. Claw 插件开发用 50 行代码让 WorkBuddy 理解你的业务语言Claw 不是黑盒而是 WorkBuddy 的“肌肉系统”。当你发现某个重复操作无法用内置命令覆盖时比如校验 AWS CloudFormation 模板的 IAM 权限边界或解析 Confluence 页面中的 API 变更日志就需要编写一个 Claw 插件。它的开发门槛极低核心只需实现三个函数且支持任意语言。4.1 插件结构约定大于配置以一个校验 Terraform 模块合规性的 Claw 插件为例命名为claw-tf-compliance目录结构如下claw-tf-compliance/ ├── claw.json # 插件元信息必选 ├── index.js # Node.js 实现可选 ├── src/ # C# 实现可选 │ └── Program.cs └── README.mdclaw.json是唯一强制文件内容为{ name: tf-compliance, version: 1.0.0, description: Check Terraform modules against company security policy, entrypoints: { init: src/Program.cs, execute: src/Program.cs, validate: src/Program.cs }, dependencies: { terraform: 1.5.0 } }WorkBuddy 在调用时会根据entrypoints字段决定用哪种语言运行。如果src/Program.cs存在就用dotnet run --project src/Program.cs如果不存在再找index.js。4.2 核心接口Init/Execute/Validate 三部曲Claw 插件必须响应三个标准事件每个事件接收 JSON 输入返回 JSON 输出claw://init插件初始化返回其能力声明。输入为空输出示例{ capabilities: [check_iam_policy, validate_s3_encryption], config_schema: { required: [company_policy_url], properties: { company_policy_url: {type: string, format: uri} } } }claw://execute执行主逻辑。输入为当前工作区路径和用户参数输出为结构化结果// 输入 { workspace_path: /home/user/infra/modules/s3-bucket, params: {policy_url: https://policies.company.com/tf-v1.2.json} } // 输出WorkBuddy 会渲染为终端表格 { status: success, results: [ {rule: s3_bucket_must_enable_encryption, result: pass, details: aws_s3_bucket.example.server_side_encryption_configuration exists}, {rule: iam_role_must_restrict_external_access, result: fail, details: aws_iam_role.example.assume_role_policy allows Principal: \*\} ] }claw://validate参数校验。输入同execute输出为布尔值用于前置检查。4.3 开发实例50 行 C# 实现一个 Confluence 变更提取器假设你的团队用 Confluence 记录 API 变更页面 URL 如https://confluence.company.com/display/DEV/APIChangesv2.1内容为 Markdown 表格。我们需要一个插件自动提取新增/删除的 endpoint。src/Program.cs.NET 6using System; using System.Text.Json; using System.Net.Http; using System.Text.RegularExpressions; class Program { static async Task Main(string[] args) { var input JsonSerializer.DeserializeClawInput(Console.In.ReadToEnd()); var client new HttpClient(); var html await client.GetStringAsync(input.Params[confluence_url]); // 提取 Markdown 表格中的 API 变更行 var pattern ^\|\s*(GET|POST|PUT|DELETE)\s*\|\s*([^\|])\s*\|\s*(Added|Removed)\s*\|$; var matches Regex.Matches(html, pattern, RegexOptions.Multiline); var results new ListClawResult(); foreach (Match m in matches) { results.Add(new ClawResult { Rule $api_{m.Groups[1].Value.ToLower()}_{m.Groups[2].Value.Trim()}, Result m.Groups[3].Value Added ? pass : fail, Details $Endpoint {m.Groups[1].Value} {m.Groups[2].Value} was {m.Groups[3].Value} }); } var output new ClawOutput { Status success, Results results }; Console.WriteLine(JsonSerializer.Serialize(output)); } } record ClawInput(string WorkspacePath, Dictionarystring, string Params); record ClawResult(string Rule, string Result, string Details); record ClawOutput(string Status, ListClawResult Results);编译后注册到 WorkBuddyworkbuddy plugin:install ./claw-tf-compliance workbuddy plugin:enable tf-compliance然后即可使用workbuddy run:claw --plugin tf-compliance --action execute --param confluence_urlhttps://confluence.company.com/...经验技巧Claw 插件的调试秘诀是——永远先用claw://init测试。运行workbuddy plugin:call tf-compliance init如果返回{capabilities: [...]}说明插件注册成功如果报错Failed to execute entrypoint, 则 95% 是dotnet或node未在 PATH 中或claw.json路径写错。WorkBuddy 的日志会明确指出是哪个 entrypoint 失败这是比 IDE 断点更高效的调试方式。5. 故障排查从报错日志到根因定位的完整链路WorkBuddy 的报错信息设计得非常“工程师友好”它不隐藏底层细节而是把原始错误、上下文快照、修复建议打包输出。但前提是你要知道如何阅读这份“诊断报告”。下面以三个高频故障为例还原完整的排查过程。5.1 故障一workbuddy login失败日志显示net::err_connection_timed_out表象在公司内网运行workbuddy login等待 30 秒后报错终端显示红色文字ERROR: Failed to connect to auth server: net::err_connection_timed_out Context: { url: https://auth.workbuddy.dev/v1/login, timeout_ms: 30000 }排查链路第一步确认是 WorkBuddy 还是网络问题运行curl -v https://auth.workbuddy.dev/v1/login。若同样超时则是网络策略拦截若返回405 Method Not Allowed说明网络通畅问题在 WorkBuddy。第二步检查 WorkBuddy 的代理配置运行workbuddy config:get http_proxy。若输出为空但公司强制代理则需设置workbuddy config:set http_proxy http://proxy.company.com:8080 workbuddy config:set https_proxy http://proxy.company.com:8080第三步验证证书信任链最隐蔽的坑公司内网常使用自签名 CA 证书。WorkBuddy 默认使用 Node.js 的ca证书池不读取系统证书。解决方案# 导出公司根证书为 PEM 格式假设为 company-root.crt # 将其路径加入 WorkBuddy 配置 workbuddy config:set ca_cert_path /path/to/company-root.crt此时workbuddy login会自动将该证书加入 TLS 连接的可信 CA 列表。第四步终极验证运行workbuddy debug:network --url https://auth.workbuddy.dev/v1/login它会输出DNS 解析结果是否被劫持到内网 IPTCP 连接耗时判断是 DNS 还是 TCP 层问题TLS 握手详情证书链是否完整HTTP 响应头确认服务端是否真的返回了 200注意net::err_connection_aborted通常发生在 TLS 握手完成但 HTTP 请求未发出时根源多为代理服务器主动断开长连接。此时需在workbuddy config中设置keep_alive_timeout_ms: 5000降低连接保活阈值。5.2 故障二workbuddy sync:all报错fatal: not a git repository表象在/home/user/projects目录下运行workbuddy sync:all部分仓库报错ERROR: Command failed: git -C /home/user/projects/payment-service status --porcelain fatal: not a git repository (or any of the parent directories): .git排查链路确认目录真实性运行ls -la /home/user/projects/payment-service/.git。若输出No such file or directory说明该目录根本不是 Git 仓库——WorkBuddy 的sync:all会扫描所有子目录包括未初始化的空文件夹。检查符号链接陷阱运行ls -la /home/user/projects/payment-service。若看到- /mnt/nas/payment-service说明是符号链接。WorkBuddy 默认不跟随 symlink需在.workbuddy/config.json中添加{ follow_symlinks: true }验证 Git 配置继承进入/home/user/projects/payment-service运行git config --list --show-origin。若看到file:/etc/gitconfig core.autocrlftrue但该仓库是 Linux 项目autocrlftrue会导致文件权限变更失败。解决方案cd /home/user/projects/payment-service git config core.autocrlf input # 覆盖全局设置WorkBuddy 的仓库发现逻辑它并非简单遍历子目录而是读取.workbuddy/workspace.json。若该文件不存在或损坏会触发全盘扫描。此时应workbuddy init --force # 重新生成 workspace.json workbuddy workspace:list # 确认 payment-service 是否在列表中5.3 故障三Claw 插件执行超时日志显示Error: Command failed: timeout表象自定义的claw-db-audit插件在扫描大型 SQL Server 数据库时总是 60 秒后报错ERROR: Plugin execution timed out after 60000ms Context: { plugin: db-audit, command: dotnet run --project src/Program.cs }排查链路确认是插件还是 WorkBuddy 限制手动运行插件cd claw-db-audit dotnet run --project src/Program.cs。若同样超时则是插件逻辑问题若正常则是 WorkBuddy 的 timeout 设置过短。调整插件超时阈值WorkBuddy 允许为每个插件单独设置 timeoutworkbuddy plugin:config db-audit --set timeout_ms300000插件自身的健壮性改进在Program.cs中添加进度反馈// 每处理 100 行输出一行 JSON 进度 Console.WriteLine(JsonSerializer.Serialize(new { progress ${processed}/{total} }));WorkBuddy 会捕获这些输出并显示为实时进度条避免用户误以为卡死。资源隔离验证运行workbuddy debug:resource --plugin db-audit它会输出插件进程的 CPU、内存占用峰值。若内存持续增长说明插件存在对象泄漏如未释放SqlConnection需在 C# 中确保using语句包裹所有资源。关键原则WorkBuddy 的所有错误日志都遵循ERROR: 简明错误 \n Context: {结构化上下文}格式。永远先看Context字段——它包含了触发错误的完整环境快照比错误消息本身更有价值。比如Context: {url: https://registry-1.docker.io/v2/, method: GET}直接告诉你问题出在 Docker Registry 连接而非本地网络。6. 进阶实践构建属于你团队的 WorkBuddy 生态WorkBuddy 的终极形态不是一个人用而是成为团队的“数字工作协议”。当超过 5 个成员使用就必须建立一套轻量级治理机制否则会陷入配置碎片化、插件版本混乱、技能不可复用的泥潭。以下是我们在 12 人全栈团队落地的真实方案。6.1 统一配置即代码.workbuddy/目录标准化我们强制所有项目仓库根目录包含.workbuddy/目录其下文件构成团队的“工作宪法”文件作用示例内容config.json全局配置覆盖{ http_timeout_ms: 120000, log_level: info }skills.yaml团队共享技能注册- name: deploy-to-stagingbr/ command: workbuddy run:claw --plugin aws-deploy --env stagingsync-rules.yaml跨仓库同步规则如前文sync:deps示例pre-commit.yaml