Skip to content

tri gates unmeasured: workflows whose green is about frequency, not health - #2758

Merged
gHashTag merged 3 commits into
masterfrom
w699-tri-unmeasured
Aug 28, 2026
Merged

tri gates unmeasured: workflows whose green is about frequency, not health#2758
gHashTag merged 3 commits into
masterfrom
w699-tri-unmeasured

Conversation

@gHashTag

Copy link
Copy Markdown
Owner

Refs #2754

tri gates dead asks "ran a lot and never passed". This asks the opposite and harder question: "never ran on the default branch, so nobody knows".

Three gates in this repository were in that state at once — rings-rust, secret-scan and cli-tri, all paths:-filtered on the root Cargo.toml, which nothing had edited in months. Editing it for the release work woke all three: seventeen ring crates had never compiled, 233 files carried a developer's home directory, and tri rtl check had been dying on a submodule declared but never registered. Every one had been reading as passing. Finding them took a 45-workflow sweep by hand; this is that sweep.

$ tri gates unmeasured
28 of 58 active workflow(s) have no default-branch run within 30 days.

  LAST        paths:   dispatch   WORKFLOW
  2026-04-14  yes      NO         Build Paper
  2026-06-14  yes      yes        Coq Proofs Validation
  never       -        NO         Check Now Freshness
  ...

paths: is reported because it is usually the reason. dispatch: NO is reported because without workflow_dispatch: the missing reading cannot be taken on purpose — the gap cannot be closed even by someone who wants to.

The first version said 58 of 58

The jq was written as a raw string with its closing "" trimmed off at runtime, producing invalid jq. Every query failed, unwrap_or_default() turned each failure into an empty string, and the command confidently reported that no workflow had ever run — a wrong answer produced by exactly the mechanism it exists to find.

There is no default on error now: a query that did not run is counted separately and named, and "could not ask" is never rendered as "did not run".

Verified row by row against the API — Build Paper 2026-04-14T13:49:40Z, Coq Proofs Validation 2026-06-14T13:26:32Z, both match. Two tests cover the staleness rule without a network, including that an unparseable date is stale, not fresh.

Also: .claude/workflows/

loop-recon.js becomes a reusable workflow instead of a script retyped each run, with its shape written down beside it — pipeline rather than barrier, structured output rather than scraped prose, prompts that name what is already known so a run does not rediscover the same top three and read like progress, and effort as part of each finding.

It hard-coded one worktree's absolute path when first written. Same defect secret-scan rejects, so REPO now comes from args or the working directory.

tri: 208 tests passing.

🤖 Generated with Claude Code

gHashTag and others added 3 commits August 28, 2026 23:59
…requency, not health

`tri gates dead` asks "ran a lot and never passed". This asks the opposite and
harder question: "never ran on the default branch, so nobody knows".

Three gates in this repository were in that state at once -- rings-rust,
secret-scan and cli-tri, all `paths:`-filtered on the root Cargo.toml, which
nothing had edited in months. Editing it for the release work woke all three:
seventeen ring crates had never compiled, 233 files carried a developer's home
directory, and `tri rtl check` had been dying on a submodule declared but never
registered. Every one had been reading as passing. Finding them took a
45-workflow sweep by hand; this is that sweep.

    $ tri gates unmeasured
    28 of 58 active workflow(s) have no default-branch run within 30 days.

      LAST        paths:   dispatch   WORKFLOW
      2026-04-14  yes      NO         Build Paper
      2026-06-14  yes      yes        Coq Proofs Validation
      never       -        NO         Check Now Freshness
      ...

`paths:` is reported because it is usually the reason. `dispatch: NO` is
reported because without `workflow_dispatch:` the missing reading cannot be
taken on purpose -- the gap cannot be closed even by someone who wants to.

THE FIRST VERSION OF THIS SAID 58 OF 58. The jq was written as a raw string with
its closing `""` trimmed off at runtime, producing invalid jq; every query then
failed, `unwrap_or_default()` turned each failure into an empty string, and the
command confidently reported that no workflow had ever run. A wrong answer
produced by exactly the mechanism this command exists to find. Now there is no
default on error: a query that did not run is counted separately and named, and
"could not ask" is never rendered as "did not run".

Verified row by row against the API: Build Paper 2026-04-14T13:49:40Z, Coq
Proofs Validation 2026-06-14T13:26:32Z -- both match. Two tests cover the
staleness rule without a network, including that an unparseable date is STALE,
not fresh.

Refs #2754

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…ped each run

.claude/workflows/loop-recon.js runs four recon dimensions -- weakest thing in
the repository, why rustc accepts zero of 559 generated files, who else is in
this field, and which tri command is missing -- and adversarially refutes every
finding before it reaches a plan.

The shape is written down in the README beside it, because the shape is the
reusable part: pipeline rather than barrier so a fast dimension is not idled
behind a slow one; structured output so the script never scrapes English; the
prompt naming what is ALREADY known so a run does not rediscover the same top
three and read like progress; and effort as part of each finding, since a true
finding with a wrong cost still plans the next hour badly.

It hard-coded one worktree's absolute path when it was first written. That is
the same defect secret-scan rejects, so REPO now comes from args or the working
directory -- a workflow is not exempt from a rule the repository applies to
everything else.

Refs #2754

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Refs #2754

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

Copy link
Copy Markdown
Contributor

PR Dashboard

Generated at: 2026-08-28 17:01:04 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)=25a9c40dc273 != 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.

@gHashTag
gHashTag merged commit 20fa230 into master Aug 28, 2026
32 of 33 checks passed
@gHashTag
gHashTag deleted the w699-tri-unmeasured branch August 28, 2026 18:22
gHashTag added a commit that referenced this pull request Aug 28, 2026
Brought up to date after #2758; the ruleset requires it, and a rebase would
need a force-push.
gHashTag added a commit that referenced this pull request Aug 28, 2026
Up to date after #2758 and #2759; the ruleset requires it and a rebase would
need a force-push.
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