R1 — no acceptance criterion, and S9 is what would give it one #45

Open
opened 2026-09-05 16:20:21 +00:00 by dtourolle · 1 comment
Owner

R1 — cross-platform output within a bounded tolerance. It currently has no acceptance criterion at all, so there is nothing a test could assert.

The circularity

§2 states the threshold "must be fixed before spike S9", because S9 both validates R1 and calibrates what tolerance is achievable. The threshold was never fixed and S9 has never run. So R1 is not merely unbuilt — it is unfalsifiable.

The tag that was removed, and why it is worth recording

The matrix used to report R1 as covered, and what covered it was two string literals: fixtures inside the traceability tool's own unit tests, which the tool scanned along with everything else — a fixture demonstrating tag extraction was indistinguishable from a tag.

The extractor now asks where the tag sits: a tag is the first word of a comment, not a string appearing anywhere on a line. R1 is untagged again, which is the honest reading while it has no criterion to tag anything against.

Acceptance

  • Run S9: render the same file on desktop and on Android and measure the difference.
  • Fix the tolerance threshold from what S9 shows is achievable, and record it in requirements.md.
  • A test that asserts it.

Blocked on

Nothing. The threshold is defined by running the spike.

Related

#46 — R2 fails in the same way, and the two belong in one sitting.

See docs/outstanding.md §9 and §10.

**R1 — cross-platform output within a bounded tolerance.** It currently has **no acceptance criterion at all**, so there is nothing a test could assert. ## The circularity §2 states the threshold "must be fixed before spike S9", because **S9 both validates R1 and calibrates what tolerance is achievable**. The threshold was never fixed and S9 has never run. So R1 is not merely unbuilt — it is unfalsifiable. ## The tag that was removed, and why it is worth recording The matrix used to report R1 as **covered**, and what covered it was two string literals: fixtures inside the traceability tool's own unit tests, which the tool scanned along with everything else — a fixture demonstrating tag extraction was indistinguishable from a tag. The extractor now asks *where* the tag sits: a tag is the first word of a comment, not a string appearing anywhere on a line. R1 is untagged again, which is the honest reading while it has no criterion to tag anything against. ## Acceptance - [ ] Run S9: render the same file on desktop and on Android and measure the difference. - [ ] Fix the tolerance threshold from what S9 shows is achievable, and record it in `requirements.md`. - [ ] A test that asserts it. ## Blocked on Nothing. The threshold is defined *by* running the spike. ## Related #46 — R2 fails in the same way, and the two belong in one sitting. See `docs/outstanding.md` §9 and §10.
dtourolle added the unmet-requirementsize:Mspikedecision labels 2026-09-05 16:20:21 +00:00
Author
Owner

Fails the same way as #46 — a threshold never chosen, and a target nothing measures. Settle both in one sitting.
Named by #49 as a candidate for moving across the line.

**Fails the same way as** #46 — a threshold never chosen, and a target nothing measures. Settle both in one sitting. Named by #49 as a candidate for moving across the line.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: dtourolle/DarkRoom#45