Pure-reference catalog of James Bach's FCC CUTS VIDS heuristic - a 10-letter mnemonic for the dimensions a tester catalogs when MODELLING a system: Format, Constraints, Connections; Coverage, Users, Tasks, Sequences; Variables, Inputs, Data, Storage. Use pre-session to build the system model a charter will explore. For what to VARY use sfdpot-exploratory-heuristic, for oracles (is it a bug?) use hiccupps-f-heuristic, for quality criteria use crusspic-stmpl-heuristic.
75
94%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
Deep reference for fcc-cuts-vids-heuristic SKILL.md. Consult when the compact
table in the skill isn't enough and you want each dimension's modelling prompt
and the concrete things to enumerate under it.
What is the shape / format of inputs + outputs?
Specific data formats the system reads + writes:
Modelling Format means listing every format the system touches - including where format boundaries are (parser, serialiser, transport layer).
What are the rules the system enforces?
Constraints define what should happen; exploration tests whether the system holds them under stress.
What does the system integrate with?
Each connection is a potential boundary where things can fail - prime exploration territory.
What categories of behaviour does the system cover?
Where in the feature space does the system claim to operate? Not
what tests cover the code (that's
qa-test-impact-analysis) -
this is what the product claims to do.
Who uses the system, and how?
Modelling Users surfaces "who's a tester for this system?"
What goals do users have when using the system?
Not features (that's part of F - Function in SFDPOT). Tasks:
Tasks span features. A bug that breaks a task (even if every feature works individually) is high-impact.
What orderings of user actions are expected?
Sequences differ from Operations (SFDPOT) - Sequences is the shape of expected user paths; Operations is the variation of how users navigate them.
What runtime values vary, and within what bounds?
System-level variables - settings, configs, feature flags. These aren't user inputs; they're values the system holds + uses to behave differently:
What does the system receive from outside?
User-supplied data - distinct from system variables. Bach's distinction: Variables are internal state; Inputs are external data crossing into the system.
What does the system store / process / produce?
The system's data lifecycle. What gets written + read + how it flows through the system. Different from Input - Data is what the system owns + transforms, not what arrives.
Where and how does data persist?
Storage matters because durability + consistency expectations differ across these layers.