AGENTS.md@packages/agentbundle/agentbundle/_data/catalogue-scaffold/profiles · git:20260729.f057596 · 2026-07-29 · sha256 8950438d9e0f57c1
AGENTS.md@packages/agentbundle/agentbundle/_data/catalogue-scaffold/profiles git:20260729.f057596A
Immutable. This exact content is served forever at /api/v1/blob/8950438d9e0f57c1.
# AGENTS.md — `profiles/` Agent-facing authoring contract for catalogue profiles. **Max 150 lines.** Read `profiles/AGENTS.local.md` when present — it carries host-specific profile policy beyond this portable contract. ## What a profile is A profile is a hand-authored TOML file at `profiles/<id>.toml` that declares a single-scope, ordered set of packs. It composes existing packs — it introduces no new primitives. The profile **id** is the filename stem. It must match `^[a-z0-9][a-z0-9-]*$`. ## Current schema fields | Field | Required | Type | Description | |-------|----------|------|-------------| | `scope` | yes | `"repo"` or `"user"` | Installation scope | | `description` | yes | string | One sentence describing the persona or workflow | | `[[packs]]` | yes | array of tables | Ordered, dependency-first list; at least one entry | | `[[packs]].pack` | yes | string | Pack name (the `[pack].name` field in `pack.toml`) | No other top-level fields are currently defined. ## Semantic rules **Scope homogeneity.** All packs must allow the profile's declared `scope`. A `"user"` profile requires every pack to have `"user"` in its `allowed-scopes`. **Required-dependency completeness.** If pack B has a required dependency on pack A, both must appear in the profile. The profile must be a self-contained dependency closure. **Dependency-first ordering.** List required dependencies before the packs that declare them. The installer runs the list in order. **No duplicate entries.** Each pack name must appear at most once. **No conflicts.** Packs with a declared conflict must not appear in the same profile. ## Filename / identity relationship The profile id is the filename stem. There is no id field in the manifest. `profiles/solution-architect.toml` → id `solution-architect`. ## Validation commands ```bash agentbundle catalogue lint --root . agentbundle catalogue verify --root . agentbundle list-profiles <catalogue> ``` ## Source-of-truth rules The TOML file is the source of truth. No generated files derive from profiles. Profiles are never projected by `catalogue self-host`. ## Reserved directories Any immediate child of `profiles/` whose name begins with `_` is a reserved authoring asset. Reserved directories are not catalogue payload — they do not appear in `list-profiles`, are not installed, and are not validated as active profiles. ## Starting from the example ```bash cp profiles/_example/profile.toml profiles/<your-profile>.toml # edit scope, description, and packs list agentbundle catalogue verify --root . ```