Skip to content

feat(tri): separate figures over a sliding population, and hoist the rule out of the figure filter - #3027

Merged
gHashTag merged 3 commits into
masterfrom
loop/windowed-figures
Sep 3, 2026
Merged

feat(tri): separate figures over a sliding population, and hoist the rule out of the figure filter#3027
gHashTag merged 3 commits into
masterfrom
loop/windowed-figures

Conversation

@gHashTag

@gHashTag gHashTag commented Sep 3, 2026

Copy link
Copy Markdown
Owner

Seven headline figures published in this session, one per merged PR, were read again hours later. Three had moved, and all three stand over a population that is a QUERY rather than a set.

figure published hours later population
L1 vocabulary, local against the gates' 4 / 33 3 / 37 the last 20 commits
tri skill claims figures / instruments / free 121 / 40 / 116 126 / 44 / 121 the skill grows
tri issues numbers population 288 287 the live backlog
tri gates empty 5 of 36 unchanged workflow files -- FIXED
tri quantifiers report 119 / 308 / 472 unchanged the corpus -- FIXED
tri gates sweep verdicts 1 unchanged tools/ -- FIXED

The claim survives -- the local vocabulary really does see a fraction of what the gates accept -- and the number does not. Re-measuring such a figure is not a second reading of one population; it is a first reading of a different one.

The placement was the finding

The check was first written after the existing filter that keeps sections whose HEADING states a figure.

nested inside the figure filter    4 of 126
above it, over every section      14 of 422

Neither number is an error -- they answer different questions, and only one is the question the rule asks. The section the filter dropped was section 179, whose title IS the rule: "A --limit on a run list is a time window in disguise".

A disagreement between a hand count and a fresh matcher is a population question first and a logic question second. The command now prints 14 (of ALL 422 sections, not of the 126) so neither count can stand alone, and the test that would have caught it needs no corpus -- it asserts the two rules disagree on one string, and says so if that heading ever gains a digit.

The anchor count is an upper bound and says so

names_its_anchor asks "is there a revision or an ISO date anywhere", which is necessary but not sufficient. Over the original twelve it reported 3; all three were read by hand and one does not survive -- section 125 says "checks have not fired since 2026-08-24 11:06", a date anchoring the CLAIM, while the window it read was "the last 10, then 60 runs" and is dated nowhere. A section the rule rejects is definitely unanchored; one it accepts merely might be. No lower bound is claimed.

A looser matcher keyed on the word today fires on 28 further sections stating no window at all -- excluded as a matcher describing its input, with the count printed rather than dropped.

Nine clauses killed, three priced and removed

Four clauses of window_markers and five of the date shape were mutated; each killed a test. The ANCHOR NOT FOUND guard fired once on a literal newline escape that never expanded -- the mutant was refused rather than scored as a pass.

Three clauses survived mutation and moved nothing on the corpus: a label de-duplication the caller cannot observe, a left word-boundary check, and one character position of the date pattern. The first two were deleted; the third was the wrong unit -- mutating one conjunct of a ten-conjunct shape asks a question no natural input answers -- so the shape was extracted as is_iso_date and tested as ONE rule.

cargo test -p tri window_tests::,iso_date_tests:: reported 0 passed; 489 filtered out: the filter is a substring, not an alternation. Modules were run separately with an empty-sample guard.

The figure moved because writing it moved the population

Adding these two sections took the count from 12 of 420 to 14 of 422 -- two of the fourteen are sections 457 and 458. That is why the reading is anchored to c039ebebe instead of dated "currently", and both new sections carry an anchor on purpose.

  • cargo test -p tri -- 489 passed, 0 failed
  • skill: sections 457 and 458 appended; tri skill check -- 422 sections, no number used twice

Refs #2994

…rule out of the figure filter

Seven headline figures published in this session were re-read hours later.
Three had moved, and all three stand over a population that is a QUERY
rather than a set: 4/33 -> 3/37 (the last 20 commits), 121/40/116 ->
126/44/121 (the skill grows), 288 -> 287 (the live backlog). The three
over files on disk did not move at all. The claim survives; the number
does not, so re-measuring such a figure is a first reading of a
different population rather than a second reading of the same one.

`tri skill claims --windowed` reports them: 14 of 422 sections describe
a windowed population, anchored to c039ebe because two of the fourteen
are the sections added here -- writing the figure moved its population.

The placement was the finding. Written after the existing filter that
keeps sections whose HEADING states a figure, the check reported 4 of
126; a hand count over every section said 12 of 420. Neither number is
an error -- they answer different questions -- and the section the
filter dropped was 179, whose title IS the rule ("A `--limit` on a run
list is a time window in disguise"). The command now prints both counts
on adjacent lines so neither can stand alone, and a test asserts the two
rules disagree on that one string without needing the corpus.

`names_its_anchor` is an UPPER bound and says so: over the original
twelve it reported 3, all three were read by hand, and one does not
survive -- section 125 dates its CLAIM while the window it read is dated
nowhere. A looser matcher keyed on the word `today` fires on 28 further
sections stating no window at all; excluded, with the count printed.

Nine clauses were mutated and each killed a test. Three clauses survived
mutation and also moved nothing on the corpus: a label de-duplication
the caller cannot observe and a left word-boundary check were deleted,
and one character position of the date pattern was the wrong unit -- the
shape is now `is_iso_date`, tested as one rule.

Refs #2994
@github-actions

github-actions Bot commented Sep 3, 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 3, 2026

Copy link
Copy Markdown
Contributor

PR Dashboard

Generated at: 2026-09-03 13:55:20 UTC

Summary

Status Count
Total Open PRs 12
PRs with Failing Checks 10
PRs with All Checks Green 2
READY 0
FAILING 10
PENDING 0

Seal Status

  • ⚠️ STALE -- sha256(compiler.rs)=c150ac8923c5 != 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 3, 2026

Copy link
Copy Markdown
Contributor

PR Dashboard

Generated at: 2026-09-03 14:16:19 UTC

Summary

Status Count
Total Open PRs 11
PRs with Failing Checks 10
PRs with All Checks Green 1
READY 0
FAILING 10
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 3, 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 3, 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 3, 2026

Copy link
Copy Markdown
Contributor

PR Dashboard

Generated at: 2026-09-03 15:05:23 UTC

Summary

Status Count
Total Open PRs 11
PRs with Failing Checks 10
PRs with All Checks Green 1
READY 0
FAILING 10
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 efec781 into master Sep 3, 2026
36 checks passed
@gHashTag
gHashTag deleted the loop/windowed-figures branch September 3, 2026 15:24
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