Borrowing it
Nothing to install: this file belongs to paulnsorensen/easy-cheese. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/paulnsorensen/easy-cheese/dist/.github/instructions/shell.instructions.mdgit clone --depth 1 https://github.com/paulnsorensen/easy-cheeseWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/instructions/paulnsorensen/easy-cheese/shell)<a href="https://agentmods.dev/instructions/paulnsorensen/easy-cheese/shell"><img src="https://agentmods.dev/badge/instructions/paulnsorensen/easy-cheese/shell/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/instructions/paulnsorensen/easy-cheese/shell"><img src="https://agentmods.dev/badge/instructions/paulnsorensen/easy-cheese/shell.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00628 | $0.00628 |
| Opus 5.5 | $0.00251 | $0.00251 |
| Sonnet 5.5 | $0.00126 | $0.00126 |
| Haiku 4.5 | $0.00063 | $0.00063 |
Grade C, and why
easy-cheese shell.instructions.md scanned grade C with 2 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Recursive force deletehighDestructive command
rm -rf with a variable or a broad path is one typo away from removing the wrong tree.
- `rm -rf "$var"` without guarding against empty `$var`. Use Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
- New external commands (`curl`, `jq`, `bats`, `brew`, etc.) need a preflight How it starts
The opening of the file, as written. The whole thing — 56 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Shell review checklist (shell scripts and bats tests)
The repo ships no install script. Shell scripts and bats tests, such as
tests/fanout/bash/, still follow these rules. Focus review on behavior,
not lint nits.
Hard rules
set -euo pipefailat the top of any new shell script. Missing it is a blocker, not a nit.- Quote every expansion:
"$var","${arr[@]}". Unquoted$varin a filename or path is a security finding, not a style one. [[ ... ]]over[ ... ]. Bash-only repo, no POSIX-sh constraint.- Use
printffor any output that contains user-supplied data or escape sequences. Reserveechofor literal static strings. - New external commands (
curl,jq,bats,brew, etc.) need a preflight check with a clear error message — don't let the script die three lines later oncommand not found.
What to flag
- Functions over ~30 lines or scripts over ~500 lines without decomposition.
- Network calls without timeout flags (
curl --max-time,--connect-timeout). evalorbash -c "$var"— almost always avoidable, almost always a vulnerability when$vartouches user input.rm -rf "$var"without guarding against empty$var. Userm -rf -- "${var:?}"or check first.- Silent failures — every failed step should print what failed and exit non-zero.
- bats tests that exercise the happy path only. Each new flag or branch should have a failure-mode test.
What not to flag
- Anything ShellCheck already catches (SC2086, SC2046, etc.) — CI runs it.
localplacement, alignment, double-vs-single quote on static strings.- Cheese / Dune / Mad Max / LOTR / Princess Bride flavor in user-facing
echolines. Intentional repo voice. - Bashism vs POSIX-sh portability — this is a Bash repo.
bats specifics
- Each
@testdoes one thing. Name the test after the behavior, not the function:@test "install fails fast when curl missing", not@test "test_check_deps". - Use
runfor the command under test, then assert on$statusand$output— don't assert beforerunreturns. - Stub external commands (
curl,brew,claude,gh) viaPATHinjection or helper wrappers. A bats test that actually hits the network or shells out to realbrewis a flake waiting to happen. - Keep bats tests offline. Do not add tests that call the network or a real package manager.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 2d ago Changed · -3 lines · -87 tokens per session 375ba97071e7
- 1mo ago First seen · 59 lines · 715 tokens per session scan C afde43176a4d
easy-cheese shell.instructions.md is an instructions file published in the GitHub repository paulnsorensen/easy-cheese (18 stars, last pushed today), licensed MIT. It adds 628 tokens to every session, about $0.0025 per session on Opus 5.5. A static security scan graded it C with 2 findings (recursive force delete, makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other instructions, from other repositories
vscode buildNext.instructions.md
Working notes and architecture documentation for the new esbuild-based build system in build/next. Use when making changes to the new build pipeline (transpile/bundle commands, NLS plugin, source-map handling, resource copying, or self-hosting watch tasks).
next.js AGENTS.md
AGENTS.md instructions for vercel/next.js, covering next.js development guide, codebase structure, monorepo overview, core package: packages/next and other important packages.
vscode oss-third-party-notices.instructions.md
Instructions for microsoft/vscode, covering vs code oss third-party-notices pipeline, architecture, pipeline flow in ci, cache eligibility and rollout and applying the notice (cutover).
langchain AGENTS.md
AGENTS.md instructions for langchain-ai/langchain, covering global development guidelines for the langchain monorepo, corridor security analysis, project architecture and context, monorepo structure and development tools & commands.
vscode copilot-instructions.md
Copilot instructions for microsoft/vscode, covering vs code copilot instructions, project overview, root folders, core architecture (src/ folder) and built-in extensions (extensions/ folder).
deno copilot-instructions.md
Copilot instructions for denoland/deno, covering deno development guide for github copilot, network access, high level overview, key directories and key files to understand first.