Skip to content

fix: silence a shellcheck false positive in a proof script - #77

Draft
runewright[bot] wants to merge 7 commits into
mainfrom
change/runes-carry-eval-records
Draft

runewright[bot] wants to merge 7 commits into
mainfrom
change/runes-carry-eval-records

Conversation

@runewright

@runewright runewright Bot commented Oct 20, 2026 •

Copy link
Copy Markdown

Draft for change/runes-carry-eval-records: the session agent fills this body before rune sign open.

Plan

Why this shape, one or two sentences.

Changes

  • Fill in: verb-first, file-anchored claims the diff upholds.

Testing

  • Fill in: the command run and its outcome.

Release Notes

  • N/A

Note

Add eval suites, FullSend and PruneTests skills, and silence a shellcheck false positive

  • Adds an eval runner (scripts/eval-rune) that validates a rune suite, assembles a private instance, and packages it with eval cases in a temporary plugin, plus --show output and usage handling
  • Adds 12 eval suites with prompts, deterministic graders, and persisted records under evals/, comparing runs with and without the rune
  • Adds the FullSend and PruneTests skills, Claude-specific FullSend instructions, and four core rules (AnswerBeforeEditing, AskBeforeMovingData, PreferExistingTools, ProofsShowTheRealApp)
  • Adds proof recordings and documentation for the runes-carry-eval-records change, and deletes the SafetyFirst/claude/Workflow.md variant
  • Adds a ShellCheck suppression comment in record.sh for the trap status-variable false positive
  • Behavioral Change: the new rules instruct the model to ask before bulk data moves, answer questions before edits, prefer existing tools, and require owner approval before merges; SafetyFirst's Claude Code variant is removed

Macroscope summarized 2d4b82f.

Claude Opus 5.5 (claude-opus-5-5) and others added 7 commits October 20, 2026 15:30
FullSend takes one task to a merge-ready pull request while the owner reads
nothing, and asks once, through the question tool, before any merge. PruneTests
deletes tests that no plausible bug can fail, repairs weak ones with a recorded
mutation, and hands its pull request to FullSend.

Co-Authored-By: Martin Zeman <N4M3Z@users.noreply.github.com>
PreferExistingTools, ProofsShowTheRealApp, and AskBeforeMovingData replace three
workshop drafts that carried machine-made names. AnswerBeforeEditing is new. The
WhenTheUserSignals draft stays out, because PlainSpokenLanguage already says it.

Co-Authored-By: Martin Zeman <N4M3Z@users.noreply.github.com>
The skill told the model to set a directory with gh -R. gh and glab take a remote
OWNER/REPO there, so the model wrote gh pr create -R with a local path. The skill
now keeps -R for jj and sends a local directory through its own cd call. An eval
case found the defect.

Co-Authored-By: Martin Zeman <N4M3Z@users.noreply.github.com>
scripts/eval-rune assembles a rune's Claude Code instance, wraps it in a
throwaway plugin, and runs its cases through Claude Code's plugin eval with the
rune and without it. A rule loads through a session-start hook. Every clean run
writes a record under evals/<Rune>/records/, and --record adds a GIF that shows
both answers of every case. --canon leaves out a skill's variants.

Suites for fourteen runes, each tuned until its cases can fail, with records on
claude-haiku-4-5. Graders are deterministic. Vale skips the case files, which
quote the prose a rune forbids.

Co-Authored-By: Martin Zeman <N4M3Z@users.noreply.github.com>
The variant ran the guard probe as a load-time shell injection. Where Bash was
not granted, Claude Code refused to load the skill, so even its fallback for a
denied probe never reached the model. On the same cases and six turns, the skill
with the variant scores 0 and the canon alone scores 0.44 against a baseline of
0. The canon runs the same probe as an ordinary step and records unknown when
it is denied.

Co-Authored-By: Martin Zeman <N4M3Z@users.noreply.github.com>
The change's proposal, design, tasks, and three specifications, the recorded eval
runs with their transcript, and the changelog entries.

Co-Authored-By: Martin Zeman <N4M3Z@users.noreply.github.com>
The trap string assigns status before it reads it, and shellcheck reports
SC2154 anyway. On main this fails the commit stage for every file, which a new
branch runs on its first push.

Co-Authored-By: Martin Zeman <N4M3Z@users.noreply.github.com>
@github-actions github-actions Bot added size:xlarge auto: changed-lines bucket area:docs auto: documentation and markdown labels Oct 20, 2026
@github-actions

Copy link
Copy Markdown

review/correctness stood down on 2d4b82f3: free lanes only: deterministic check quality is pending on this head. Apply review:runeseer to force a paid round.

@github-actions

Copy link
Copy Markdown

review/correctness stood down on 2d4b82f3: free lanes only: deterministic check quality is not green on this head. Apply review:runeseer to force a paid round.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:docs auto: documentation and markdown size:xlarge auto: changed-lines bucket

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants