Part of #4.
What
Grow the fixture corpus from the single rule in #10 to full coverage of the specification, one rule at a time.
Ordering
Follow the spec issues rather than the implementation: a rule gets fixtures when its normative text lands, so the gate in #8 stays green continuously rather than going red for a stretch and being silenced.
Include negative fixtures deliberately
A fixture asserting that something is rejected, and that the rejection names the right node, is worth more than one asserting acceptance. Acceptance can be right by accident. Rejection with a located, correctly-attributed message usually cannot.
Done when
Every identifier in spec/ has at least one accepting and one rejecting fixture where both are meaningful, and #8 passes without exemptions.
Part of #4.
What
Grow the fixture corpus from the single rule in #10 to full coverage of the specification, one rule at a time.
Ordering
Follow the spec issues rather than the implementation: a rule gets fixtures when its normative text lands, so the gate in #8 stays green continuously rather than going red for a stretch and being silenced.
Include negative fixtures deliberately
A fixture asserting that something is rejected, and that the rejection names the right node, is worth more than one asserting acceptance. Acceptance can be right by accident. Rejection with a located, correctly-attributed message usually cannot.
Done when
Every identifier in
spec/has at least one accepting and one rejecting fixture where both are meaningful, and #8 passes without exemptions.