Prompt pack · Vibe coding

Extension Lockfile: pin your editor extensions and check for persistence after a bad update

by PaperChaseWebb

Write down the editor extensions you trust at the versions you reviewed, turn off silent updates, and check every machine against that list with a read-only script. Take a baseline of SSH keys, startup entries, crontab and shell files on a quiet day, so when the next bad extension update is announced you can see what changed in one command. Includes an indicator file and runbook for the 2026-10-29 Claude Code extension incident.

Preview card for Extension Lockfile
Works withClaude CodeCodexCursorWritten for Claude Code and Codex through a skill file and an AGENTS.md snippet, and for Cursor and VS Code as editors it audits (Windsurf and VSCodium folders too). Tested on made-up home folders on Linux only; not on real macOS, Windows or real editor installs, and the skill file was not loaded inside either harness
Price
$24
Difficulty
Intermediate
Setup
30 min
Format
.md file
$24 one time

extension-lockfile-pin-editor-extensions-check-persistence.md · 85 KB · instant download after checkout

Buy now · $24

Want this built for you instead? We can build it for you.

What you end up with

You know which extension versions are on each machine, new versions wait out a cooldown, and the next incident notice takes minutes to check instead of an afternoon.

What you get

  • 20 sections and an appendix in one .md file, with a one-line unpack for all 14 files
  • ext_audit.py: six read-only commands and 26 finding codes
  • A lock file template with allow and block lists, a 72 hour cooldown and an auto-update rule
  • A baseline and diff for SSH keys, LaunchAgents, systemd user units, autostart, Windows Startup, crontab and shell files
  • An indicator file for the 2026-10-29 incident, with the key fingerprint checked against the notice
  • An incident runbook and a table of where persistence hides on each system
  • A skill file and AGENTS.md snippet for Claude Code and Codex
  • A worked example, 37 tests, 21 planted faults, seven prompts and a failure table

Who it is for

Anyone who installs AI extensions in VS Code or Cursor and wants to know what is installed, catch drift, and check quickly when a bad update is announced.

Works with

Claude CodeCodexCursorWritten for Claude Code and Codex through a skill file and an AGENTS.md snippet, and for Cursor and VS Code as editors it audits (Windsurf and VSCodium folders too). Tested on made-up home folders on Linux only; not on real macOS, Windows or real editor installs, and the skill file was not loaded inside either harness

Solid chips: the agent is named in this listing's own tools list. Dashed chip: Written for Claude Code and Codex through a skill file and an AGENTS.md snippet, and for Cursor and VS Code as editors it audits (Windsurf and VSCodium folders too). Tested on made-up home folders on Linux only; not on real macOS, Windows or real editor installs, and the skill file was not loaded inside either harness.

Tools needed

Claude Code or Codexruns the read-only audit commands through the skill file, explains findings and waits for your yes before any change
Python 3runs ext_audit.py (inventory, lock, check, baseline, diff, sweep); standard library only, read-only, no network
VS Code, Cursor, Windsurf or VSCodiumthe editors whose extension folders and settings are audited
You needPython 3.9 or newer
You needVS Code, Cursor, Windsurf or VSCodium
You needClaude Code or Codex, optional

Cost to run: The pack is the only purchase. The scripts run locally with no API calls.
Time to result: A first check in about 15 minutes

How it works

  1. Unpack and test

    Save the pack as pack.md in an empty folder, run the unpack line from section 7, then sh test_all.sh.

    Expected: 14 files written; 37 tests OK; 21 of 21 planted faults caught.

  2. Check for 2026-10-29

    Run python3 ext_audit.py sweep iocs/2026-10-29-claude-code-2.1.313.json and do the manual checks it prints.

    Expected: 0 findings, or a critical finding that sends you to the runbook in section 15 and the vendor's notice.

  3. Write and review the lock

    Run lock --out extensions.lock.json, remove what you do not use, mark entries reviewed one at a time, and set extensions.autoUpdate to false in each editor.

    Expected: check shows 0 findings.

  4. Take a baseline

    On a quiet day run baseline --out ~/extension-baseline.json, outside any repo. Run check weekly and diff when a notice lands.

    Expected: A baseline file listing key fingerprints, startup entries and extensions.

