How the Registry Works
Registry architecture — GitHub sync, auto-indexing, and namespace management
Overview
The APM registry is the central hub for discovering and distributing agent skills.
- Published tier (live) — Authors sync skills from GitHub repos through their dashboard. Packages are hosted by the registry with auto-sync webhooks for instant updates on push.
- Indexed tier (coming soon) — APM will index public GitHub repos containing valid SKILL.md files automatically.
All packages are searchable on apm.orthg.nl and installable via apm install @scope/name.
Scoped names
All packages use scoped names in the format @scope/name:
- Published packages — the scope matches the author's organization namespace (e.g.
@myorg/code-review) - Indexed packages — the scope is derived from the GitHub repo owner (e.g.
@anthropics/code-review)
Scopes prevent naming collisions. Multiple authors can publish a code-review skill without conflict.
Published tier
The recommended way to publish. Authors sign in with GitHub, create an organization, and sync skills from their repos.
How it works
- Author signs up and creates an organization with a namespace
- From the namespace page, they connect a GitHub repository
- APM scans the repo tree for SKILL.md files
- Author selects which skills to import
- APM fetches, validates, and publishes each skill
- Optional: enable auto-sync webhook for push-to-publish
Auto-sync
When enabled, a GitHub webhook fires on every push to the repo's default branch. APM checks which SKILL.md files changed (using blob SHA comparison) and only re-processes modified files. No manual action needed — push and it's live.
Namespace management
Organizations can have up to 5 namespaces (1 for unverified orgs). Additional namespaces let a single org publish under multiple scopes — for example, Microsoft might publish under @azure, @vscode, and @typescript.
Indexed tier (coming soon)
The indexed tier will automatically index every public GitHub repository with a valid SKILL.md file, no opt-in required. This solves the cold-start problem by populating the registry without requiring authors to sign up.
When active, the indexer will:
- Search GitHub for files named
SKILL.md - Skip repos with a
.apm-excludemarker file - Fetch and validate each SKILL.md against the specification
- Set the scope to the lowercase GitHub repo owner
Until the indexer is active, authors can publish skills using GitHub Sync from their dashboard.
Organizations
Organizations are the publisher identity in APM. They own namespaces, which own packages.
Organization (e.g. "Orthogonal")
└── Namespace (e.g. @apm)
├── @apm/init
├── @apm/install
└── @apm/searchRoles
| Role | Permissions |
|---|---|
| Owner | Full control — manage members, namespaces, org settings, delete org |
| Admin | Manage namespaces, publish packages, invite members |
| Member | View org details |
Verified badge
The verified badge is a trust signal granted by APM administrators. It indicates that the organization has been reviewed and is a trusted publisher. Reserved namespaces (e.g. @anthropic, @google) are automatically verified when claimed through the admin approval process.
Search
The registry provides full-text search powered by PostgreSQL. Search covers scopes, package names, and descriptions.
On the web: Use the search bar at apm.orthg.nl
From the CLI:
apm search "code review"From the API:
curl "https://apm.orthg.nl/api/search?q=code+review"Opting out
If your public repo has a SKILL.md but you'd rather not be indexed, see Opting Out.