Skip to main content

Three-Tier Priority

Skills are stored in Cloudflare KV under three namespaced layers, resolved with strict priority: Resolution stops at the first hit. A private skill always shadows an official skill of the same name.

Unified JSON Format

Every skill entry is stored as a single JSON blob:

Full KV Namespace

Deprecated (self-healing migration in progress): credits:{uid}, tier:{uid}, user:uid:{hash}

Parsing

engine/parser.ts (SkillParser.parse()) handles two formats:
  • Unified JSON (primary) — detected by input.trim().startsWith('{'), parsed directly
  • Legacy Markdown (fallback) — H1 as name, YAML block as implementation, JSON block as parameters
The parser normalizes both formats into a standard SkillSpec struct before execution.

Admin Sync

Skills are pushed into KV by uniskill-web via:
  • POST /v1/admin/sync_skill — single skill upsert (accepts ADMIN_KEY or INTERNAL_API_SECRET)
  • POST /v1/admin/sync_cache — bulk cache invalidation
  • POST /v1/admin/refresh-tools — writes mcp_broadcast:tools_changed to trigger global MCP tool list refresh