news 2026/9/16 23:23:45

grill-with-docs 实战指南:如何用一场设计拷问把术语与决策沉淀进仓库

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
grill-with-docs 实战指南:如何用一场设计拷问把术语与决策沉淀进仓库

grill-with-docs 实战指南:如何用一场设计拷问把术语与决策沉淀进仓库

【免费下载链接】skillsSkills for Real Engineers. Straight from my .agents directory.项目地址: https://gitcode.com/GitHub_Trending/skills13/skills

Skills for Real Engineers 是一套面向真实工程的 Agent 技能包,其中工程类技能 grill-with-docs 是它最常被用的一个:它围绕你要做的改动逐轮访谈,把定下来的术语与决策当场写进仓库的CONTEXT.md术语表和 ADR 决策记录,一次会话同时完成认知对齐与文档沉淀。

快速上手:30 秒装好并跑起来

先明确一个前提:该技能只能手动触发,openai.yaml 里allow_implicit_invocation为 false,Agent 不会自己伸手用,必须你输入/grill-with-docs启动。

安装按 README.md 说明二选一,推荐后者:

npx skills@latest add mattpocock/skills

(Claude Code 用户也可以用claude plugins install mattpocock-skills。)安装器会让你勾选要装哪些技能,务必保证setup-matt-pocock-skillsgrillingdomain-modeling三个都在——少一个,grill-with-docs就是一行空壳,后面踩坑一节有对应解法。

接着两步:在目标仓库里先跑一次/setup-matt-pocock-skills(它会问你用哪个 issue tracker、triage 标签、文档存哪),然后在会话里输入/grill-with-docs

启动后你会看到什么:它不写代码、不搭环境,而是直接开始按编号提问,每个问题都附带它自己的推荐答案,答完等你的回应,再算下一轮。同时盯着仓库看:会话中一旦有术语敲定,根目录就会出现CONTEXT.md(懒创建,出现之前什么都没有)。

它是怎么干活的:一行入口 + 两套引擎

它的 SKILL.md 正文只有一句委托:Call the Skill tool twice, for "grilling" and "domain-modeling".真正干活的是两套引擎,分工如下:

组成角色
grill-with-docs入口:只做一行委托,且仅手动触发
grilling访谈引擎:设计树、轮次提问、前沿计算
domain-modeling写作引擎:术语辨析、术语表与 ADR 的落盘纪律

设计树与前沿:只问"现在能问"的问题

结论:访谈不是问题轰炸,而是像剥洋葱——每轮只问前置条件已全部敲定的"前沿"。

  • 输入:你的计划或设计(此时还模糊、词汇未定)。
  • 处理:把访谈建模成设计树,每个决策都分支出挂在它下面的若干决策;"前沿"就是前置全部敲定的决策集合,即现在就能问、不必猜测未听到答案的问题。每轮问完整个前沿:逐题编号、每题附推荐答案,然后停下等回答。
  • 输出:一轮轮编号问题。你的回答重塑这棵树,前沿向外推移并解锁下游问题,重算后进入下一轮;某题依赖本轮另一道未解的题,它自动归入更晚的轮次。

两条分工原则值得记住:找事实是 Agent 的活,不是你的——前沿问题需要环境事实(文件系统、工具输出)时,它派子代理去查,且不阻塞当前轮次,只等它的下游问题;决策权始终在你——每个决策都摆到你面前,等拍板。前沿为空即会话结束:每条分支都访问过,没有静默假设;在你确认共识前,它不会采取任何行动。

问题轮次的格式(摘自 grilling 的 SKILL.md):

❓ Q1 - <问题标题>: <问题正文,可含多个选项> ➡️ <它的推荐答案>

落盘纪律:结晶即写,不攒批

