Grill po
Skill t1/tdder/skills/grill-po
Requirements grilling session with a Product Owner (or anyone in that role). Challenges plans against the existing domain model, sharpens terminology, and updates documentation (bounded-context files, Gherkin features, DMDs (Domain Model Decisions)) inline as decisions crystallise. Use when the user wants to discuss and capture requirements, stress-test a plan against the project's language, or refine feature scope.From its SKILL.md
npx -y skills add t1/tdder --skill grill-poAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 14 stars14 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
4.7 KB, as published. Nobody here has run it
Grill PO
Interview the user relentlessly about every aspect of their plan until you reach a shared understanding. Walk down each branch of the design tree, resolving dependencies between decisions one-by-one. For each question, provide your recommended answer.
Ask questions one at a time, waiting for feedback on each before continuing.
If a question can be answered by exploring the codebase, explore the codebase instead.
Domain Awareness
During codebase exploration, also look for existing documentation.
File Structure
Single-context repo:
/
├── bounded-context.md
├── docs/
│ └── features/
│ ├── place-order.feature
│ └── cancel-order.feature
└── src/
Multi-context mono-repo:
/
├── README.md ← contains "Bounded Contexts" section (context map)
├── AGENTS.md ← contains "Bounded Contexts" section (context map)
├── docs/
├── src/
│ ├── ordering/
│ │ ├── ordering-bounded-context.md
│ │ └── docs/features/ ← context-specific features
│ └── billing/
│ └── billing-bounded-context.md
Create files lazily — only when you have something to write.
Detecting the structure:
- If a
bounded-context.mdexists at root → single context - If
*-bounded-context.mdfiles exist elsewhere → multi-context; read the "Bounded Contexts" section ofREADME.mdorAGENTS.mdfor the context map - If neither exists → create
bounded-context.mdlazily when the first term is resolved
When multiple contexts exist, infer which one the current topic relates to. If unclear, ask.
During the Session
Challenge against the glossary
When the user uses a term that conflicts with the existing language in the bounded-context file, call it out immediately. "Your glossary defines 'cancellation' as X, but you seem to mean Y — which is it?"
Also scan existing .feature files for terminology drift: if a scenario uses a term differently from the
bounded-context file, surface it. "Your feature file says 'purchase' but the glossary defines that concept
as 'order' — which should it be?"
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 the user to be precise about the boundaries between concepts.
Update the bounded-context file inline
When a term is resolved, update the bounded-context file right there. Don't batch these up — capture them as they happen. Use the format in bounded-context-format.md.
The bounded-context file must be totally devoid of implementation details. Do not treat it as a spec, a scratch pad, or a repository for implementation decisions. It is a glossary and nothing else.
Document features as Gherkin
When a feature is agreed on, write or update a .feature file in docs/features/ (or the context-specific
equivalent). Use standard Gherkin (Feature, Scenario, Given/When/Then). Rules:
- One
.featurefile per feature area, named after it (e.g.place-order.feature) - Scenarios use domain language from the bounded-context file — no technical terms
- Scenarios are business-readable: a domain expert should be able to read and validate them
- Do not add scenarios for implementation details (e.g. HTTP status codes, database columns)
- Update existing scenarios when behavior changes — don't accumulate stale scenarios
Offer DMDs sparingly
Only offer to create a DMD when all three are true:
- Hard to reverse — the cost of changing your mind later is meaningful
- Surprising without context — a future reader will wonder "why did they model it that way?"
- The result of a real trade-off — there were genuine alternatives and you picked one for specific reasons
If any of the three is missing, skip the DMD. Use the format in dmd-format.md.