# Add Capsule

> Scaffold a full release capsule — folder, spec-driven README, notebook skeleton, deps, CHANGELOG row.

- Skill: `microsoft-foundry/add-capsule` (Agent Skill)
- Install (CLI): `npx skillmds@latest add microsoft-foundry/add-capsule`
- Raw SKILL.md: https://api.skillmd.com/api/skills/microsoft-foundry/add-capsule/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: microsoft-foundry (https://skillmd.com/u/microsoft-foundry)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/microsoft-foundry/add-capsule

---


# add-capsule

Produces a complete release capsule:

1. Creates `models/<publisher>/<model>/<release_date>/` with a README whose
   frontmatter matches [`capsule.schema.json`](../../specs/schemas/capsule.schema.json)
   — including a **Before You Begin** section with pricing, release /
   expiry dates, model-card link, and a link to
   [`models/quickstart/`](../../../models/quickstart/).
2. Scaffolds one or more notebooks under `notebooks/` following the
   pedagogy rules in [`plan.md` §15](../../plan.md):
   - **Each notebook covers 1–3 concepts.** If the release needs more,
     the skill scaffolds additional notebooks (`01-…`, `02-…`, `03-…`)
     rather than growing a single long notebook. The author declares the
     split up front via the `concepts` prompt.
   - Every notebook is **independently runnable** — it repeats the
     Before You Begin + env-precheck cells at the top.
   - **Numbered, alternating markdown ↔ code** sections so the Outline
     reads like a tutorial table of contents. Section titles are verbs
     (e.g. "Send a chat request", "Attach an image").
   - `## 1. Before You Begin` (markdown) — pricing, dates, model card,
     link to `models/quickstart/`.
   - `## 2. Verify your environment` (code) — env precheck against the
     vars listed in `models/quickstart/README.md` frontmatter
     (`required_env`).
   - Content sections `3..N-2` alternating markdown/code.
   - `## N-1. Your Turn to Explore` (markdown + empty code cell) —
     required. Suggests 2–3 concrete directions without solutions.
   - `## N. Summary` (markdown) — required. What was covered, when to
     reach for this model, links to primers and glossary terms.
   - `## N+1. References` (markdown) — required. A bulleted list of
     the author-supplied references, written directly as markdown
     (`- [title](url) — note`). References are body content, not
     frontmatter. If the author supplied none, the scaffold prints a
     TODO reminder rather than silently omitting the section.
   - **Voice**: action-focused, no hype/marketing language.
3. Appends any capsule-specific `dependencies` under the
   `# Capsule dependencies` section of `requirements-dev.txt`.
4. Prepends (or updates in place) a row in `CHANGELOG.md`, in the
   table under the `## <Month> <Year>` heading for its release date —
   creating that heading and a table header when the month is new.
   Column shape: `Date | Publisher | Model | Capabilities` — exactly
   four cells. The Date cell is a markdown link to the announcement URL
   (there is no separate Announcement column). The Model cell is a
   markdown link to the model card when known — no separate Model card
   column either. The Publisher cell links to that publisher's
   filtered view in the Foundry catalog. Pricing is not a column:
   rates go stale silently, so price lives on the model card the
   capsule links to.
   If an announcement-only row already exists for the same Date +
   Model, the skill updates it in place — adding any newly known
   fields — instead of duplicating.
5. Adds a members-table row to `models/<publisher>/README.md`.
6. Regenerates `CAPSULE-TOC.md`, `catalog.json`, `llms.txt`, and the
   repo README capsule block by running
   `python scripts/generate-catalog.py`. These are generated from
   frontmatter - never hand-edit them. The capsule's row appears under
   its publisher's `## <Provider>` heading automatically; the generator
   creates that heading when the publisher has no capsules yet.
7. Invokes [`refresh-recent-activity`](../refresh-recent-activity/) so the
   repo README's **Recently added** table (Model / Release date /
   Capabilities) stays current.

