Skip to content

tri skill lost: the audit that found nothing in SKILL.md, and two bare headings in docs/NOW.md - #3206

Merged
gHashTag merged 8 commits into
masterfrom
loop/the-audit-that-found-nothing
Sep 4, 2026
Merged

gHashTag merged 8 commits into
masterfrom
loop/the-audit-that-found-nothing

Conversation

@gHashTag

@gHashTag gHashTag commented Sep 4, 2026

Copy link
Copy Markdown
Owner

#3203 repaired one section whose body the tooling destroyed. The obvious next question is whether it
was the only one.

tri skill lost asks it: walk every commit that touched the file, record each section's body the
first time it appeared, and report any whose body on the base is a strict prefix of that first
version. An edit in place is not a prefix. A truncation is.

Measured over 281 commits and 518 titles ever written

titles ever written 518
present on master 516
bodies that are a strict prefix of an earlier version 40
— of those, differing by trailing blank lines only 38
— real cut tails 2

Both real cut tails are reorganisations, checked rather than assumed:

  • Renaming a CI job silently breaks branch protection, −21 lines. What left was an unnumbered
    ## Writing a gate here block and its list. A body runs to the next numbered heading, so an
    unnumbered block that later moved elsewhere reads exactly like a truncation. grep finds it on
    master.
  • Emitter-class repair, −5 lines: one paragraph, still on master.

Both absent titles are deliberate, and both were read before being judged:

  • What to do when the fix is behind a seal was rewritten under a longer title — 43 of its 43
    substantial lines live on master under … -- and how to check it is.
  • A gate that never runs on master has no baseline was withdrawn on purpose, by 7071b071,
    whose subject is "withdraw a claim of mine" and whose body gives the two master runs that
    refuted it.

Zero unexplained losses

§550 was the only one, it was caused by the tool in this session, and it is repaired. A clean audit
is what makes that a closed incident rather than a sample of an unknown population.

Three ways this audit could have lied

  • Counting titles: 518 ever, 516 now → "2 lost", and both are fine.
  • Counting prefix hits: 40, of which 38 are trailing blanks — reporting all 40 buries the two
    real ones under an artefact of where a section ends.
  • Believing the two: both looked like damage; neither was. One grep each settled it.

The audit's value was entirely in the four checks that turned findings back into non-findings, so
the command prints those caveats in its own output — the next reader hits the same two false leads.

Eighth wiring mutant — and the first found before the helper was tested

if truncated(then, n) → if false makes the command walk 281 commits, find nothing by
construction, and print a clean bill of health for any file forever, with all three tests on
truncated green.

This one was found by mutating the call site first, before writing a single test for the helper —
which is the rule the previous seven produced. The rule works, and it took seven repetitions to
write down.

733 crate tests. SKILL 553. Refs #3195

…s the result

SKILL 552 repaired one section whose body the tooling destroyed. The
obvious next question is whether it was the only one.

`tri skill lost` walks every commit that touched the file, records each
section's body the first time it appeared, and reports any whose body on
the base is a strict PREFIX of that first version. An edit in place is
not a prefix; a truncation is.

Measured over 281 commits and 518 titles ever written:

    titles ever written                              518
    present on master                                516
    bodies that are a strict prefix of an earlier    40
      of those, trailing blank lines only            38
      real cut tails                                  2

Both real cut tails are reorganisations, checked rather than assumed: an
unnumbered `## Writing a gate here` block that moved (a body runs to the
next NUMBERED heading, so a moved unnumbered block reads exactly like a
truncation), and one paragraph. Both still on master.

Both absent titles are deliberate: one rewritten under a longer heading
with 43 of 43 substantial lines alive, and one withdrawn on purpose by
7071b07, whose subject is "withdraw a claim of mine" and whose body
gives the two master runs that refuted it.

Zero unexplained losses. SKILL 550 was the only one, it was caused by the
tool in this session, and it is repaired. A clean audit is what makes
that a closed incident rather than a sample of an unknown population.

