当使用AI帮助编辑代码的时候AI编写永远达不到预期以及和自己想法不一致这个时候就要根据 Go 生态编写 Skill 所以我把编写 Skill 的流程重构为“四步法”第一步挖掘“Go 项目特有的痛点”定义边界作为 Go 程序员你要写的 Skill 不是为了“写诗”而是为了约束 AI 别写出烂代码。所以开工前先问自己 3 个问题AI 最容易在 Go 里犯什么错答案吞掉err、滥用interface{}、不处理 Context 超时、在循环里拼接字符串项目的“死穴”在哪比如你们的car项目死穴是订单状态机和 Nacos 服务发现团队 Code Review 最常骂哪句话比如“不准在Common里写业务代码”对应你的code-guard你写的“不吞错误”、“订单状态机不准跳”、“跨服务必须 gRPC”正是你们团队 Code Review 时的核心痛点。把 CR 清单变成 Skill 规则就是 Go 程序员写 Skill 的第一性原理。第二步搭建符合 Go 工程美学的 Skill 目录Go 讲究“简洁”和“组合”。Skill 的目录同样要遵循职责单一原则。不要把所有东西塞进一个SKILL.md否则就像main.go里写一万行。按照渐进式披露标准骨架应该是textmy-go-skill/ # 你的技能包 ├── SKILL.md # ⭐ 核心只放行为指令和铁律像 Go 的接口定义 ├── references/ # 按需加载的百科全书像 Go 的 pkg 文档 │ ├── project-arch.md # 存放你的微服务架构图、目录树 │ └── proto-definitions.md # 存放 proto 依赖关系 └── scripts/ # ️ 可执行脚本像 Go 的 cmd 工具 ├── lint-check.sh # 一键跑 go vet gofmt └── proto-gen.sh # 一键生成 pb.go第三步编写SKILL.md—— 套用“Go 三板斧”模板把你刚才写的内容抽象一下以后写任何 Go Skill 都可以直接套用这个Go 专属模板1. 元数据YAML—— 定好触发“路由”yaml--- name: 技能英文名小写连字符 description: 包含【技术栈】【触发词】【产出物】。例如约束 Gogrpc 项目代码规范用户说写代码/修bug时触发 allowed-tools: Read, Grep, Bash(go:*, gofmt:*)2. 核心铁律把Effective Go翻译成 AI 指令不要写“要优雅”要写“绝对禁止”。针对 Go 的写法Go 常见烂代码Skill 里的铁律写法直接复制进你的规则吞掉错误data, _ : db.Find(...)→“出现_ 或裸_接收 err直接拒绝执行”循环内拼接字符串for { str item }→“循环内拼接字符串必须用strings.Builder”不传递 Contextdb.Query(sql)→“所有 DB/Redis/gRPC 调用必须带ctx context.Context参数”魔法常量if status 2→“业务状态码必须使用const或iota不准写数字字面量”返回裸 errorreturn errors.New(fail)→“必须用fmt.Errorf(xxx: %w, err)包裹上下文”3. 自动化兜底告诉 AI 自检命令Go 有极强的官方工具链必须让 AI 在写完代码后自动或提醒跑一遍“代码交付前AI 必须按顺序执行以下命令进行自检若未通过则禁止交付go vet ./...静态检查gofmt -l .格式化检查go mod tidy依赖清理”第四步把“架构细节”扔进references/防止 AI 上下文爆炸你在code-guard里画的那张漂亮的 ASCII 架构图和car/目录树正是 AI 最容易“看了就忘”或“占满脑子”的部分。Go 程序员的处理方式把它们拆出去。在SKILL.md里只留一句引用“当需要确认文件存放路径或服务间调用关系时请 AI 主动读取references/project-struct.md中的架构图和目录树。”这样AI 只有在准备新建文件或跨服务调用时才会去翻目录平时写业务逻辑时根本不会加载这部分无用 Token。Skill 还可以再进化一步——注入“生成代码”的能力。你可以专门写一个 Skill 叫go-proto-generator它的scripts/下放一个gen.sh。当用户说“根据这个表结构生成 gRPC 服务”时AI 不是直接生成乱码而是执行你的脚本并遵循SKILL.md里的规则order.proto必须在Common/proto/order/生成的pb.go必须使用//go:generate protoc ...注解service.go必须实现UnimplementedOrderServer 给你的“从 0 到 1”速查清单下次直接用步骤Go 程序员专属动作0. 找痛点翻最近的 Git 提交记录看 CR 时改得最多的是什么1. 建目录mkdir skill-name cd $_ mkdir references scripts2. 写 SKILL.md只写触发词 绝对禁止列表 自检命令go vet3. 移文档架构图、Nacos配置、表结构 ER 图扔进references/4. 写脚本把gofmt、go mod、protoc命令写成.sh文件5. 压测故意给 AI 一个带_ err的烂代码看它会不会拒绝执行