Skip to content

fix(running-in-ci): make commit-SHA permalink rule unmissable#240

Merged
max-sixty merged 1 commit into
mainfrom
hourly/review-24286117723-permalink-sha
Apr 11, 2026
Merged

fix(running-in-ci): make commit-SHA permalink rule unmissable#240
max-sixty merged 1 commit into
mainfrom
hourly/review-24286117723-permalink-sha

Conversation

@tend-agent
Copy link
Copy Markdown
Collaborator

Summary

Strengthen the running-in-ci skill's guidance on permalinks for line references, after four fresh occurrences of blob/main/...#L42 line links in a single hour on max-sixty/worktrunk issue #2075, on top of one prior occurrence on issue #2072. The current wording ("Prefer permalinks...") is a soft preference buried in a bullet that co-lists the blob/main/... file-level form and the blob/<sha>/...#L42 line-reference form inside parentheses. Under cognitive load, the model anchors on the first form and pastes #L42 onto blob/main/... — producing a link that stays valid but silently starts pointing at different code once the surrounding file changes.

Evidence

Past hour on max-sixty/worktrunk — 4 occurrences across 2 sessions, all on issue #2075 ("Allow wt step aliases to change the parent shell's directory"):

  1. Run 24285060091tend-triage on the newly-opened #2075. Session 242fb543-d70d-47e7-a0cd-5e3ce6ced53d.jsonl. The posted comment linked to blob/main/src/config/user/sections.rs#L528.

  2. Run 24285659522tend-mention on #2075 (response to max-sixty's question about the implicit option). Session fa2b09a6-9e74-4997-9fb2-967990c765d1.jsonl. The comment linked three files via blob/main/...#L:

    • blob/main/src/commands/for_each.rs#L214
    • blob/main/src/commands/alias.rs#L282-L296
    • blob/main/src/output/global.rs#L227

Historical evidence from tracking issue #133 — 1 prior occurrence:

  • Run 24280812931tend-triage on max-sixty/worktrunk#2072. Session c897d54c-17c7-44c1-a6dc-426c8813ce4b.jsonl. Comment linked blob/main/src/help.rs#L157-L162 to the very line that PR #2073 then rewrote (eprint\!print\!).

Cumulative: 5 occurrences across 3 sessions and 2 issues.

Gate assessment

Gate Result Notes
Confidence (Gate 1) PASS High — consistent pattern across multiple sessions (5 occurrences, 3 sessions, 2 issues). Well above the 2–3 threshold for "consistent pattern."
Magnitude (Gate 2) PASS Targeted fix — rephrasing one prose sentence and splitting one bullet. Not a new section or structural change. Normal thresholds apply.
Classification Structural-adjacent The rule exists but the current framing lets the model conflate blob/main/... (for file-level) with blob/main/...#L42 (for lines). A sharper imperative removes that ambiguity. The replay test: if you replayed the same "paste a line ref into a comment" scenario 10 times, the current guidance would hit the same ambiguity every time — it's not a random model lapse.

The change

Prose sentence — from "Prefer permalinks (commit SHA URLs) over branch-based links for line references" (soft) to "Any link containing #L must use a commit SHA, never blob/main/...#L42" (hard rule, with git rev-parse HEAD named as the SHA source so the bot has an obvious next step rather than rationalizing main as "I don't have a SHA handy").

Bullet list — from the single co-listed Files bullet to two separate bullets, so the #L42 case can't be skimmed past:

  • File-level link (no #L anchor): blob/main/src/foo.rs is fine
  • Line reference: blob/<sha>/src/foo.rs#L42 — commit SHA required, never blob/main/...#L42

Test plan

  • Diff reviews cleanly as a pure guidance rewrite (no behavior changes in generator or workflows).
  • Future tend-triage and tend-mention runs that reference specific lines use blob/<sha>/...#L form.
  • Watch tracking issue #133 for a decrease in new-occurrence count of this pattern.

Four `blob/main/...#L42` link references shipped across two sessions in one
hour on max-sixty/worktrunk issue #2075 — on top of one prior occurrence on
issue #2072 — despite the existing `Prefer permalinks` guidance. Rephrase
the rule in imperative form, point to `git rev-parse HEAD` as the source of
the SHA, and split the bullet so the file-level and line-reference cases
can't be conflated.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@tend-agent tend-agent added the claude-behavior Behavioral issues found by review-reviewers label Apr 11, 2026
@max-sixty max-sixty merged commit 88356f4 into main Apr 11, 2026
3 checks passed
@max-sixty max-sixty deleted the hourly/review-24286117723-permalink-sha branch April 11, 2026 16:26
tend-agent pushed a commit that referenced this pull request Apr 11, 2026
…ression

PR #226 (`fix(ci-runner): filter CI polling by run URL, not workflow name`)
reintroduced the exact poisoned-text regression that PR #234 fixed. Its diff
on plugins/tend-ci-runner/skills/review/SKILL.md and
plugins/tend-ci-runner/skills/running-in-ci/SKILL.md reverted the CI-polling
comment from the PR #234 wording back to the pre-#234 wording containing
`` `if \!` ``, which the slash-command preprocessor scans and exec's as bash.

Since #226 merged at 2026-04-11 15:01:22 UTC, every `/review` invocation has
failed identically with the 5-line trace: queue/dequeue, command-caveat,
command-name, local-command-stderr, then nothing. Three tend-review runs in
this hour's window (PRs #240, #241, #242) all produced that exact trace and
posted zero reviews.

Rephrase the CI-polling comment in both files to avoid any `\!` adjacent to a
backtick. The guidance is unchanged. Matches the wording that PR #234 already
merged successfully — this is a straight restoration of that fix.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

claude-behavior Behavioral issues found by review-reviewers

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants