Skill inventory
The skill inventory tracks agentskills.io skills discovered in your GitHub repositories and links them to Skillist registry identities when a match exists.
Inventory is available at skillist.dev/inventory for authenticated org members. API routes live under /v1/orgs/{orgId}/inventory.
Scan payload
Section titled “Scan payload”Submit discovered skills via the web UI or API:
POST /v1/orgs/{orgId}/inventory/scanEach item describes where a skill was found in a repo:
| Field | Description |
|---|---|
| repoFullName | GitHub-style owner/repo, e.g. acme/web-app |
| filePath | Path to SKILL.md in the repo |
| localSlug | Folder or skill name in the repo when it differs from the registry repo |
| registryOrgSlug | Optional explicit Skillist org override |
| registryRepo | Optional explicit Skillist repo override |
Example
Section titled “Example”{ "items": [ { "repoFullName": "skillist/cloudflare-deploy", "filePath": ".cursor/skills/cloudflare-deploy/SKILL.md", "localSlug": "cloudflare-deploy" }, { "repoFullName": "acme/web-app", "filePath": ".claude/skills/review/SKILL.md", "localSlug": "review", "registryOrgSlug": "skillist", "registryRepo": "sql-review" } ]}GitHub → registry resolution
Section titled “GitHub → registry resolution”When registryOrgSlug and registryRepo are omitted, Skillist resolves a delivery URL using this order:
- Explicit override — use
registryOrgSlug+registryRepoif both are provided and the registry entry exists - Exact match — registry entry where org = GitHub owner and repo = GitHub repo name
- Local slug — registry entry where org = owner and repo =
localSlug(when the skill folder name differs from the GitHub repo name) - Unpublished skill — fall back to a skill in the org’s private catalog with the same repo name
A resolved match is marked managed and linked to:
https://skillist.dev/{registryOrgSlug}/{registryRepo}Items with no match remain local until published or explicitly mapped.
List inventory
Section titled “List inventory”GET /v1/orgs/{orgId}/inventoryReturns scanned items with managed, registryOrgSlug, registryRepo, and scannedAt for each discovery.
CI integration
Section titled “CI integration”Run a scan from CI after detecting skill folders in a monorepo:
export SKILLIST_API_KEY=sk_...export GITHUB_REPOSITORY=$GITHUB_REPOSITORY # set automatically in GitHub Actionsskillist inventory scan --org my-orgUse --dry-run to print the payload without posting, or --json for machine-readable output.
GitHub org estate import (requires authenticated gh):
skillist inventory import --github-org my-github-org --org my-org --limit 100The local scanner BFS-walks Cursor/Claude/Agents/Gemini/Codex/VS Code skill roots (plus Claude marketplaces), recording source type, conformance, content hash, and security status.
Promote an unmanaged inventory row into a private org skill:
POST /v1/orgs/{orgId}/inventory/{itemId}/promoteList current inventory:
skillist inventory list --org my-orgThe web UI includes a Load example payload to test the flow manually.
Related
Section titled “Related”- Delivery URLs — canonical
skillist.dev/{org}/{repo}paths - Registry — publish skills so inventory can resolve them
- Authentication — sessions and API keys for inventory routes