tri triage: five ordered classes, and blocked is tested before actionable (#2156) - #2157
Open
gHashTag wants to merge 2 commits into
Open
tri triage: five ordered classes, and blocked is tested before actionable (#2156)#2157gHashTag wants to merge 2 commits into
gHashTag wants to merge 2 commits into
Conversation
…able (Closes #2156) Three classes made actionable the default, so anything unrecognised counted as available work. Blocked, research and duplicate items were all advertised, and the reported count was an upper bound read as an estimate. Five classes, first match wins, blocked before actionable. Over 241 open issues: 45 actionable, 0 research, 189 tracking, 7 blocked, 0 duplicate. research=0 is a limitation of a title-form signal on a tracker of declarative titles, reported as measured rather than tuned. Autoclose forbidden: the tool prints and exits, and says its output is a composition estimate rather than a verdict on any single issue. Loop helpers dispatch from scripts/tri_loop/ via tri <name>; tri loop-help lists them.
Contributor
|
📓 NotebookLM Notebook linked to this PR
This notebook contains session context, decisions, and artifacts for this work. |
Contributor
…loses #2156) The previous commit landed triage.py alone. The dispatcher and the NOW.md entry were staged, then unstaged by a `git stash` / `git stash pop` used to establish the language-check baseline, and the commit took only what was still in the index. Without the dispatcher `tri triage` does not resolve at all, so the branch as first pushed was inert. Recorded rather than amended away: a verification step that mutates the index is the defect, not the missing file.
Contributor
|
📓 NotebookLM Notebook linked to this PR
This notebook contains session context, decisions, and artifacts for this work. |
Contributor
PR DashboardGenerated at: 2026-08-14 19:03:19 UTC
Summary
Seal Status
|
This was referenced Aug 14, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #2156
tri triagehad three classes and madeactionablethe default: anything whose title did not look like a journal entry was counted as available work. Three kinds of issue cannot be picked up and finished, and all three were being advertised — blocked on hardware or a human, research with no checkable end, and duplicate or obsolete. The reported "~26 actionable" was an upper bound being read as an estimate, so a loop taking its next item from that list would periodically pick something it could not finish.Five classes, matched in order
Order is load-bearing.
blockedis tested beforeactionable, so a blocked defect is never offered as available.duplicateis tested last, because a duplicate that is also blocked is more usefully reported as blocked.Measured, over 241 open issues
The seven
blockeditems were previously inside theactionablecount. That is the whole point of the change: seven items that a loop cannot finish were being advertised as work it could take.Two honest weaknesses in this change
researchscored zero, and I did not tune the rule until it stopped. The signal reads title form — a trailing question mark, an interrogative opening,hypothes…. This tracker's titles are declarative sentences, so the signal does not fire. Some of the 45actionableare certainly research questions phrased as statements. Reporting 0 is the honest output of the rule as written; adjusting the regex until the histogram looked plausible would have been fitting the classifier to a desired answer. The rule needs a better signal, not a wider one, and that is a separate change.duplicatealso scored zero, and for a weaker reason. The rule looks for explicit phrases (duplicate of,superseded by,obsolete) in the title or the first 2000 characters of the body. A genuine duplicate that nobody has labelled as one is invisible to it. Finding those needs subject comparison across issues, which this tool does not do and should not pretend to.So
actionable = 45remains an upper bound. It is a tighter one than before by exactly the seven blocked items, which is a real improvement and a small one.Autoclose is forbidden, in the code and in the output
The tool prints and exits. It closes nothing, labels nothing, and mutates nothing. 80% of this tracker is journal record with no completion condition; a title regex is not grounds to destroy it. The printed footer says the classification is a composition estimate and never a verdict on a single issue, so a reader who sees only the output cannot mistake it for a mandate.
--jsonemitscountsfor all five classes even when a class is empty, so an empty class reads as a visible zero instead of being silently absent — which is what would letresearch: 0pass unnoticed.Also here: loop helpers get a dispatcher
scripts/trinow dispatchestri <name>toscripts/tri_loop/<name>.pybefore forwarding anything tot27c, andtri loop-helplists the helpers with their one-line purpose taken from their own docstrings. They are deliberately outsidet27c: they report on the repository rather than compile it, and a broken helper cannot take the compiler's CLI down with it.Checks
docs/NOW.mdhas the section prepended withCloses #2156and a current date.docs/reports/anddocs/wave_ecosystem_2026-07-08/, none in a file this PR touches. Baseline unchanged.bootstrap/src/compiler.rs, soFROZEN_HASHis untouched and no re-freeze is needed.diffbindifferential has nothing to compare.Not merging. Merge is a human decision.