Community编程与开发github.com

mattpocock/grill-with-docs

通过严苛的“拷问”会话,将你的方案与现有领域模型进行对质,锤炼术语,并在决策成型时实时更新文档(CONTEXT.md、ADR)。适用于用户想要在项目语言和已有决策基础上对计划进行压力测试的场景。

grill-with-docs 是什么?

`mattpocock/grill-with-docs` 是一种AI代理技能,旨在帮助开发者或团队对其技术方案进行严格的“拷问”,以确保与项目的现有领域模型、术语和已记录决策保持一致。该技能的核心价值在于,它能通过结构化的对话,主动挑战方案的模糊之处、术语不一致或与已有架构决策记录(ADR)相冲突的地方。在此过程中,它会实时建议并更新项目的关键文档,如 `CONTEXT.md` 和 ADR 文件,将隐性的决策过程转化为显性的、可追溯的记录。支持所有主流 AI 代理平台(如 Claude Code、Cursor 等),通过在技能定义中预设的工作流实现。工作流包括:解析用户计划,对照项目中的领域文档进行逐项核查;识别术语不一致或逻辑漏洞;与用户进行多轮迭代反馈,直到方案与现有领域模型精确对齐;最后自动或提示更新相关文档。这使得该技能特别适用于:重构、功能设计评审、跨团队协作时确保语言一致性,或任何需要将新思路与已有知识库进行严格对齐的场景。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/mattpocock/skills/tree/main/skills/grill-with-docs

Installed? Explore more 编程与开发 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

grill-with-docs 是做什么的?

通过严苛的“拷问”会话,将你的方案与现有领域模型进行对质,锤炼术语,并在决策成型时实时更新文档(CONTEXT.md、ADR)。适用于用户想要在项目语言和已有决策基础上对计划进行压力测试的场景。


概述

grill-with-docs 是一个 AI 代理技能,它模拟了领域专家对设计或实施计划的审问过程。它不是简单地接受用户的方案,而是通过一系列有针对性的提问,暴露出方案中与项目现有领域语言、架构决策或约束条件不符的假设、模糊点或矛盾。

核心工作流

  1. 接收方案:用户提供一份计划(可以是自然语言描述、伪代码或设计方案草稿)。
  2. 上下文映射:技能自动加载项目中的领域模型文件(例如 CONTEXT.md)以及所有架构决策记录(ADRs)。
  3. 迭代拷问:AI 代理开始提出一系列问题,例如:
    • “你提到的‘用户’与 CONTEXT.md 中的‘客户’实体是什么关系?”
    • “这个新行为是否与 ADR-0005 中关于支付网关的决策相冲突?”
    • “你使用的术语‘账单周期’在领域模型中是否已有定义?它是否与现有的‘结算周期’是同义词?”
  4. 术语对齐:当发现不一致时,技能会建议优先使用现有术语,或者在达成共识后更新文档以引入新的精确定义。
  5. 文档更新:随着决策在对话中结晶,技能会生成对 CONTEXT.md 或相关 ADR 文件的更新建议(以 diff 或结构化摘要形式呈现)。用户确认后,即可进行实际文件修改。

适用场景

  • 重构或重写:在开始大规模代码变更前,验证新架构是否与现有的领域理解一致。
  • 功能设计评审:在新功能设计阶段早期发现与现有决策的矛盾。
  • 团队协作:当多个团队使用不同术语描述同一概念时,帮助统一语言。
  • 知识传承:将仅存在于对话中的隐晦决策显性化为文档。

平台支持

本技能适用于所有支持 SKILL.md 定义的 AI 代理平台,包括但不限于:

  • Claude Code
  • Cursor
  • Codex CLI
  • 其他兼容的工具

工作方式

该技能通过以下机制实现:

  • 上下文注入:在技能激活时,自动读取 CONTEXT.md 和 *.adr 文件内容,注入到会话上下文中。
  • 引导式提问:预定义了一系列“拷问”模式,但根据具体上下文动态生成问题。
  • 实时文档追踪:监控对话中出现的术语和决策,与已有文档内容进行对比。
  • 变更建议:以 Markdown Diff 或结构化提案的形式生成文档更新内容。

使用示例

用户:“我想添加一个‘订阅降级’功能,允许用户在月中降级其订阅计划。”

