← 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

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

Why we built it

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