Six core objects
| Object | Responsibility | Example |
|---|---|---|
| Repository | Git source and synchronization configuration | Team Skills repository |
| Skill Version | Immutable content of one Skill | Updated sql-query instructions |
| Release Snapshot | Complete set of Skill versions | New A + existing B + existing C |
| Channel | Mutable pointer to a snapshot | canary, stable |
| Agent Profile | Channel, allowed Skills, mode, offline policy | Engineering test assistant |
| Mount Client | Independent endpoint identity and credentials | An Agent on a build machine |
Why snapshots exist
An Agent can use multiple Skills. A snapshot fixes their version combination for reproducibility and whole-set rollback. Identical sets can be deduplicated; snapshot content cannot be edited after creation.
To update, create a snapshot and change the channel pointer. Old snapshots remain readable without the Git remote being online.
Profiles control visibility
A channel supplies a version set. A Profile authorizes selected Skills from it. Clients can read only authorized files; selecting a Skill absent from the channel snapshot does not make it appear.
A useful starting point is a test Profile following canary and a production Profile following stable. They may authorize different Skills.
Dynamic and pinned modes
| Mode | Update behavior | Suitable use |
|---|---|---|
| dynamic | Refreshes the index after channel updates; new opens use the new version | Long-running interactive assistants |
| pinned | Retains its bound snapshot until explicit repin | Tasks requiring stable versions |
Existing open handles retain old content. Dynamic mode does not guarantee the same snapshot across multiple opens within one long task; use pinned for that requirement.
Channel generation
Every successful promotion or rollback increments generation. This prevents two administrators from overwriting each other's release. On a conflict, refresh and review current differences before retrying.