claude-patch — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited claude-patch (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Binary patches for Claude Code CLI — unlock hard-coded limitations without waiting for upstream changes.
patches/ directorySet $PLATFORM to either unix or windows. For every subsequent step in this skill, execute ONLY the block matching `$PLATFORM` — do not run both Unix and Windows blocks for the same step.
Pick the snippet matching the shell you have:
case "$(uname -s 2>/dev/null)" in Darwin|Linux) PLATFORM=unix ;; *) PLATFORM=windows ;; esac $Platform = if ($IsWindows -or $env:OS -eq 'Windows_NT') { 'windows' } else { 'unix' }If you have access to both, prefer the one matching the OS (bash on Unix, PowerShell on Windows). Don't try both — pick one.
Unix (bash):
CLAUDE_BIN=$(python3 -c "import os,shutil; p=shutil.which('claude'); print(os.path.realpath(p) if p else '')" 2>/dev/null)
[ -z "$CLAUDE_BIN" ] && CLAUDE_BIN="$HOME/.local/share/claude/current"Windows (PowerShell):
$CLAUDE_BIN = (Get-Command claude -ErrorAction SilentlyContinue).Source
if (-not $CLAUDE_BIN) { $CLAUDE_BIN = "$env:USERPROFILE\.local\bin\claude.exe" }Show path and version for user confirmation before proceeding.
If user specified a patch name → use it directly. Otherwise → list available patches and ask user to choose.
Available patches — read each .md file in patches/ directory:
| Patch | Description |
|---|---|
| subagent-model | Unlock model param on Agent tool — use any model id per-call |
Commands:
apply <patch-name> — apply a patchrevert <patch-name> — revert (restore from backup)status — show state of all patches on current binarylist — list available patchesRead the patch definition file at ${CLAUDE_SKILL_DIR}/patches/<name>.md. Each file contains:
<binary>.bak.<timestamp>)HashMismatch) but binary still runs; document the change to the userThe bun-compiled binary may embed the JS bundle one or more times depending on platform/version:
Patch definitions detect the count dynamically — never hard-assert a specific number. State detection rule: any positive anchor count = unpatched; any positive marker count = patched; mixed = abnormal.
claude.exe cannot be modified in-place while the process is running. Use the rename-swap pattern:claude.exe → claude.exe.patchingRename-Item claude.exe → claude.exe.bak.<ts> (works on running .exe — same volume rename only updates directory entry)Move-Item claude.exe.patching → claude.exe.bak file open until exit. Cleanup of old backups should happen after Claude Code is restarted.Get-AuthenticodeSignature reports HashMismatch. Windows still executes the binary; SmartScreen/AppLocker may flag it depending on policy.After patching, run the verification block in the patch definition that matches your $PLATFORM. Each patch file provides parallel Unix and Windows verification — run only the one for your platform.
When reverting a patch:
# Unix
ls -t "$CLAUDE_BIN".bak.* | head -5 # Windows
Get-ChildItem "$CLAUDE_BIN.bak.*" | Sort-Object LastWriteTime -Descending | Select-Object -First 5.bak files on disk that no longer match.cp "$BACKUP" "$CLAUDE_BIN"claude.exe is locked)<binary>.preRevert.<ts>) of the current patched binary before any write, so the revert itself is undoable. codesign --remove-signature "$CLAUDE_BIN" 2>/dev/null || true
codesign --force --sign - "$CLAUDE_BIN"Windows: skip — backup retains the original Authenticode signature unchanged.
To add a new patch, create ${CLAUDE_SKILL_DIR}/patches/<name>.md following the structure in patches/TEMPLATE.md.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.