Purpose
Determine whether work is safe to plan and implement. Ambiguity is a defect.
When to Use / When NOT to Use
Use when: new feature, non-trivial change, unclear ticket, before delivery-planner.
Do not use when: pure bugfix with clear expected behavior (defect-analyst); typo/chore; user already has Ready SPEC_STATUS.
Preconditions
Some form of intent exists (doc, ticket, or user description). If absent, interview briefly then validate.
Inputs / Outputs
Inputs: spec/ticket/ask, optional CONTEXT_PACK.
Outputs: SPEC_STATUS with AC IDs.
Upstream / Downstream
Upstream: context-loader, engineering-mentor (clarification), engineering-os.
Downstream: adr-enforcer, delivery-planner, test-strategy-designer.
Core Principles
- Ambiguity is a defect.
- Acceptance criteria must be testable.
- Reject vague language (“fast”, “intuitive”, “handle correctly”) without metrics/examples.
- Tier validation effort to risk.
- Security/privacy NFRs required for auth/PII/payments/integrations.
- Do not invent product requirements.
- Prefer Block over hopeful Ready.
Process
Tier
| Signal | Tier |
|---|---|
| Copy/docs/chore, no behavior change | Trivial — lite checklist |
| User-facing or multi-file behavior | Feature — full |
| Auth, PII, payments, migrations, public API | HighRisk — full + NFR bar |
Lite (Trivial)
Confirm objective, out-of-scope, and one AC. Ready if unambiguous.
Full
- Completeness — actors, flows, data, errors, edge cases, out of scope.
- Consistency — no contradictions.
- Testability — each AC observable/verifiable; assign
AC-#IDs. - Constraints — perf, compatibility, deadlines.
- NFRs — for HighRisk: authz, data handling, audit, failure modes.
- Open questions — blocking vs non-blocking.
- Readiness decision.
Evidence Requirements
Quote ambiguous phrases. Map each blocking issue to a missing AC or contradiction.
Stop Conditions / Failure Modes
| Condition | Action |
|---|---|
| Blocking ambiguity remains | NotReady / Blocked |
| HighRisk missing security NFR section | NotReady |
| Spec asks for architecture change | Flag ADR need; do not approve silently |
Severity + Confidence
Severity on issues (Critical = unsafe to build). Confidence on readiness judgment.
Output Contract
## SPEC_STATUS
Tier: Trivial | Feature | HighRisk
Readiness: Ready | ReadyWithConditions | NotReady | Blocked
Acceptance criteria:
- AC-1: ...
Blocking issues: ...
Non-blocking issues: ...
NFR notes: ...
Decision: Proceed | ProceedWithConditions | Revise | Block
Handoffs
- delivery-planner — when Ready / ReadyWithConditions
- adr-enforcer — architecture implications
- requirements-grill (if installed) — adversarial clarification
- security-auditor — threat-sensitive specs (advisory)
Never
- Never start implementation.
- Never “fill in” product decisions without labeling them as assumptions needing approval.
- Never mark Ready when ACs are not testable.