Skip to content
Back to skills

Requirement Clarification

ASecurity

Use this skill to detect and resolve specific requirement ambiguities through structured questioning. Activates when requirements contain vague language, conflicting statements, unstated assumptions, or missing decisions. Run after requirements-analysis identifies gaps, or before design begins.

  • 4 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added October 3, 2026
ai-agentsgoapidatabase

Works with

  • api

Security analysis

A100/100

Scanned October 3, 2026

npx -y skills add karthikrshet/aiskills --skill requirement-clarification --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Requirement Clarification?

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

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

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-clarification
description: |
  Use this skill to detect and resolve specific requirement ambiguities through
  structured questioning. Activates when requirements contain vague language,
  conflicting statements, unstated assumptions, or missing decisions. Run after
  requirements-analysis identifies gaps, or before design begins.
version: "0.1.0"
category: requirements
tags: [requirements, clarification, ambiguity, questions, scoping]
risk: low
status: alpha
related-skills:
  - requirements-analysis
  - architecture-design
---

# Requirement Clarification

## Purpose

Requirement ambiguity is expensive to discover during implementation. Each ambiguous decision left unresolved becomes a hidden assumption that may need to be reversed later, at high cost.

This skill provides a structured methodology for identifying ambiguities in requirements and formulating precise, targeted questions to resolve them — before design or implementation begins. The goal is one well-formed question per ambiguity, not a questionnaire that overwhelms the human.

## When to Use

- `requirements-analysis` has identified open questions
- Requirements contain language like: "fast", "secure", "scalable", "simple", "modern", "standard", "normal"
- A requirement could be interpreted in more than one valid way
- Assumptions are being made that are not explicitly confirmed
- The agent is about to make a design decision that should be a human decision

## When Not to Use

- Requirements are already fully specified and unambiguous
- The ambiguity is trivially resolved by inspecting the codebase
- The question is a technical implementation choice, not a requirement decision

## Inputs

| Input | Required | Description |
|-------|----------|-------------|
| Requirements document or description | ✅ | The requirements to analyze for ambiguity |
| Open questions list | optional | Output from `requirements-analysis` |

## Preconditions

- [ ] Requirements have been collected in some form
- [ ] Agent has read `CONTEXT.md` if present (some ambiguities are answered there)

## Workflow

### Step 1: Identify All Ambiguous Language

**Scan requirements for:**
- **Vague qualifiers:** "fast", "slow", "good", "bad", "simple", "complex", "large", "small", "robust", "secure" — none of these are measurable
- **Missing subjects:** "should be authenticated" — authenticated by whom? via what mechanism?
- **Missing scope boundaries:** "handles all file types" — all file types in existence?
- **Implicit assumptions:** "the user" — which user? authenticated? anonymous?
- **Competing interpretations:** two technically valid readings of the same sentence

**Produce:**
- A numbered list of ambiguities, each with the problematic phrase quoted

### Step 2: Classify Each Ambiguity

Classify each ambiguity by type:

| Type | Description | Example |
|------|-------------|---------|
| **Measurement** | Qualifier without metric | "Fast" — fast means different things |
| **Scope** | Boundary not defined | "All users" — all users where? |
| **Decision** | Choice not yet made | "Authentication" — which method? |
| **Assumption** | Unstated belief | "Will run on mobile" — never mentioned |
| **Conflict** | Two requirements contradict | FR-001 says X; FR-003 implies not-X |
| **Missing** | Required information entirely absent | Latency target never mentioned |

### Step 3: Prioritize by Impact

Classify each ambiguity:

- **Blocking:** Cannot proceed with design/implementation until resolved
- **Non-blocking:** Can make a reasonable default; document the assumption; revisit if wrong

Skip non-blocking ambiguities in the question list — just document the assumption made.

### Step 4: Formulate Targeted Questions

For each blocking ambiguity, write one precise question:

**Bad question format:**
> "Can you tell me more about the authentication requirements?"

**Good question format:**
> "FR-003 requires authentication. Should this use the existing OAuth 2.0 SSO system, API key authentication, or a new username/password flow? (Context: the current codebase already has OAuth 2.0 implemented in `src/auth/`.)"

**Question formula:**
1. Reference the specific requirement (FR-003)
2. State the specific ambiguity (which auth method)
3. Offer concrete options where possible (not open-ended)
4. Add relevant context (existing system)

### Step 5: Present Questions in Priority Order

Present only blocking questions to the human, ordered by architectural impact (decisions that affect the most other decisions come first).

Limit: present a maximum of 5 questions at once. If there are more, address the top 5 first.

### Step 6: Process Answers and Update Requirements

For each answer received:
- Update the requirements document with the clarified requirement
- Remove or close the corresponding open question
- Check if the answer creates new ambiguities (if yes, restart from Step 1)

## Decision Points

| Condition | Tier | Action |
|-----------|------|--------|
| Human is unavailable | Inform | Document assumption as `UNVERIFIED ASSUMPTION [date]` and proceed; flag for review |
| Human gives a vague answer | Consult | Ask for a more specific answer: "To confirm — does 'fast' mean < 200ms for the average response?" |
| Human's answer conflicts with existing system | Consult | "This answer would conflict with [existing system behavior X]. Should we change that?" |
| 10+ questions pile up | Consult | Present only the top 3 blocking ones; explain the rest are non-blocking |

## Safety Constraints

- Never make architectural decisions to resolve requirement ambiguity — always ask the human
- Never proceed with design while blocking ambiguities are unresolved
- Never present more than 5 questions at once
- Always document the assumption made when proceeding without a human answer
- Never re-ask a question the human has already answered

## Expected Output

- A list of resolved ambiguities with the human's answers
- Updated requirements document with ambiguities resolved
- A list of documented assumptions (non-blocking ambiguities resolved by assumption)

## Validation

- [ ] All blocking ambiguities have human answers
- [ ] All non-blocking ambiguities have documented assumptions
- [ ] No requirement still contains unmeasured qualifiers
- [ ] Updated requirements are consistent (no new conflicts introduced)
- [ ] Human has confirmed the final requirements summary

## Failure Handling

| Failure | What to do |
|---------|------------|
| Human cannot answer a blocking question | Document it as a high-priority open question; do not proceed with design in that area |
| New ambiguities appear after each answer | Iterate; limit to 3 cycles before escalating to a synchronous design session |
| Requirements keep changing | Establish a scope freeze; document what is in scope as of [date] and resist scope creep |

## Examples

### Example 1: Clarifying "fast" in a RAG system

**Ambiguity detected:** FR-NFR-001 states "responses should be fast."

**Crafted question:**
> "FR-NFR-001 requires 'fast' responses. Can you specify a target latency? For reference: simple database queries typically take < 50ms; LLM generation typically takes 1–5 seconds. Is the target for the full end-to-end response (including LLM generation), or just for retrieval alone?"

**Human answer:** "Full response under 3 seconds P95 for 90% of queries."

**Output:** FR-NFR-001 updated to: "P95 end-to-end response time MUST be < 3 seconds for the 90th percentile of production queries."

## Related Skills

- `requirements-analysis` — run before this skill to identify all ambiguities
- `architecture-design` — run after ambiguities are resolved

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.