pack_apply
Apply a channel preset pack: resolve and snapshot every variant, activate the chosen one, and probe font compatibility for the project.
Instructions
Load a channel preset pack, resolve and snapshot every variant, activate one.
pack_path is an external file — never confined to the project, the same
way import_media's source is not — because a pack typically lives in
a separate branding repo. Every declared variant is resolved and
hashed, not only the one variant activates, so pack_activate can
switch between them later with no file re-read; nothing after this call
ever depends on pack_path staying reachable.
For every font role, fonts.probe asks whether the declared family
actually draws on this machine — a family that does not refuses the whole
call unless allow_fallback (then its declared CSS fallback is used and
recorded, never silent); one that draws but is vendored nowhere proofcut
knows about is recorded font_provenance: "unvendored" rather than
refused, since the render here is genuinely correct today. install_fonts
vendors the pack's own fonts/ directory if it ships one — off by
default, since it writes into $HOME.
Writes nothing to caption styling or to any card already on disk; a card
picks up the new style only when card_new/card_reauthor next draws
it, and captions only via pack_apply_captions. plan resolves and
probes without writing.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | The project directory to act on. Omit it — the usual case — when this server is bound to a project (started as `proofcut -C DIR mcp`, or inside a project; `ping` says which): it then resolves to that one bound project, a relative path resolves against it, and a path outside it is refused by name. Unbound, `path` is the whole address and omitting it refuses rather than guessing. | |
| plan | No | Resolve the whole call and report what it would do, writing nothing. Prefer it over doing the thing and undoing it. | |
| variant | No | Which resolved variant to activate. Every declared variant is snapshotted regardless, so `pack_activate` can switch later with no file re-read. | default |
| pack_path | Yes | The pack file to load. An external file, never confined to the project — a pack usually lives in a separate branding repo — and nothing after this call depends on it staying reachable. | |
| install_fonts | No | Vendor the pack's own `fonts/` directory, if it ships one. Off by default, since it writes into `$HOME`. | |
| allow_fallback | No | Accept a declared CSS fallback for a font family that does not actually draw on this machine, recording which was used. Without it, a family that does not draw refuses the whole call. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||