curate: 7 trap.d fragments -- 2 promote, 4 merge, 4 decline - #420
Merged
Merged
Conversation
Promote two new tools/00-manual rules: git stash pop is repo-global across worktrees (#388), and supertool TOML content ending in a trailing quote glued to the closing delimiter silently drops a byte (#397). Merge the awk argv byte-cap mechanism into hooks.md (#364), and two test-authoring gaps (a skip branch that never sets its own SKIPPED_SECTIONS, and an assert_single_valid_json() that no-ops without python3) into tests.md (#380, #403). Decline four thinner findings into a new paths/00-manual/00-README.md, naming why each was not carried forward. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
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.
What this is
A normal /oss:run curate pass over the 7 fragments that were waiting in
trap.d/--each is decided (promote / merge / decline), never asked about. The trap.d issue
numbers below are provenance -- which issue was being worked when the trap was
logged -- not the subject of this PR, so nothing here closes anything.
Decisions
Promote --
.claude/jit-context/tools/00-manual/git-stash-worktree.md(Part of #388)..gitis shared across everygit worktree addtree of the same clone, so is thestash list:
git stash pushreporting "No local changes to save" says nothing aboutwhat is already on the stack, and the following
git stash poppops whateverstash@{0}is repo-wide -- which can be an unrelated stash from a sibling worktree.New
tool: Bashrule,match: ~@invocation git stash pop,mode: remind.Firing proof: fires on
git stash pop, silent ongit stash list, known-goodcontrol (
merge-gate.mdon agh-pr-mergepayload) fired alongside it in the samebatch.
Promote --
.claude/jit-context/tools/00-manual/supertool-toml-trailing-delimiter.md(Part of #397). A TOML
old/new/contentfield whose own last character is aliteral quote, glued to the closing
"""on the same line, gets that trailing quotesilently eaten as part of the delimiter --
oldstill matches as a truncated prefix,so the edit "succeeds" and only fails later somewhere unrelated (
bash-check), withno hint the dropped byte was self-inflicted. New
tool: Bashrule,match: ~@invocation-quoted-arg supertool,mode: once. Firing proof: fires onsupertool 'edit:@-', silent on an unrelatedls -la; this rule fired live, forreal, on the
supertool git-commit:@-call that committed this very batch.Merge -- into
paths/00-manual/hooks.md(Part of #364). The single awk-programargument every hook builds (
pre-tool-hook.sh,pre-prompt-hook.sh,pre-path-hook.sh,post-tool-hook.sh) has no structural margin against Linux'sMAX_ARG_STRLEN(131072 bytes) -- macOS enforces no equivalent per-argument cap, sothis fails loudly on Linux CI and silently nowhere on a contributor's Mac. Documents
the mechanism, the 129890 -> 132965 byte measurement from #364/#365, and
tests/test-awk-arg-max-369.shas the local, no-exec check that catches it before aLinux CI round trip. Body-only edit; no index change, no firing proof needed (match
pattern unchanged).
Merge -- into
paths/00-manual/tests.md(Part of #380, #403). Two relatedtest-authoring gaps, same defect class this file already opens on ("a green suite
that tested nothing"): (a)
test-hook-tmpfile.shsection C's skip branch does notset
SKIPPED_SECTIONS, so it can go to zero assertions and still read as a pass, onthe one section that is the sole exerciser of the
awk -f <(printf ...)fallbackpath; (b)
assert_single_valid_json()-- the discriminating check three suites use-- silently no-ops on a host with no
python3, converting a never-run assertion intoa clean pass. Body-only edit; no index change, no firing proof needed.
Decline -- new
paths/00-manual/00-README.md, four lines:host.shdegraded-read ambiguity between "unreadable" and"legitimately empty"): single non-blocking audit finding, low reachability, no
decided fix, and the collapse is already named in
common.sh's own comments./dev/fdcoverage unknown): contingent on item 1's siblinggap (the section C fix above) actually running on that runner first -- nothing to
assert yet.
verbatim in spirit, by
tests.md's own "Concurrent lanes on one clone can crash asuite's own awk" section, which names this exact instrumentation trap by its
trap.d filename. A second copy would only duplicate it.
ossplugin's own classifier infrastructure rather than this repository's code, with no
known trigger pattern to write a rule against. The fragment itself says "worth a
look if a second issue shows the same shape."
No
deferin this batch -- every fragment reached a decision.Verification run for this batch
bash scripts/rebuild-tsv.sh-- 21 entries indexed, 0 refused, no stale frontmatter.bash scripts/jit-dry-run.sh --base .claude/jit-context --tool Bash --command "git stash pop"-- 18 rules indexed, 18 patterns compiled, 0 refused.bash tests/test-dogfood-entries.sh-- 97/97 passed.bash tests/test-line-citations.sh-- 6/6 passed.pre-tool-hook.shdirectly for both new rules: must-fire / must-stay-silent pairs, plus a known-good control rule firing alongside them in the same session.[AI-generated]