Skip to content

feat(tri): print the line that repeats the reading, and give dated its own --as-of - #3043

Merged
gHashTag merged 2 commits into
masterfrom
loop/reading-stamp
Sep 3, 2026
Merged

feat(tri): print the line that repeats the reading, and give dated its own --as-of#3043
gHashTag merged 2 commits into
masterfrom
loop/reading-stamp

Conversation

@gHashTag

@gHashTag gHashTag commented Sep 3, 2026

Copy link
Copy Markdown
Owner

A stamp is a command, not a warning

§461 gave one command an --as-of flag and made the flagless case print a sentence — this reading is NOT anchored, pass --as-of to fix it. A sentence is something to agree with. Both counts over the live backlog now print two lines instead, above the numbers rather than below:

OPEN ISSUES THAT STATE A COUNT IN THE TITLE

  read at 2026-09-03T18:27:56Z   NOT PINNED -- this count changes on every open and close
  re-take:  tri issues numbers --as-of 2026-09-02 --limit 3039   (the most recent day that has ended)

  issues read from gh           489   (fewer than the --limit of 500, so the read is COMPLETE)
  open issues read              489

The second line is the whole point. It names the most recent day that has ended — the only date --as-of will accept, since today is refused for having a future end — so the distance between what I have and what you can check is one paste. A warning tells the reader their number is unpinned; this hands them the pinned one.

And it is a fixed point. Run what it suggests and the reading it produces carries the identical re-take: line, so the suggestion converges instead of sending the reader down a chain. Checked by running it, not reasoned about.

--as-of now exists on tri issues dated as well — half a symmetry is worse than none; dated printed eight figures over the same live backlog with no way to pin any of them. Completeness is asked of the read, before the as-of filter removes rows: asking afterwards would see a short page and call a truncated read complete, which is the guard reporting exactly backwards in the one case it exists for.

The guard from the last pass caught the suggestion from this one

The first version of that re-take: line suggested the limit the command had just used. It was wrong, and wrong in precisely the case the line exists for.

query rows limit 500
without --as-of --state open 489 fits
with --as-of --state all 1486 truncates

So the suggestion read --as-of 2026-09-02 --limit 500, and running it printed:

  issues read from gh   500   *** EQUALS the --limit of 500: a LOWER BOUND, not a total ***
  open issues read      360

The true figure is 484. A helpful line, offered as the cure for unpinned numbers, handed the reader a wrong one — and §462's truncation guard, written one pass earlier for an unrelated reason, is what said so. Two rules from two passes; the second caught the first's mistake, and neither author was a person reading carefully.

That is the argument for a guard that prints rather than one that returns a bool. A predicate consulted in an if protects its caller. A predicate that puts a line in the output protects everything downstream of the output, including a suggestion written later by someone who had forgotten it existed.

The fix does not guess a bigger number: the suggested limit is the largest issue number seen, because GitHub numbers issues and pull requests from one sequence starting at 1, so the count can never exceed the largest number. Derived from the rows in hand — not a round number someone will have to raise next quarter.

One test assertion was wrong, and the failure was mine

assert!(!s.contains("PINNED --")) on the unpinned stamp fails on correct output: NOT PINNED -- contains PINNED --. Replaced with the pinned form's own opening, as of, which the unpinned form never prints.

  • four clauses mutated, four killed
  • cargo test -p tri522 passed, 0 failed
  • skill §466, §467

Refs #2994

…its own --as-of

Section 461 gave one command an --as-of flag and made the flagless case
print a sentence: "this reading is NOT anchored, pass --as-of to fix it".
A sentence is something to agree with. Every count over the live backlog
now prints two lines instead, above the numbers rather than below:

  read at 2026-09-03T18:27:56Z   NOT PINNED -- this count changes on every open and close
  re-take:  tri issues numbers --as-of 2026-09-02 --limit 3039   (the most recent day that has ended)

The second line is the point. It names the most recent day that HAS
ENDED -- the only date --as-of accepts, since today is refused for having
a future end -- so the distance between what I have and what you can
check is one paste. And it is a fixed point: run what it suggests and the
reading it produces carries the identical re-take line, checked by
running it rather than reasoned about.

--as-of now exists on `tri issues dated` too, over the same rule. Half a
symmetry is worse than none: dated printed eight figures over the same
live backlog with no way to pin any of them. Completeness is asked of the
READ, before the as-of filter removes rows -- asking afterwards would see
a short page and call a truncated read complete, which is the guard
reporting backwards in the one case it exists for.

The first version of the re-take line suggested the limit the command had
just used, and that was wrong in precisely the case the line exists for.
Without --as-of the query is --state open and 489 rows fit under 500;
with it the query is --state all and there are 1486. So the suggestion
read `--as-of 2026-09-02 --limit 500`, and running it printed 500 under a
LOWER BOUND warning and 360 open, where the true figure is 484.

A helpful line, offered as the cure for unpinned numbers, handed the
reader a wrong one -- and section 462's truncation guard, written one
pass earlier for an unrelated reason, is what said so. That is the
argument for a guard that PRINTS rather than one that returns a bool: a
predicate in an `if` protects its caller, while a predicate that puts a
line in the output protects everything downstream, including a suggestion
written later by someone who forgot it existed.

The fix does not guess a bigger number. The suggested limit is the
largest issue number seen, because GitHub numbers issues and pull
requests from one sequence starting at 1, so the count can never exceed
the largest number.

One test assertion was wrong and the failure was mine:
`!s.contains("PINNED --")` fails on correct output, because "NOT PINNED
--" contains it. Four clauses mutated, four killed.

Skill sections 466 and 467.

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 18:32:26 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 3, 2026

Copy link
Copy Markdown
Contributor

PR Dashboard

Generated at: 2026-09-03 18:34:53 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 3, 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 merged commit 035fdac into master Sep 3, 2026
36 checks passed
@gHashTag
gHashTag deleted the loop/reading-stamp branch September 3, 2026 18:55
gHashTag added a commit that referenced this pull request Sep 3, 2026
Fifth section-number collision on .claude/skills/ci-gates/SKILL.md: master
took 466 and 467 in #3043 while this branch was open. Resolved by rebuilding
from origin/master and re-appending my two sections as 468 and 469 -- the
master prefix is byte-identical, and the file is 433 sections, all unique and
ascending.

468 is "A lesson written down four times, and the command run anyway".
469 is "The machine that could not answer, and the population nobody asked".
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