PentestGPT 技能体系中的 grill-with-docs:以拷问式访谈打磨设计方案,同步沉淀 ADR 与领域词汇表
发布时间:2026/10/11 14:56:12 锦皓数字建站

网络安全渗透测试人工智能大模型AI Agent自主智能体【免费下载链接】PentestGPTAutomated Penetration Testing Agentic Framework Powered by Large Language Models项目地址https://gitcode.com/GitHub_Trending/pe/PentestGPT点击查看免费下载本篇技术指南剖析 PentestGPT 仓库中.agents/skills/grill-with-docs/SKILL.md这一组合型 Agent 技能它本身是极简的路由入口真正的工作由grilling与domain-modeling两个技能接力完成——先对方案进行逐分支、一次一题的拷问式访谈再在共识达成的同时把领域术语写入CONTEXT.md、把关键架构决策记入docs/adr/。读完你将掌握这套先想清楚再动手的设计评审流程、领域建模与 ADR 的书写规范以及它如何与 PentestGPT 的 Agentskills 安装与校验机制协同工作。一、技能定位一个路由器式的组合技能在.agents/skills/目录下grill-with-docs的完整定义只有 7 行见 .agents/skills/grill-with-docs/SKILL.md--- name: grill-with-docs description: A relentless interview to sharpen a plan or design, which also creates docs (ADRs and glossary) as we go. disable-model-invocation: true --- Run a /grilling session, using the /domain-modeling skill.从结构看它刻意保持了薄路由、厚实现的形态frontmatter 的name与目录名一致grill-with-docs。这是 Agentskills 规范的硬性要求——unified_agent/skills.py 中load_skill()会校验name必须与所在目录名完全相同否则抛出SkillError。disable-model-invocation: true表示仅由用户手动调用与 writing-great-skills 中model-invoked / user-invoked的分类对应。禁用模型自主调用后该技能的 description 不再常驻上下文窗口换来零 context load代价是调用它的认知负担落在使用者身上。正文只有一句指令Run a /grilling session, using the /domain-modeling skill.它不直接实现任何追问逻辑而是声明先跑grilling访谈同时带上domain-modeling来维护领域模型。这种一个技能命名并串联其他技能的做法正是 writing-great-skills 中所说的router skill当用户手动触发的技能多到记不住时用一个入口把它们组织起来。grill-with-docs与同类入口 grill-me仅指令Run a /grilling session.一对比差异就非常明显grill-me只做访谈grill-with-docs在访谈之上叠加了文档产出义务。二、执行路径拆解grilling 访谈 domain-modeling 沉淀grill-with-docs的正文把执行权委托给两个技能形成一条两阶段的流水线/grilling阶段——拷问式访谈对计划或设计逐方面追问直到双方达成共识。/domain-modeling阶段——领域建模与文档化在访谈过程中同步挑战术语、设计边界场景并当场把术语写进CONTEXT.md、把架构决策写进docs/adr/。这条流水线的核心价值在于边评审、边留档方案在被拷问的过程中共识每前进一步领域语言和架构决策就固化一步评审结束即文档就绪不存在事后补文档的返工。2.1 grilling逐分支、一次一题地拷问方案grilling 的指令定义了访谈的三个纪律Interview me relentlessly about every aspect of this plan until we reach a shared understanding. Walk down each branch of the design tree, resolving dependencies between decisions one-by-one.一次只问一个问题Ask the questions one at a time, waiting for feedback on each question before continuing. Asking multiple questions at once is bewildering.一次性抛多个问题会让用户困惑必须等到反馈再继续。逐分支走完设计树沿着设计决策的依赖关系逐个解决而非零散提问。能查代码就不问人If a question can be answered by exploring the codebase, explore the codebase instead.——这是把拷问的成本尽量压到代码检索上只有代码无法回答的问题才消耗用户注意力。每个问题附推荐答案在grill-with-docs的 description 中A relentless interview 点明了强度基调而 grilling 要求每个问题都给出推荐答案让访谈从开放问答变成有倾向性的决策讨论大幅压缩共识收敛的轮次。2.2 domain-modeling边访谈边打磨领域模型domain-modeling 是这套组合里的文档引擎它定义了主动的建模纪律挑战术语、发明边界场景、并在术语/决策结晶的当下就写下来。它特别强调仅仅读一遍CONTEXT.md获取词汇不算这个技能这个技能适用于正在改变模型的场景。文件结构约定单上下文仓库多数仓库/ ├── CONTEXT.md ├── docs/ │ └── adr/ │ ├── 0001-event-sourced-orders.md │ └── 0002-postgres-for-write-model.md └── src/多上下文仓库则在根目录放置CONTEXT-MAP.md指向各上下文自己的CONTEXT.md与docs/adr/例如src/ordering/CONTEXT.md与src/ordering/docs/adr/。关键原则是懒创建create files lazily只有有东西可写时才建文件。没有CONTEXT.md就在第一个术语确定时创建没有docs/adr/就在第一个 ADR 需要时创建。访谈中的四个建模动作对照词汇表挑战术语用户用到与CONTEXT.md既有语言冲突的术语时立即指出——你的词汇表把 cancellation 定义为 X但你似乎指的是 Y——到底是哪个锐化模糊语言遇到含糊或被滥用的词时提出精确的规范术语——你说 account是指 Customer 还是 User这是两个不同的东西。讨论具体场景讨论领域关系时用特定场景做压力测试逼出概念边界的精确定义。与代码交叉验证用户描述某个机制时检查代码是否一致发现矛盾就指出——你的代码是整单取消 Order但你刚说支持部分取消——哪个是对的CONTEXT.md 书写规范见 CONTEXT-FORMAT.md词汇表按如下格式组织每条术语给出定义与_Avoid_排除词# {Context Name} {One or two sentence description of what this context is and why it exists.} ## Language **Order**: {One or two sentence description of the term} _Avoid_: Purchase, transaction **Invoice**: A request for payment sent to a customer after delivery. _Avoid_: Bill, payment request规则要点有主见同一概念存在多个词时挑一个最好的其余列入_Avoid_定义紧凑一两句话定义它是什么而非它做什么只收领域特有术语通用编程概念timeouts、error types 等即使项目大量使用也不收录——收录前自问这是本上下文特有的概念还是通用编程概念只有前者才属于天然成簇时分组术语存在自然聚类就用子标题分组单一聚类的平铺列表也可以CONTEXT.md必须零实现细节不把它当规格书、草稿纸或实现决策仓库它只是一份词汇表。多上下文仓库的CONTEXT-MAP.md则列出各上下文的位置与事件流关系例如# Context Map ## Contexts - [Ordering](https://link.gitcode.com/i/af371d9e0b81840e80f4c6fb892ece83) — receives and tracks customer orders - [Billing](https://link.gitcode.com/i/af371d9e0b81840e80f4c6fb892ece83) — generates invoices and processes payments ## Relationships - **Ordering → Fulfillment**: Ordering emits OrderPlaced events; Fulfillment consumes them to start picking技能会按优先级推断结构存在CONTEXT-MAP.md就读它找上下文只有根CONTEXT.md就是单上下文两者都没有就在第一个术语确定时懒创建根CONTEXT.md。ADR 书写规范见 ADR-FORMAT.mdADR 存放在docs/adr/按序号递增命名0001-slug.md、0002-slug.mddocs/adr/目录同样懒创建。模板极简# {Short title of the decision} {1-3 sentences: whats the context, what did we decide, and why.}ADR 可以只是一个段落——价值在于记录做了这个决定、为什么而非填满各节。可选节Status 前置元数据、Considered Options、Consequences仅在确有价值时加入。何时提议创建 ADR三个条件必须同时满足缺一则跳过难以逆转——事后改主意的成本有意义脱离上下文会令人惊讶——未来的读者会疑惑他们为什么这么做真实权衡的结果——存在真实备选方案你因具体理由选了其中一个。符合资格的决策包括架构形态monorepo、事件溯源、上下文间集成模式、带来锁定效应的技术选型数据库、消息总线、认证供应商、部署目标、边界与范围决策显式的不做和做同样有价值、对显而易见路径的有意偏离、代码中不可见的约束、以及拒绝理由不显而易见的被否备选方案。三、技能栈的运行时支撑Agentskills 校验与安装机制grill-with-docs能够作为可被/触发的技能运行依赖仓库内置的 Agentskills 管理代码 unified_agent/skills.py双宿主发现目录Claude Code 从ws/.claude/skills/读取Codex 从ws/.agents/skills/读取。install_skills()会把同一份SKILL.md以符号链接默认modesymlink或复制modecopy方式安装进两个目录实现一份技能、双 Agent 可用。本仓库当前实际生效的是.agents/skills/一侧。frontmatter 校验load_skill()要求文件以---开头的 YAML frontmatter 开始解析并校验name仅小写字母/数字/单连字符≤64 字符且必须等于目录名、description必填≤1024 字符。grill-with-docs的 frontmatter 完全满足这些约束。可移植性 lintlint_skill()会标记 Claude-only 语法如$ARGUMENTS、!动态 shell 注入、${CLAUDE_*}变量这些在 Codex 上会被忽略——grill-with-docs的正文纯文本指令不含任何此类构造因此双宿主下行为一致。测试保障tests/test_skills.py 覆盖了合法技能加载、目录名必须匹配、非法名拒绝Deploy、a--b、-x、超长名、下划线等、description 必填与 1024 上限、缺 frontmatter 拒绝、Claude-only 语法告警、symlink/copy 两种安装模式及幂等重装等路径。仓库根目录的 skills-lock.json 记录了这批技能的来源清单17 个技能全部来自mattpocock/skills仓库的skills/engineering/与skills/productivity/目录并带computedHash哈希校验——grill-with-docs的锁定条目与磁盘文件一一对应属于工程技能engineering分组。四、在 PentestGPT 中的落地场景领域词汇表与架构决策的实例虽然grill-with-docs本身是一个通用设计评审技能但 PentestGPT 仓库恰好提供了它产出物的完整实例可以反推这套方法论在本项目中的实际形态CONTEXT.md实例pentestgpt_agent/CONTEXT.md 是框架的领域词汇表标题为 Autonomous Pentest Run严格按 CONTEXT-FORMAT 的## Language结构组织收录了 Supervisor、Executor、Memory Kernel、Provider Adapter、Decision Cycle、Agent Episode、Task、Attempt、Evidence、Observation、Trace、Finding 等一串领域术语且每条都给了精确的定义例如 Evidence: exact target output captured by one eligible action receipt。它完全符合词汇表 Invariants/Retrieval policy的形态CONTEXT.md本身不含实现细节。文档化决策的痕迹仓库中的 docs/architecture.md、PENTESTGPT_AGENT_NEW_MIGRATION_REPORT.md 等记录了对 Supervisor/Executor 框架、SQLite 记忆内核、确定性校验边界的架构决策正是 domain-modeling 所说难以逆转、脱离上下文会令人惊讶、存在真实权衡的 ADR 候选主题。与双 Agent 运行时的配合AGENT.md 与 CLAUDE.md 都声明每个 episode 是新鲜的SQLite 与精确的 trace receipts 才是记忆领域语言的一致性由pentestgpt_agent/CONTEXT.md这一份词汇表维护——这正是 domain-modeling 中单上下文仓库的标准布局。在实际使用中你可以在设计大型重构例如为pentestgpt_agent增加新任务类型或新的内存语义前手动触发grill-with-docs让 Agent 先对方案逐分支拷问再同步把新术语写入pentestgpt_agent/CONTEXT.md、把架构决策写入docs/adr/。五、使用方式与前置条件调用方式grill-with-docs是 user-invoked 技能disable-model-invocation: true只能通过手动输入/grill-with-docs触发Agent 不会自主调用它。由于仓库未安装.claude/skills/侧链接Claude Code 用户如需在本地使用可通过 unified_agent/skills.py 的install_skills()modesymlink把它同步进.claude/skills/Codex 用户直接使用现有的.agents/skills/即可。触发时机在方案尚未动工、先做压力测试时使用对应 grilling 的触发条件且当你希望评审过程留下可追溯的领域词汇表与架构决策时选择grill-with-docs而非只做访谈的 grill-me。配套入口首次使用工程技能前可参考 setup-matt-pocock-skills 完成 issue tracker、triage 标签词汇、领域文档布局的初始化其中Domain docs一节确认的正是CONTEXT.md/docs/adr/的单上下文或多上下文布局。六、小结grill-with-docs的极简 7 行定义背后是一套完整的方法论闭环grilling提供逐分支、一次一题、先查代码的拷问纪律domain-modeling提供术语结晶即落盘、三条件齐备才写 ADR的文档纪律二者叠加让设计评审与文档沉淀在同一次会话中完成且产出物严格遵循 CONTEXT-FORMAT.md 与 ADR-FORMAT.md 两份规范。在 PentestGPT 仓库中pentestgpt_agent/CONTEXT.md就是这套方法论的真实产物而 unified_agent/skills.py 与 tests/test_skills.py 则保证了这类技能文件的规范性、可移植性与可安装性——理解它等于同时掌握了如何拷问方案和如何让共识变成文档两套工程能力。赞分享网络安全渗透测试人工智能大模型AI Agent自主智能体【免费下载链接】PentestGPTAutomated Penetration Testing Agentic Framework Powered by Large Language Models项目地址https://gitcode.com/GitHub_Trending/pe/PentestGPT点击查看免费下载相关推荐深入 grill-with-docs用一场有记录的访谈把设计磨成仓库里的领域词汇与 ADR深入 grill with docs用一场有记录的访谈把设计磨成仓库里的领域词汇与 ADR 导读 grill with docs 是本仓库Skills foAI 技能AI 插件grill-with-docs 技能实战一次会话内完成设计拷问与领域文档沉淀grill with docs 技能实战一次会话内完成设计拷问与领域文档沉淀 导读 grill with docs 是本仓库Skills for RealAI 技能AI 插件MAS 免费激活 Windows 与 Office 完整指南从下载到完成只需 3 步MAS 免费激活 Windows 与 Office 完整指南从下载到完成只需 3 步 Microsoft Activation ScriptsMAS是一个操作系统创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
锦
锦皓数字建站
深耕本土企业品牌数字化升级,专注原创端正雅致商务官网,从视觉设计到稳定运维全程保驾护航。