lint rule (consensus): seed-sweep-assertion couples tests to RNG internals #203
Labels
No labels
P0
P1
P2
P3
bug
create
delete
enhancement
filed-by/agent
filed-by/user
frozen
lint-rule
needs-info
needs-triage
next
plugin/cc-architect
plugin/os
plugin/os-adr
plugin/os-aidd-lint
plugin/os-backlog
plugin/os-context
plugin/os-doc-hygiene
plugin/os-sdlc
plugin/os-vault
project/cc-os
ready-for-agent
ready-for-human
recurring
review
update
waiting
wayfinder:grilling
wayfinder:map
wayfinder:map
wayfinder:research
wayfinder:task
wayfinder:task
wontfix
worklist/deviations
worklist/lint-rule
worklist/new-implement-build
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
jared/cc-os#203
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Migrated from jared/os-sdlc#28 (repo retired).
Problem
Looping an assertion over many RNG seeds (e.g.
200.times { |seed| ...; refute_equal(...) }) couples a test to the RNG's internal behavior rather than asserting the domain rule directly.Detection
Correction
Assert the rule directly (e.g. an excluded case never appears in the candidate set), or stub the source of randomness instead of sweeping seeds.
Pass/fail examples
200.times { |seed| ...; refute_equal(...) }-- an assertion nested in a seed-sweep loop.Provenance
Run 18 (ticket #18, decision-dice sandbox, now retired), Fable + Codex dual review, 2026-07-21.
Implementation plan
Candidate custom cop for plugins/os-sdlc/lib/os_sdlc/cops/ (Sdlc/Minitest namespace), same shape as the existing TestMethodAfterPrivate cop.
Implemented as Sdlc/Minitest/SeedSweepAssertion (commit
e49252f, branch worktree-sdlc-lint-cops). 5 tests green, rubocop clean.