← All skills
grill-with-docs
Use when stress-testing a plan against documented domain language, or the user mentions "grill with docs" — challenges terms against CONTEXT.md and ADRs, updating them inline as decisions crystallize.
About this skill
Use when stress-testing a plan against documented domain language, or the user mentions "grill with docs" — challenges terms against CONTEXT.md and ADRs, updating them inline as decisions crystallize.
SKILL.md
grill-with-docs.SKILL.mdPlace it in your Syntic skills folder. For Syntic Code, install in your local skills directory, review the contents and run it in a controlled environment first.
--- name: grill-with-docs description: Use when stress-testing a plan against documented domain language, or the user mentions "grill with docs" — challenges terms against CONTEXT.md and ADRs, updating them inline as decisions crystallize. category: Engineering version: 1.0.0 tools: [] --- # Grill with Docs Interview the user relentlessly about every aspect of a plan until reaching shared understanding, anchored against the project's existing documented language and decisions. Walk down each branch of the design tree, resolving dependencies between decisions one by one. For each question, provide a recommended answer. Ask one question at a time, waiting for feedback before continuing. ## Domain Awareness While exploring the plan, also look for existing documentation: ### File structure Most repos have a single context: ``` / ├── CONTEXT.md ├── docs/ │ └── adr/ │ ├── 0001-event-sourced-orders.md │ └── 0002-postgres-for-write-model.md └── src/ ``` If a `CONTEXT-MAP.md` exists at the root, the repo has multiple contexts, each with its own `CONTEXT.md` and `docs/adr/`, alongside system-wide decisions in the root `docs/adr/`. Treat these as lazily created — only add to them when there is something to record. If no `CONTEXT.md` exists, create one when the first term is resolved. If no `docs/adr/` exists, create it when the first ADR is needed. ## During the Session ### Challenge against the glossary When the user uses a term that conflicts with the existing language in `CONTEXT.md`, call it out immediately. "Your glossary defines 'cancellation' as X, but you seem to mean Y — which is it?" ### Sharpen fuzzy language When the user uses vague or overloaded terms, propose a precise canonical term. "You're saying 'account' — do you mean the Customer or the User? Those are different things." ### Discuss concrete scenarios When domain relationships are being discussed, stress-test them with specific scenarios. Invent scenarios that probe edge cases and force precision about the boundaries between concepts. ### Cross-reference with what's known When the user states how something works, check whether it agrees with the existing context. If you find a contradiction, surface it: "Earlier context says Orders are cancelled as a whole, but you just said partial cancellation is possible — which is right?" ### Update CONTEXT.md inline When a term is resolved, update `CONTEXT.md` right there. Don't batch these up — capture them as they happen. `CONTEXT.md` should be totally devoid of implementation details. Do not treat `CONTEXT.md` as a spec, a scratch pad, or a repository for implementation decisions. It is a glossary and nothing else. ### Offer ADRs sparingly Only offer to create an ADR when all three are true: 1. **Hard to reverse** — the cost of changing your mind later is meaningful 2. **Surprising without context** — a future reader will wonder "why did they do it this way?" 3. **The result of a real trade-off** — there were genuine alternatives and one was picked for specific reasons If any of the three is missing, skip the ADR. ## Rules 1. **One question per turn.** Never bundle. 2. **Provide a recommended answer with each question.** 3. **Search the Knowledge Base before asking.** If existing context resolves it, use that instead. 4. **Walk the tree depth-first.** 5. **Track dependencies** between decisions. ## Pre-flight Checks Before the first question, if `CONTEXT.md` exists, confirm the glossary is well-formed before grilling against it. If `docs/adr/` exists, check for numbering gaps, malformed ADRs, or status inconsistencies. Cross-reference glossary terms against how they're actually used to flag defined-but-unused terms (a dead glossary) and commonly-used terms that may need definitions — use these as opening grill questions. ## Closing Do a final consistency pass to confirm no new orphan terms were introduced. Summarize: terms added or refined, ADRs written, scenarios discussed, and open items. ## Why This Matters A glossary belongs alongside the project because ubiquitous language keeps the team's mental model and the system in sync (Evans, Vernon, Khononov). An ADR earns its keep only when a decision is hard to reverse, surprising without context, and the result of a genuine trade-off (Nygard, Tyree & Akerman). `CONTEXT.md` is a living artifact, not a spec — language drifts as understanding deepens, so it must be updated inline rather than batched (Khononov on language drift).
Install
Syntic App
- 1Create a dedicated folder for this skill in your local skills library.
- 2Place SKILL.md into that folder.
- 3Restart Syntic and invoke this skill on matching tasks.
Syntic Code (CLI)
- 1Save SKILL.md in your local Syntic Code skills directory.
- 2Keep related files in the same skill folder.
- 3Run in a safe environment and validate outputs.