结论:写作侧只有一条原则——术语或决策在敲定的那一刻就写盘,绝不攒到最后。

  • 输入:访谈中出现的术语冲突、含糊措辞、关键决策。
  • 处理:四种主动动作——对照术语表挑战冲突用词("术语表把 'cancellation' 定义成 X,你指的好像 Y?")、锐化模糊词("account 指 Customer 还是 User?这是两回事")、编造边界场景压力测试领域关系、把口述与代码交叉核对(代码与说法矛盾就立刻摆上台面)。
  • 输出:敲定的术语内联写入CONTEXT.md;决策则先过三道门槛才配成 ADR——①难以逆转(日后反悔代价高);②缺少上下文会让后来者惊讶("他们为什么这么做?");③真实权衡的结果(有可选项,且因具体原因选了一个)。三关全过才写,缺一即跳过,所以大多数决策不配 ADR,大多数会话 ADR 产出为零。

选型指南:什么时候用、什么时候别用

它的定位是单会话工具,最佳时机:在仓库里、改动开始前、计划还模糊、描述事物的词汇尚未定稿时。手头有什么决定跑什么:

你手头的情况该跑什么
根本不在某个工作目录里grill-me(同样的访谈,无仓库无文件)
一个仓库 + 一次会话能敲定的改动/grill-with-docs
一次会话装不下的工程(绿地构建、大型功能)wayfinder(多会话规划)
仓库里完全没有领域文档,也没有特定功能在脑中/grill-with-docs,目标对准仓库本身
决策卡在别人脑子里的知识上to-questionnaire

两个边界场景值得单独说:

  • 与 wayfinder 的分水岭只有会话数。单会话规划用它,多会话规划用 wayfinder;在范围良好的小功能上动用 wayfinder 是常见错误,反过来 wayfinder 的地图里适合单会话的部分也能下传给它来做一轮拷问。
  • 对准零文档的存量仓库不但行,而且正是目标用法:直接说"帮我记录我的仓库"即可,Agent 会读代码并就发现向你提问,代码库里哪些词才算"正确的词"由你拍板。

跑完你会得到什么:两份文件 + 一份"无"

先说结论:一次会话的产出只有三样,其中两样是文件,一样是什么都没有。所有文件均懒创建,无任何前置脚手架;第一个术语或决策结晶之前,磁盘上一切如常。

解决了什么落在哪里写入时机
一个术语:项目对某事物的专属称呼根目录CONTEXT.md;若根目录有CONTEXT-MAP.md标记多上下文,则写对应上下文的CONTEXT.md术语解决的那一刻,内联写入,不攒批
同时过三关的决策docs/adr/下顺序编号的0001-slug.md式文件第一份 ADR 需要时才建目录;编号 = 现存最大号 + 1
你敲定的其他一切无处落盘只存在于对话本身

第三行最容易让人踩坑:相当一部分共识按设计就不落盘CONTEXT.md是术语表,且刻意只做术语表——不写实现细节、不写规格、不写草稿笔记。它的结构遵循 CONTEXT-FORMAT.md:同一概念选一个规范词、其余列入_Avoid_,定义一两句话封顶,只收本项目独有的词("超时"这类通用编程概念不配入选):

## Language **Order**: {一两句话的定义} _Avoid_: Purchase, transaction

ADR 的格式更简(见 ADR-FORMAT.md):正文就是一个标题加 1–3 句"背景—决定—为什么",一段话即可;Status、Considered Options、Consequences 三个可选章节只在真有价值时加。

验收清单:判断它是否真在工作

会话结束后对照这五条,全中即工作正常:

  • CONTEXT.md在会话期间逐词变化,而不是结尾一次性冒出来
  • 术语表读起来是纯词汇:项目自己的词 + 紧凑定义,零实现细节、零规格式散文
  • 代码库能回答的问题,由读代码库回答,而不是拿来问你
  • ADR 很少甚至为零,且出现的那几份都是"不得不重新辩一遍会很烦"的决策
  • 它会因为既有术语表定义不同,主动挑战你刚用出的某个词

踩坑速查 ⚠️

1. 跑完了,既没有CONTEXT.md也没有 ADR→ 原因:两种。平庸的那种是"没东西够格"——没有新术语、ADR 又要三关全过,确实无物可写。另一种是已知且未修复的 bug:当技能嵌在另一层编排里(规格驱动开发包装器、多 Agent 框架、被规则作为他人流水线的一步调用),写文件的那一半会静默失效,而访谈照常进行。 → 处理:若你处于后一种配置,先核对工作目录,再决定要不要相信会话输出。

