Base pack
A versioned set of default agents, skills, and playbooks shipped inside the framework that a workspace can pin, activate, and override without forking.
Last verified
A base pack is a versioned, reusable layer of default agents, skills, and playbooks that ships inside the framework itself and composes underneath a tenant's own workspace at load time, rather than being copied into it once.
How activation works
A workspace opts in with extends: core@<version> in its workspace.yaml,
naming the pack version it's pinned to. use: then activates specific
pieces — naming an agent pulls in the skills it declares and the object
types those skills use; use: all takes every default the pack ships;
omitting use while extends is set activates nothing. disable: removes a
named slug even under use: all.
Why it matters in production
Shipping default agents as code a tenant must copy and maintain means every
upstream improvement requires a manual re-merge. Composing the pack at load
time instead means a workspace can override a single field on one default
agent — with an extends: core marker on a same-slug file — and everything
else it didn't touch keeps moving with the pack version it's pinned to.
Publishing a new pack version never silently reaches a pinned workspace; it
moves only when the workspace edits its own pin.
How Vocion implements it
Today's only pack is core, at packages/core/templates/base/, validated by
PackManifestSchema (packages/core/src/libs/workspace/schemas.ts); it ships
seven default agents under packages/core/templates/base/agents/ at pack
version core@2.0.0, with a review-ops layer adding two more in review. A
pack is never written to the database — its version folds into the workspace_sha
of any workspace that extends it. Full reference:
docs/entities/base-pack.md.