ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

Plate 开源仓库的 Agent 协作规范与工程化开发工作流指南

Plate 开源仓库的 Agent 协作规范与工程化开发工作流指南 前端富文本UI组件【免费下载链接】plateRich-text editor with AI and shadcn/ui项目地址https://gitcode.com/GitHub_Trending/pl/plate点击查看免费下载本篇指南以 Plate 仓库根目录下的 .agents/AGENTS.md 为骨架系统讲解这套面向 AI Agent 与人类维护者共用的仓库宪法单一事实来源机制、Git/PR 纪律、包工程与文档规范、依赖环境重置、技能选择Skill Diet以及源码优先source-first的 typecheck 工作流。读完你将掌握在 Plate monorepo 中正确提交改动、排查环境故障、按序执行包级验证与交付 PR 的完整方法并能把这些约定复用到其他大型开源仓库的协作场景中。一、AGENTS.md 在 Plate 仓库中的角色单一事实来源机制在 Plate 仓库中Agent 行为的最终权威不是散落在各处的说明文件而是集中在.agents/目录下的一套单一事实来源source of truth机制。AGENTS.md 第一条就明确了这一点.agents/AGENTS.md和.agents/rules/*.mdc是 source of truth。编辑它们之后运行pnpm install来同步。绝不直接编辑SKILL.md。这意味着仓库存在一条规则源 → 生成产物的单向管线规则权威文件.agents/AGENTS.md总纲与 .agents/rules/各主题细则如task.mdc、major-task.mdc、docs-creator.mdc、changeset.mdc、release-lanes.mdc等生成镜像AGENTS.md根目录由 Skiller 生成文件头注释标明Generated by Skiller与Source: .agents/AGENTS.md以及.agents/skills/*/SKILL.md由对应.mdc规则生成同步动作编辑源文件后执行pnpm install触发 skiller 重新应用根 package.json 中prepare脚本为bun x skillerlatest apply顶层入口CLAUDE.md 全文只有一行.agents/AGENTS.md即 Claude Code 等其他 Agent 工具直接引用总纲。除规则外.agents/skiller.toml 还配置了默认应用到的 Agent 集合default_agents [claude-code, codex]、技能开关、gitignore 与 MCP 管理策略并内置了两个 MCP Server 定义plate通过npx shadcnlatest mcp启动并注入REGISTRY_URLhttp://localhost:3000/rd/registry.json以及agentation。这套设计的直接收益是任何 AgentCodex、Claude、自定义工具进入仓库后读一个文件即可获得完整行为契约而维护者只需维护.agents/源文件避免多份文档漂移。二、协作基线沟通、Git 与 PR 纪律沟通基线AGENTS.md 对交互风格有两条硬约束适用于所有提交信息与对话极度简洁为简洁可以牺牲语法be extremely concise and sacrifice grammar for the sake of concision默认使用英语仅当用户明确要求时才切换语言。这两条降低了 Agent 与维护者之间长对话的信息噪声让 PR 描述、提交信息和交接文本都保持高密度。Git 纪律默认不触碰远端默认状态下禁止git add、commit、push或创建 PR除非用户明确要求或当前激活的命令/技能明确要求。这避免了 Agent 擅自污染共享分支同时规定脏工作区不打断工作——不要为无关的本地改动停下来询问继续工作并忽略无关 diff 即可。推送范围规则也值得注意当确实需要提交并推送时应把src之外的无关脏文件一并纳入因为这些往往是人工改动或同步的技能/文档更新不应被静默遗漏。Task PR 默认验证过的代码改动默认交付为 PRtask与major-task技能明确要求经过验证的代码改动必须被提交、推送并作为 PR 打开/更新除非用户明确说不需要、改动没有本地补丁、或存在真实阻塞。不要把用户没有单独说开 PR当成阻塞理由。配套的强约束是One PR, One Task每个 PR 都必须有自己独立的task调用和专属任务计划PR body 必须点名该计划计划必须存在于 PR head且必须标识出精确的 PR批次计划只能决定 PR 顺序永远不能替代每个 PR 的task证据。autoclosure不合规 PR 的关闭流程autoclosure负责对缺少可验证 per-PR 任务证据的 PR 执行注释 关闭流程注释必须解释要求、说明如何运行task并且必须在关闭前成功发布随后回读注释与CLOSED状态然后停止不再评审、修复或合并该 PR。分支、检查与合并覆盖开 PR 前必须运行check即pnpm lint pnpm typecheck pnpm test:all pnpm test:slowest见 package.json失败则停止修复或如实上报阻塞若用户明确要求开 PR不询问确认若当前分支是main先创建codex/分支再提交推送已在非main分支则直接进行合并覆盖用户明确说合并就直接合并不等 CI 变绿、不重复询问必要时使用 admin merge已有打开 PR 的分支上任何后续改动都视为对整体 checkout 的推送授权不允许把跟进改动只留在本地。三、包工程与文档规范PackagesAGENTS.md 对包管理、文档与产物边界有明确约定DX 优先为人类与 AI Agent 同时优化体验JSDoc 必须对 Agent 是一等公民每个 API 表面应对人与 Agent 都直观文档只描述最新状态严禁 changelog 式语言has been removednew featurepreviouslynow supports。文档是面向用户的当前状态参考写作语气与结构遵循 .agents/rules/docs-creator.mdc——即教人类读得懂、同时让 Agent 解析得干净模板是 CI 控制的产物templates/**不允许手工编辑或提交模板源、manifest 或 lockfile应修复源 registry、包或工作流输入让 CI 重新生成模板。本地验证若改写了模板文件交接前必须还原Barrel 导出当改动包导出、移动公共文件、增删导出目录下的文件或 CI 报告pnpm brl产生变更时必须在最终验证/提交前运行pnpm brl对应根脚本brl: pnpm g:brl即turbo --filter ./packages/** brl并纳入生成的 barrel 更新代码风格单次使用优先内联仅在被复用时才抽取常量不为死代码/遗留移除断言写 TDD 用例例如不应再包含旧 API X直接删除死路径、让测试聚焦当前行为。这些规则与根 README.md 中核心插件包 shadcn/ui 组件 AI 能力的产品结构相互呼应仓库以packages/*core、slate、basic-nodes、markdown、table、yjs 等约 40 个包为功能单元任何公共面变更都会触发 barrel、changeset 与 registry 三道纪律。四、工具链规范依赖环境重置与环境腐败诊断AGENTS.md 将本地开发中最容易误判的一类问题显式归类为安装腐败install corruption优先而不是产品代码错误。当 typecheck/build/dev 突然出现与当前 diff 对不上的缺模块或包解析错误时先运行一次pnpm run reinstall再深入调试。React 运行时环境腐败信号以下现象被明确列为先怀疑本地环境而非产品代码Invalid hook callresolveDispatcher()/ null dispatcher 崩溃packages/*下出现包级node_modules/react或node_modules/react-dom路径同一失败堆栈中出现混用的.bun与.pnpmReact 路径。若pnpm test、bun test或pnpm check以这些信号突然失败且与当前 diff 对不上先运行一次pnpm run reinstall失败形状改变或消失即证明是本地环境腐败否则再回到正常调试。reinstall 的清理范围pnpm run reinstall被定位为仓库重置按钮。从 tooling/scripts/reinstall.sh 源码可以看到其精确行为脚本以仓库根为基准先收集根node_modules、.turbo、apps/www/.next再递归查找排除根node_modules、.git、templates后所有node_modules与tsconfig.tsbuildinfo逐一删除后执行pnpm install。需要强调的是规则同时警告不要把pnpm run reinstall当作修复真实代码错误的偷懒替代品例如react-dnd/DnD 修复中若出现 Bun 的Invalid hook call或混用.bun.pnpmReact 堆栈不要据此断言 DnD 修复有误同样先pnpm run reinstall一次再重新打开诊断。五、技能选择Skill Diet与 Plate 专属边界AGENTS.md 维护了一份按需加载的技能清单默认以task常规任务和major-task重量级架构/迁移/基准任务为主干仅在技能真正拥有硬性领域关卡时才加载细分技能技能适用场景autogoal任何具有可验证、可量化结果且存在可度量完成阈值的提示词持久性工作前必须使用orchestrator需要把分支级工作路由到子线程而非本地执行task常规仓库任务执行每个 PR含批次内每个 PR必须调用一次major-task重量级架构、框架比较、迁移、基准或提案工作autoclosure在不扩展产品范围的前提下收尾当前工作树对缺乏 task 证据的 PR 注释并关闭clawsweeperSlate issue-ledger 分类、重复/过期/无效分类、小规模高置信 issue 处理与精确声明同步clawpatchClawpatch init/map/review/report/fix/revalidate 工作流editor-test-harvester/editor-harvest-plan挖掘外部编辑器仓库的可移植行为测试、Slate v2 覆盖缺口以及把结果转为分车道执行计划sync-plate-ui面向下游应用如 Potion的 fork-aware Plate UI registry 组件同步release-lanes/sync-main-to-nextbeta/latest 发布车道维护、promote、main - next快速直同步tdd/resolve-pr-feedback测试驱动开发处理来源明确的 GitHub PR 反馈对于.agents/**、.claude/**、.codex/**、技能、钩子、命令、提示词或用户操作工具这类agent-native面AGENTS.md 规定使用 autogoal agent-native pack、运行agent-native-reviewer最后以autoreview收尾task、major-task及 agent-native 工作流可以在无需每次确认的情况下调用其必需的最终autoreview。此外还有两条按文件触发的规则引用更新包时在完成前按 .agents/rules/changeset.mdc 写 changeset定义或更新编辑器行为法、权限图、协议行或一致性覆盖时遵循 .agents/rules/plate-plan.mdc。Plate 专属 CE 排除AGENTS.md 显式列出了本仓库默认不安装、不引用的 CECompound Engineering代理清单data-integrity-guardian、data-migration-expert、data-migrations-reviewer、schema-drift-detector、deployment-verification-agent、dhh-rails-reviewer、kieran-rails-reviewer、kieran-python-reviewer、previous-comments-reviewer、pr-comment-resolver、figma-design-sync除非用户明确要求。理由是Plate 是一个框架/编辑器仓库数据迁移、Rails、部署、PR 线程与 Figma 工作流代理大多是过度的或不匹配的。目标计划命名规范issue 驱动的目标工作文件名以工单号开头例如docs/plans/DEV-4510-fix-schema.md非工单目标工作保持日期格式例如docs/plans/2026-02-07-fix-schema.md。该命名约定与仓库 docs/plans/ 目录中大量2026-04-xx-*.md计划文件完全吻合。六、开发命令与 typecheck 工作流Slate v2 兄弟仓库命令门禁AGENTS.md 对.tmp/slate-v2兄弟仓库有一套分层门禁日常迭代保持bun check快速仅 lint、typecheck 与单元/包测试bun test:integration-local属于收尾/发布门禁而非迭代门禁不放进bun check需要完整浏览器扫描时才用bun check:full且bun check:full必须先包含发布纪律、slate-browser 证明契约、受限移动端证明、持久 profile 浸泡等发布防护再跑完整浏览器扫描与bun test:integration-local。真机移动端证明bun test:mobile-device-proof:raw只在能产出真实 Appium Android/iOS 证据的机器/设备车道上使用。编辑器内核/浏览器工作期间优先使用聚焦包测试与聚焦 Playwright grep。source-first typecheck 原则仓库默认源码优先类型检查不要仅为跑类型而构建包除非仓库脚本或失败证明类型检查图仍解析的是构建后的dist产物。若 typecheck 因过期的 workspace 包声明、source/dist 分裂或未解析的包导出而失败先检查包/应用的paths与源码入口配置仅当受影响表面确实验证发布产物、或该包没有 source-first typecheck 路径时才构建。修改包的标准 typecheck 序列AGENTS.md 给出修改包后的强制命令序列# 1. 按任务或 lockfile 状态安装依赖 pnpm install # 2. 对修改的包做源码优先类型检查 pnpm turbo typecheck --filter./packages/modified-package # 3. 若因图解析到构建产物而失败当修复 source-entry / paths 是正确长期形态时修复它 # 4. 仅在检查产物输出、包导出或该包确实没有 source-first typecheck 路径时才构建 # 5. 自动修复 lint 问题 pnpm lint:fix多包与替代命令多包同时修改时可在一条命令中指定多个 filter随后统一 lint# 通过源码图同时类型检查多个指定包 pnpm turbo typecheck --filter./packages/core --filter./packages/utils # 多个包统一 lint pnpm lint:fix按提交范围或分支范围做增量检查的替代方案# 检查自上次提交以来的改动 pnpm turbo typecheck --filter[HEAD^1] # 检查当前分支相对 origin/main 的所有变更包 pnpm turbo typecheck --filter...[origin/main] # workspace 粒度操作 pnpm --filter platejs/core typecheck pnpm --filter platejs/core lint:fix这些命令与根 package.json 中的脚本体系一一对应typecheck指向pnpm g:typecheck先g:build再turbo --filter ./packages/** typecheck --onlyg:lint/g:lint:fix走 turbo 过滤check则是lint typecheck test:all test:slowest的完整提交门禁。此外 turbo.json 中typecheck任务声明了dependsOn: [^build]与缓存策略lint、brl、clean等任务也有独立的缓存/输出语义理解这些有助于解释为何局部改动只需跑 filter 级命令。全项目慢命令谨慎使用以下命令被明确标注为仅在必要时使用非常慢pnpm build构建所有包pnpm typecheck根包类型检查应走 source-first 包图若它需要 build除非检查明确面向产物否则视为 source-entry 技术债bun run test迭代期运行快速默认测试套件bun test仅在完整任务结束时运行全量测试套件。迭代的正确姿势是聚焦优先先跑包级/文件级针对性检查只有收尾阶段才动用全项目命令这与任务细则 .agents/rules/task.mdc 中验证与变更范围匹配的要求一致。七、浏览器验证、goal 计划与最终交付浏览器使用约束更新content/**、apps/www/**或packages/**时应启动相关 dev server 并用浏览器工具验证受影响的路由/UI/包行为若表面没有可运行的浏览器路径或服务被阻塞需显式说明。规范要求优先使用 browser-use 工具不以前置 Playwright/Puppeteer/裸 Chrome DevTools 替代涉及 Plate registry/浏览器证明时优先走/blocks/[id]-demo独立演示路由而非 docs 包装页。交付与验收综合 AGENTS.md 及 CONTRIBUTING.md一个合规交付的最终形态是pnpm check通过、PR 有专属task计划证据、包改动带 changeset核心包platejs/slate、platejs/core、platejs只用 patch见 .agents/rules/changeset.mdc、registry-only 改动走 registry-changelog、浏览器/UI 改动附截图或录像。交接文本保持极简仅报告 PR、issue/tracker、置信度、测试、浏览器证明、结果、注意事项、设计选择与验证项。八、仓库证据地图理解上述规范时可直接对照以下文件主题仓库路径规则总纲本文主体.agents/AGENTS.mdAgent 工具入口镜像CLAUDE.md、根 AGENTS.md技能/MCP/Agent 配置.agents/skiller.toml任务执行细则.agents/rules/task.mdc重量级任务细则.agents/rules/major-task.mdc文档写作规范.agents/rules/docs-creator.mdcchangeset 规则.agents/rules/changeset.mdc发布车道规则.agents/rules/release-lanes.mdc根脚本与包结构package.json、turbo.jsonreinstall 实现tooling/scripts/reinstall.sh贡献者协作约定CONTRIBUTING.md这套规范的可复制之处在于用单一事实来源 生成镜像 同步命令消除多文档漂移用技能按需加载 PR 独立证据控制 Agent 行为边界用source-first typecheck 环境腐败优先诊断保持大型 monorepo 的本地迭代速度。无论你是在 Plate 上贡献插件还是为其他仓库搭建 Agent 协作体系AGENTS.md 都是一份可以直接借鉴的工程模板。赞分享前端富文本UI组件【免费下载链接】plateRich-text editor with AI and shadcn/ui项目地址https://gitcode.com/GitHub_Trending/pl/plate点击查看免费下载相关推荐Unkey 仓库 AGENTS.md 指南面向 Agent 与开发者的协作规范与开发工作流Unkey 仓库 AGENTS.md 指南面向 Agent 与开发者的协作规范与开发工作流 本篇指南以 Unkey 仓库根目录的 AGENTS.md http后端API网关认证鉴权FlashList 仓库开发指南解读构建流程、贡献规范与 Agent 协作工作流FlashList 仓库开发指南解读构建流程、贡献规范与 Agent 协作工作流 FlashList 是 Shopify 开源的高性能 React Nativ移动开发UI组件跨平台React Cosmos 仓库开发指南Agent 协作规范与构建测试工作流速查React Cosmos 仓库开发指南Agent 协作规范与构建测试工作流速查 React Cosmos 是一个用于在隔离环境中开发与测试 UI 组件的开源项开发工具前端测试创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进