req-to-test
Installation
SKILL.md
Req-to-Test
Turn each requirement into the smallest set of tests that (a) fail if the requirement is violated and (b) pass otherwise. Every test traces back to exactly one requirement. Every requirement has at least one test, or is explicitly marked untestable with the reason.
Step 1 — Triage each requirement
Not all requirements produce tests the same way. Classify first:
| Type | Recognition cues | What it yields |
|---|---|---|
| Functional | "shall," "the system does X," "when Y then Z" | Direct input/output test cases |
| Constraint | "must not exceed," "within N ms," "at most," "never" | Boundary and property tests |
| Conditional | "if," "unless," "when … otherwise" | One test per branch — including the else |
| State-based | "after," "once … then," "until," references to phases | Sequence tests with setup state |
| Non-functional | "available," "secure," "scalable," "performant" | Usually untestable at this level → split or defer |
If a requirement doesn't fit any row, it's probably ambiguous — route to → ambiguity-detector before wasting effort deriving tests from mush.