Skip to content

Skills — the immutable catalog and pinned assignments

Skills (modules/skills, olivares.skills) is a separately selectable module. It owns the immutable skills catalog and its pinned assignments: a skill pack is installed once, validated entry by entry against its manifest digest, and published as an immutable revision — it is never edited in place afterwards. What a target (an agent, a group, a workspace) may use is an assignment that pins a pack revision, and every pin is written to the audit ledger (skills.assignment.pin).

On by default on fresh installations, Skills remains optional and has no required module. Upgrades preserve the saved module selection. In Skills (/skills), browse the built-in catalog and install a pack with an optional workspace assignment, or choose From Git. The CLI uses the same immutable, digest-validated import:

Terminal window
olivares skills ls --builtin
olivares skills install --builtin ecc-security
olivares skills install --git https://github.com/owner/skills --ref <commit> --subdir skills
olivares skills assign <pack-id> --revision <revision-id> --workspace <workspace-id>
olivares skills update <pack-id> # read the recorded source again and review the diff
olivares skills update <pack-id> --apply --expected-digest <digest>
olivares skills pin <pack-id> [--revision <older-revision-id>]
olivares skills enable tdd-workflow code-review --folder <folder-ref>
olivares skills selection --workspace <workspace-id> --folder <folder-ref>

See the CLI reference for installation, revision and assignment options.

  • The catalog. Installed packs under /v1/m/skills/packs, each immutable revision records its manifest digest; retiring a pack that is still assigned or used by recorded conversations is refused, not silently cascade-deleted.
  • The built-in catalog. A vendored set of upstream skill packs pinned by commit and archive digest (builtin/PIN.json), validated on install exactly like an uploaded archive. Nothing in it runs at install.
  • Assignments. GET/POST /v1/m/skills/assignments and PUT/DELETE /v1/m/skills/assignments/{id} pin a revision to a target, scoped to a workspace where one is active. Two targets of one kind that pin different content under one skill name are refused before a session starts; a narrower target (folder, template, agent, session) replaces a broader target’s skill of that name, so a project overrides a generic pack without editing it.
  • Git import. An operator-scoped importer can fetch a skills pack from a Git source under a pinned policy; the import lands in the catalog as another immutable revision, not as a live checkout the engine reads.

The module’s routes live in its beta namespace (/v1/m/skills/…), documented in the module-route reference and rendered in the console’s Skills view. Catalog reads require skills:catalog:read, installs and revisions require skills:catalog:write, retirement requires skills:catalog:admin, and assignment changes require skills:assignment:write. Target authorization also applies. A session resolves its skills only through recorded assignments — a folder that changes on disk never changes what an already-pinned launch will run.