grill-me — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited grill-me (Agent Skill) and scored it 71/100 (yellow). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 7 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 7 flagged
The text {match} tells the agent to skip the normal "ask the user first" gate. Used adversarially it removes the human-in-the-loop check before destructive or sensitive actions, turning a normally-gated agent into a fire-and-forget executor.
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
⚠️ THIS SKILL ONLY ASKS QUESTIONS. It never writes code, creates files, edits text, or implements anything. When clarification is done, hand off to another skill (e.g.create-prd,prd-to-tasks) or return control to the user.
Interview the user to resolve ambiguities before executing. Research exhaustively first — the agent MUST do its own homework before asking the human anything. When questions remain, ask exactly one question per turn and wait for the answer before continuing.
DO YOUR JOB FIRST. Then talk to the human. Research everything you can on your own. The human's time is precious. Only interrupt them when you've genuinely hit a wall.
>
Don't guess. Don't assume. Don't flood with questions. Research first, then ask one thing at a time.
These are not suggestions. Violating any of these is a skill failure.
You MUST exhaust ALL of these before asking the human a single question:
Proof of research is REQUIRED. When you ask a question, cite what you checked:
I've researched this:
- Read src/auth/login.ts, src/auth/types.ts, src/auth/middleware.ts
- Checked git log for recent auth changes (3 commits in last week)
- Searched the codebase for "JWT" and "session" patterns
- Read the JWT library docs on npm
- Checked AGENTS.md for project conventions
Here's what I found: [summary of discoveries]
One thing I couldn't determine from research alone: [single question]Before asking ANY question, answer these:
Only after ALL of those are exhausted does a question become valid.
Every question MUST include a Research Log section showing what you did. Omit the research log and the question is invalid. Period.
Never ask multiple questions at once. One. Single. Question. Wait for answer. Then research again (new information may answer your other questions). Then ask the next one.
Spend at least 2 minutes researching before asking. Spend at most 10 minutes. If research isn't yielding answers after 10 minutes, it's okay to ask — but you must show what you tried.
exploration, git history, and online search, you CANNOT use this skill yet. Do the research first. Then judge if questions remain.
or edits text. It only asks questions. Use implement-tasks, prd-to-tasks, or direct execution for building.
This is not optional. You MUST complete ALL applicable research categories before proceeding to Step 2. If you skip this, you are violating the core promise of this skill.
Before asking the human, exhaust these sources in order:
#### 1A. Codebase Exploration (Always)
# Search for relevant patterns
grep -rn "<keyword>" --include="*.go" --include="*.ts" --include="*.tsx" .
rg "<pattern>" .
# Read relevant files IN FULL (not just skimming)
cat src/<likely-relevant-file>.ts
# Trace call stacks and dependencies
grep -rn "import.*from" src/<area>/ --include="*.ts"
# Find where a symbol is defined and used
grep -rn "functionName\|ClassName\|variableName" --include="*.ts" .
# List the project structure
find . -maxdepth 3 -type d | head -50
ls -la src/#### 1B. Project Documentation (Always)
# Every project has at least some of these
cat README.md 2>/dev/null
cat AGENTS.md 2>/dev/null
cat CONTRIBUTING.md 2>/dev/null
cat CODEOWNERS 2>/dev/null
ls docs/ 2>/dev/null
cat package.json 2>/dev/null
cat go.mod 2>/dev/null#### 1C. Git Archaeology (When relevant)
# Recent changes to the area of interest
git log --oneline -20 -- src/<area>/
# Who last touched this file and why
git log --oneline -5 -- src/<specific-file>
git blame src/<specific-file> | head -30
# What changed in a specific commit
git show <commit-hash> --stat#### 1D. Online Research (Browser & Web Search)
# Search for library documentation
# Use web search for: "<library> docs", "<error message>", "<pattern> best practices"
# Read official docs with browser
# Navigate to library docs, API references, GitHub issues
# Check for existing solutions
# Search: "<problem description> <framework>"
# Search: "<error message> site:github.com"#### 1E. Existing Skills & Conventions (When in a skills project)
Read other skill files in .agents/skills/ to understand:
metadata.scripts)#### Decision Point (After Exhaustive Research)
After completing the research categories above:
Scan your remaining questions and pick the single most blocking one — the question whose answer has the biggest impact on subsequent decisions. Priority order:
Frame it clearly with context and options:
I've reviewed the codebase and found [relevant context].
Before I proceed, one question: [clear, specific question]?
Options:
- A: [option with brief rationale]
- B: [option with brief rationale]
- C: [something else — you tell me]Receive the answer, integrate it into your understanding, then:
Once all critical ambiguities are resolved:
create-prd, prd-to-tasks,implement-tasks) or ask the user what they'd like to do next
Example exit:
Got it. Here's the clarified plan:
- Provider: Itaú PIX API
- Flow: donation form → checkout with QR code → thank-you page
- Architecture: stateless, Cloudflare Workers
- Pages: /contributing (form), /donate (checkout), /thank-you (success)
Ready to turn this into a PRD with `create-prd`. Want me to proceed?I see [existing code/pattern]. For this request, should I:
- A: Extend the existing [component/module]?
- B: Create a new standalone [component/module]?
- C: Replace the existing one entirely?Before I design this, are there any constraints I should know about?
- Must work with: [existing system/library]?
- Performance targets: [specific numbers]?
- Deadline or priority: [urgent vs nice-to-have]?I can implement this two ways:
- A: [approach] — simpler, but [trade-off]
- B: [approach] — more flexible, but [trade-off]
Which do you prefer?| Don't | Do Instead |
|---|---|
| Ask 5 questions at once | Ask the most important one, let the answer guide the next |
Ask questions answerable by grep | Search the codebase first |
| Ask "What do you want?" with no options | Present concrete options with trade-offs |
| Guess and hope it's right | Spend 30 seconds asking vs hours redoing |
| Keep asking when 80% clarity is enough | Accept reasonable defaults for low-impact details |
| Ask without showing research | Every question MUST include a Research Log |
| Skip codebase exploration | Read files, trace patterns, check git BEFORE asking |
| Ask before searching the web | Browser and web search are MANDATORY research tools |
| Fire questions immediately | Minimum 2 minutes of self-service research first |
| Ask about framework/library APIs | Read the official docs with browser BEFORE asking |
User: "Add authentication to the API"
Agent (reads codebase first):
I see you have a Hono API in src/api/ with existing route handlers.
No auth middleware exists yet.
One question: Should I use JWT tokens or session-based auth?
- A: JWT — stateless, simpler to implement, works well with SPA frontends
- B: Sessions — stateful, easier to revoke, requires session storeUser: "JWT"
Agent:
Got it. I see src/api/middleware/ is empty. One more: should
authentication be global (all routes) or per-route opt-in?
- A: Global middleware on all /api/* routes
- B: Per-route with an `authRequired()` helperUser: "Use the same color scheme as the dashboard"
Agent (reads codebase):
I checked src/styles/ and found two color schemes:
- dashboard-legacy.css (last modified 2023)
- dashboard-v2.css (last modified 2024, used by DashboardV2.tsx)
Which one should I use?❌ "Before I start, I need to know:
1. JWT or sessions?
2. Global or per-route?
3. Which token expiry?
4. Where to store refresh tokens?
5. Should I add rate limiting?"
✅ Ask question 1, get answer, then ask question 2, etc.When the user defers, use sensible defaults and document them:
OK, I'll go with:
- JWT (stateless, standard for SPAs)
- Per-route opt-in (less invasive)
- 24h expiry with refresh rotation
If any of these don't work, just say "change X to Y" and I'll adjust.If the answer doesn't resolve the ambiguity, rephrase:
Sorry, just to make sure I understand — when you say [their answer],
does that mean [specific interpretation A] or [specific interpretation B]?If after 2-3 rounds the request still doesn't make sense, reset:
I want to make sure I'm on the right track. Could you describe the
problem you're trying to solve, rather than the solution? What's the
user-facing goal here?mixture-of-expertsUse grill-me to clarify the problem statement before spawning experts:
1. Grill the user to get a clear problem definition
2. Feed that definition to mixture-of-experts for analysis
3. Present MoE synthesis back to usercreate-prdClarify scope and constraints via grill-me, then feed the answers into create-prd:
1. Grill user on scope, constraints, and priorities
2. Exit grill-me → invoke create-prd with the clarified requirements
3. Review PRD with user (one more grill-me pass if needed)implement-tasksUse grill-me to resolve ambiguous tasks in tasks.json before delegating. Once ambiguities are resolved, exit grill-me and hand back to the implementation flow.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.