Skip to content

feat(tri): read the competitive survey for its age, by the month its citations encode - #2979

Merged
gHashTag merged 3 commits into
masterfrom
loop/competitor-freshness
Aug 30, 2026
Merged

feat(tri): read the competitive survey for its age, by the month its citations encode#2979
gHashTag merged 3 commits into
masterfrom
loop/competitor-freshness

Conversation

@gHashTag

Copy link
Copy Markdown
Owner

Refs #2977

An arXiv identifier dates its paper: since 2007 the form is YYMM.NNNNN and YYMM is
the month of first submission, unchanged by later versions. So the survey behind
specs/igla/coder/benchmark.t27 can be read for age off the file itself, no network.

  reading taken as of         2026-08
  newest paper CITED BY A RECORD   2026-06   2 month(s) ago
  newest paper mentioned anywhere  2026-06   2 month(s) ago

  records added per month of publication, last 12:
    2026-03    20  ####################
    2026-04    17  #################
    2026-05     9  #########
    2026-06    49  ########################################
    2026-07     0
    2026-08     0

What it refuses to say

The command reports the gap and does not call it a defect. A table with nothing
recent either stopped looking or the field published nothing, and those two are
indistinguishable from inside this repository. What separates them is a counterexample —
one paper in the gap that belongs in the table — and the output says so rather than
guessing. Two exist and they live in #2977, not hardcoded here: a hardcoded example goes
vacuous the day somebody adds it.

No --gate, on purpose. A gate that reddens because a month passed, with nobody
having changed anything, is a gate that gets muted.

Two design decisions worth the review

The reading is pinned by --as-of YYYY-MM. A gap measured against the system clock
is a number that changes while nobody edits anything, and cannot be asserted in a test
at all. Every reading in the tests supplies its own month.

Two populations, printed apart, never summed. Papers cited by a competitor record
(the survey proper) and every arXiv id in the file (including ids inside a benchmark:
string). A test plants an id in a string and asserts it is mentioned and not cited.

Verify

cargo test --manifest-path cli/tri/Cargo.toml     # 422 passed
tri competitors freshness --as-of 2026-08
tri competitors freshness --as-of 2027-01         # same newest, gap 7

Mutation: emptying the anywhere collector turns
a_paper_named_in_a_string_is_mentioned_and_not_cited red.

Filed rather than fixed

#2977docs/BITNET_STACK.md claims "no competitor has" and "unique position" above
a four-row table, while POSITIONING_CONFORMANCE_LAYER.md:122 states the banned-hype
rule and COMPETITIVE_ANALYSIS_SCIENTIFIC_FOUNDATIONS.md:337 says such a claim is not
established without an exhaustive survey. The 168-record table is a different
population — LLMs that write Verilog, not ternary spec-first compilers — so it could not
support that sentence however fresh it were.

Built, measured, and not shipped

A superlative-claim detector. Over 2149 first-party markdown files the word only occurs
3437 times; the narrowed matcher scored 2 real claims in 6 hits, and two of the
false positives were the sentences that state the rule. Three false positives in six is
how a check dies, so it stayed out and the finding went in the issue instead.

🤖 Generated with Claude Code

…citations encode

Refs #2977

An arXiv identifier dates its paper: since 2007 the form is `YYMM.NNNNN`, and
`YYMM` is the month of FIRST submission -- a later version does not change it.
So the survey behind `specs/igla/coder/benchmark.t27` can be read for age
without a network, off the file itself.

    reading taken as of         2026-08
    newest paper CITED BY A RECORD   2026-06   2 month(s) ago
    newest paper mentioned anywhere  2026-06   2 month(s) ago

    records added per month of publication, last 12:
      2026-03    20  ####################
      2026-04    17  #################
      2026-05     9  #########
      2026-06    49  ########################################
      2026-07     0
      2026-08     0

The command reports the gap and REFUSES to call it a defect. A table with
nothing recent either stopped looking or the field published nothing, and those
two are indistinguishable from inside this repository. What separates them is a
counterexample -- one paper in the gap that belongs in the table -- and the
output says so instead of guessing. Two exist, and they are in #2977 rather
than hardcoded here, because a hardcoded example goes vacuous the day it is
added.

There is no `--gate`, on purpose. A gate that reddens because a month passed,
with nobody having changed anything, is a gate that gets muted.

The reading is pinned by `--as-of YYYY-MM`. A gap measured against the system
clock is a number that changes while nobody edits anything, and cannot be
asserted in a test at all; every reading in the tests supplies its own month.

Two populations are printed apart and must not be summed: papers cited by a
competitor RECORD -- the survey proper -- and every arXiv id in the file,
including ids written into a `benchmark:` string. A test plants an id in a
string and asserts it is mentioned and not cited.

Four tests, one mutation-checked: emptying the `anywhere` collector turns
`a_paper_named_in_a_string_is_mentioned_and_not_cited` red. 422 tests pass,
clippy unchanged, `competitors.rs` carries none of its own.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

📓 NotebookLM Notebook linked to this PR

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

@github-actions

Copy link
Copy Markdown
Contributor

PR Dashboard

Generated at: 2026-08-30 18:54:50 UTC

Summary

Status Count
Total Open PRs 9
PRs with Failing Checks 7
PRs with All Checks Green 2
READY 0
FAILING 7
PENDING 0

Seal Status

  • ⚠️ STALE -- sha256(compiler.rs)=4eccc2f5d228 != 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

Copy link
Copy Markdown
Contributor

📓 NotebookLM Notebook linked to this PR

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

@github-actions

Copy link
Copy Markdown
Contributor

PR Dashboard

Generated at: 2026-08-30 19:04:32 UTC

Summary

Status Count
Total Open PRs 9
PRs with Failing Checks 7
PRs with All Checks Green 2
READY 0
FAILING 7
PENDING 0

Seal Status

  • ⚠️ STALE -- sha256(compiler.rs)=4eccc2f5d228 != 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 enabled auto-merge (squash) August 30, 2026 19:13
@github-actions

Copy link
Copy Markdown
Contributor

📓 NotebookLM Notebook linked to this PR

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

@github-actions

Copy link
Copy Markdown
Contributor

PR Dashboard

Generated at: 2026-08-30 19:13:29 UTC

Summary

Status Count
Total Open PRs 8
PRs with Failing Checks 7
PRs with All Checks Green 1
READY 0
FAILING 7
PENDING 0

Seal Status

  • ⚠️ STALE -- sha256(compiler.rs)=4eccc2f5d228 != 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 89c1a20 into master Aug 30, 2026
29 checks passed
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