Skip to content

chore: drop a friction entry that duplicated an open issue, and shorten the other - #223

Merged
topij merged 1 commit into
mainfrom
chore/drop-duplicate-friction-entry
Aug 2, 2026
Merged

chore: drop a friction entry that duplicated an open issue, and shorten the other#223
topij merged 1 commit into
mainfrom
chore/drop-duplicate-friction-entry

Conversation

@topij

@topij topij commented Aug 2, 2026

Copy link
Copy Markdown
Owner

Removes a friction-log entry that duplicated an open issue, and shortens the
other. Deletions and one shortening.

An earlier version of this line said "no new factual claim is introduced." A
review lens caught that as inaccurate: the shortened entry adds one sentence —
"Exactly what gets swallowed is shell-dependent; the fix does not depend on
which." It is true (verified in bash, sh and zsh, below) and it replaces a false
universal claim with a correct hedge — but it is a new assertion, and the header
said there were none.

Why

The --mark-seen entry duplicated #42, an open issue filed during the
OpenKitchen adoption describing the same behaviour: posting the review record
un-converges the PR.

That entry carried no new information, cost review rounds as committed prose,
drew a finding of its own for stating the wrong remedy, and would have cost a
second pass later when triage-friction-log graduated it into the issue that
already existed.

What it genuinely added — the remedy is poll, then --mark-seen, not a second
bare --mark-seen, which pr_watch.py documents as an idempotent no-op — is now
an occurrence comment on #42, where the record already was. Zero review cost,
lands beside the original.

The heredoc entry is shortened, not corrected again

Its mechanism explanation was shell-specific and stated as general. Under bash and
sh, $598 expands to $5 (empty) followed by literal 98 — "against 98 at
the base", not the empty string:

$ bash -c 'cat <<EOF
against $598 at the base
EOF'
against 98 at the base
$ zsh -c '...same...'
against  at the base

A round-3 lens found this and it was logged rather than fixed under the bound
declared on #221. Since the file was being edited anyway, the claim is deleted
rather than qualified
— "a claim that has needed repairing twice is doing more
work than it can carry". The observation and the proposed fix survive, and the fix
never depended on which shell ran.

What this restores

The friction log's own preamble already prescribes this routing:

This repo's tracker is GitHub Issues on itself, so most friction is filed
directly as issues rather than parked here — which is the routing Principle #2
prescribes, not a neglected inbox.

#222 carries that argument in full, with this duplication as its evidence, and
proposes that a tracker search precede writing a friction entry at all.

Budget

uv run scripts/check_doc_budget.py, run in the repository root — the friction log
is still over budget and still reported. This claws back some lines; it is not
a sweep. Graduating the inbox needs tracker writes and operator approval, so
triage-friction-log remains the mechanism and is deliberately not run here.

Review

Documentation only. Blast-radius class: second. Prose class: record — the
delta is deletions and one shortened claim; nothing here is executed by an agent
or an operator, and the ▶ Next: line is untouched.

Stating that draw explicitly because the last delta-pass draw on #221 was
disputed and refused, correctly. This PR claims no delta pass — it is offered
for a full panel.

…en the other

The `--mark-seen` entry duplicated `#42`, an open issue filed during the
OpenKitchen adoption describing the same behaviour. It carried no new
information, cost review rounds as committed prose, drew a finding of its own
for stating the wrong remedy, and would have cost a second pass when
`triage-friction-log` graduated it into the issue that already existed.

What it actually added — that the remedy is poll then `--mark-seen`, not a
second bare `--mark-seen`, which the engine documents as an idempotent no-op —
is now an occurrence comment on `#42`, where the record already was.

The heredoc entry is shortened rather than corrected again. Its mechanism
explanation was shell-specific and stated as general: under bash and sh, `$598`
expands to `$5` followed by literal `98`, not to the empty string. That claim is
gone rather than qualified, per "a claim that has needed repairing twice is doing
more work than it can carry". The observation and the fix survive, and the fix
never depended on the shell.

The routing this restores is the friction log's own preamble: most friction is
filed directly as issues, and the tracker should be searched before an entry is
written at all. `#222` carries that argument with this duplication as its
evidence.

Verified in the repository root: `uv run scripts/check_doc_budget.py` — the
friction log is still over budget and still reported; the sweep is
`triage-friction-log` and needs operator approval, so it is not done here.

Claude-Session: https://claude.ai/code/session_01PJUnxLwWJTfQg1qZDsm7h3
@coderabbitai

coderabbitai Bot commented Aug 2, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

The heredoc friction-log entry was condensed. It now records the swallowed $598, the amended commit, the shell-substitution failure, and verification steps using quoted heredocs and git log -1.

Changes

Heredoc friction documentation

Layer / File(s) Summary
Document incident and corrective checks
docs/kit-friction-log.md
The entry removes detailed reflog and commit-analysis content. It records the swallowed $598, amended commit, shell-substitution scope, quoted-heredoc guidance, and independent git log -1 verification.

Estimated code review effort: 1 (Trivial) | ~3 minutes

Possibly related PRs

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the removal of a duplicate friction entry and the shortening of another entry.

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@topij

topij commented Aug 2, 2026

Copy link
Copy Markdown
Owner Author

Round 1 — terminal. One finding, found by both lenses, already corrected.

# Source Sev Finding Disposition
1 both lenses LOW / imprecision the body's header said "no new factual claim is introduced"; the shortened entry adds one — "Exactly what gets swallowed is shell-dependent; the fix does not depend on which." corrected in the body before either lens reported; no commit, so the receipt stands

Both lenses independently verified the added sentence is true — running the heredoc in bash, sh and zsh, one confirming byte-for-byte with od -c — and both noted it replaces a false universal claim rather than adding unverified scope. The adversarial lens went further and argued it is necessary: without it a reader over-generalises the single zsh illustration, which is the wrong generalisation the deleted line invited.

So the diff is more accurate than what it replaced. Only my header oversold it.

What the round confirmed rather than found

  • #42 is genuinely the same problem, not two problems — both lenses read the issue body, not just its title.
  • Nothing load-bearing was lost. Both diffed the deleted entry against the occurrence comment on #42 and found the comment carries strictly more — the PR numbers, a live confirmation, and verbatim pr_watch.py docstring quotes. Only editorial framing was dropped.
  • The 2c6c364914831c citation holds, verified by reading whole commit objects. Their subjects are identical, so a subject-only check shows nothing — which is exactly what a lens on this branch's predecessor got wrong. Called out explicitly this time and checked correctly.
  • No dangling cross-references to the deleted prose anywhere in the repo.
  • docs/kit-friction-log.md is adopter_owned in the manifest, not checksum-tracked — so no drift-test false-kill risk applied here and none needed excluding. Worth recording: that is a case where the contract's mutation caution genuinely does not bite.

The proportionality note this PR is itself evidence for

Removing ten lines of duplicate prose cost a full panel, because it is committed. The same content filed as an occurrence comment on #42 cost nothing. That asymmetry is the argument on #222, and this PR is its cheapest possible demonstration.

@topij
topij merged commit 3cf0c0e into main Aug 2, 2026
3 checks passed
@topij
topij deleted the chore/drop-duplicate-friction-entry branch August 2, 2026 07:33
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