The command prints the caveats in its own output, because the next reader
hits the same two false leads: a missing title is not a loss, and a cut
tail is not a loss when an unnumbered block moved.

Eighth pass running whose surviving mutant was the wiring -- `if
truncated(then, n)` replaced with `if false` makes the command walk 281
commits, find nothing by construction, and report health forever, with
all three tests on `truncated` green. FIRST one found by mutating the
call site before writing any test for the helper, which is the rule the
previous seven produced.

SKILL 553.

Refs #3195
@github-actions

github-actions Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

PR Dashboard

Generated at: 2026-09-04 22:17:01 UTC

Summary

Status Count
Total Open PRs 13
PRs with Failing Checks 11
PRs with All Checks Green 2
READY 0
FAILING 11
PENDING 0

Seal Status

  • ⚠️ STALE -- sha256(compiler.rs)=9b8875f1c9d4 != manifest seal=87e5cbd3ad94.
    The committed NMSE numbers were certified against an older compiler.rs.
    Run scripts/reseal-check.sh locally for the two-step reseal command (advisory; not a merge gate).

@github-actions

github-actions Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

📓 NotebookLM Notebook linked to this PR

This notebook contains session context, decisions, and artifacts for this work.

@github-actions

github-actions Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

📓 NotebookLM Notebook linked to this PR

This notebook contains session context, decisions, and artifacts for this work.

@github-actions

github-actions Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

PR Dashboard

Generated at: 2026-09-04 22:37:42 UTC

Summary

Status Count
Total Open PRs 12
PRs with Failing Checks 11
PRs with All Checks Green 1
READY 0
FAILING 11
PENDING 0

Seal Status

  • ⚠️ STALE -- sha256(compiler.rs)=9b8875f1c9d4 != manifest seal=87e5cbd3ad94.
    The committed NMSE numbers were certified against an older compiler.rs.
    Run scripts/reseal-check.sh locally for the two-step reseal command (advisory; not a merge gate).

The plan was "run the same audit over docs/NOW.md". Checked before built:
that file has ZERO numbered headings. 312 of them, every one shaped
`## fix(...)` or `## Wave Loop 434 — ...`. A --file flag on a command
that insists on `## N. ` would have walked 810 commits, found an empty
population, and printed a clean bill of health. The check that stopped it
cost one grep -c, and it is the same question as "does this gate have a
subject".

So the key generalised instead: strip a leading `N. ` when there is one,
otherwise the heading IS the key. Renumbering stays invisible -- half of
what happens to SKILL.md is renumbering -- and NOW.md becomes a
population for the first time.

