AGENTS.md · git:20260823.7975796 · 2026-08-23 · sha256 0b1a7ba799d6cfec

AGENTS.md git:20260823.7975796A

Immutable. This exact content is served forever at /api/v1/blob/0b1a7ba799d6cfec.

# Repository guidance

`skills-registry` has four user-facing surfaces:

| Surface | Distribution | Role |
|---|---|---|
| Installers and npm wrapper | `install.sh`, `install.ps1`, and `npx skills-registry` | Download and launch the matching release binary. |
| Go CLI | GitHub Release binaries | Charmbracelet TUI and headless registry commands. |
| macOS app | Signed and notarized SwiftUI app | Native GUI for the same registry and configuration. |
| Website | Static Next.js site | Project landing page and product documentation. |

## Layout and contracts

- `cli/` is the Go module. Bare invocation opens the seven-step onboarding wizard when configuration is missing and the dashboard otherwise. Headless commands are `bootstrap`, `list`, `search`, `get`, `sync`, `add`, `publish`, `remove`, and `update`; all honor `--json`.
- The wizard scans local skills, chooses a repository and visibility, performs the bulk push, installs the gateway skill, optionally cleans up local copies, and finishes with the registry URL. `bootstrap` likewise ends with the registry URL and does not print client configuration.
- The generated `skills-registry/SKILL.md` gateway is CLI-only: agents use `skills-registry search`, `get`, and other commands rather than a separate service.
- Configuration lives at `~/.config/skills-registry/registry.toml` (or `$XDG_CONFIG_HOME/skills-registry/registry.toml`). Cache and mirrors live under `~/.cache/skills-registry/` (or `$XDG_CACHE_HOME/skills-registry/`).
- `mac-app/` is the Swift package and app. Keep shared slug, frontmatter, fuzzy-search, GitHub-write, configuration, and gateway-template behavior aligned with the CLI.
- `npm/` is a thin launcher; it must not commit or bundle release binaries.
- `website/` is the static project site.
- `.mcpjam/` is a supported agent directory. Keep MCPJam agent discovery support even though the project does not ship an MCP service.

## Build and test

From `cli/` run:

```bash
go vet ./...
gofmt -l .
staticcheck ./...
deadcode -test ./...
gocyclo -over 15 -ignore "_test" .
go test ./...
```

Go naming follows standard conventions: short lowercase packages, `PascalCase` exports, `camelCase` unexported names, and preserved initialisms such as `URL`, `SHA`, and `ID`.

Native macOS jobs and Darwin release builds use the dedicated Aqua-session self-hosted runner labeled `mac-mini`; Linux, Windows, and untrusted fork jobs remain on GitHub-hosted runners. Follow `.github/AGENTS.md` for runner and signing operations.

When changing user-visible behavior, update `README.md` and `docs/registry.md`. Add or update focused tests, avoid new mandatory runtime dependencies without justification, and use conventional-commit prefixes (`feat:`, `fix:`, `docs:`, `refactor:`, `test:`, `chore:`).