Skip to content

chore: sync oss-owned scaffold files to plugin 0.38.0, and bind three dogfood assertions to the rule under test - #422

Merged
fdaviddpt merged 1 commit into
mainfrom
chore/doctor-sync-0.38.0
Sep 18, 2026
Merged

fdaviddpt merged 1 commit into
mainfrom
chore/doctor-sync-0.38.0

Conversation

@fdaviddpt

Copy link
Copy Markdown
Contributor

What oss:doctor wrote on 2026-09-17, moved off main and onto a branch so it gets a review instead of a bypass push. The .oss.json half already landed as #418. This is the rest.

Owned files, rewritten by scaffold.py --apply

.github/workflows/oss-changelog.yml, .oss/assemble_changelog.py, .oss/statusline.py, .markdownlint.json, .supertool.json, plus two READMEs that were missing: outbound/README.md and trap.d/README.md. None of it is ours to edit by hand. The .supertool.json change also adds pr_exclude_events for the radar, which doctor reported as an unfiltered event stream.

The vendored 01-oss rule layer

Refreshed to what plugin 0.38.0 ships. Two rules are new to this tree: raw-file-reads-are-uncapped.md and python-heredoc-writes-are-unvalidated.md. Both are mode: block on Bash.

tests/test-dogfood-entries.sh, the one file here that is ours

The new raw-file-reads-are-uncapped.md refuses a bare cat, grep or sed -n at command position, for its own reason. Three assertions in this suite used assert_allows on exactly those forms against the index, to prove the no-shell-writes rule does not over-match. On a tree carrying the new layer they reported 3 failures for a rule that was never at fault.

The edit binds them to SHELL_RULE with assert_not_blocked_by, which is what the Edit/Write block above them already does for the same reason (#239). It narrows the claim to the one this suite is making. A comment at the site says why.

This is the part I want read. Doctor made this edit and committed it on main with no issue and no review, which I filed upstream as claude-oss#1649. The edit reads correct to me now. Say so or say why not.

Verification

tests/test-dogfood-entries.sh 97/97 and tests/run-all.sh clean at the time doctor ran them, on the pre-rebase tree. CI is the authority for the rebased one.

🤖 Generated with Claude Code

[AI-generated]

/oss:scaffold --apply brought the owned .oss/, .github/workflows/oss-changelog.yml
and the 01-oss jit-context layer current, and created the two missing owned
files (outbound/README.md, trap.d/README.md). Declared labels.lane_other,
curate_route_threshold and .supertool.json's pr_exclude_events in .oss.json/
.supertool.json per doctor's own findings. Updated
tests/test-dogfood-entries.sh to bind the newly-installed
raw-file-reads-are-uncapped.md by name (assert_not_blocked_by) instead of
assert_allows, since that vendored rule now legitimately refuses a bare
cat/grep/sed -n at command position for its own reason, independent of the
rule these three assertions exist to bound (#239).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@fdaviddpt fdaviddpt added the no-changelog Change is invisible to users label Sep 18, 2026
@fdaviddpt
fdaviddpt merged commit 6f34572 into main Sep 18, 2026
13 of 14 checks passed
@fdaviddpt
fdaviddpt deleted the chore/doctor-sync-0.38.0 branch September 18, 2026 07:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

no-changelog Change is invisible to users

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant