chore: graduate the friction-log inbox to GitHub Issues (#149–#150) - #151
Conversation
Six-check verification — unedited outputReproducible from Two notes on the checks themselves, not the dataCheck 3 failed on its first run and the failure was real. The insertion had swallowed the blank line between the archive intro and its first section heading. The old sweep's unanchored substring test would have passed that — the bytes were all present, just badly placed. Fixed in the commit; the output above is the post-fix run. The closing-keyword scan reported a pass while erroring. The first invocation used a That second one is #150's exact shape (a scripted check that no-ops and reports success) occurring inside the step that guards against #71 — in the same run that filed #150. Recorded here rather than quietly fixed. |
f54dbce to
c9f9363
Compare
|
Fifth triage-friction-log sweep overall, dated 2026-07-29. Seven inbox entries in, seven accounted for: one graduated into two new issues (#149, #150), six routed as seven occurrence comments (#120, #138, #127, #75, #71, #45, #113). Run in LLM-only mode — the triage engine (#6) is still not vendored — so the sweep was scripted by hand against a frozen-inbox snapshot taken before any write, whose digest reproduces from 0b82ff2. Two fallback-panel rounds ran, four isolated lenses. Round 1 found a HIGH both lenses reached independently: the sweep inflated an operator remark ("CodeRabbit is currently not available here") into an assertion the operator never made — not installed, never exercised, nothing rate-limited — and used it to file a "structurally never reviews" verdict onto #45, whose whole subject is that such a verdict cannot be made from the outside. Round 2 then found the fix had over-corrected, asserting a review count that was really a count of bot comments. Independent attempts to settle that number disagreed, so no count is published; the irreducibility is the better evidence for #45. Both retractions are visible on the comment rather than the text being replaced. Also corrected after review: the sweep is the fifth, not the third; "as in the two prior sweeps" laundered a recorded #128 violation into a substitution; the post-sweep entry re-derived #121 without noticing it, and its own rewrite then made a larger false claim about config comments than the one it corrected. The marker's verification section was cut rather than corrected a third time. Five review rounds across two sweeps have gone to that section, every one finding the prose claiming more than the checks did; deletion is the remedy those sweeps recorded. The check headings that over-claim are now named as such instead of being described as narrowed — they were not narrowed, and building a better harness inside a fix round is the mechanism-creep the panel doctrine warns against. #138 and #127 stay open. The run of PRs with no CodeRabbit output is twelve, not seven. Verified with make test (503 passed), check_doc_budget (136/150, down from 203), kit_doctor (26 unchanged, 0 differ), and a six-check script published in full on the PR with its limits stated.
c9f9363 to
4cfc1ae
Compare
…rections #151 merged (494b9eb): fifth triage-friction-log sweep, seven entries in and seven out, two new tickets (#149, #150). Inbox 203 -> 136. The session's durable result is a failure mode the previous one measured but did not name: an operator's narrow remark ("CodeRabbit is currently not available here") widened into a stronger claim ("not installed, never exercised, nothing rate-limited") and published as operator-confirmed on five surfaces, including a structurally-never-reviews verdict filed onto #45 — the issue whose subject is that such a verdict cannot be made from outside. The fix then over-corrected with a review count that was really a count of bot comments, and a second panel round caught that; two independent re-derivations disagreed, so no count was published. Four inbox entries added: the operator-remark widening (H), the unrecoverable-count trap (M), a check that errored and reported a pass inside the step guarding #71 (M), and the #121 duplication rewritten to route there rather than be re-filed. Handoff swept with --keep 4 (459 -> 316 lines); the default --keep 6 was a no-op because six blocks already exceeded the budget. The inbox is 162/150 again the same day it was swept, from this session's own entries. Not swept inline per the wrap-up contract; noted in the handoff as an argument for #6. Verified with make test (503 passed), check_doc_budget (handoff 322/400) and kit_doctor (26 unchanged, 0 differ).
…rections #151 merged (494b9eb): fifth triage-friction-log sweep, seven entries in and seven out, two new tickets (#149, #150). Inbox 203 -> 136. The session's durable result is a failure mode the previous one measured but did not name: an operator's narrow remark ("CodeRabbit is currently not available here") widened into a stronger claim ("not installed, never exercised, nothing rate-limited") and published as operator-confirmed on five surfaces, including a structurally-never-reviews verdict filed onto #45 — the issue whose subject is that such a verdict cannot be made from outside. The fix then over-corrected with a review count that was really a count of bot comments, and a second panel round caught that; two independent re-derivations disagreed, so no count was published. Four inbox entries added: the operator-remark widening (H), the unrecoverable-count trap (M), a check that errored and reported a pass inside the step guarding #71 (M), and the #121 duplication rewritten to route there rather than be re-filed. Handoff swept with --keep 4 (459 -> 316 lines); the default --keep 6 was a no-op because six blocks already exceeded the budget. The inbox is 162/150 again the same day it was swept, from this session's own entries. Not swept inline per the wrap-up contract; noted in the handoff as an argument for #6. Verified with make test (503 passed), check_doc_budget (handoff 322/400) and kit_doctor (26 unchanged, 0 differ).
…rections #151 merged (494b9eb): fifth triage-friction-log sweep, seven entries in and seven out, two new tickets (#149, #150). Inbox 203 -> 136. The session's durable result is a failure mode the previous one measured but did not name: an operator's narrow remark ("CodeRabbit is currently not available here") widened into a stronger claim ("not installed, never exercised, nothing rate-limited") and published as operator-confirmed on five surfaces, including a structurally-never-reviews verdict filed onto #45 — the issue whose subject is that such a verdict cannot be made from outside. The fix then over-corrected with a review count that was really a count of bot comments; two independent re-derivations disagreed, so no count was published. A panel round on this PR found four defects in this very commit, all now corrected. The worst: it called #151 "the third sweep" in a heading, the Last-updated line, the commit subject and the PR title — reinstating, forty minutes later, the exact correction #151's own review had landed, while the same block said "Fifth sweep overall" three lines below. Also corrected: the inbox count (179, not 162), the entry count added here (three, not four -- the #121 entry landed in #151), the added-diff character count, and a closing-keyword result reported as "0 matches" while the same body said two remained. Four inbox entries added: the operator-remark widening (H), the unrecoverable-count trap (M), a check that errored and reported a pass inside the step guarding #71 (M), and the wrap-up reinstating a merged correction (M). Handoff swept with --keep 4 (465 -> 322 plan lines, 325 after later edits); the default --keep 6 was a no-op because six blocks already exceeded the budget. The inbox is 179/150 -- over budget the same day it was swept, from this session's own entries. Not swept inline per the wrap-up contract; noted in the handoff as an argument that #6 is closer to urgent than merely open. Verified with make test (503 passed), check_doc_budget (handoff 325/400) and kit_doctor (26 unchanged, 0 differ).
…rections #151 merged (494b9eb): fifth triage-friction-log sweep, seven entries in and seven out, two new tickets (#149, #150). Inbox 203 -> 136. The session's durable result is a failure mode the previous one measured but did not name: an operator's narrow remark ("CodeRabbit is currently not available here") widened into a stronger claim ("not installed, never exercised, nothing rate-limited") and published as operator-confirmed on five surfaces, including a structurally-never-reviews verdict filed onto #45 — the issue whose subject is that such a verdict cannot be made from outside. The fix then over-corrected with a review count that was really a count of bot comments; two independent re-derivations disagreed, so no count was published. Two panel rounds on this wrap-up PR found nine defects in it, then three more in the correction of those nine. All are now fixed. The worst: it called #151 "the third sweep" in a heading, the Last-updated line, the commit subject and the PR title — reinstating, forty minutes later, the exact correction #151's own review had landed, while the same block said "Fifth sweep overall" three lines below. Four inbox entries added by this commit, giving five under the 2026-07-29 (post-sweep) heading; the fifth is the #121 entry, which landed in #151. An earlier revision of this message said "four added" while naming the #121 entry as one of them, and its correction then said "three added" — both wrong, and the second was published as a fix. The count is 4 added / 5 total, from git: 43 insertions, 0 deletions on the friction log. Entries: the operator-remark widening (H), the unrecoverable-count trap (M), a check that errored and reported a pass inside the step guarding #71 (M), and the wrap-up reinstating a merged correction (M). Handoff swept with --keep 4 (465 -> 322 plan lines, 325 after later edits); the default --keep 6 was a no-op because six blocks already exceeded the budget. The move is verbatim, but it is NOT cross-reference-clean: it created a new #73 instance, a relative "the 287-line figure above" now dangling in the history file while its referent stayed live. The inbox is 179/150 -- over budget the same day it was swept, from this session's own entries. Not swept inline per the wrap-up contract; noted in the handoff as an argument that #6 is closer to urgent than merely open. Verified with make test (503 passed), check_doc_budget (handoff 325/400) and kit_doctor (26 unchanged, 0 differ).
…rections (#152) #151 merged (494b9eb): fifth triage-friction-log sweep, seven entries in and seven out, two new tickets (#149, #150). Inbox 203 -> 136. The session's durable result is a failure mode the previous one measured but did not name: an operator's narrow remark ("CodeRabbit is currently not available here") widened into a stronger claim ("not installed, never exercised, nothing rate-limited") and published as operator-confirmed on five surfaces, including a structurally-never-reviews verdict filed onto #45 — the issue whose subject is that such a verdict cannot be made from outside. The fix then over-corrected with a review count that was really a count of bot comments; two independent re-derivations disagreed, so no count was published. Two panel rounds on this wrap-up PR found nine defects in it, then three more in the correction of those nine. All are now fixed. The worst: it called #151 "the third sweep" in a heading, the Last-updated line, the commit subject and the PR title — reinstating, forty minutes later, the exact correction #151's own review had landed, while the same block said "Fifth sweep overall" three lines below. Four inbox entries added by this commit, giving five under the 2026-07-29 (post-sweep) heading; the fifth is the #121 entry, which landed in #151. An earlier revision of this message said "four added" while naming the #121 entry as one of them, and its correction then said "three added" — both wrong, and the second was published as a fix. The count is 4 added / 5 total, from git: 43 insertions, 0 deletions on the friction log. Entries: the operator-remark widening (H), the unrecoverable-count trap (M), a check that errored and reported a pass inside the step guarding #71 (M), and the wrap-up reinstating a merged correction (M). Handoff swept with --keep 4 (465 -> 322 plan lines, 325 after later edits); the default --keep 6 was a no-op because six blocks already exceeded the budget. The move is verbatim, but it is NOT cross-reference-clean: it created a new #73 instance, a relative "the 287-line figure above" now dangling in the history file while its referent stayed live. The inbox is 179/150 -- over budget the same day it was swept, from this session's own entries. Not swept inline per the wrap-up contract; noted in the handoff as an argument that #6 is closer to urgent than merely open. Verified with make test (503 passed), check_doc_budget (handoff 325/400) and kit_doctor (26 unchanged, 0 differ).
Fifth
triage-friction-logsweep overall, dated 2026-07-29, run in LLM-only mode (the engine, #6, is still not vendored).Routing
Seven inbox entries in, seven accounted for — one graduated into two new issues, six routed as seven occurrence comments. The nine rows below are proposals, not entries: one entry produced two of them.
Both one-into-two counts are deliberate: bullet 1 split into a doctrine checklist (#149) and a guard on the edit tool itself (#150); bullet 3 names two distinct checks, so it produced comments on both #138 and #127.
The HIGH, and the HIGH in its fix
Round 1. The sweep folded an operator remark into an assertion the operator never made, and published it to the tracker.
cs-toolkit, and its absence should not generate friction because the fallback panel exists. All of that stands — the last clause is the operationally important one.Review limit reachednotices (including on chore: update handoff — CLAUDE.md + init.sh harness and fixes shipped #89 and chore: update handoff — gh-less REST transport merged after the broad attempt was closed #99 on 2026-07-27); its last activity of any kind is2026-07-28T04:35:09Zon docs: a fix round addresses only what the review found #101.The inflated version was then used to file a structurally-never-reviews verdict onto #45 — an issue whose entire subject is that a structurally-absent reviewer and a merely-pending one cannot be told apart. It committed that issue's own confusion, on that issue, and violated #140 ("'X is not available here' needs the command that establishes it"), filed by the immediately previous run of this same workflow.
Round 2. The fix over-corrected: it asserted CodeRabbit "has reviewed ~42 PRs", which was really a count of PRs carrying any bot comment — a large share of them quota refusals, not reviews. A lens caught it. Attempting to settle the number made it worse: independent re-derivations of "how many PRs did it actually review" disagreed with each other, because the reviewed / refused / silent distinction is not cleanly recoverable from the comment stream without deciding what counts.
So the number is withdrawn rather than restated a third time. That irreducibility is better evidence for #45 than any count would have been: from outside, a twelve-PR silence is indistinguishable between removal, quota exhaustion, and an infinite queue — and this PR demonstrates it twice, in opposite directions, with full tracker access.
Surfaces enumerated per #149's list, which this PR filed:
A lens also noted that #149's own six-surface list omits PR comments — and that a retracted claim was still live on this PR's first comment. That comment now carries a superseded banner. The gap in #149's list is real and stays open on #149.
Count correction in the same pass: "sixth and seventh consecutive" was an undercount. #102, #103, #104, #111 and #148 also carry nothing, making the run twelve — the third consecutive undercount in that series.
Other findings acted on
verify.shis now published in full, as PR chore: graduate the friction-log inbox to GitHub Issues (#138–#143) #144 did with its script.tracker.*andnotify.*carry no comment") than the one it corrected. Both are fixed: those keys carry schema hints that say nothing about whether a value is live or placeholder, which is the actual point.grepproducing a formatted table row that the command would not emit. The conclusion held; the transcript was not literal, in a PR arguing that specific-looking evidence gets trusted.Filed, not fixed
mainwith an empty diff and fetched the real head itself. No ordinal is claimed, because the running total is one of the numbers the addendum declares approximate.Where review stands
CodeRabbit has not registered on this PR, consistent with the twelve-PR run above. The independent pass is the fallback panel per
docs/agentic-dev-kit/fallback-review-panel.md: two isolated fresh-context lenses (adversarial, correctness), each in its own worktree, run twice — once againstf54dbce, once againstc9f9363.Stopping criterion applied: second class (a record that is read, not a gate, send path, or destructive operation), so the bar is act on every HIGH, and on any regression at any severity. Both HIGHs are corrected. Every regression above is either fixed or explicitly named as documented-not-fixed with the reason.
This is not a "the last round found nothing" stop, and it is not claimed as one. Round 2 found four HIGHs; this round answered them, and a third round would very likely find more — the panel doctrine records exactly this pattern and warns that the termination condition may never arrive. What changed between rounds is that the remaining findings are now about the verification prose describing itself, not about the sweep, so the applied remedy was to delete the self-description rather than extend it. Merging is an operator decision.
Verification
make test— 503 passed.check_doc_budget—docs/kit-friction-log.md136/150, down from 203.kit_doctor— 26 unchanged, 0 differ. Script and output in the comments below, with their limits stated there.Issues referenced above are context, not targets — none of them is being retired by this PR.