2. 一次性把所有问题都问完,没有推荐答案,全程没提CONTEXT.md→ 原因:两个依赖技能没加载成功。它只是一行委托,没拾取grillingdomain-modeling的 Agent 只能靠猜;部分加载(grilling 在、domain-modeling 缺)更迷惑——访谈很好,纸面记录为零。此问题与模型和 effort 级别强相关,是该技能被报告最多的毛病。 → 处理:直接问 Agent"你加载了哪些技能";并确认安装清单里setup-matt-pocock-skillsgrillingdomain-modeling三件齐全。

3. 会话里答的那些精确决定"不见了"→ 原因:按设计而非故障。术语表不是规格,多数回答挣不到 ADR,也没有账本把每个答案一路对应到规格、票据、测试;顺序保证、否定性需求、数值默认值这类精确答案,在下游很容易被弱化成含糊散文。 → 处理:保留会话直接喂给/to-spec,规格出来后拿你本人的回答逐条回读核对,别假定它捕获了一切。

4. 会话收尾消息很开放,不知道下一步干什么→ 原因:已知毛边,技能不给硬性出口。 → 处理:主流流程是同一段对话里调 to-spec;改动小到能立刻动手的,直奔 implement。

5. 想对准零文档的老仓库,怕它卡住→ 原因:不必担心,这正是它瞄准的场景。但要做好引导的准备:Agent 会读代码、就发现问你,而"代码库里已有的哪些词是正确的词"由你说了算。 → 处理:直接说"帮我记录我的仓库";社区常见搭配是 improve-codebase-architecture 来构建或修复CONTEXT.md

全流程位置与下一步

grill-with-docs是主构建链的头部,先于一切规格文字:

grill-with-docs → to-spec → to-tickets → implement → code-review

它产出的是 to-spec 后续直接合成规格所需的共享理解与已敲定的词汇——不用再访谈你一遍。它的上游是 wayfinder,负责规划装不进一次会话的工程,并把地图中适合的部分下传给它;拿不准该用哪个技能或流程时,找 ask-matt,它是这套技能的总路由。

下一步很明确:会话结束时别清空上下文——把同一段对话交给/to-spec,让它合成规格并发布到 issue tracker,随后拆票、进入实现,纸面资产才算真正接上流水线。

【免费下载链接】skillsSkills for Real Engineers. Straight from my .agents directory.项目地址: https://gitcode.com/GitHub_Trending/skills13/skills

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/16 23:23:36

学生信息管理系统实战:彻底搞懂C++继承、多态与虚函数

简介&#xff1a;这份资源是一套基于C实现的学生信息管理系统源码&#xff0c;面向编程初学者、课程设计或期末项目实践。系统覆盖小学、中学、大学生不同阶段的信息管理&#xff0c;包含学号、姓名、性别、年龄、班级等基础字段&#xff0c;并针对中学生增加地理、历史成绩及家…

作者头像 李华
网站建设 2026/9/16 23:15:06

无物理服务器部署ZSvirt:qcow2与OVA镜像包实战指南

如果你一直以为虚拟化平台必须要一台专用物理服务器才能跑起来&#xff0c;那今天这篇文章可能会改变你的想法。ZSvirt 最近放出了 qcow2 和 OVA 两种镜像包&#xff0c;目的是让没有物理服务器的个人开发者、学生、运维新人&#xff0c;也能在个人电脑或已有虚拟机上快速部署一…

作者头像 李华
网站建设 2026/9/16 23:13:07

MQTT核心机制深度解析:发布订阅、QoS与遗嘱消息的工程真相

1. 为什么 MQTT 不是“另一个 TCP 封装”——从协议设计原点看它为何统治物联网通信你可能已经用过 MQTT&#xff1a;在树莓派上发一条温度数据到云平台&#xff0c;用 MQTTX 连上服务器点几下就收发消息&#xff0c;甚至在 Vue3 项目里几行代码就接入了实时设备状态。但如果你…

作者头像 李华