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.
npx agentmods add skills/mvanhorn/cli-printing-press/learn-disabled-examplenpx skills add mvanhorn/cli-printing-press --skill learn-disabled-examplegit clone --depth 1 https://github.com/mvanhorn/cli-printing-pressWrote 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/skills/mvanhorn/cli-printing-press/learn-disabled-example)<a href="https://agentmods.dev/skills/mvanhorn/cli-printing-press/learn-disabled-example"><img src="https://agentmods.dev/badge/skills/mvanhorn/cli-printing-press/learn-disabled-example.svg" alt="Measured on agentmods" 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 | $0.00025 | $0.02342 |
| Opus 5 | $0.00013 | $0.01171 |
| Sonnet 5 | $0.00005 | $0.00468 |
| Haiku 4.5 | $0.00003 | $0.00234 |
Grade A, and why
pp-learn-disabled-example 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 4d 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.
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.
How it starts
The opening of the file, as written. The whole thing — 210 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Learn Disabled Example — Printing Press CLI
Prerequisites: Install the CLI
This skill drives the learn-disabled-example-pp-cli binary. You must verify the CLI is installed before invoking any command from this skill. If it is missing, install it first:
- Install via the Printing Press installer. It defaults binaries to
$HOME/.local/binon macOS/Linux and%LOCALAPPDATA%\Programs\PrintingPress\binon Windows:npx -y @mvanhorn/printing-press-library install learn-disabled-example --cli-only - Verify:
learn-disabled-example-pp-cli --version - Ensure the reported install directory is on
$PATHfor the agent/runtime that will invoke this skill.
If the npx install fails before this CLI has a public-library category, install Node or use the category-specific Go fallback after publish.
If --version reports "command not found" after install, the runtime cannot see the binary directory on $PATH. Do not proceed with skill commands until verification succeeds.
Golden fixture exercising the learn.disabled generation-time opt-out. With
the self-learning loop on by default for every fresh print, this fixture
pins the ONLY sanctioned way to print without it: learn.disabled: true.
The locked artifacts must carry no internal/learn tree, no
teach/recall/learnings commands, no learn store schema, and no
self-learning sections in README.md / SKILL.md / AGENTS.md. A regression
here means either the opt-out stopped working (learn surface appears) or
the default leaked into an opted-out spec.
When Not to Use This CLI
Do not activate this CLI for requests that require creating, updating, deleting, publishing, commenting, upvoting, inviting, ordering, sending messages, booking, purchasing, or changing remote state. This printed CLI exposes read-only commands for inspection, export, sync, and analysis.
Command Reference
games — Minimal syncable resource so the disabled shape still keeps its profile-derived store; the opt-out must remove the learn surface, not the ordinary data layer.
What ships with it
5 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
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.
- 4d ago First seen · 210 lines · 25 tokens per session scan A 8c4a1823bfba
pp-learn-disabled-example is a skill published in the GitHub repository mvanhorn/cli-printing-press (4,615 stars, last pushed today), licensed MIT. It adds 25 tokens to every session and 2,342 once invoked, about $0.0001 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.
Other skills, from other repositories
climate-generator
Generate Go CLIs from OpenAPI 3.x specs with climate, inspect generated CLIs, and emit Markdown skill prompts so those CLIs can be attached to agent workflows.
lathe
Initialize CLI-first applications and keep their OpenAPI contract, generated CLI, and Agent Skill synchronized. Use when creating an application with lathe init or changing a Lathe-generated application.
frontend
Rules and best practices when working on the dashboard React frontend codebase (including the inlined Gram Elements code).
gram-rbac
Concepts, external interfaces, and conventions for Gram's role-based access control (RBAC) subsystem — scopes, grants, principals, system roles, and the authz.Engine.Require enforcement path used inside handlers. Activate whenever the task involves authorization (adding or modifying a scope or resource type, declaring…
glint
Conventions for authoring or editing analyzers in the glint/ Go static-analysis package — Gram's custom golangci-lint plugin built on go/analysis. Activate this skill whenever the task involves adding, modifying, or testing a glint analyzer (new rule key, new diagnostic, settings struct, fixture under glint/testdata/…
golang
Rules and best practices when writing and editing Go (Golang) code.