Navin library reference
This reference lists every skill, plugin, command, agent and pack shipped with the platform, and explains how the platform loads, validates and enables them for one project. The pages are generated from the sources by tools/docs/gen_library_reference.py: never edit them by hand.
What the library holds
The platform ships the library of the Navin package navin version 2.4.8 (marketplace 1.1.0) in catalog/navin, and the packs in packs.
| Kind | Count | Source |
|---|---|---|
| Skills | 276 | catalog/navin/skills/<name>/SKILL.md |
| Plugins | 17 | catalog/navin/builtin_plugins/<name>/plugin.json |
| Commands | 28 | catalog/navin/builtin_commands/<name>.md |
| Agents | 14 | catalog/navin/builtin_agents/<name>.md |
| Packs | 12 | packs/<name>/plugin.yaml, packs/templates/<name>/plugin.yaml |
Skills, plugins, commands, agents and packs
| Kind | What it is | How it is used |
|---|---|---|
| Skills | A folder with a SKILL.md file: a frontmatter (name, description, metadata) and instructions in Markdown, sometimes with scripts, references and templates. | The agent reads the description and loads the instructions when a request matches it. |
| Plugins | A plugin.json manifest that groups commands, agents and skills, with the workflow steps that say which one to use at each step. | Activating a plugin activates all of its components. |
| Commands | A Markdown file whose frontmatter gives a description, an argument-hint and the allowed-tools; the body is the prompt run by the slash command. | The user types /<name> <arguments>. |
| Agents | A Markdown file that defines a subagent: name, description with triggering examples, tools, model and color, then the system prompt. | A command, a plugin step or the main agent starts the subagent. |
| Packs | A Marketplace pack (plugin.yaml, spec.format: pack): agents, subagents, skills, prompts, MCP server and tools, connector, workflows, policies, evaluations and tests. | An administrator installs it through the Marketplace with granted permissions and approvals. |
How the platform loads the library
catalog/navinis a read only copy written bypython tools/navin_library/sync.py;python tools/navin_library/sync.py --checkreports a copy that no longer matches the source.catalog/navin/index.jsonlists every skill, plugin, command and agent with the sha256 digest of its files. The Control Plane looks items up by name in this index, never by a path coming from a request.- GET /v1/navin-library gives the version and the counts, GET /v1/navin-library/{kind} lists one kind (
skills,plugins,commands,agents,mcp-presets,channels;qsearches the name and the description,categoryfilters) and GET /v1/navin-library/{kind}/{name} gives the content of one item.
How the platform validates a skill
An activated skill is registered in the Skill Registry of the tenant with the library version, the signer navin-library and the skill_md_digest of its SKILL.md. The Skill Loader serves it like any signed skill: the verification compares the digest with index.json and refuses the skill otherwise.
| Reason | Meaning |
|---|---|
untrusted_signer | The signer of the registered skill is not navin-library. |
not_in_library | No skill of this name in index.json. |
digest_mismatch | The SKILL.md digest differs from the one in index.json. |
Packs follow their own chain: enterprise-ai plugin validate, build, sign and publish, then the Marketplace preflight and installation, see the pack development guide.
How to enable an item in a project
Everything happens per project of the tenant: another project sees none of its activations. POST /v1/projects/{project_id}/navin-library/activations activates one item; it needs the editor role on the project.
{"kind": "plugin", "name": "hookify"}
| Field | Type | Required | Description |
|---|---|---|---|
kind | string | Yes | skill, plugin, command or agent. |
name | string, 1 to 128 characters | Yes | Name of the item in the library. |
A plugin activates its skills, commands and agents with it; DELETE /v1/projects/{project_id}/navin-library/activations/{activation_id} removes the plugin and everything it activated. When no active project of the tenant uses a library skill any more, the skill is marked deprecated and the Skill Loader refuses it.
from enterprise_ai import EnterpriseAI
client = EnterpriseAI("<control-plane-url>", api_key="<token>")
client.navin_library.activate("alpha", "plugin", "hookify")
print(client.navin_library.project("alpha")["counts"])
<token>: API key of a user with the editor role on the project alpha.
| Error | HTTP | Cause |
|---|---|---|
navin_library_kind_not_activable | 422 | The kind is not skill, plugin, command or agent. |
navin_library_item_not_found | 404 | No item of this name in the library. |
navin_skill_name_taken | 409 | A skill of the same name, not from the library, already exists in the tenant. |
navin_library_activation_not_found | 404 | No activation of this id in the project. |
project_not_found | 404 | No project of this id or slug in the tenant. |
Regenerate this reference
python3 tools/docs/gen_library_reference.py
python3 tools/docs/gen_library_reference.py --check
python3 tools/docs/gen_library_reference.py --missing
--check exits with 1 and lists the stale pages, or the French keys missing in docs/library/_i18n/fr.yaml. --missing prints the missing keys with their English text.