AI 代理:“好的,让我对照当前领域模型审问这个方案:

  1. CONTEXT.md 中定义了‘订阅’实体,但没有‘降级’操作。这是否意味着引入了新的领域事件?
  2. ADR-0003 指出“所有订阅变更必须按整月结算”。月中降级是否与之冲突?
  3. 术语检查:‘降级’在领域词汇表中是否存在?是否应使用‘计划变更’并带有降级属性?”

通过这轮拷问,用户可能发现需要创建一个新的 ADR 来覆盖月中变更场景,并更新 CONTEXT.md 以明确“降级”作为“订阅变更”的一种类型。

注意事项

  • 该技能的有效性依赖于项目文档的初始准确性和完整性。
  • 对于全新项目(尚未有 ADR 或 CONTEXT.md),技能将鼓励在会话过程中建立这些文档。
  • 可能需要用户明确授权才能实际写入文件。

由 AI 代理技能定义生成

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

mattpocock/ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

mattpocock/caveman

Ultra-compressed communication mode. Cuts token usage ~75% by dropping filler, articles, and pleasantries while keeping full technical accuracy. Use when user says "caveman mode", "talk like caveman", "use caveman", "less tokens", "be brief", or invokes /caveman.

mattpocock/claude-handoff

Hand the current conversation off to a fresh background agent that picks up the work immediately.

mattpocock/codebase-design

Shared vocabulary for designing deep modules. Use when the user wants to design or improve a module's interface, find deepening opportunities, decide where a seam goes, make code more testable or AI-navigable, or when another skill needs the deep-module vocabulary.

mattpocock/design-an-interface

Generate multiple radically different interface designs for a module using parallel sub-agents. Use when user wants to design an API, explore interface options, compare module shapes, or mentions "design it twice".

mattpocock/diagnose

Disciplined diagnosis loop for hard bugs and performance regressions. Reproduce → minimise → hypothesise → instrument → fix → regression-test. Use when user says "diagnose this" / "debug this", reports a bug, says something is broken/throwing/failing, or describes a performance regression.

mattpocock/diagnosing-bugs

Diagnosis loop for hard bugs and performance regressions. Use when the user says "diagnose"/"debug this", or reports something broken/throwing/failing/slow.

mattpocock/domain-modeling

Build and sharpen a project's domain model. Use when the user wants to pin down domain terminology or a ubiquitous language, record an architectural decision, or when another skill needs to maintain the domain model.

mattpocock/edit-article

Edit and improve articles by restructuring sections, improving clarity, and tightening prose. Use when user wants to edit, revise, or improve an article draft.

mattpocock/git-guardrails-claude-code

Set up Claude Code hooks to block dangerous git commands (push, reset --hard, clean, branch -D, etc.) before they execute. Use when user wants to prevent destructive git operations, add git safety hooks, or block git push/reset in Claude Code.

mattpocock/grilling

Grill the user relentlessly about a plan or design. Use when the user wants to stress-test a plan before building, or uses any 'grill' trigger phrases.

mattpocock/grill-me

Interview the user relentlessly about a plan or design until reaching shared understanding, resolving each branch of the decision tree. Use when user wants to stress-test a plan, get grilled on their design, or mentions "grill me".

mattpocock/handoff

Compact the current conversation into a handoff document for another agent to pick up.

mattpocock/implement

Implement a piece of work based on a PRD or set of issues.

mattpocock/implement-spec

Implement a specification in code.

mattpocock/improve-codebase-architecture

Scan a codebase for deepening opportunities, present them as a visual HTML report, then grill through whichever one you pick.

mattpocock/loop-me

Grill me about specs for the workflows I want to build, within this workspace.

mattpocock/migrate-to-shoehorn

Migrate test files from `as` type assertions to @total-typescript/shoehorn. Use when user mentions shoehorn, wants to replace `as` in tests, or needs partial test data.

mattpocock/obsidian-vault

Search, create, and manage notes in the Obsidian vault with wikilinks and index notes. Use when user wants to find, create, or organize notes in Obsidian.

mattpocock/prototype

Build a throwaway prototype to flesh out a design — a runnable terminal app for state/business-logic questions, or several radically different UI variations toggleable from one route.

相关技能