Methodology

How Sigil turns a LOOP.md into a score. Every number below is read straight from the engine, so this page can never drift from the code that runs.

v1

The formula

Coverage
Coverage = checkable / total
Integrity
Integrity = (verified + verdict-mismatch) / checkable
Score
Score = clamp(round(100 × Integrity) − 25 × contradicted, 0, 100)

A contradicted line costs 25 points each — the only thing that pulls a proven log below its integrity ceiling.

Per-line verdicts

Verified

Every applicable cross-check confirmed the line against git and run history.

Unverifiable

The line carries no machine-checkable anchor (no commit SHA or run ID). Marked neutrally; it never lowers the score of a log that has verified content.

Contradicted

A source refutes the line — a missing/out-of-order SHA, a mismatched run verdict, an incoherent timestamp, or a pass that did not bank.

Verdict mismatch

The run reported 'blocked' while every assertion passed — a known checker issue. Counted as passing, never as a failure, and never hidden.

Cross-checks

Each machine-checkable line is run through every applicable check against git and TestSprite run history.

sha-exists

The claimed commit SHA exists in git history.

sha-order

Commits land in chronological order across the loop.

run-exists

The claimed run ID exists in run history.

run-verdict

The recorded run verdict matches the line's claim.

timestamp-coherence

The fix commit lands between the FAIL run and the PASS run.

banked-pass

A claimed banked pass is not refuted by a later failing run.

Principles