Skip to main content

grill-with-docs

Grills a plan or design against the Hermes multi-profile domain model — challenges against CONTEXT.md glossary, cross-references with code and configs, stress-tests with concrete scenarios, and updates documentation inline as decisions crystallise. Structured 4-phase flow: load domain → walk decision tree (one question at a time via clarify+choices) → evidence challenge (read code/docs before asking) → capture & summarize. Use when the user wants to stress-test a plan, review an edict, validate a design, or explicitly invokes 'grill me' / '拷打我' / 'challenge this' / '找漏洞'. DO NOT trigger on simple unambiguous instructions or pure execution tasks.

Zur Installation springen

Quellinformationen

Repository
Loveacup/jz-skills
Letzte Quellaktivität
7. Juni 2026 um 05:46
Erkannte Sprache von SKILL.md
Englisch
Sterne
1
Forks
1

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

Datei-Explorer
2 Dateien

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
grill-with-docs
description
Grills a plan or design against the Hermes multi-profile domain model — challenges against CONTEXT.md glossary, cross-references with code and configs, stress-tests with concrete scenarios, and updates documentation inline as decisions crystallise. Structured 4-phase flow: load domain → walk decision tree (one question at a time via clarify+choices) → evidence challenge (read code/docs before asking) → capture & summarize. Use when the user wants to stress-test a plan, review an edict, validate a design, or explicitly invokes 'grill me' / '拷打我' / 'challenge this' / '找漏洞'. DO NOT trigger on simple unambiguous instructions or pure execution tasks.
type
routine
version
2.2.0
author
Hermes Agent (v2.2 adds multi-agent bidirectional discussion mode; v2.1 adds source-code-only red flag + web-search-first evidence rule)
license
MIT
platforms
["macos","linux"]
metadata
{"hermes":{"tags":["grill","review","design-review","plan-validation","governance"],"related_skills":["web-research-router","github"]}}
# Grill With Docs — Hermes multi-profile 版 v2.0 Adapted from [mattpocock/skills](https://github.com/mattpocock/skills). Original: `grill-with-docs` and `grill-me`. v2.0 absorbs pi-grill v3.1's structured 4-phase flow and evidence-challenge discipline. Interview the user relentlessly about every aspect of a plan until shared understanding is reached. Walk down each branch of the design tree, resolving dependencies one-by-one. For each question, provide your recommended answer. **Ask questions one at a time**, waiting for feedback on each before continuing. **Every question MUST use `clarify` with the `choices` parameter**: max 4 options, mark ONE as recommended (bold or ✓). Place choices AFTER the question body — never before. User clicks, never types. Reserve open-ended `clarify` (no choices) only for free-text follow-ups where no reasonable preset options exist. If a question can be answered by exploring the codebase or existing documentation, do that instead of asking. --- ## 🚨 Red Flags: DO NOT BREAK THE GRILL RULES This skill is worthless if you rationalize around its constraints. Read this before every grill session. | Excuse your brain will make | Why it's wrong | |------------------------------|----------------| | "This is a simple question, I'll just type it out" | Every question MUST use `clarify` with `choices`. Typing questions as open-ended text forces the user to type back — slower, more friction. | | "I can ask a few questions at once to save time" | One. Question. At. A. Time. Batching kills the decision-tree walk. Each question depends on the previous answer. | | "I know what they mean, no need to challenge this" | Your job IS to challenge. Vague terms → sharpen. Conflicting terms → call out. Assumptions → test. | | "This seems settled, let's move on" | NEVER continue until the current question is explicitly resolved (chosen, edited, or acknowledged as skipped). | | "I'll update CONTEXT.md later" | Capture terms as they crystallize. Batched updates get forgotten. Update inline immediately. | | "The user is busy, I shouldn't interrupt" | One question = 30 seconds. Wrong implementation = hours of rework. Grill early, not late. | | "I'll pad my response with polite filler to sound helpful" | 🚫 **Anti-Slop.** If the response reads like generic AI output ("all things considered", "it's worth noting that"), restart. Every claim must cite a specific file, line number, config key, or doc section. No hedging without evidence. | | "I'll list all the ambiguities at once for efficiency" | Batch questions → user only answers the last one. One at a time. | | "I already know how X works / I can explain from memory" | 🚫 **Search-first iron rule.** Training data is stale. Before making ANY factual claim about system behavior (e.g. "TTS won't speak reasoning", "config key means Y"), you MUST load `web-research-router` → search web + read source code → cite evidence (file:line). This is the #1 most common grill violation. 2026-05-29 TTS case: claimed model stops reasoning → code showed `reasoning_effort` unchanged, only `display.platforms.telegram.show_reasoning` toggled. | | "I'll list all the ambiguities at once for efficiency" | Batch questions → user only answers the last one. One at a time. | | "I already know how this works, no need to check the source" | 🚫 **Fatal.** Any claim about how Hermes or a tool works MUST be verified against source code, configs, or web search. The user trusts these claims as facts. Wrong claims → hours of confusion + erosion of trust. 用 `web-research-router` 搜 + `search_files` 查源码 + `read_file` 看行号,三项做完才能开口。 | | "I'll list all the ambiguities at once for efficiency" | Batch questions → user only answers the last one. One at a time. | **If you caught yourself thinking any of these → re-read the Never Do list and restart the current question.** --- ## Domain Awareness ### CONTEXT.md (the glossary) The system's domain model lives at: ``` Obsidian: 20-Areas/10_AI实践/Hermes/CONTEXT.md ``` This file defines all canonical terms: multi-profile roles, skill names, research modes, GitHub exploration layers, memory hierarchy, deployment concepts, machine roles, EmpireThread concepts. Before every grilling session, **read CONTEXT.md** to load the current glossary. ### ADRs (Architecture Decision Records) EmpireThread ADRs live in the Obsidian vault (discover via `qmd` or filesystem search). Format: `EmpireThread_关键决策_ADR` or `EmpireThread_*_ADR*`. ### Code and config to cross-reference The "code" to verify against includes: | Surface | Location | What to check | |---------|----------|---------------| | Skill files | `~/.hermes/skills/*/SKILL.md` | Are skill names/descriptions consistent with terms used in the plan? | | Profile configs | `~/.hermes/profiles/*/config.yaml` | Do profile roles match what the plan assumes? | | MCP config | `~/.hermes/config.yaml` `mcp_servers:` | Are referenced tools actually available? | | Cron jobs | `hermes cron list` | Does the plan conflict with existing schedules? | | Memory | `hindsight_recall` | Are there relevant past decisions? | | **Plugin system** | `references/hermes-plugin-capabilities.md` | Verified Hermes plugin APIs, hooks, and limitations | --- ## Grill Flow (4 Phases) ### Phase 1: Load Domain Read CONTEXT.md + search for relevant ADRs (`qmd` or `search_files` for `EmpireThread_*ADR*`). Ask the user to describe what they want to build/change. ### Phase 2: Walk the Decision Tree One question at a time, resolving each branch: - **Challenge against glossary:** When a term conflicts with CONTEXT.md, call it out: "CONTEXT.md defines '中书省' as 拟制层, but you seem to mean 执行层 — which is it?" - **Sharpen fuzzy language:** When terms are vague or overloaded, propose a precise canonical term: "你说'同步'——是指 profile sync、Obsidian sync、还是 skill 三文件同步?这是三件不同的事。" - **Cross-reference with code:** When the user states how something works, check whether actual code/config agrees. Surface contradictions. - **Stress-test with scenarios:** Invent edge cases that force precision: "如果新 profile 加了但 skill 没同步到,grill-with-docs 自己会检测到吗?" - **Quantify vagueness:** "好一点"→"响应时间从 500ms 降到 200ms 行吗?" "快一点"→"方案A 3天但完整,方案B 1天但少30%功能,选哪个?" - **Expose contradictions immediately:** "你说要高可用但单机部署。这两件事矛盾——你更看重哪个?" ### Phase 3: Evidence Challenge Before asking the user a question, exhaust all verifiable sources: Before asking the user a question, exhaust all verifiable sources: - **Search web + docs first:** "TTS 怎么处理 reasoning?" → search Hermes docs via `web-research-router`, THEN verify with source code. Code alone misses end-to-end interactions between gateway/stream/TTS layers. - **Read code first:** "上次的方案"→ read .md or `git log` before asking - **Check configs:** Don't ask "what model does X use" — read `config.yaml` - **Search memory:** Check `hindsight_recall` for past decisions before re-litigating - **Never assert system internals without source trace:** When explaining how something works (TTS pipeline, model behavior, tool interaction), trace through actual source code — cite file paths and line numbers. Rule: 先 `search_files` + `web-research-router` 搜 → 再 `read_file` 读源码 → 最后开口。This session's case study: misattributed TTS behavior (claimed model stopped generating reasoning; actually only display-level filter). See `references/tts-reasoning-case-study.md`. - **Only ask when:** No code/doc/config/memory/web-search can answer it ### Phase 4: Capture & Summarize - **Update CONTEXT.md inline:** When a term is resolved, update immediately. Don't batch — capture as they happen. - **Offer ADRs sparingly:** Only when (1) hard to reverse, (2) surprising without context, (3) result of a real trade-off. If any criterion is missing, skip. - **Know when to stop:** Ambiguity resolved / user calls stop / 3 consecutive questions on same topic. If hitting the limit: "上述理解对吗?可以继续了吗?" - **Summarize:** Restate the full plan with decisions made, terms resolved, and anything left open. What was clarified + what was decided + next steps. --- ## Never Do - NEVER ask multiple questions in one turn — one question, wait for answer, then next - NEVER ask a question as plain text — always use `clarify` with `choices` (max 4 options + auto "Other"). Open-ended `clarify` (no choices) is only for free-text follow-ups - NEVER accept "I'll figure that out later" without noting it as an unresolved decision - NEVER let the user skip a question without acknowledging it was skipped - NEVER treat CONTEXT.md as a spec, PRD, or implementation plan — it is a glossary only - NEVER create an ADR without all three criteria met - NEVER continue to the next question until the current one is resolved (chosen, edited, or explicitly skipped) - NEVER exceed 3 consecutive questions on the same topic without checking: "上述理解对吗?可以继续了吗?" - NEVER ask a question that code/docs/config could answer — evidence-challenge first - NEVER state a technical fact about how Hermes works without citing source code, config, or docs — this applies in ALL conversations, not just grill sessions. See also: `references/reasoning-tts-interaction.md` for an example of getting this wrong and the verified truth. --- ## ✅ Verification Checklist (RUN BEFORE ENDING EACH QUESTION) - [ ] CHECK: Asked only ONE question this turn? - [ ] CHECK: Used `clarify` with `choices` (max 4 options, one recommended), options placed after body text? - [ ] CHECK: Checked code/config/docs before asking (Phase 3: evidence challenge)? - [ ] CHECK: For technical claims — searched web via `web-research-router` + read source files, cited `file:line`? - [ ] CHECK: Captured any resolved term in CONTEXT.md immediately? - [ ] CHECK: Did NOT accept "I'll figure that out later" without noting it? **Every box must honestly pass. If unchecked, go back.** --- ## 🔥 Multi-Agent Discussion Mode(Hermes↔CC 双向拷问)v2.2 > **扩展场景:** 本 skill 原生设计为人↔agent 单方拷问。当 Hermes 与 Claude Code 协作处理复杂任务时,升级为**双向**——Hermes 拷问 CC,CC 也可拷问 Hermes。 ### 何时升级到双向模式 - Hermes 拉 CC 处理非平凡任务(skill 编写、架构改动、多文件重构) - 任务方案不明确,需多轮对齐才进入执行 - 用户说"讨论一下 / 看方案 / 处理决策点"——默认讨论,不是执行 ### 双向拷问规则 1. **开场即讨论**,除非需求明确到不需要讨论。写 context 文件时即包含讨论协议要求。 2. 每轮结束产出**讨论简报**(≤5 bullet:讨论了什么 / 决定了什么 / 分歧 / Hermes 的拷问 / 下一步),发给 Alex。 3. **CC 提问触及 Hermes 无法代答的决策** → 🛑 立即转发给 Alex,不要猜测或沉默等待。 4. CC 深度思考时 Hermes **每 30s 轮询** capture-pane,沉默 >2min 主动声明。特别关注决策停滞——CC 在等回答但 Hermes 没察觉。 5. 双向都需遵守证据纪律:关于"现状"的陈述必须带可验证 artifact(文件路径、命令输出、git log)。 6. 终止条件:双方对所有未决分支达成显式一致 → 进入执行。≤3 轮仍有分歧 → 标记未决、写入 assumption log、带条件推进。 ### 讨论简报模板 ```markdown 📡 讨论简报 R{n} · 讨论了什么 · 决定了什么 · 分歧 / 未决 · Hermes 的拷问(需 Alex 回答的问题,每问带推荐答案) · 下一步 ``` ### 与 claude-code skill 的关系 本 skill 提供 grill 方法论(逐问 / 证据 / 术语澄清 / 场景压测)。`claude-code` skill 的 §讨论协议 提供编排层落地(双向拷问规则 / agent team 对齐 / 简报模板)。两者互补:方法论 ← grill-with-docs,编排 ← claude-code。 --- ## Deployment & Sync **After ANY update to this SKILL.md, you MUST:** 1. **Sync to ALL Hermes profiles** — discover and sync dynamically: ```bash for prof in $(ls -d ~/.hermes/profiles/*/ 2>/dev/null | xargs -n1 basename); do dst=~/.hermes/profiles/$prof/skills/governance/grill-with-docs [ -d "$dst" ] && cp -r "$dst" ~/.hermes/profiles/$prof/backups/grill-with-docs-$(date +%Y%m%d_%H%M%S) rm -rf "$dst" cp -r ~/.hermes/skills/governance/grill-with-docs "$dst" done ``` 2. **Sync Obsidian documentation** — update `00-Inbox/工具制作_Hermes检索总控与GitHub源码探索_multi-profile_20260526.md`: - Bump `modified` timestamp - Update grill-with-docs version to v2.0 3. **Update CONTEXT.md** — ensure `grill-with-docs` is listed in the glossary under "核心 skill" 4. **Update qmd index:** `qmd update` 5. **Verify:** Spot-check 2-3 profiles for SKILL.md presence + check that CONTEXT.md contains the grill-with-docs entry. ``` User: /grill-with-docs I want to add a new 兵部 profile for security scanning Agent: [reads CONTEXT.md, searches for security-related ADRs] Agent: CONTEXT.md defines 兵部 as "安全、权限、破坏性操作" — is this new profile an additional 兵部 instance, or replacing the existing one? User: Additional. It runs nightly scans. Agent: [cross-references cron jobs] There's already a sync-memory-to-regent cron running every 360 minutes. Will your nightly scan conflict with it, or should they be staggered? ... [continues one question at a time] ```
Auf GitHub ansehen