/cs:grill-with-docs <path-to-plan> — Start a docs-anchored grilling session. Pre-flights CONTEXT.md + docs/adr/ linters, then interrogates the plan. Slash command for Claude Code, Codex CLI, Gemini CLI.
Copy the command definition below into:
~/.claude/commands/cs-grill-with-docs-alirezarezvani-2.md---
title: "/cs-grill-with-docs — Slash Command for AI Coding Agents"
description: "/cs:grill-with-docs <path-to-plan> — Start a docs-anchored grilling session. Pre-flights CONTEXT.md + docs/adr/ linters, then interrogates the plan. Slash command for Claude Code, Codex CLI, Gemini CLI."
---
# /cs-grill-with-docs
<div class="page-meta" markdown>
<span class="meta-badge">:material-console: Slash Command</span>
<span class="meta-badge">:material-github: <a href="https://github.com/alirezarezvani/2-claude-skills/tree/main/engineering/grill-with-docs/commands/cs-grill-with-docs.md">Source</a></span>
</div>
**Command:** `/cs:grill-with-docs <path-to-plan>`
The `cs-grill-with-docs` persona pre-flights the project's documented language and decisions, then walks the plan one branch at a time — challenging fuzzy terms against `CONTEXT.md`, surfacing code-vs-glossary contradictions, and writing ADRs only when the 3-criteria gate is met.
## When to Run
- Stress-testing a plan that touches an established codebase with documented language
- Onboarding a new feature into an existing bounded context
- Resolving ambiguity introduced by drift between glossary and code
- Pre-mortem on an architectural decision before it lands
## When NOT to Run (use `/cs:grill-me` instead)
- The repo has no `CONTEXT.md` and no `docs/adr/` and you don't want to seed them
- You want a plan-only grill in a vacuum (the docs anchor would add no signal)
- The plan is exploratory / pre-language-decision
## The Six Forcing-Question Patterns (Docs-Anchored)
1. **Glossary conflict:** "CONTEXT.md defines '{term}' as X. You just used it to mean Y. Which is it — or are these two concepts?"
2. **ADR contradiction:** "ADR-{nnnn} locked in {choice}. Your plan implies {opposite}. Are we superseding, or did the plan drift?"
3. **Undefined term:** "You said '{term}'. CONTEXT.md doesn't define it. Do you mean {candidate-1}, {candidate-2}, or something new?"
4. **Code vs claim:** "Your code says X. You just said Y. Which is current state — and which are we changing?"
5. **ADR 3-criteria gate:** "This decision is reversible in an afternoon. Why does it need an ADR? If 'it doesn't' — skip it."
6. **Boundary check:** "Which bounded context owns this concept? If two contexts both touch it, what's the contract between them?"
## Discipline
- **Pre-flight the linters first.** Never grill without the docs-state snapshot.
- **One question per turn.** Never bundle.
- **Recommended answer attached.** Every question carries a position + rationale.
- **Codebase + docs before speculation.** `grep` / `Read` / lint resolves before asking.
- **CONTEXT.md edited inline.** No deferred glossary batches.
- **ADR 3-criteria gate.** Hard-to-reverse + surprising + real-trade-off. All three or skip.
## Workflow
```bash
# 1. Pre-flight — snapshot the docs state
python ../skills/grill-with-docs/scripts/context_md_linter.py CONTEXT.md
python ../skills/grill-with-docs/scripts/adr_scanner.py docs/adr/
python ../skills/grill-with-docs/scripts/glossary_code_consistency.py \
--context CONTEXT.md --code src/
# 2. Read the plan
# Use the linter findings as opening question seeds.
# 3. Walk one question at a time:
# Persona asks Q1 with recommendation (anchored to docs/code).
# User answers.
# Apply edits inline if the answer changes the glossary or warrants an ADR.
# 4. Re-lint after any structural CONTEXT.md edit:
python ../skills/grill-with-docs/scripts/context_md_linter.py CONTEXT.md
# 5. Re-scan after any new ADR:
python ../skills/grill-with-docs/scripts/adr_scanner.py docs/adr/
# 6. At close — final consistency sweep:
python ../skills/grill-with-docs/scripts/glossary_code_consistency.py \
--context CONTEXT.md --code src/
```
## When to Stop
- Every branch has an answer, AND
- Final lint state is clean (context_md_linter + adr_scanner both PASS), AND
- No new fuzzy terms surfaced in the last 3 turns
Produce a "glossary changes + ADRs + open items" summary at close.
## Output Format
```
Q[i]/[total] (anchor: CONTEXT.md§Language | ADR-0003 | code:src/orders/cancel.ts:42 | plan:L18):
[question]
Recommended: [position] because [rationale grounded in the anchor]
```
## Related
- Agent: [`cs-grill-with-docs`](https://github.com/alirezarezvani/claude-skills/tree/main/engineering/grill-with-docs/agents/cs-grill-with-docs.md)
- Skill: [`grill-with-docs`](https://github.com/alirezarezvani/claude-skills/tree/main/engineering/grill-with-docs/skills/grill-with-docs/SKILL.md)
- Format specs: [ADR-FORMAT](https://github.com/alirezarezvani/claude-skills/tree/main/engineering/grill-with-docs/skills/grill-with-docs/ADR-FORMAT.md), [CONTEXT-FORMAT](https://github.com/alirezarezvani/claude-skills/tree/main/engineering/grill-with-docs/skills/grill-with-docs/CONTEXT-FORMAT.md)
- Sibling skill: `/cs:grill-me` (plan-only grill)
- Adjacent: `/cs:caveman`, `/cs:handoff`, `/cs:write-a-skill`
---
**Version:** 1.0.0
**Derived:** Matt Pocock's grill-with-docs (MIT) + this repo's wrapper
Compress a markdown/text file into caveman format to save tokens
Generate comprehensive investor-ready business case document with market, solution, financials, and strategy
Generate comprehensive C4 architecture documentation (Context, Container, Component, Code) for a codebase using bottom-up analysis and four coordinated C4 agents.