Scenario
Generate comprehensive edge cases and test scenarios by decomposing a feature or file across 12 risk dimensions. Use for pre-implementation risk discovery, QA planning, regression design, and exhaustive edge-case enumeration. Triggers: 'edge cases for X', 'what could break', 'test scenarios', 'QA plan', 'risk discovery', 'enumerate failure modes'.From its SKILL.md
npx -y skills add vanducng/skills --skill scenarioAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 2 stars2 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its file declares
Copied from the file, not written here
The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
2.9 KB, 578 tokens by cl100k_base, as published. Nobody here has run it
scenario
Decompose a feature across 12 risk dimensions → exhaustive, severity-tagged edge cases.
What this is - and isn't
| Skill | Does |
|---|---|
vd:test | Runs tests, reports pass/fail |
vd:brainstorm | Explores solution options |
scenario | Enumerates edge cases & failure modes to test - does not run or fix them |
Output is an input to test-writing / QA / vd:plan risk sections - not executable tests.
Modes
| Mode | Behaviour |
|---|---|
| (default) | One pass over all 12 dimensions → scenario list. |
--saturation | Iterative rounds until coverage is exhausted (2 consecutive zero-new rounds) or --iterations cap (default 5). |
--iterations only applies with --saturation (default mode is a single pass).
Workflow
- Read the target - the file/function or feature description. Identify inputs, outputs, state, external calls.
- Walk the 12 dimensions - see
references/dimensions.md. For each, ask "what input/condition in this category breaks the target?" - Emit scenarios - group by dimension; each: a one-line condition, severity (Critical/High/Med/Low), why it breaks, suggested test/assertion.
- (saturation) - repeat with a completeness critic ("which dimension or angle is still thin?"); dedupe against the seen-set; stop per the rules in
references/saturation-loop.md. - Save the report - write to the injected
Reports:path. Filename:scenario-{date}-{slug}.md. Final handoff must include an openable report location, such as[scenario-report.md](/absolute/path/to/scenario-report.md)orfile:///absolute/path/to/scenario-report.md, not just the basename.
Output shape
## <dimension>
- **[High]** <condition> - breaks because <reason>. Test: <assertion>.
- **[Low]** <condition> - ...
End with a coverage line: Dimensions covered: 12/12 · scenarios: N · saturation rounds: R.
Limitations (honest)
- Enumeration quality depends on understanding the target - read it, don't guess.
- Not a fuzzer or property tester - it proposes cases, it doesn't execute them.
--saturationis bounded - it will stop at the iteration cap even if more cases theoretically exist (logs that it stopped).
What ships with it: 2 files
3.5 KB alongside SKILL.md
references/
- dimensions.md1.9 KB
- saturation-loop.md1.6 KB