Found present tense, with no history at all:

    2 heading(s) with an EMPTY body on origin/master:
      SW-conformance — gf96 promoted to strict SW-bitexact (Closes #1366)
      Wave Loop 434 — FPGA boot-evidence live XADC validation ...

docs/NOW.md lines 6359 and 6361 -- two CONSECUTIVE bare headings, nothing
under either. SKILL.md: 0 of 523. Their history says how much: 25 and 59
lines. For Wave Loop 434, 31 of 34 substantial lines survive elsewhere in
the file. For SW-conformance, 2 of 21 survive and the rest is in no
tracked file.

This question is strictly cheaper than the history walk and answers most
of it -- one read against 810 `git show` -- so it is asked first.

NOT published as a finding: the same run says 792 titles ever, 310
present. Those 482 are not 482 losses. NOW.md mixes rotating status
sections meant to be replaced with per-change entries that are not, and
separating them is a different measurement. The command prints the figure
and does not characterise it.

Three mutants, all killed after two survived first: the hollow filter was
inline so an inverted test built its own copy, and section_key's fixtures
had no non-numeric dotted prefix to discriminate `v1. Something`.

SKILL 556.

Refs #3195
@github-actions

github-actions Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

📓 NotebookLM Notebook linked to this PR

This notebook contains session context, decisions, and artifacts for this work.

@gHashTag gHashTag changed the title tri skill lost: the audit that found nothing across 281 commits, and why that is the result tri skill lost: the audit that found nothing in SKILL.md, and two bare headings in docs/NOW.md Sep 4, 2026
@github-actions

github-actions Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

PR Dashboard

Generated at: 2026-09-04 22:44:38 UTC

Summary

Status Count
Total Open PRs 13
PRs with Failing Checks 11
PRs with All Checks Green 2
READY 0
FAILING 11
PENDING 0

Seal Status

  • ⚠️ STALE -- sha256(compiler.rs)=9b8875f1c9d4 != manifest seal=87e5cbd3ad94.
    The committed NMSE numbers were certified against an older compiler.rs.
    Run scripts/reseal-check.sh locally for the two-step reseal command (advisory; not a merge gate).

@gHashTag

gHashTag commented Sep 4, 2026

Copy link
Copy Markdown
Owner Author

Update: --file, and the extension that would have audited nothing

The plan was "run the same audit over docs/NOW.md". Checked before built: that file has ZERO
numbered headings.
312 of them, every one shaped ## fix(...) or ## Wave Loop 434 — ….

A --file flag on a command that insists on ## N. would have walked 810 commits, found an
empty population, and printed a clean bill of health. The check that stopped it cost one
grep -c
— and it is the same question as "does this gate have a subject".

So the key generalised instead: strip a leading N. when there is one, otherwise the heading is
the key. Renumbering stays invisible (half of what happens to SKILL.md is renumbering), and
NOW.md becomes a population for the first time.

What it found, present tense, with no history at all

2 heading(s) with an EMPTY body on origin/master:
  SW-conformance — gf96 promoted to strict SW-bitexact (71/4/8) (Closes #1366)
  Wave Loop 434 — FPGA boot-evidence live XADC validation + synthetic CCLK proof-of-pipeline

docs/NOW.md lines 6359 and 6361 — two consecutive bare headings, nothing under either.
SKILL.md: 0 of 523.

History says how much: 25 and 59 lines. For Wave Loop 434, 31 of its 34 substantial lines
survive elsewhere in the file. For SW-conformance, 2 of 21 survive and the rest is in no tracked
file at all.

This question is strictly cheaper than the history walk and answers most of it — one read against
810 git show invocations — so it is asked first.

The number I did not publish

The same run reports titles ever written 792, present 310. Those 482 are not 482 losses, and
saying so would repeat the unit error from SKILL 535. NOW.md mixes rotating status sections
(Active Work, Next check-in, Anchor) that are meant to be replaced with per-change entries
that are not. Separating them is a different measurement.

The command prints the figure and does not characterise it: a population I have not classified is a
number, not a finding.

Mutants

Three run, two survived first: the hollow filter was inline, so a test that inverted it built its
own copy rather than calling production; and section_key's fixtures contained no non-numeric dotted
prefix, so v1. Something did not discriminate. Both killed after extraction and a fixture rewrite.
736 crate tests. SKILL 556.

@github-actions

github-actions Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

📓 NotebookLM Notebook linked to this PR

This notebook contains session context, decisions, and artifacts for this work.

`tri skill renumber` REFUSED this merge, naming the section it would
drop -- the guard shipped two passes ago, working exactly as designed.
I then resolved the conflict with `git checkout --ours`, which takes my
side wholesale and discarded master's new section anyway.

    master 518 -> 520  lost 1
    Debt a fix cannot retire is a different kind of debt

The guard lives in the tool. My hand procedure walks around it. That is
SKILL 536 -- the fix lived in the tool and the probe went around it --
repeating, with the probe now being a git command rather than a shell
pipeline.

Rebuilt on master by TITLE: 520 sections, nothing of master's lost, all
three of this branch's sections present, ascending, no duplicates.

Refs #3195
@github-actions

github-actions Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

PR Dashboard

Generated at: 2026-09-04 23:03:29 UTC

Summary

Status Count
Total Open PRs 12
PRs with Failing Checks 11
PRs with All Checks Green 1
READY 0
FAILING 11
PENDING 0

Seal Status

  • ⚠️ STALE -- sha256(compiler.rs)=9b8875f1c9d4 != manifest seal=87e5cbd3ad94.
    The committed NMSE numbers were certified against an older compiler.rs.
    Run scripts/reseal-check.sh locally for the two-step reseal command (advisory; not a merge gate).

@github-actions

github-actions Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

📓 NotebookLM Notebook linked to this PR

This notebook contains session context, decisions, and artifacts for this work.

@github-actions

github-actions Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

PR Dashboard

Generated at: 2026-09-04 23:04:00 UTC

Summary

Status Count
Total Open PRs 12
PRs with Failing Checks 11
PRs with All Checks Green 1
READY 0
FAILING 11
PENDING 0

Seal Status

  • ⚠️ STALE -- sha256(compiler.rs)=9b8875f1c9d4 != manifest seal=87e5cbd3ad94.
    The committed NMSE numbers were certified against an older compiler.rs.
    Run scripts/reseal-check.sh locally for the two-step reseal command (advisory; not a merge gate).

The previous commit rebuilt this file on master by TITLE, keeping every
section present here and absent there. One of them was 554 'Debt a fix
cannot retire is a different kind of debt' -- and master did not LACK it,
master had rewritten it, in 6a49402 'Correct #3205', because the claim
was wrong.

A by-title rebuild cannot tell a section I authored from one the base
deliberately removed. Both read as 'present here, absent there'. Eight
passes of resolving this file that way, and the hole only showed the
first time master withdrew something.

Two discriminators failed before one worked:

  - the MERGE BASE is useless once you have already merged: it becomes
    master's head, and both sections look equally new.
  - ANCESTRY is useless because master squashes: the commit that
    introduced the withdrawn section is not an ancestor of master, and
    neither are mine.

What works is master's own HISTORY of the text:

    git log origin/master -S'<title>' -- SKILL.md

'Debt a fix cannot retire' -> 2 commits: 6d333d3 added it (#3205),
6a49402 removed it (#3207). My two sections -> 0 commits each. A title
master's history has ever held, but its head does not, was taken out on
purpose.

520 sections, nothing of master's lost, nothing withdrawn resurrected.

Refs #3195
@github-actions

github-actions Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

📓 NotebookLM Notebook linked to this PR

This notebook contains session context, decisions, and artifacts for this work.

@github-actions

github-actions Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

PR Dashboard

Generated at: 2026-09-04 23:06:31 UTC

Summary

Status Count
Total Open PRs 12
PRs with Failing Checks 11
PRs with All Checks Green 1
READY 0
FAILING 11
PENDING 0

Seal Status

  • ⚠️ STALE -- sha256(compiler.rs)=9b8875f1c9d4 != manifest seal=87e5cbd3ad94.
    The committed NMSE numbers were certified against an older compiler.rs.
    Run scripts/reseal-check.sh locally for the two-step reseal command (advisory; not a merge gate).

@github-actions

github-actions Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

📓 NotebookLM Notebook linked to this PR

This notebook contains session context, decisions, and artifacts for this work.

@github-actions

github-actions Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

PR Dashboard

Generated at: 2026-09-04 23:06:55 UTC

Summary

Status Count
Total Open PRs 12
PRs with Failing Checks 11
PRs with All Checks Green 1
READY 0
FAILING 11
PENDING 0

Seal Status

  • ⚠️ STALE -- sha256(compiler.rs)=9b8875f1c9d4 != manifest seal=87e5cbd3ad94.
    The committed NMSE numbers were certified against an older compiler.rs.
    Run scripts/reseal-check.sh locally for the two-step reseal command (advisory; not a merge gate).

@gHashTag
gHashTag merged commit 5c99909 into master Sep 4, 2026
37 checks passed
@gHashTag
gHashTag deleted the loop/the-audit-that-found-nothing branch September 4, 2026 23:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant