Skip to main content

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.

KindCountSource
Skills276catalog/navin/skills/<name>/SKILL.md
Plugins17catalog/navin/builtin_plugins/<name>/plugin.json
Commands28catalog/navin/builtin_commands/<name>.md
Agents14catalog/navin/builtin_agents/<name>.md
Packs12packs/<name>/plugin.yaml, packs/templates/<name>/plugin.yaml

Skills, plugins, commands, agents and packs​

KindWhat it isHow it is used
SkillsA 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.
PluginsA 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.
CommandsA 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>.
AgentsA 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.
PacksA 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/navin is a read only copy written by python tools/navin_library/sync.py; python tools/navin_library/sync.py --check reports a copy that no longer matches the source.
  • catalog/navin/index.json lists 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; q searches the name and the description, category filters) 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.

ReasonMeaning
untrusted_signerThe signer of the registered skill is not navin-library.
not_in_libraryNo skill of this name in index.json.
digest_mismatchThe 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"}
FieldTypeRequiredDescription
kindstringYesskill, plugin, command or agent.
namestring, 1 to 128 charactersYesName 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.

ErrorHTTPCause
navin_library_kind_not_activable422The kind is not skill, plugin, command or agent.
navin_library_item_not_found404No item of this name in the library.
navin_skill_name_taken409A skill of the same name, not from the library, already exists in the tenant.
navin_library_activation_not_found404No activation of this id in the project.
project_not_found404No 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.

See also​