Skip to content

skilldrop·docs·How-to

Install a profile

Named bundles of packs, agents, and loops — install a complete setup in one command.

A profile is a named install recipe: one command installs a bundle of packs, agents, and loops. It sits above packs in the abstraction hierarchy — a pack says what skills a role needs, a profile says what a fresh machine or a new team member needs to get going.

Profiles are metadata only. Nothing moves into a profiles/ folder; each skill, agent, and loop stays in its flat location and can belong to any number of profiles.

Built-in profiles

ProfileWhat it installs
starterdev-team pack + review panel (all 3 reviewer agents) + build loop
architectsolution-architect pack + design and ship-a-draft loops
fullEvery pack, every reviewer agent, every loop

List available profiles

npx skilldrop-cli profiles

For machine-readable output:

npx skilldrop-cli profiles --json

Install a profile

npx skilldrop-cli install --profile starter

This installs each pack, then each loop, then each agent the profile declares. The same flags as a regular install apply — --project for project scope, --ide kiro for Kiro, --dest <dir> for anything else:

npx skilldrop-cli install --profile starter --project

Install from a third-party catalogue

Profiles in any catalogue you can reach with --from work the same way:

npx skilldrop-cli install --profile starter --from https://github.com/your-org/your-catalogue.git

Author a custom profile

Add an entry to profiles.json at the repo root:

{
  "profiles": {
    "my-team": {
      "description": "What our squad installs on day one.",
      "packs": ["dev-team", "stakeholder-comms"],
      "agents": ["devils-advocate", "security-reviewer", "code-quality"],
      "loops": ["build", "ship-a-draft"]
    }
  }
}

Every pack, agent, and loop you name must exist — validate.py enforces this and fails if any reference is dangling. Run it before committing:

python3 validate.py

Pack names must be folders in packs/. Agent names must match files in agents/. Loop names must match a packs/<pack>/loops/<name>/ folder.

Edit this page on GitHub · View source