easy-cheese python.instructions.md

Python review instructions for the easy-cheese repository, covering code checks, dependencies, supported Python versions, and testing rules.

In plain words
What is it for?
Use them when reviewing Python validators, CI scripts, or tests for the melt skill in that repository.
Why use it?
They help reviewers catch unsupported dependencies, Python-version mismatches, unwanted file writes, and changes that conflict with the repository’s validation setup.

Instructions file for GitHub Copilot

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add instructions/paulnsorensen/easy-cheese/python
Clone the repo
git clone --depth 1 https://github.com/paulnsorensen/easy-cheese

Made for: GitHub Copilot.

Per session 678 This file is loaded in full into every session.
When invoked 678 The same file — it is already loaded in full.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce invoked
Fable 5 $0.00678 $0.00678
Opus 5 $0.00339 $0.00339
Sonnet 5 $0.00136 $0.00136
Haiku 4.5 $0.00068 $0.00068

Measured yesterday against content hash 598116d85067, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

easy-cheese python.instructions.md scanned grade A with 0 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 yesterday.

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.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

.github/instructions/python.instructions.md · 56 lines

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.

Python review checklist (skill validators + melt script tests)

Two Python surfaces live in this repo:

  • .github/scripts/ — CI validators (validate_skills.py + test_validate_skills.py). These run on python3 from the GitHub Actions runner with pyyaml as the only third-party dependency. No virtualenv, no uv.
  • tests/python/ — pytest suite covering the melt skill's helper scripts (conflict_pick, conflict_summary, batch_resolve, etc.). Runs under pytest with stdlib-style fixtures via conftest.py.

Hard rules

  • Dependencies are pinned in validate.yml. The only allowed third-party imports are pyyaml (validators) and pytest (tests). Push back on PRs that pull in requests, pydantic, pandas, etc. — every new dep means a bootstrap step in CI and another supply-chain edge.
  • Python 3.12 baseline. CI pins python-version: "3.12". Don't reach for 3.13+ features without updating validate.yml first; don't write 3.8-compatible code "to be safe" either — the runner is fixed.
  • No filesystem writes from validators. .github/scripts/ files read and report; they never mutate the tree. A PR that adds autofix logic belongs in a separate skill or script, not in validate_skills.py.
  • Exit-code propagation is load-bearing. Validators and pytest must exit non-zero on failure, or CI silently passes. except Exception: without re-raising or sys.exit(1) is a bug, not a style issue.

What to flag

  • New top-level functions over 40 lines — decompose.
  • Bare except: or except Exception: that swallows errors in either surface. Validators must fail loud; tests must surface failures cleanly.
  • Tests in tests/python/*.py or test_validate_skills.py that don't actually assert on observable behavior — assert True after a try/except block is not a test.
  • pytest tests that depend on filesystem state outside tmp_path or network access. Both make CI flaky.
  • Hard-coded paths that escape the repo root (e.g. /Users/..., os.path.expanduser("~/Dev/...")). Use Path(__file__).resolve() or pytest's tmp_path / monkeypatch.chdir.

Read the full file on GitHub · 56 lines

Changes

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.

  1. yesterday First seen · 56 lines · 678 tokens per session scan A 598116d85067

Subscribe to this mod's changes

easy-cheese python.instructions.md is an instructions file published in the GitHub repository paulnsorensen/easy-cheese (18 stars, last pushed yesterday), licensed MIT. It adds 678 tokens to every session, about $0.0034 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.