microsoft/cat-agent-skills is a static website that catalogs reusable instruction sets and related packages for AI agents. People use it to search, filter, rate, and download skills for Cowork, Copilot Studio, and Scout, along with Copilot plugins and Scout automations. The catalogue entries are the skills, instructions, plugins, and settings displayed by the site.
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 microsoft/cat-agent-skills --skill pack-draftgit clone --depth 1 https://github.com/microsoft/cat-agent-skillsWrote 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/microsoft/cat-agent-skills/pack-draft)<a href="https://agentmods.dev/skills/microsoft/cat-agent-skills/pack-draft"><img src="https://agentmods.dev/badge/skills/microsoft/cat-agent-skills/pack-draft/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/microsoft/cat-agent-skills/pack-draft"><img src="https://agentmods.dev/badge/skills/microsoft/cat-agent-skills/pack-draft.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.00172 | $0.02613 |
| Opus 5.5 | $0.00069 | $0.01045 |
| Sonnet 5.5 | $0.00034 | $0.00523 |
| Haiku 4.5 | $0.00017 | $0.00261 |
Grade A, and why
pack-draft 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.
How it starts
The opening of the file, as written. The whole thing — 74 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Pack Draft
Purpose
Turn engine output into a readable internal draft for the engagement manager to review; the engines have already made every decision.
When to use
Last step, after wall-check has written access-checklist.json and mobilization-pack.md. If no access-checklist.json exists yet (a cold "start / build the onboarding pack" request), do not draft: start with engagement-retrieve, which runs the chain.
When NOT to Use
- Any wall, access, roster or knowledge decision - use
wall-check,roster-pullorknowledge-match. - Sending the pack to the joiner, team or client - out of scope; the pack is draft-only.
- Staffing or closeout work - use
engagement-staffing-bench-matchorengagement-closeout-knowledge-harvest. - A generic onboarding guide, template or Word document that is not tied to this engagement's governed outputs - use the built-in
docxskill. - Word output of this pack: draft the governed Markdown here first, then hand it to
docxkeeping the DRAFT banner, pack status, holds and[withheld ...]markers unchanged.
Inputs
access-checklist.json and mobilization-pack.md (contract ps.engagement-mobilization-onboarding-pack.v1), plus the raw inputs the chain read (raw directory, staffing input, confirmed roster, Closeout governed.json, wall register and workspace inventory) for the pre-render check.
Steps
- Before reading either file, run
python3 scripts/verify_render.py --access access-checklist.json --pack mobilization-pack.md --raw-dir <raw> --staffing <staffing.json> --confirmed-roster <raw>/confirmed-roster.csv --closeout <closeout governed.json> --wall-register <raw>/ethical-wall-register.csv --workspace-inventory <raw>/workspace-inventory.csv. It validates the access checklist against its stage contract and hold-evidence rules, re-runs every engine on the raw inputs and refuses an access checklist that differs from the re-derivation in any field (every hold member compared exactly), a pack that differs from the engine's rendering by any byte, or a pack whose rendered lines trip the instruction screen when read in order, citations and IDs included (confidentiality-and-ethical-wall-rules.md #1.4,#4.5). If it exits non-zero, stop: quote the error verbatim, draft nothing and re-run the chain fromengagement-retrieve. Draft only from files that passed this check unchanged. - Confirm
access-checklist.jsonexists and the contract version matches (otherwise see Failure handling); ifmobilization_pack.statusison_hold_internal_only, the pack is still drafted for internal use: lead with the holds and their citations, render the held draft as internal-only, keep every[withheld ...]marker, never draft or restore content that depends on an open hold, and say it must not be shared with the joiner until the holds clear. The holds arehold_reasonsand every open entry inholds. Every engine section is still rendered in order (step 3); anything the engine held stays as its hold line or[withheld ...]marker. - Keep the engine sections and order: client context, scope and exclusions, deliverables and dates, prior-knowledge digest, team roster, access checklist, confidentiality and wall briefing, first-week plan, escalations and holds.
- Rephrase for readability only; keep every status, permission, hold, citation and
[withheld ...]marker exactly as written. First-week plan items come only from the## First-week planlines ofmobilization-pack.md; never add or restore items. An item the engine restated as title-and-citation only because it points at pending-review knowledge (by ID, title, any generic "prior knowledge"/"knowledge digest" reference whatever its verb, voice or noun form, or an ID split across adjacent items) stays restated, and a "Continues SOW first-week item N" line stays as written: never restore its SOW wording fromscope_summary.first_week_focusor tell the joiner to read that material (knowledge-reuse-rules.md #2.5). - Keep the DRAFT banner. Keep the engine's
Proposed, not assigned: <name> for <role>line exactly as rendered: never reword it and never move a proposed name into the confirmed roster lines;pending_practice_reviewknowledge is referenced by title and citation only. Never write or summarise a Closeout lesson: lessons inexcluded_itemshave no written text yet (knowledge-reuse-rules.md #2.4). - End with the reviewer checklist: resolve holds, confirm wall briefing with Risk/Conflicts, approve access requests, then share internally.
What ships with it
13 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.
- contracts/ps.engagement-mobilization-onboarding-pack.v1.json 28 KB
- references/confidentiality-and-ethical-wall-rules.md 46 KB
- references/knowledge-reuse-rules.md 13 KB
- references/role-access-matrix.md 4.6 KB
- references/workspace-inventory-rules.md 4.1 KB
- scripts/access_checklist.py 42 KB runs code
- scripts/contract_validate.py 8.9 KB runs code
- scripts/knowledge_match.py 37 KB runs code
- scripts/safety_text.py 125 KB runs code
- scripts/scope_digest.py 42 KB runs code
- scripts/steering_guard.py 187 KB runs code
- scripts/verify_render.py 5.4 KB runs code
- scripts/wall_check.py 22 KB runs code
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.
- yesterday First seen · 74 lines · 172 tokens per session scan A cae1c930610d
pack-draft is a skill published in the GitHub repository microsoft/cat-agent-skills (101 stars, last pushed yesterday), licensed MIT. It adds 172 tokens to every session and 2,613 once invoked, about $0.0007 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-11-07.
pack-draft compared with skills from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| pack-draftmicrosoft/cat-agent-skills | Skill | 101 | yesterday | MIT | A | 172 | Claude Code, Codex |
| imagegenopenai/codex | Skill | 134k | today | Apache-2.0 | A | 113 | Codex |
| local-ai-agentsmicrosoft/ai-agents-for-beginners | Skill | 79k | yesterday | MIT | A | 200 | Claude Code, Codex |
| playwright-climicrosoft/playwright | Skill | 100k | yesterday | Apache-2.0 | A | 19 | Claude Code |
| browser-automationopenclaw/openclaw | Skill | 394k | today | MIT | A | 36 | Claude Code |
| systematic-debuggingobra/superpowers | Skill | 314k | 4d ago | MIT | A | 21 | Claude Code |
| next-cache-components-adoptionvercel/next.js | Skill | 143k | today | MIT | A | 95 | Claude Code |