Skip to main content
A skill packages reusable capability for agents: a prompt block (injected prose), documentation, tags, a category and optional underlying tool requirements. Skills are either tenant-owned (editable) or platform skills (read-only, provided by Concierca AI).

skill_list

List skills available in this tenant (plus platform skills). Optional name/description search. Returns: { skills: [...], count }. Each row: id, slug, name, description, category, category_id, scope, skill_type, tags, requires_credentials, is_system, tenant_id, created_at, updated_at (no prompt block / docs). Archived skills are excluded. Permissions: read.

skill_get

One skill with docs, prompt block and tool requirements. Returns: { skill } — the full record: all list columns plus docs_markdown, prompt_block, body, tools_required, default_tools, underlying_tools, parameter_schema, load_mode_default. Not found → { error: "Skill not found" }. Permissions: read.

skill_create

Create a new tenant-owned skill — the counterpart to skill_save (which only edits). Scope is intra-tenant (department | global); platform skills cannot be created here. The slug is auto-derived from the name when omitted (and de-duplicated). Returns: { status:"created", skill_id, slug, note, audit }slug is the resolved (de-duplicated) slug. dry_run:true{ dry_run:true, valid:true, would: {action:"create_skill", slug, scope, name}, note }. Permissions: write; Company-Admin only.

skill_save

Edit a tenant-owned skill: name, description, prompt_block, docs_markdown, body, tags, category. The pre-edit state is snapshotted (revertible). Platform skills are read-only. Returns: { status:"saved", skill_id, updated, note, audit }updated lists the patched field names. Editing a platform skill → { error: "Skill not found (platform skills are read-only via MCP)" }. Permissions: write; Company-Admin only. Link one skill to an agent (additive) — the per-link counterpart to agent_update.skills, which replaces the whole set. load_mode semantics: inject/preload = the skill text is inlined into the agent’s prompt on every run; discover (default) = listed only, the agent loads it on demand (progressive disclosure). Duplicate links are rejected. Grant authority follows the skill’s scope: a global skill’s underlying tools may be conferred by a Superadmin, a department skill’s by a Company-/Department-Admin, a user skill’s by its owner or a Company-Admin. Returns: { ok:true, link, skill, conferred_tools, note?, audit }. link is the new agent_skills row ({id, skill_id, load_mode, created_at}); skill is {id, slug, name}; conferred_tools lists any underlying tools granted to the agent by the link. A duplicate link → { error: "Skill already assigned to this agent" }. Permissions: write; grant authority per skill scope as above.

skill_archive

Archive a tenant-owned skill (soft + reversible) — hides it from skill_list without deleting; pass unarchive:true to restore. Platform skills and system skills are rejected. Use when a skill is mis-configured but still linked to agents (a hard delete would conflict). Returns: { status:"archived"|"unarchived", id, archived_at, note, audit }. Platform skills (tenant_id IS NULL) and system skills are rejected with { error }. Permissions: write; Company-Admin only.