← All posts

Base packs: agents you inherit

v2.3.0 ships the core base pack: versioned RevOps agents a workspace inherits with extends: core and overrides in YAML — with per-layer provenance and a guard that stops any override from loosening an approval gate.

Vocion Teamvocion-v2.3.0

Staleness note, added 2026-09-08. This post documents the base pack as it shipped in core v2.3.0/v2.4.0, and it was accurate then. As of core v2.20.0 (commit 1daee5b2), the pack's pipeline_health and proposal_brief operations were converted to skills: they now live at skills/pipeline-health/SKILL.md and skills/proposal-brief/SKILL.md under packages/core/templates/base/ (the base pack's own comment header records this: "operations were converted to skills in 2.0.0"). requiresApproval is a plugin-contract concern (packages/core/src/libs/plugins/registry.ts), not a field an author sets on a skill or operation in YAML — see docs/entities/skill.md. The inheritance mechanics (extends, override-not-fork, provenance, ghost cards) are the durable part of this post; see the current shape at docs/entities/base-pack.md, where use: is now a structured map of agents:/skills:/playbooks: rather than the single-verb form shown below.

Every Vocion install so far has re-authored the same RevOps agents from scratch. A revenue front-door coordinator, a proposal specialist, the pipeline-health operation behind them — each new workspace started by copy-pasting YAML from the last one and editing it in place. Copies drift. A prompt fix or a safety tweak lands in one workspace and never reaches the others, and six months in nobody can say which fork has the good version. This release pair (v2.3.0 on 2026-08-12 and v2.4.0 on 2026-08-17) replaces the copy with inheritance: a versioned base pack that ships inside vocion-core, which a workspace activates and overrides instead of re-authoring.

What's new

Stale as of core v2.20.0 — "operations" below are now "skills"; see the note above.

Why we built it

Stale as of core v2.20.0 — the approval-downgrade guard below is described against "operations" and a requiresApproval: true YAML field, both since removed from the authored shape; whether an equivalent guard exists for skills is not verified against public docs as of this note. See the note above.

A base pack is not a seed. The Meridian sample workspace is a one-shot copy into an empty org — useful for a demo, but from that moment it's a fork. The pack is a compose-at-load layer: core@1.0.0 stays maintained upstream, and a workspace moves to a new version only by bumping its own pin. Publishing core@1.1.0 never silently reaches a pinned instance, and the pin in workspace_sha means two installs on different pack versions are distinguishable in every audit row.

The approval-downgrade guard deserves its own paragraph, because inheritance creates a failure mode plain YAML never had. Vocion's safety model is drafts-only: any operation that touches the outside world — sending mail, writing a CRM record — declares requiresApproval: true and stops at a human. Once definitions merge across layers, a one-line workspace override could flip that flag on an inherited operation, and nobody reviewing the workspace diff would see the base file it was quietly disarming. So the loader refuses the downgrade outright: if the base declares an approval gate, no override can remove it, and because the pin is explicit, no pack update can rearrange gates under you without a diff you chose to take. Overrides that keep the gate merge normally.

Where to find it