Skip to content
Back to skills

Requirement Grill

ASecurity

Interrogate a goal until it is an unambiguous, testable requirement — scope, acceptance criteria, non-functionals, out-of-scope. Use at /harness-goal step 1 and whenever a request is vague enough that two reasonable engineers would build different things.

  • 3 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added September 26, 2026
ai-agentsrustgo

Security analysis

A100/100

Scanned September 26, 2026

npx -y skills add rbhattarai/se-harness --skill requirement-grill --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Requirement Grill?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Requirement Grill
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/rbhattarai-requirement-grill/badge)](https://www.skillsdirectory.com/skills/rbhattarai-requirement-grill)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: requirement-grill
description: Interrogate a goal until it is an unambiguous, testable requirement — scope, acceptance criteria, non-functionals, out-of-scope. Use at /harness-goal step 1 and whenever a request is vague enough that two reasonable engineers would build different things.
---

# Requirement Grill

Your job is to make the requirement **falsifiable** before anyone designs or codes. Two
reasonable engineers reading it must build the same thing.

## What to interrogate (in order, skip what the goal already answers)
1. **Outcome** — what changes for which user/system when this ships? ("done means…")
2. **Scope boundary** — the nearest things this does NOT include. Get at least one explicit
   exclusion; vague goals hide scope in the boundary.
3. **Acceptance criteria** — concrete, testable, one behavior each. Rewrite any criterion
   containing "fast", "better", "robust", "user-friendly" into a measurable statement
   (number, threshold, observable behavior) or move it to open questions.
4. **Non-functionals that bite** — only the ones this change can actually violate: data
   volume, latency budget, authz, compliance, backward compatibility, migration window.
5. **Failure behavior** — what should happen when the happy path doesn't (timeouts, partial
   writes, invalid input)? Most reworks hide here.
6. **Constraints from memory** — check the wiki (wiki-query) and org conventions for prior
   decisions this goal touches; surface conflicts NOW, not at implementation.

## How to ask
- Use AskUserQuestion; batch related questions (≤4 per call); offer concrete options with
  a recommended default rather than open-ended prompts where possible.
- Stop when: every acceptance criterion is testable, at least one exclusion is recorded, and
  failure behavior is stated. Do not keep grilling past that — over-grilling erodes trust.
- If the user says "just decide": decide, but record each decision under "Open questions →
  resolved by agent default" in the REQ so the approval gate shows exactly what was assumed.

## Output
Fill the REQ file (created by `scripts/new-requirement.sh`) — refined requirement, acceptance
criteria checklist, out-of-scope list, impact notes, open questions. Status stays `draft`;
only the human flips it to `approved`.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.