skill-pool --version 1.0

Compose AI agents from skills.

Self-hosted Claude Code registry for teams. Publish, install, browse, and govern SKILL.md / subagents / slash commands / plugins — under tenant-scoped SSO with a full audit trail.

Rust / Axum SvelteKit 2 Postgres 17 + pgvector MIT
~/code/acme-billing-service — skill-pool bootstrap

The single-developer story is solved. The team story isn't.

Anthropic shipped SKILL.md as the open standard for Claude Code's extensibility — skills, subagents, slash commands. Drop a file under ~/.claude/skills/ and Claude picks it up.

But every engineer hand-rolls their own .claude/, copy-pastes from awesome-lists, and the working knowledge of which prompt actually solves which problem stays trapped on one laptop. skill_pool is the team layer.

Auto-bootstrap

direnv allow detects your stack (Cargo, flake.nix, package.json, pyproject, go.mod) and installs matching skills with one keystroke.

Projects

Per-codebase curated bundles. Curators pin acme-billing → [code-reviewer, sqlx-migrations, …]; developers git clone and get exactly that.

Retrospective Capture

Stop-hook scorer + Haiku→Sonnet drafter — solved problems become draft skills a reviewer can publish from the inbox.

Multi-tenant + SSO

Per-tenant OIDC / SAML / SCIM, scoped API tokens, SIEM-friendly audit export. Shared mode for most, dedicated mode for the regulated few.

Semantic search

bge-small embeddings on publish. /v1/skills?semantic=axum middleware ranks by meaning, not substring.

Plugins (marketplace)

Bundle skills + agents + commands + hooks + MCP servers. /plugin marketplace add once, /plugin install per bundle.

MCP transport

Claude calls search_skills and install_skill inline via the registry's MCP JSON-RPC endpoint — no shell-out.

One-binary deploy

Nix flake · Docker Compose · NixOS module · Helm chart · Terraform AWS. Pick what fits your platform team.

Lifecycle & decay

Every publish is an immutable version. last_used > 6mo ∧ uses < 3 flags archive candidates for cleanup.

From zero to bootstrapped, in one prompt.

$ skill-pool detect --json
{"stack": ["rust", "axum", "postgres", "nixos"]}

$ skill-pool bootstrap --yes
detected: rust, axum, postgres, nixos
OK installed 4 skills matching your stack
   ↪ rust-error-handling · axum-middleware · sqlx-migrations · nixos-module-style

$ skill-pool search "redis queue"
SLUG                     VERSION  USED   DESCRIPTION
redis-job-queue          1.2.0    34×    Fail-open Redis queue with DLQ pattern
async-worker-skeleton    0.4.1    11×    tokio worker scaffold with graceful shutdown

$ skill-pool publish ./my-skill --version 1.0.0 --kind skill
  packing: 4231 bytes (my-skill@1.0.0 [skill])
  OK uploaded · sha256:9f4a…

$ skill-pool doctor
OK registry reachable
OK token valid · tenant: acme
OK 12 skills linked into .claude/skills/
OK no dangling symlinks
→ full quickstart

Stateless server, three served surfaces, one Postgres.

The Rust + Axum server exposes REST /v1/*, a public marketplace.json, and per-plugin smart-HTTP git endpoints. Plugins are a composition layer above skills/agents/commands — one published row pins existing catalogue entries by (slug, kind, version).

flowchart LR subgraph dev[Developer machine] CLI[skill-pool CLI] CC["Claude Code
/plugin install"] end subgraph server[skill-pool server] API["REST API
/v1/*"] MARKET["marketplace.json
(public)"] GIT["git/plugins/<slug>.git"] end subgraph data[Storage] PG[(Postgres 17
+ pgvector)] OBJ[(opendal
S3 / fs)] REDIS[(Redis
optional)] end Web[Svelte portal] CLI -->|Bearer| API Web -->|session| API CC -->|GET| MARKET CC -->|clone| GIT API --> PG API --> OBJ API -.-> REDIS MARKET --> PG GIT --> OBJ
→ architecture deep-dive

When you reach for this.

15-engineer startup

Three product teams, divergent .claude/ folders, no shared review of what's actually working. Curate per-repo bundles; direnv installs them on clone.

Multi-tenant SaaS

Customer support, success, and platform each need different skills. One server, three tenants, SSO + scoped tokens, branded portal per tenant.

Regulated enterprise

Auditable SIEM exports, secret-scan on every publish, dedicated DB/bucket for tenants under SOC 2 / FedRAMP scope.

Knowledge capture

Stop-hook scorer surfaces "this session looked like a real fix" — a Sonnet drafter writes SKILL.md, a reviewer publishes from inbox.

→ full scenarios