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 skills add skilld-dev/skilld --skill generate-package-skillgit clone --depth 1 https://github.com/skilld-dev/skilldWrote 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/skilld-dev/skilld/generate-package-skill)<a href="https://agentmods.dev/skills/skilld-dev/skilld/generate-package-skill"><img src="https://agentmods.dev/badge/skills/skilld-dev/skilld/generate-package-skill/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/skills/skilld-dev/skilld/generate-package-skill"><img src="https://agentmods.dev/badge/skills/skilld-dev/skilld/generate-package-skill.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
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.00064 | $0.03145 |
| Opus 5.5 | $0.00026 | $0.01258 |
| Sonnet 5.5 | $0.00013 | $0.00629 |
| Haiku 4.5 | $0.00006 | $0.00314 |
Grade A, and why
generate-package-skill 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 9d 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 — 180 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Generate a package Skill
Write a short Skill that stops an Agent from misusing one package version. The reader knows the language, the framework, and the domain. Write only what it would get wrong.
Inputs
Take a package name, directory, or prepared source. Ask for the destination only when it is missing.
In a monorepo, put the Skill in the published package directory.
Write one Skill per installed package, unless a second package has distinct users.
Skip an internal package, whose users are the repository's own packages, such as a shared engine or types package. Report why, and write nothing.
assets/ holds the Harness request. A direct run ignores it.
1. Research
- Record the exact version the destination branch publishes: its
package.jsonversion and the npm dist-tag that carries it. If npmlatestis an older major, test the branch's version. If the branch is ahead of its last release, read source at that release tag and report the unreleased changes. - Read the manifest, every exported entry point, and the public types. For many sibling integrations, read the shared runtime and the most used few, and report which you sampled.
- For a framework module, read what setup registers: auto-imports, components, the config key and defaults, hooks, server routes.
- If the package wraps, re-exports, or peers on another package, read the types or tagged source of the version the consumer gets, never a default branch.
- Read the current official docs and examples, and release notes only for breaking changes and removed APIs. When docs cover several frameworks, read the consumer's framework pages first, then the core pages they link.
To update an existing Skill after a release, use update-package-skill. It tests only what the release changed.
2. Test the examples
Observed behaviour beats documentation.
- Create a minimal consumer fixture outside the package source. Install the recorded version, or link the local build.
Before packing, build the package and its native code (NAPI, WASM);
prepackcan need them. Pack with the repository's package manager:npm packleaves pnpmcatalog:versions. Give the fixture its ownpnpm-workspace.yaml, so a parent workspace cannot satisfy its imports. Install only the package, documented peers, and check tools such astypescript. A resolution error is a finding. Install each peer at npmlatest. Iflatestis outside the peer range, test both versions. - Use consumer defaults. The package repository's config and fixtures can turn them off.
In Nuxt, keep test modules out of
modules/; Nuxt registers every module there. One fixture page can exercise many examples. - Run each example you include. Compare output with the claim: HTML, return values, type errors, build logs, exit codes, report files.
Each concrete claim in prose is an example too: a value, count, default, result shape, error text, exit code, or bundle effect. Run it, or report it read from source.
Run each example with one failure input as well, such as an unreachable URL, a bad token, or a stalled request.
Run each example under each global setting the Skill describes, such as a staging environment or a site-wide switch.
For each claim that a setting or dependency is required, run once without it and record what fails.
Test each mode the package declares: framework modes (SSR, SPA, streaming, dev, build), each condition in
exports, the oldest runtime inengines, and each CLI binary with a config file and with flags. Report other modes untested. Wrap every run intimeout 120. Grep the package for agent and CI detection, such asCLAUDECODEorCI; unset each variable it reads withenv -u VAR. Read dev warnings in the dev log, prerender results in build output, and runtime results from the production server. If a trap says nothing happens, run it and confirm the silence. To fetch from a server, run scripts/serve-fixture.mjs in the fixture:node SKILL_DIR/scripts/serve-fixture.mjs --fetch / -- node .output/server/index.mjs. Quote'{port}'in a server argument, since some shells expand it.--header 'User-Agent: Googlebot/2.1'sends a header,Hostincluded. For a binary, use--fetch-raw PATH --out DIR.DIR/responses.jsonlists each status, content type, and response headers. For an HTTP client package, start a fake target on port 0 inside the test, and assert on the requests it receives. Without--fetch, it holds the server until SIGTERM. Background it with your tool's option;&andnohupdie with the shell call. Start servers from your own test script and record each process ID you start; stop only those. Never kill by port or withpkill -f: another Agent can own that process. In a browser, set a desktop user agent; a package can treatHeadlessChromeas a bot. - If documentation and behaviour disagree, write the behaviour and report the mismatch.
- Keep an unrunnable example only when the types prove it; report it untested.
What ships with it
3 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.
- 9d ago Changed · +10 lines ee32daf6d6fa
- 12d ago Changed · +25 lines 1de1f3bd18e3
- 14d ago Changed · +16 lines 94ba4e4c6594
- 20d ago Changed · +53 lines · +39 tokens per session 66b02ced758c
- 27d ago Changed · +10 lines ae330e07e8e7
- 1mo ago Changed · +1 lines c8eed999f931
- 1mo ago First seen · 65 lines · 25 tokens per session scan A 2e6ab4e7994d
generate-package-skill is a skill published in the GitHub repository skilld-dev/skilld (327 stars, last pushed 10d ago), licensed MIT. It adds 64 tokens to every session and 3,145 once invoked, about $0.0003 per session on Opus 5.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
use-agent-supagents
Compile shared role instructions into native subagent profiles for Antigravity, Claude Code, Codex, Copilot, Cursor, Gemini CLI, Grok, Kilo, and OpenCode.
harness-config-cli
Use when working in the harness-config repository and Codex needs to validate, preview, activate, or explain Harness config dogfooding with the local @harnessconfig/cli package.
harness-config-patterns
Use when working in the harness-config repository on implementation structure, projection architecture, resource and dir composition, target override precedence, profile and ignore integration, or code placement.
harness-config-specs
Use when working in the harness-config repository on the Harness config v1 standard, conformance rules, specification wording, manifest/resource/dir/profile/ignore semantics, or docs ownership.
harness-config-testing
Use when working in the harness-config repository on test strategy, regression coverage, fixtures, docs/TESTING.md, CLI end-to-end checks, projection edge cases, profile and ignore scenarios, or focused quality commands.
.claude
Review changes for correctness, tests, and generated-output drift. When Claude specific behavior is relevant, call out the generated .claude surface.