Core identity model
SourceUuidis the stable source identity. Builtins use00000000-0000-4b11-8111-000000000001; conventional project-local.rkat/skillsuses00000000-0000-4b11-8111-000000000002.SkillNameis a lowercase dash-separated slug ([a-z0-9-], no leading/trailing dash, no--).SkillKey { source_uuid, skill_name }is the canonical skill identity across runtime, RPC, REST, SDK, CLI, and tool surfaces.SkillRefis the wire wrapper for per-turn refs. It currently has one tagged form:
preload_skills carries plain SkillKey objects; skill_refs carries tagged SkillRef objects. Legacy string refs are rejected.
Source Identity
Each source has aSourceIdentityRecord:
source_uuiddisplay_nametransport_kind:embedded,filesystem,git,http, orstdiofingerprintstatus:active,disabled, orretired
SkillKeyRemap entries where the event needs per-skill coverage.
Shadowing is keyed by the full SkillKey, not by skill_name alone. Two sources can both contain email-extractor; they are distinct skills unless their source_uuid is also the same.
Source Transports
Companion Skill Convention
Meerkat-owned nontrivial agent-facing tool families use embedded companion skills as their operating manuals. A companion skill is a normal skill:- source: embedded builtin source
- identity: normal
SkillKey { source_uuid, skill_name } - gating:
requires_capabilities - activation:
preload_skills,skill_refs, orload_skill
Activation paths
- Preload at session creation:
preload_skills: SkillKey[]; content is resolved into the system prompt before the first turn. - First-turn or per-turn injection:
skill_refs: SkillRef[]; content is injected for that turn. - CLI preload convenience:
rkat run --skill <skill-name>resolves a runtime-local slug to a builtin-source key.
Discovery tools
Agent-facing discovery tools use typed key fields:Rendering
Flat inventory renders full key IDs:source_uuid and instructs the agent to use browse_skills and load_skill. Injection blocks are size-limited to 32 KiB and rendered as <skill id="source_uuid/skill_name">...</skill>.
Public Introspection
Current public introspection surfaces:
List responses include
key, source, is_active, and optional shadowed_by provenance.
Inspect responses include the same typed identity and provenance plus body.