Sample prompts, free to use

Inventory · Claude Code, Codex
Run python3 ext_audit.py inventory and give me a table: editor, extension, version, installed when. Mark anything I probably did not install on purpose. Do not change anything.

Prompt 1 of 7.

Build an IOC file from a notice · Claude Code, Codex
Here is a new incident notice. Build an IOC file from the notice only, using iocs/2026-10-29-claude-code-2.1.313.json as the format. Put the source link and today's date in it, and list what the script cannot check as manual_checks. Show me the file before you run it.

Prompt 4 of 7.

Sweep and stop · Claude Code, Codex
Run sweep with the new IOC file and diff against my baseline. If anything is critical, stop and tell me which section of the runbook applies. Do not remove anything.

Prompt 5 of 7.

Free preview of the file

extension-lockfile-pin-editor-extensions-check-persistence.md (excerpt)85 KB total
# Extension Lockfile: pin your editor extensions and check for persistence after a bad update

Version 1.0, 2026-10-30. By PaperChaseWebb. A lock file for the extensions in VS Code, Cursor and other editors built on VS Code, a read-only audit script that checks a machine against it, a baseline and diff for the places a bad extension leaves persistence (SSH keys, LaunchAgents, systemd user units, autostart, Windows Startup, crontab, shell startup files), and an indicator sweep with a ready file for the 2026-10-29 Claude Code extension incident. Python 3.9 or later, standard library only. Written for Claude Code and Codex through a skill file and an AGENTS.md snippet, and for Cursor as one of the editors it audits. Tested as described in section 11: 37 unit tests and 21 planted faults on made-up home folders on Linux with Python 3.13 and 3.9. It has not been run on a real macOS or Windows machine, against real editor installs, or against the real malware. Each is marked where it matters.

On 2026-10-29 a tampered build of the Claude Code extension, version 2.1.313, was served from the Cursor extension marketplace for about eleven hours. It tried to add an SSH key, set up a reverse tunnel and leave startup entries behind. Cursor pulled it, published indicators and remediation scripts, and the attacker's server is offline. Most people who were hit found out from a notice, not from their own machine, and most teams could not say which extension versions were installed where on the

Test record

Date
Oct 30, 2026
What was run
tests/test_ext_audit.py (33) and tests/test_mini.py (4) on made-up home folders, tests/mutate.py with 21 planted faults, and the unpack line with test_all.sh. Linux, Python 3.13 and 3.9.
Result
37 passed, 0 failed; 21 of 21 planted faults caught (19 of 21 on the first run, two gaps then got tests); every command left the home folder byte-identical; the unpack line wrote 14 files identical to the sources and test_all.sh passed.
Not run
A real macOS or Windows machine. Real VS Code, Cursor, Windsurf or VSCodium installs. The real malware. The skill file and AGENTS.md snippet inside Claude Code or Codex.

Copied from this item's dated test notes. What was not run stays in.

Worth knowing

  • Tested only on made-up home folders on Linux. It was not run on a real macOS or Windows machine, against real VS Code, Cursor, Windsurf or VSCodium installs, or against the real malware. Run inventory first and compare it with what your editor shows.
  • The script reports; it does not remove anything or block installs. For an affected machine, follow the vendor's remediation steps, and rotate keys and tokens from a different machine.
  • Windows scheduled tasks, system-wide LaunchDaemons and systemd units, macOS Remote Login and running processes are manual checks, listed in the pack and the incident file.
  • The indicator file was copied by hand from the Cursor and Phorion notices and checked on 2026-10-30. If a notice is updated, update the file from it.
  • On 2026-10-30, on Linux with Python 3.13 and 3.9: 33 tests for ext_audit.py and 4 for ext_mini.py passed, including a check that every command leaves the home folder byte-identical; 21 of 21 planted faults were caught (the first run caught 19 of 21, and the two gaps got tests); the unpack line wrote 14 files byte-identical to the sources and test_all.sh passed in that folder.

Questions

Does it fix an infected machine?

No. It tells you whether the incident's key, files, startup entries or extension version are present, and what changed since your baseline. Removal is the vendor's remediation; the pack's runbook says what to do around it.

Does it work with Grok Bot or Hermes?

ext_audit.py runs from any shell. The skill file and AGENTS.md snippet are written for Claude Code and Codex only.

Does it read my private keys?

It reads authorized_keys (public keys) to compute fingerprints and never prints key contents. It does not open private key files or environment values.

How is this different from Vet Before You Install?

Vet Before You Install reviews a tool or package before you add it. This pack keeps a record of what is already installed in your editors and checks machines against it.

Details

Version 1.0 · Updated Oct 30, 2026 · Markdown version of this page
License: Use inside your own team or company, including on client work. Do not resell or republish the pack itself. Download terms

editor-extensionssupply-chainagent-securityincident-responsesshpersistencelockfilevscodecursorclaude-codecodex

Related

Preview card for Extension Lockfile
Prompt packFree

Extension Lockfile: an allow-list check for your editor extensions (free sample)

by PaperChaseWebb

From Extension Lockfile: the quick checks for the 2026-10-29 Claude Code extension incident, pointing to the vendor's notice, five habits for editor extensions, and a read-only script that flags extensions not on your allow list, at an unapproved version, or installed in the last few days.

Works withClaude CodeCodexCursorPlain .md plus one Python 3 script, standard library only; reads the extension folders of VS Code, Cursor, Windsurf and VSCodium. Tested on made-up home folders on Linux only
Vibe coding · Beginner · 5 min setup
Preview card for Vet Before You Install
Prompt pack$39

Vet Before You Install: twelve checks, a sandbox recipe and a tested vetting folder for third-party agent code

by PaperChaseWebb

Decide whether a skill, plugin, mod, MCP server, connector, repo or model gets into your agent setup: sort the seat, read every file that runs, map reach and the data path, pin and vendor it, trial it in a sandbox with a planted fake key, then record a decision the owner approves at their own terminal. v1.1 adds a seat sort before any vetting, two new checks (data path and reach, approval surfaces), evidence tiers, twelve token classes including hidden text, encoded strings, startup file edits and approval hooks, a fresh-session second read, data path questions for proxies and routers, dependency and model weight pinning, a fifth decision (not vettable) with recheck dates and an approved shelf, more special cases, a vetting folder with a fifteen-check read-only checker and an owner approval helper, agent files for Grok Bot, Claude Code, Codex and Hermes, and twelve new prompts (27 in all). Price unchanged.

Works withClaude CodeCodexClaudeGrok Bot+3Plain .md plus two Python 3 scripts, standard library only. A skill file for Claude Code, Codex and Hermes, an AGENTS.md snippet and a Grok Bot rules block; the scripts were tested on Linux with Python 3.13, the agent files were not loaded inside each harness, the sandbox commands were not run for this release, and the pack was not run on a real third-party skill
Vibe coding · Intermediate · 15 min setup
Preview card for Shrink the Attack Surface
Bot template$39

Shrink the Attack Surface: patch with proof, then attack your own agent's tools

by PaperChaseWebb

Your agent lists everything your app exposes, read-only: routes, open ports, public buckets, secrets in the repo, unused dependencies, debug endpoints, admin paths, CORS, API key scopes and its own tool permissions. You decide keep, remove or lock for each. Every fix gets a proof that fails before the change and passes after it, and the proof stays as a regression test. Then attack drills run against your agent's own tool gate, offline: pressure, impersonation, injected tool output, stale and non-owner approvals and a failing tool. Each is judged by what the tools actually did, and every drill that gets through becomes a test that fails before the fix and passes after. A failing tool stops at a retry budget and asks you, and every approval is yours, typed at your own terminal and tied to a sha256.

