
3 类产出、2 个引擎grill-with-docs 一次会话搞定设计拷问与领域文档沉淀【免费下载链接】skillsSkills for Real Engineers. Straight from my .agents directory.项目地址: https://gitcode.com/GitHub_Trending/skills13/skillsSkills for Real Engineers 是一套面向真实工程实践的 Agent 技能包其中grill-with-docs用一场逐轮拷问的访谈把你和 Agent 对设计、对术语的理解磨到一致并当场把术语写进CONTEXT.md术语表、把硬决策写进 ADR 架构决策记录——会话结束共享语言留在磁盘上。机制全景这个技能本身不含任何逻辑入口文件只有一行委托指令真正的活由两个底层技能分头完成。打开 skills/engineering/grill-with-docs/SKILL.md正文只有一句Call the Skill tool twice, for grilling and domain-modeling.也就是说它是一个编排入口把职责拆给两个引擎组件角色负责什么入口grill-with-docs编排层一行指令依次调用下面两个技能自身零逻辑grilling访谈引擎拷问机制把访谈建模成设计树逐轮提问直到前沿为空domain-modeling写作引擎落盘纪律术语辨析、边界场景、CONTEXT.md与 ADR 的即时写入整个流程可以压缩成四步你手动输入/grill-with-docs。元数据里disable-model-invocation: trueopenai.yaml中对应allow_implicit_invocation: false意味着模型不会自动伸手用这个技能只能由人触发。入口把访谈交给grilling把落盘交给domain-modeling。访谈引擎按设计树逐轮提问写作引擎在术语和决策结晶的瞬间就把它们写进仓库。会话结束仓库里留下三类东西CONTEXT.md词条、docs/adr/下的决策记录、以及对话本身。由于它直接往仓库写文件且依赖两个外部技能单独安装只会得到一个一行字的空壳——这一点会在后面的故障排查里再出现。产出物拆解一次会话最多产出三样东西而且它们地位并不对等术语进CONTEXT.md过三门槛的决策进 ADR其余一切只留在对话里。术语表落盘规则术语在解决的那一刻就地写入绝不攒到结尾批量落盘。写入位置分两种结构单上下文仓库写根目录CONTEXT.md若根目录存在CONTEXT-MAP.md表示多上下文则写入对应上下文的CONTEXT.md由技能自行推断当前话题归属哪个上下文不确定时会先问你。文件按需懒创建——第一个术语结晶之前磁盘上什么也不会有。术语怎么被结晶出来写作引擎在会话中持续执行五个动作动作触发时机典型行为对照术语表发起挑战你用的词与CONTEXT.md已有定义冲突术语表把 cancellation 定义为 X但你这里指的是 Y到底哪个锐化模糊语言你用了含糊或过载的词你说 account是 Customer 还是 User这是两个东西。讨论具体场景涉及领域关系编造探测边缘情况的场景逼你把概念边界说精确与代码交叉引用你描述某事物如何工作代码取消了整个 Order你刚才却说了部分取消哪个是对的内联更新术语被解决立刻更新CONTEXT.md不等收尾注意边界仅仅为了查词而读CONTEXT.md不算这个技能的用武之地那是任何技能都能做到的一行习惯这套纪律只在你改变模型时才生效。同时CONTEXT.md刻意只当术语表——不写实现细节、不写规格、不当草稿纸。共享语言带来的连锁收益是实打实的变量、函数、文件按同一套词汇命名代码库对 Agent 更好导航Agent 也因语言更简练而少花思考 token。标准格式见 skills/engineering/domain-modeling/CONTEXT-FORMAT.md# {上下文名称} {一两句话描述这个上下文是什么、为什么存在。} ## Language **Order**: {对该术语一两句话的描述} _Avoid_: Purchase, transaction **Invoice**: A request for payment sent to a customer after delivery. _Avoid_: Bill, payment request书写规则四条要有主见同一概念多个词时选最好的一个其余全部列入_Avoid_定义要紧凑最多一两句话写它是什么IS不写它做什么does只收项目专属术语通用编程概念超时、错误类型、工具模式即使项目大量使用也不属于这里——加词前问一句这是本上下文独有的概念吗自然聚簇时分组术语形成内聚区域就用子标题归类都属于单一区域时平铺列表也可以。ADR 三重门槛与编号决策记录写入docs/adr/按顺序编号0001-slug.md、0002-slug.md依此类推扫描现存最大编号加一目录同样懒创建第一份 ADR 需要时才建。技能只在三个条件同时成立时才提议创建门槛回答的问题不满足时难以逆转日后改变主意代价多大容易逆转就跳过反正你会逆缺乏上下文会令人惊讶未来读者会否疑惑为什么这么做没人会疑惑不用写真实权衡的结果是否存在真正可选的方案没有替代方案只做了显而易见的事缺一即跳过所以大多数决策不够格大多数会话产出零份 ADR——这是设计而非故障。模板极简见 skills/engineering/domain-modeling/ADR-FORMAT.md# {决策的短标题} {1-3 句话背景是什么、我们决定了什么、为什么。}一份 ADR 可以只有一段价值在记录做了决定和为什么不在填满小节。可选章节只在真正有价值时加Status frontmatterproposed | accepted | deprecated | superseded by ADR-NNNN决策会被重审时、Considered Options被否方案值得记住时、Consequences存在不显而易见的连锁影响时。够格的具体类别架构形态monorepo、事件溯源写模型上下文间的集成模式领域事件而非同步 HTTP带来锁定效应的技术选型换掉要花一个季度的数据库、消息总线、认证提供方边界与范围决策明确的不做和要做同样值钱对显而易见路径的刻意偏离手写 SQL 不用 ORM防止下一位工程师修正它代码里看不见的约束合规禁用某云、合作方 API 要求 200ms 内响应以及被否掉且否掉理由不明显的替代方案否则六个月后还会有人重提 GraphQL。第三类产出对话本身其余所有已敲定的内容落点只有对话上下文。这正是最容易踩的坑术语表不是规格大多数回答也挣不到一份 ADR且没有任何账本把每个已解决的答案一路对应到规格、票据和测试。术语表变锋利了、ADR 为零的会话完全符合设计但它意味着你达成共识的大部分内容只存在于当前上下文窗口里——此时应把整段对话交给to-spec去合成规格而不是直接清空上下文。运行节奏拷问环节的引擎是grilling访谈被建模成一棵设计树每个决策都分支出挂靠在它下面的子决策整个会话就是逐轮问完前沿、等回答、重算前沿的循环。确定前沿。前沿指所有前置条件已经敲定的决策——你现在就能问、而不用猜测尚未听到答案的问题集合。一轮问完整个前沿。给每个问题编号并附上推荐答案然后停下等你的回答❓ **Q1** - 问题标题: 问题正文可以是多段包含多个选项 ➡️ 你的推荐答案 --- ❓ **Q2** - 问题标题: 问题正文 ➡️ 你的推荐答案回答重塑这棵树。已敲定的决策把前沿向外推解封依赖它们的新问题重算前沿后进入下一轮。一个问题的答案依赖本轮仍未解答的另一问题它属于更晚的轮次不要在本轮硬问。查事实是 Agent 的活不是你的。前沿问题需要环境中的事实文件系统、工具时派子代理去查绝不把能自己查到的东西抛给你同时不阻塞等待——进行中的探查算未敲定的前置条件只有依赖它的下游问题要等前沿其余问题现在就可以先问。但决策权始终在你每个决策都要摆到你面前然后等。前沿为空即结束。每一分支都被访问过没有任何东西被默默假设。在你确认达成共识之前Agent 不会基于这次访谈采取任何行动。判断与选型选技能只看你手头有什么而改动能否在一次会话内敲定是grill-with-docs与wayfinder的分水岭。你手头有什么选哪个根本不在任何工作目录里grill-me一个仓库改动能在一次会话内敲定grill-with-docs大到一次会话装不下的工程绿地构建、大型功能wayfinder一个仓库完全没有领域文档也没有特定功能在脑中grill-with-docs目标对准仓库本身一个卡在别人脑子里知识上的决策to-questionnaire分水岭就是会话次数/grill-with-docs管单会话规划/wayfinder管多会话规划。后者先把工作描绘成一张决策票据地图、再逐张解决更慢更稠密——在一个范围良好的功能上对它过度伸手是常见错误。它并不取代本技能地图中适合的部分会下探进一次 grilling 会话里。近亲关系上grill-me是同样的访谈但无仓库无文件domain-modeling是它所驱动的术语与 ADR 纪律两者都坐落在grilling原语之上不确定该用哪个时交给路由技能ask-matt判断。 故障排查问题大多集中在四类按下表对号入座。现象原因处置跑完了既没有CONTEXT.md也没有 ADR分两种平庸的那个——三门槛卡掉了所有内容一次没有新词汇的改动会话确实无物可写属正常真正的 bug——当技能跑在另一层编排内部规格驱动开发包装器、多 Agent 框架、把它当流水线一步的规则时写文件的那一半被静默跳过访谈照常进行前者无需处置后者该问题已登记、未修复先检查工作目录和仓库文件状态再信任会话输出一次性把所有问题都问了、没有任何推荐、也从不提CONTEXT.md依赖技能没能加载。入口只是一行委托拾不起grilling与domain-modeling的 Agent 只能靠猜更迷惑的是部分加载——grilling在、domain-modeling不在访谈很好却零纸面记录。与模型和 effort 级别相关是该技能被报告最多的问题直接问 Agent 它加载了哪些技能确认安装清单里同时有grilling和domain-modeling我其余的决策都去哪了顺序保证、否定性需求、数值默认值等精确回答下游变得含糊只进了对话。术语表不是规格大多数回答挣不到 ADR也没有账本把每个已解决答案对应到规格、票据和测试结果可能看起来完整却丢掉了你真正决定的东西保留会话直接喂给to-spec合成规格并且拿你自己的回答重新读一遍规格不要假定它已捕获会话收尾消息很开放不知道下一步做什么已知的毛边不是 bug主流流程在同一段对话里调用to-spec改动小到能立即构建就直奔implement想指向一个完全没有任何文档的既有仓库不是故障是目标用法——没有 ADR、没有领域语言、没有设计原则的代码库正适合它调用并说帮我记录我的仓库可搭配improve-codebase-architecture构建或修复CONTEXT.md。做好引导的准备它会读代码、就发现的东西问你而代码库里已有的哪些词是正确的词由你说了算✅ 验证清单五条全部成立这次会话就是工作正常。CONTEXT.md在会话期间逐词增长而不是结尾一次性冒出来术语表读起来是纯粹的词汇项目自己的词加紧凑定义零实现细节、零规格式散文代码库能回答的问题由读代码库回答而不是拿来问你ADR 很少或为零而得到的那几份都是不得不重新辩一遍会很烦的决策它会因为既有术语表对某个词有不同定义而当场挑战你刚用出的这个词 上下游与安装grill-with-docs是主构建链的头部它先于任何规格存在产出的是后续环节直接综合所需的共享理解与已敲定词汇下游谁也不用再访谈你一遍。grill-with-docs → to-spec → to-tickets → implement → code-review收尾动作就发生在这条链上共识达成后在同一段对话里调用to-spec它只综合、不再访谈改动足够小就直接进implement。上游的wayfinder规划装不进一次会话的工程并把地图的合适部分下传给它选型不确定时问ask-matt。顺带一提社区有个叫grill-domain-model的改名建议一直悬而未决若落地文档页会跟着移动。安装需要保证依赖技能同时在场Claude Codeclaude plugins install mattpocock-skills或在会话内执行/plugin install mattpocock-skills之后在每个仓库运行一次/setup-matt-pocock-skills完成配置。Codex 及其他 Agent或想自己改的玩家npx skillslatest add mattpocock/skills安装器会让你挑选要装哪些技能——务必确认setup-matt-pocock-skills、grilling与domain-modeling都在其中否则grill-with-docs就是一行空壳。配置完成后在仓库内输入/grill-with-docs启动一次边拷问边落盘的会话。打开你手头那个还没开始改动的仓库输入/grill-with-docs让设计树在前沿上逐轮长完——前沿为空的那一刻把整段对话交给to-spec就是这次对齐的标准收尾动作。【免费下载链接】skillsSkills for Real Engineers. Straight from my .agents directory.项目地址: https://gitcode.com/GitHub_Trending/skills13/skills创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考