| name | grill-me |
| description | 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". |
| argument-hint | the plan/idea to grill, or a path to a brainstorm/plan doc |
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
- Ask ONE question, then stop and wait. Never a numbered list of questions.
- Look before you ask. Grep the bloc, read the data provider, check
docs/. Reserve questions for decisions only the user can make.
- Offer a recommended answer with each question. "How should X behave? I'd lean toward Y because Z — agree?"
- Walk the decision tree. Root decision first; when an answer opens a branch, follow it before backing out.
- 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.