Works withClaude CodeCodexGrok BotHermesA skill file for Claude Code, Codex and Hermes, AGENTS.md snippets and Grok Bot rules blocks; the tools were tested on a seeded fixture app on 127.0.0.1 and an example tool gate, not a production app, cloud account or live agent, and the prompts and agent files were not run inside each harness
Vibe coding · Intermediate · 1 hr 30 min setup
Preview card for Release Watch
Bot template$24

Release Watch: a per-change monitoring plan your agent writes from the diff, run by a fixed script

by PaperChaseWebb

After a change goes live, your agent reads the diff and writes a small watch plan for that change: which signals it could move, against which baseline, by how much, for how long. A fixed script runs the plan every five minutes, so no agent sits in a loop. On a trip, a second agent triages read-only and proposes one next step. Rollbacks, flag flips and alert changes stay with you.

Works withClaude CodeCodexGrok BotHermesA skill file for Claude Code, Codex and Hermes, an AGENTS.md snippet and a Grok Bot rules block; the runner and checker were tested on CSV metrics and a mock Prometheus, not a live production server, and the prompts were not run inside each harness
Vibe coding · Intermediate · 30 min setup
Preview card for Pre-launch security prompts for vibe-coded apps
Prompt pack$19

Pre-launch security prompts for vibe-coded apps: Supabase RLS, leaked keys and open doors, with two checks you can run yourself

by PaperChaseWebb

14 prompts that make your coding agent find exposed keys, tables without row level security, open buckets and unverified webhooks in your own app, then fix them one commit at a time. Version 1.1 adds two read-only checks you run yourself: rls_check.sql, which logs in as the public key and as a second user to prove a stranger cannot read your rows, and bundle_scan.py, which finds secret keys in your production build, including a service role key grep cannot see. Both were tested on a made-up app with planted problems.

Works withClaude CodeCodexGrok BotHermes+2Plain .md, one SQL file for Postgres or Supabase and one Python 3 file (standard library only). The prompts and the agent prompt in section 15 are written for any coding agent (Grok Bot, Claude Code, Codex, Hermes, Cursor, Windsurf); they were not run inside each harness.
Vibe coding · Beginner · 20 min setup
Preview card for AGENTS.md, CLAUDE.md and Cursor rules starter files
Prompt pack$14

AGENTS.md, CLAUDE.md and Cursor rules starter files

by PaperChaseWebb

Six fill-in instruction files for coding agents (base, Next.js plus Supabase, FastAPI, browser game, CLAUDE.md pointer, scoped Cursor rules), an Approvals section that makes the agent stop and wait for your yes, a table of what Grok Bot, Claude Code, Codex, Hermes and Cursor each read, a read-only checker for your rule files and 9 prompts to write, trim and test your own.

Works withClaude CodeCodexGrok BotHermes+1Plain .md and one Python 3 file (standard library only). Section 6a lists what Claude Code, Codex, Hermes and Cursor read, from their docs read 2026-10-30, and a block to paste into Grok Bot. The files were not run inside each tool.
Vibe coding · Beginner · 20 min setup
Preview card for Check your machine for the backdoored Claude Code editor extension and clean up properly
Agent use case packFree

Check your machine for the backdoored Claude Code editor extension and clean up properly

by PaperChaseWebb

For about eleven hours on Oct 29, Cursor's extension marketplace served a tampered build of the Claude Code extension (2.1.313) to up to 5,000 users. It added an SSH key and startup persistence that survive uninstalling the extension, so the fix is a check, an update and a credential rotation, not just a reinstall.

Works withClaude CodeCursorPlain .md
Vibe coding · Intermediate · 30 min setup
Preview card for Bug Report Your Agent Can Fix
Prompt pack$14

Bug Report Your Agent Can Fix

by PaperChaseWebb

A no-install way to turn "it is broken" into a report a coding agent can act on: a capture checklist, one report template, a redaction step for logs, a read-only checker, and four prompts that make the agent reproduce, fix, test and write back what changed.

Works withClaude CodeCodexCursorPlain Markdown plus two Python 3 scripts. The prompts are written for Claude Code, Codex and Cursor; they were not run inside those tools
Vibe coding · Beginner · 10 min setup