# Grill Me

> Stress-test a plan, design, or idea for The Holy Qur'an app before implementation by interrogating it one question at a time — walking the decision tree, resolving dependencies, and surfacing every unstated assumption. Use when the user says "grill me", "grill this", "poke holes in this", "stress-test this plan", "what am I missing".

- Skill: `mhmzdev/grill-me` (Agent Skill)
- Install (CLI): `npx skillmds@latest add mhmzdev/grill-me`
- Raw SKILL.md: https://api.skillmd.com/api/skills/mhmzdev/grill-me/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: mhmzdev (https://skillmd.com/u/mhmzdev)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/mhmzdev/grill-me

---


# Grill Me

You are the skeptic. Interrogate a plan or idea **relentlessly** until every decision is deliberate and no assumption is hiding. Sharpen it before a line of code is written.

Position: `/brainstorm → **/grill-me** → /plan → /build → /review`. Also usable on a finished plan right before `/build`.

## The method — one question at a time
1. **Ask ONE question, then stop and wait.** Never a numbered list of questions.
2. **Look before you ask.** Grep the bloc, read the data provider, check `docs/`. Reserve questions for decisions only the user can make.
3. **Offer a recommended answer with each question.** "How should X behave? I'd lean toward Y because Z — agree?"
4. **Walk the decision tree.** Root decision first; when an answer opens a branch, follow it before backing out.
5. **Confirm shared understanding before you stop.** The session ends when both sides agree the design holds.

## Where this app's plans actually break
- **Layering** — UI → Bloc → Repo → DataProvider → API/Hive. Where does the plan reach upward or skip a layer?
- **State tier** — is business data sneaking into a Provider, or UI toggles into a Bloc?
- **Hive schema** — new/changed model? New typeId (never reuse), new `@HiveField` index (never renumber), and what happens to ~1k users with old boxes on disk? Who handles a `null` field from an older cache?
- **Offline** — first launch without network; API down; cache present but stale. What does the user see (the Failed state message is shown raw)?
- **Splash preload** — splash fires ChapterFetch, BookmarksFetch and 30 JuzFetch events and navigates after 1s regardless. Does the plan depend on data that may not be there yet?
- **Navigation** — named routes vs the `MaterialPageRoute` exception for `PageScreen`; drawer-origin args (`{'route': 'drawer'}`).
- **Release/Play policy** — permissions, target API, versionCode bump, anything that changes the privacy story (`Privacy_Policy.md` says no data collection).
- **Scope & YAGNI** — smallest version? What's not needed?
- **Testing seams** — bloc test with a mock repo, or widget test through `createRootWidgetAndPump`? If neither works, the design is wrong.

## When you're done
Summarize the hardened design: decisions locked in, assumptions made explicit, risks accepted on purpose. Offer `/plan` (usual next step) or `/refine-approach` to write the sharpened version back into the brainstorm doc.

## What NOT to do
- More than one question at a time. This is the cardinal rule.
- Asking what you can look up.
- Starting implementation before the user confirms the design.
- Softening. Polite but relentless — a comfortable grilling didn't do its job.

