Clarification Strategies
SkillDev toolsReference material with ambiguity-audit patterns and critique strategies for requirements. Loaded on demand by `clarify-spec`; not directly invokable.
Available today. Use it from your connected AI after setup.
No other account needed.
Add ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.
Then ask your AI: use the Clarification Strategies skill
What this skill tells your AI
The instructions your AI receives, as published by attilaszasz/sdd-pilot in .github/skills/clarification-strategies/SKILL.md and read by ahel’s review.
Ambiguity Audit Patterns
Patterns to identify weak requirements in spec.md:
1. The "Adverb Trap"
Pattern: "quickly", "easily", "efficiently", "seamlessly". Critique: "Define 'quickly'. <200ms? <1s? Define 'easily'. How many clicks?" Goal: Convert subjective adverbs to measurable metrics.
2. The Passive Voice
Pattern: "The user is notified..." / "The data is processed..." Critique: "WHO notifies? Email? SMS? Toast? WHAT processes? Background job? Synchronous call?" Goal: Identify specific actor and mechanism.
3. The "Unspecified Scale"
Pattern: "Handle user uploads" without size limits. Critique: "Max file size? Allowed types? Expected concurrency?" Goal: Define boundary constraints for Plan phase.
4. The "Missing Failure Mode"
Pattern: "User logs in successfully." Critique: "Wrong password? Locked account? DB down?" Goal: Ensure error paths defined in User Scenarios.
5. The "Scope Creep" Detector
Pattern: "Integration with 3rd party providers" (plural) when one suffices for MVP. Critique: "Which specific providers for V1? Can we limit to one?" Goal: Narrow scope, reduce complexity.
Questioning Protocol
When generating questions:
- Group by Impact: Security > Scope > UX > Technical.
- Propose a Default: "Should we default to JWT for auth, or do you have a specific requirement?"
- Limit Volume: Max 8 critical questions at a time.
- Reference Lines: Point to specific line in
spec.mdwhere ambiguity exists.
Adversarial Stress-Test Patterns
Patterns to detect internal contradictions and constraint violations in resolved specs. Run after collaborative ambiguity questions are answered — the goal shifts from "what did you mean?" to "what breaks if you meant exactly that?"
1. Cross-Requirement Contradiction
Signal: Two requirement or success-criteria IDs impose mutually exclusive constraints.
Heuristic: Pair-wise comparison of quantified constraints across all FR-###, TR-###, OR-###, SC-### entries — flag pairs whose stated bounds conflict at any scale within the spec's defined scope.
Example: "FR-002 mandates real-time sync, but TR-001 caps round-trip latency at 50 ms — under a 10,000-item payload, one of these must yield. Which one relaxes, and under what threshold?"
2. Constraint Impossibility
Signal: An acceptance, validation, or verification criterion is unachievable given stated constraints. Heuristic: For each SC, check that the combined constraint set (performance, uptime, scope exclusions, deployment model) has a feasible solution. Example: "SC-003 requires 99.99% uptime (US3), but OR-001 specifies zero-downtime deploys with no blue/green or canary strategy in scope — how is the 4.3 min/year error budget preserved during releases?"
3. Concurrent-Trigger Ambiguity
Signal: Two or more work items can fire simultaneously with no defined priority or conflict resolution. Heuristic: Identify US/OBJ pairs sharing an actor or trigger context; flag when the spec defines no ordering, mutual exclusion, or conflict-resolution rule. Example: "If a user triggers FR-001 (bulk import) and FR-004 (real-time validation) on the same dataset at the same instant, which operation wins? Is the import atomic or row-level?"
4. Boundary/Scale Stress
Signal: Stated limits are never tested at their extremes, or no limit is stated at all. Heuristic: For every quantified constraint, check for 0, max, and max+1 test scenarios; for every unconstrained resource (file size, concurrency, payload count), flag the absence of a bound. Example: "US-002 says 'handle user uploads' — what happens at 0 bytes? At the max-size boundary? At max-size + 1 byte? What is the max concurrency?"
Adversarial Scoring Protocol
When scoring adversarial findings:
- Severity: Use the ambient
AGENTS.md§Artifact Conventions definitions — CRITICAL (blocks baseline, violates instructions), HIGH (conflicting requirements, untestable criteria), MEDIUM (missing edge case, underspecified boundary). - Blast Radius: Count the number of distinct IDs (FR-###, TR-###, OR-###, SC-###, US#, OBJ#) affected by the finding.
- Rank: Sort by
severity × blast_radius(CRITICAL=3, HIGH=2, MEDIUM=1). - Cap: Return at most 5 findings per pass. Drop lowest-ranked findings beyond the cap.
Signals
- GitHub stars
- 97
- Forks
- 9
- Last commit
- Sep 2026
Advanced
- Item type
- skill
- Key
clarification-strategies- Source
- github.com/attilaszasz/sdd-pilot