v1.1.0 v1.0.0 · 稳定根 GA · 扩展模块按成熟度标注 查看发布策略 →

agent-first

你的 AI agent 需要的是地图,不是猜测。

当 AI 编程助手承担越来越多的执行工作时,关键问题变成了:你的仓库是否给了它们清晰的操作模型——还是让它们猜测?Plumego 的控制平面给 Agent 提供了资深评审者同样的路由信号。

控制平面

五个文件定义操作模型。

Agent 在做任何变更前按顺序读取这些文件。同样的文件也是人工评审者的权威参考。一套模型,两类受众。

specs/task-routing.yaml 任务路由器

把每种工作意图(添加中间件、修改扩展行为、更新边界规则)映射到归属模块路径和 start_with 文件列表。Agent 在接触任何 Go 文件之前先读这份文件。

任务: "添加限流" → 模块: middleware/ → 读取: middleware/module.yaml
specs/dependency-rules.yaml 边界执行器

声明哪些包可以 import 哪些包。违规由 go run ./internal/checks/dependency-rules 机械地捕获——不依赖评审者的记忆。

稳定根不得 import x/* — 在 CI 中强制执行
specs/change-recipes/ 变更模板

15 个标准任务形态的可复用 recipe:add-middleware、new-extension-family、promote-to-beta 等。每个 recipe 都有有序步骤和明确的 stop condition。

15 个 recipe 覆盖所有常见变更类型
<module>/module.yaml 模块作用域

每个模块自声明归属、风险等级、测试命令和评审清单。Agent 只运行与被改动模块相关的检查。

validation: go test -race ./middleware/... && go vet ./middleware/...
make gates CI 等效循环

一条命令镜像 CI:边界检查、go vet、gofmt、竞态测试和普通测试。Agent 在每次 push 前运行——不会在 CI 中遇到意外。

make gates → boundary + vet + fmt + race + tests

Agent 执行模型

变更如何流经控制平面。

这是每个 Agent(以及每位贡献者)遵循的有序工作流。每个步骤都有确定性输出,然后再进入下一步。

01

读取 task-routing.yaml

在打开任何 Go 文件之前,Agent 先读 specs/task-routing.yaml,找到该任务类型的归属模块。这在变更发生前就阻止了误路由。

02

读取 module.yaml

目标模块的 module.yaml 声明了作用域、风险、in-scope 路径、out-of-scope 路径以及要运行的确切验证命令。Agent 现在有了有界的操作上下文。

03

执行变更

Agent 只编辑声明模块作用域内的文件。边界规则是机器可读的,所以它无需逐包阅读就知道哪些 import 是允许的。

04

运行 make gates

一条命令在本地运行 CI 等效验证循环:边界检查、vet、格式检查、竞态测试。结果与 CI 相同——push 不会有意外。

Agent-ready

为现代团队的工作方式而生。

本节讨论的是 AI 编码助手——Copilot、Claude、Cursor——帮助写代码或评审代码的工具。这不是关于构建 AI agent 服务的内容;那是 x/ai 模块的范围。

当 AI 编程助手承担越来越多的执行工作时,关键问题变成了:你的仓库是否给了它们清晰的操作模型——还是让它们猜测?Plumego 的控制平面给 Agent 提供了资深评审者同样的路由信号。

specs/task-routing.yaml 任务路由

将工作类型映射到归属模块。Agent 在写任何代码前先读这份文件。

specs/dependency-rules.yaml 边界执行

import 违规由机器捕获,不依赖评审者的记忆。

<module>/module.yaml 模块级 scope

每个模块自声明检查命令。Agent 只运行相关的验证。

选择一个场景,看看它会路由到哪里

为 HTTP 端点添加限流
路由规则 middleware
归属模块 middleware/
原因 传输层横切关注点,不需要引入 x/* 模块。稳定根完全可以处理。

阅读完整的 Agent 工作流规范。

概念文档覆盖每个 stop condition、完整的 AGENTS.md 权威顺序、上下文预算规则以及完整的变更 recipe 列表。