test: seed all 98 unseeded rigor campaigns

The rigor suite had 98 campaigns drawing a random seed per process,
making the suite nondeterministic on a deterministic engine (one real
~1/15 flake already caught in tuple-to-userset-rule.test.js). Every
campaign now carries a fixed, per-test-unique seed:

- 16 files touched, 100 run() calls, all 100 seeded (2 were already done)
- seed names follow <file>-<purpose> kebab-case, unique within each file
- no other content changed (effort, invariants, assertions untouched)

Verification: full rigor suite green across 11 consecutive runs, full
suite 852/790/0. Determinism is now structural, not incidental.
This commit is contained in:
John Dvorak
2026-08-02 16:39:36 -07:00
parent 342c29f38b
commit f9d4fbe2f0
16 changed files with 100 additions and 100 deletions
+7 -7
View File
@@ -87,7 +87,7 @@ describe('ParentRule evaluation (rigor)', () => {
rigor.crucible([
rigor.invariant('no-parents', ({ error, errorMessage }) => !error && !errorMessage)
])
).run({ effort: 500 , artifacts: { dir: '', persist: 'never' }});
).run({ seed: 'parent-rule-no-parents', effort: 500 , artifacts: { dir: '', persist: 'never' }});
if (process.env.TEST_DEBUG === '1') console.log(report.toTAP());
const inv = report.crucibleVerdict?.invariants?.find(i => i.name === 'no-parents');
@@ -131,7 +131,7 @@ describe('ParentRule evaluation (rigor)', () => {
rigor.crucible([
rigor.invariant('one-parent-strength', ({ error, errorMessage }) => !error && !errorMessage)
])
).run({ effort: 800 , artifacts: { dir: '', persist: 'never' }});
).run({ seed: 'parent-rule-one-parent', effort: 800 , artifacts: { dir: '', persist: 'never' }});
if (process.env.TEST_DEBUG === '1') console.log(report.toTAP());
const inv = report.crucibleVerdict?.invariants?.find(i => i.name === 'one-parent-strength');
@@ -175,7 +175,7 @@ describe('ParentRule evaluation (rigor)', () => {
rigor.crucible([
rigor.invariant('threshold-cutoff', ({ error, errorMessage }) => !error && !errorMessage)
])
).run({ effort: 1500 , artifacts: { dir: '', persist: 'never' }});
).run({ seed: 'parent-rule-threshold', effort: 1500 , artifacts: { dir: '', persist: 'never' }});
if (process.env.TEST_DEBUG === '1') console.log(report.toTAP());
const inv = report.crucibleVerdict?.invariants?.find(i => i.name === 'threshold-cutoff');
@@ -212,7 +212,7 @@ describe('ParentRule evaluation (rigor)', () => {
rigor.crucible([
rigor.invariant('cycle-detection', ({ error, errorMessage }) => !error && !errorMessage)
])
).run({ effort: 200 , artifacts: { dir: '', persist: 'never' }});
).run({ seed: 'parent-rule-cycle', effort: 200 , artifacts: { dir: '', persist: 'never' }});
if (process.env.TEST_DEBUG === '1') console.log(report.toTAP());
const inv = report.crucibleVerdict?.invariants?.find(i => i.name === 'cycle-detection');
@@ -258,7 +258,7 @@ describe('ParentRule evaluation (rigor)', () => {
rigor.crucible([
rigor.invariant('multi-parent-max', ({ error, errorMessage }) => !error && !errorMessage)
])
).run({ effort: 800 , artifacts: { dir: '', persist: 'never' }});
).run({ seed: 'parent-rule-multi-parent', effort: 800 , artifacts: { dir: '', persist: 'never' }});
if (process.env.TEST_DEBUG === '1') console.log(report.toTAP());
const inv = report.crucibleVerdict?.invariants?.find(i => i.name === 'multi-parent-max');
@@ -297,7 +297,7 @@ describe('ParentRule evaluation (rigor)', () => {
rigor.crucible([
rigor.invariant('parent-relation-default', ({ error, errorMessage }) => !error && !errorMessage)
])
).run({ effort: 200 , artifacts: { dir: '', persist: 'never' }});
).run({ seed: 'parent-rule-default-relation', effort: 200 , artifacts: { dir: '', persist: 'never' }});
if (process.env.TEST_DEBUG === '1') console.log(report.toTAP());
const inv = report.crucibleVerdict?.invariants?.find(i => i.name === 'parent-relation-default');
@@ -341,7 +341,7 @@ describe('ParentRule evaluation (rigor)', () => {
rigor.crucible([
rigor.invariant('possibility-bounded', ({ error, errorMessage }) => !error && !errorMessage)
])
).run({ effort: 800 , artifacts: { dir: '', persist: 'never' }});
).run({ seed: 'parent-rule-possibility-bounded', effort: 800 , artifacts: { dir: '', persist: 'never' }});
if (process.env.TEST_DEBUG === '1') console.log(report.toTAP());
const inv = report.crucibleVerdict?.invariants?.find(i => i.name === 'possibility-bounded');