Skip to main content

How Developers Get Their Org's AgentBoot

The gap: AgentBoot (generic framework) and Acme-AgentBoot (org's custom rules, personas, domain knowledge) are two different things. A developer who installs "agentboot" gets the framework. How do they get their company's customizations?


The Two Layers​

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Layer 2: Org Customizations β”‚
β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚
β”‚ β”‚ Custom β”‚ β”‚ Domain β”‚ β”‚ Org-specific β”‚ β”‚
β”‚ β”‚ personas β”‚ β”‚ gotchas β”‚ β”‚ traits β”‚ β”‚
β”‚ β”‚ (HIPAA β”‚ β”‚ (Postgresβ”‚ β”‚ (coding β”‚ β”‚
β”‚ β”‚ reviewer) β”‚ β”‚ RLS, β”‚ β”‚ standards, β”‚ β”‚
β”‚ β”‚ β”‚ β”‚ Lambda) β”‚ β”‚ brand voice)β”‚ β”‚
β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚
β”‚ β”‚ Hooks β”‚ β”‚ Managed β”‚ β”‚ MCP servers β”‚ β”‚
β”‚ β”‚ (PHI β”‚ β”‚ settings β”‚ β”‚ (knowledge β”‚ β”‚
β”‚ β”‚ scan) β”‚ β”‚ (permissions)β”‚ β”‚ base) β”‚ β”‚
β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ Layer 1: AgentBoot Core β”‚
β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚
β”‚ β”‚ code- β”‚ β”‚ security- β”‚ β”‚ test- β”‚ β”‚
β”‚ β”‚ reviewer β”‚ β”‚ reviewer β”‚ β”‚ generator β”‚ β”‚
β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚
β”‚ β”‚ Core traits: critical-thinking, β”‚ β”‚
β”‚ β”‚ structured-output, source-citation, etc. β”‚ β”‚
β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚
β”‚ β”‚ Build β”‚ β”‚ Validate β”‚ β”‚ Sync β”‚ β”‚
β”‚ β”‚ system β”‚ β”‚ system β”‚ β”‚ system β”‚ β”‚
β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

The developer needs both layers. The question is: how do they arrive?


Five Connection Models​

The org's platform team uses AgentBoot (the build tool) to produce a single, self-contained plugin that includes core + org customizations, already composed. The developer only installs one thing.

Platform team workflow:

# One-time install
agentboot install --hub --org acme-corp
# Edit agentboot.config.json, add custom personas, traits, hooks, domain layers
agentboot build
agentboot export --format plugin --name acme
# Commit the exported plugin + marketplace.json to your private marketplace repo
# (a marketplace is just a Git repo β€” see "Private Marketplace Hosting" below)

Developer workflow:

# One-time (or IT force-enables via managed settings)
/plugin marketplace add acme-corp/acme-personas
/plugin install acme

# That's it. They now have:
# - Core personas (code-reviewer, security-reviewer, etc.)
# - Org personas (hipaa-reviewer, compliance-checker, etc.)
# - Org traits (acme-standards, phi-awareness, etc.)
# - Compliance hooks (PHI scanning, credential blocking)
# - Domain gotchas rules
# - MCP servers (knowledge base)
# All namespaced: /acme:review-code, /acme:review-security

Plugin Naming Strategy​

The plugin name in plugin.json IS the namespace prefix for all skills. Keep it short:

Plugin NameSkill InvocationVerdict
"acme"/acme:review-codeToo long
"acme"/acme:review-codeGood β€” org identity, short
"ab"/ab:review-codeFine for internal use

For a private marketplace with a single org plugin, use the shortest recognizable name. There's no collision risk in a private context. The name field accepts any kebab-case string β€” it doesn't have to match the repo name, directory name, or marketplace name.

How the connection happens:

  • Managed settings force-enable: developer does nothing, it just appears
  • Onboarding doc says "run this command": /plugin marketplace add acme-corp/acme-personas
  • Repo README mentions it
  • Tech lead tells them in standup

Pros:

  • Simplest developer experience (one install, everything works)
  • Core and org customizations are pre-composed (no assembly)
  • Version-controlled as a unit
  • IT can force-enable via managed settings
  • Namespace prevents conflicts with anything else

Cons:

  • Org doesn't get core updates automatically (must rebuild when AgentBoot core updates)
  • Larger plugin (includes core + org)

Private Marketplace Hosting​

A marketplace is just a Git repo β€” not an artifact server like Maven/Nexus. No special infrastructure required.

Monorepo approach (plugins in the same repo as marketplace.json):

acme-personas/ # Private GitHub/GitLab/Bitbucket repo
β”œβ”€β”€ .claude-plugin/
β”‚ └── marketplace.json # Plugin catalog
└── plugins/
└── acme/ # The org plugin
β”œβ”€β”€ .claude-plugin/
β”‚ └── plugin.json # name: "acme"
β”œβ”€β”€ agents/
β”œβ”€β”€ skills/
β”œβ”€β”€ hooks/
└── .mcp.json
// .claude-plugin/marketplace.json
{
"name": "acme-personas",
"owner": { "name": "Acme Platform Team" },
"plugins": [
{
"name": "acme",
"source": "./plugins/acme",
"description": "Acme engineering personas and compliance",
"version": "1.0.0"
}
]
}

Multi-repo approach (plugins in separate repos):

{
"name": "acme-personas",
"plugins": [
{
"name": "acme",
"source": { "source": "github", "repo": "acme-corp/acme-plugin", "ref": "v1.0.0" }
},
{
"name": "acme-data",
"source": { "source": "npm", "package": "@acme/data-plugin", "version": "^2.0.0" }
}
]
}

Plugin sources can be: relative paths, GitHub repos, any git URL (GitLab, Bitbucket, self-hosted), npm packages (including private registries), or pip packages.

Authentication: Uses existing git credentials. If git clone works for the private repo in your terminal, it works in Claude Code. For background auto-updates, set GITHUB_TOKEN / GITLAB_TOKEN / BITBUCKET_TOKEN in the environment.

IT force-install (no developer action):

// managed-settings.json (deployed via MDM)
{
"extraKnownMarketplaces": {
"acme-personas": {
"source": { "source": "github", "repo": "acme-corp/acme-personas" }
}
},
"enabledPlugins": {
"acme@acme-personas": true
}
}

Lockdown (prevent developers from adding unauthorized marketplaces):

{
"strictKnownMarketplaces": [
{ "source": "github", "repo": "acme-corp/acme-personas" }
]
}

Mitigation for core updates:

# In the personas repo CI
npm install -g agentboot@latest # Update the CLI (automatic core refresh is on the roadmap)
agentboot build # Rebuild with org customizations
# Commit the rebuilt plugin to your private marketplace repo (a Git repo)
# Developers get updates via /reload-plugins or next session

Model B: Two-Layer Plugin (Core + Org Extension)​

A developer would install the generic AgentBoot plugin from a public marketplace, then install the org plugin on top, with the org plugin extending core rather than replacing it. AgentBoot does not publish such a plugin, and v1.0 ships no command that would install one β€” the first half of this workflow has nothing behind it, so the model below is a comparison sketch, not a procedure.

Not available today: the canonical public repo is agentboot-dev/agentboot, but a generic core plugin is not yet published to a public marketplace, so the first half of this workflow has nothing to install. This model is described for architectural comparison only β€” use Model A (single org plugin built from your hub's dist/plugin/ output) in practice.

Developer workflow (hypothetical):

/plugin marketplace add agentboot-dev/agentboot # core plugin not yet published
/plugin install agentboot # Core personas

/plugin marketplace add acme-corp/acme-personas
/plugin install acme # Org extensions

How they compose:

  • Core plugin provides: /agentboot:review-code, /agentboot:review-security
  • Org plugin provides: /acme:review-hipaa, /acme:sme-compliance
  • Org plugin can also add hooks, rules, and MCP servers that layer on top

Pros:

  • Core updates flow independently (AgentBoot publishes, devs get it)
  • Org plugin is smaller (only customizations)
  • Clear separation of concerns

Cons:

  • Two installs (confusing for willing adopters)
  • Two namespaces (/agentboot:X and /acme:Y)
  • No way for org plugin to modify core persona behavior (can only add new personas)
  • Plugin-to-plugin composition isn't a native CC feature

Verdict: Cleaner architecture but worse developer experience. Not recommended unless CC adds plugin dependency/extension mechanisms.


Model C: Repo Already Has It (Sync-Based)​

The org's sync pipeline writes .claude/ into every target repo. When a developer clones the repo, the personas are already there. No plugin install needed.

Developer workflow:

git clone git@github.com:acme-corp/my-service.git
cd my-service
claude
# .claude/ is already populated with agents, skills, rules, hooks, traits
# /review-code just works (no namespace prefix)

How it gets there:

# In the personas repo CI (runs on merge to main)
agentboot build
agentboot sync # with sync.pr.enabled set, opens a PR per target repo updating .claude/
# Team champion merges the PR

Pros:

  • Zero developer install β€” clone and go
  • No plugin system dependency
  • No namespace prefix (/review-code not /acme:review-code)
  • Works for any tool that reads .claude/ (not just CC plugins)
  • Files are in the repo, visible, inspectable

Cons:

  • Adds files to every repo (.claude/ directory)
  • Sync PRs create merge noise
  • Files can drift if someone edits them in the target repo
  • No automatic updates (requires re-sync + merge)
  • Scales to dozens of repos; gets painful at hundreds

Verdict: Best zero-friction developer experience. The developer never installs anything β€” the governance is in the repo they're already working in. This should be the default for existing repos.


Model D: Managed Settings Push (IT-Driven)​

IT deploys configuration to developer machines via MDM or Anthropic's server-managed settings. The developer does nothing.

What gets pushed:

/Library/Application Support/ClaudeCode/
β”œβ”€β”€ managed-settings.json
β”‚ {
β”‚ "enabledPlugins": { "acme@acme-personas": true },
β”‚ "extraKnownMarketplaces": ["https://github.com/acme-corp/acme-personas"],
β”‚ "hooks": { /* compliance hooks */ },
β”‚ "permissions": { "deny": ["Bash(rm -rf *)"] },
β”‚ "allowManagedHooksOnly": true
β”‚ }
β”œβ”€β”€ managed-mcp.json
β”‚ { "mcpServers": { "acme-kb": { ... } } }
└── CLAUDE.md
## Acme Corp Development Standards
@acme-standards.md

Developer experience:

claude
# Plugin auto-installed, hooks active, MCP servers connected
# Developer didn't do anything β€” IT handled it

Pros:

  • Zero developer action (not even "run this command")
  • Strongest enforcement (OS-level, can't be overridden)
  • Perfect for compliance-first orgs
  • Skeptics get governed without opting in

Cons:

  • Requires MDM infrastructure (Jamf, Intune, etc.)
  • Or requires Anthropic Team/Enterprise plan for server-managed
  • Blunt instrument (same config for every repo on machine)
  • Doesn't help with repo-specific personas (use sync for those)

Verdict: Use for HARD guardrails and plugin force-enable only. Compliance hooks, credential blocking, and forcing the org plugin to install. Don't use for persona delivery β€” that's what the plugin and sync are for.


Model E: Self-Service Install​

The developer uses /ab (the conversational interface to AgentBoot) to connect their repo to the org's hub. No CLI commands required.

Developer workflow:

/ab connect

# Interactive:
# > What organization are you with?
# > acme-corp
# > Found: acme-corp/acme-personas marketplace
# > Installing acme plugin...
# > Connected! You now have 12 personas, 8 traits, 3 compliance hooks.
# > Run /acme:review-code to try a code review.

CLI equivalent (for CI/scripting only): agentboot install --connect acme-corp

How it works under the hood:

  1. Skill asks for org name (or reads from git remote, or env var)
  2. Derives the org's marketplace repo URL by convention from the org name (AgentBoot hosts no registry of org marketplaces, and v1.0 ships none)
  3. Adds that marketplace and installs the org plugin
  4. Optionally configures local settings

Pros:

  • Self-service (no IT ticket, no Slack message)
  • Discoverable (the skill guides you)
  • Works for contractors/new hires who aren't in MDM yet
  • Could auto-detect org from git remote (git@github.com:acme-corp/... β†’ acme-corp)

Cons:

  • Requires the generic agentboot plugin first (chicken-and-egg)
  • Auto-detection from git remote is fragile
  • Discovery registry adds complexity

Verdict: Nice onboarding UX but not the primary connection method. Good as a fallback for developers who aren't covered by MDM or repo sync.


Different paths for different situations. All three can coexist.

New developer joins Acme Corp
β”‚
β”œβ”€β”€ Path 1: IT already pushed managed settings (MDM)
β”‚ └── Plugin auto-installed, hooks active. Done.
β”‚
β”œβ”€β”€ Path 2: Developer clones an Acme repo
β”‚ └── .claude/ already has personas from sync. Done.
β”‚
└── Path 3: Developer working on new/unsynced repo
└── /ab connect or manual plugin install

Path 1: Managed Settings (Compliance + Plugin Auto-Install)​

Who: Every developer on a managed machine. What gets pushed: Force-enabled org plugin + HARD guardrail hooks. Result: Developer opens Claude Code β†’ plugin is there β†’ compliance hooks active.

Path 2: Repo Sync (Repo-Specific Personas)​

Who: Every developer who clones an org repo. What's in the repo: .claude/ with compiled agents, skills, rules, traits. Result: Developer clones β†’ claude β†’ personas work immediately.

Path 3: Self-Service (Catch-All)​

Who: Contractors, new hires before MDM, developers on new repos. What they do: /ab connect or manual marketplace add. Result: Plugin installed, ready to go.

How They Layer​

Managed Settings (HARD guardrails, forced plugin)
└── Org Plugin (personas, traits, org-wide hooks, MCP servers)
└── Repo .claude/ (repo-specific rules, path-scoped gotchas)
└── User preferences (~/.claude/CLAUDE.md, personal rules)

All four layers compose. A developer on a managed machine, working in a synced repo, with the org plugin installed, gets the union of all layers. Nothing conflicts because the scope hierarchy handles precedence.


Non-Claude Code Org Connection​

The five connection models above are CC-centric. For orgs using Copilot, Cursor, or mixed toolchains, the connection is simpler β€” but also less capable.

Copilot Orgs​

How developers get org customizations:

The only delivery path is repo sync. There is no plugin marketplace, no managed settings, no force-enable. The platform team runs agentboot sync and the generated files land in the repo:

.github/
β”œβ”€β”€ copilot-instructions.md # Always-on instructions (org + team layers)
β”œβ”€β”€ prompts/
β”‚ β”œβ”€β”€ review-code.prompt.md # /review-code slash command
β”‚ β”œβ”€β”€ review-security.prompt.md
β”‚ └── gen-tests.prompt.md
└── instructions/
β”œβ”€β”€ database.instructions.md # Path-scoped (glob frontmatter)
└── lambda.instructions.md
skills/
β”œβ”€β”€ code-reviewer/SKILL.md # Agent Skills (CLI agent mode)
└── security-reviewer/SKILL.md

Developers clone the repo β†’ open VS Code β†’ Copilot reads the instructions and prompts automatically. No install step.

Org-level custom instructions: Copilot Enterprise supports org-wide custom instructions configured in GitHub org settings. AgentBoot's org-scope always-on instructions map here, but must be copy-pasted into the GitHub admin UI (no API sync for this yet).

What's missing vs. CC:

  • No plugin system β†’ no private marketplace, no force-enable, no version management
  • No hooks β†’ compliance is advisory only (instruction-based refusal)
  • No managed settings β†’ no HARD guardrails
  • No self-service connect β†’ developer gets what's in the repo, period

Cursor Orgs​

How developers get org customizations:

Also repo sync only:

.cursor/
└── rules/
β”œβ”€β”€ org-standards.mdc # Always-on (alwaysApply: true)
β”œβ”€β”€ gotchas-database.mdc # Path-scoped (globs frontmatter)
└── gotchas-lambda.mdc
.cursorrules # Legacy single-file (flattened org instructions)
skills/
β”œβ”€β”€ code-reviewer/SKILL.md
└── security-reviewer/SKILL.md

What's missing vs. CC:

  • No plugin system, no hooks, no managed settings, no org-level config
  • Basically instruction files in the repo β€” that's the entire governance surface

Mixed-Toolchain Orgs​

When an org has CC, Copilot, AND Cursor users:

agentboot sync
β”‚
β”œβ”€β”€ CC repos: .claude/ (full native β€” agents, skills, rules, hooks, MCP)
β”œβ”€β”€ Copilot repos: .github/ (instructions, agents, path-scoped rules, compliance hooks)
β”œβ”€β”€ Cursor repos: .cursor/ (rules, skills)
└── All repos: skills/ (agentskills.io β€” cross-platform)

The repo's platform field in repos.json determines which format it receives. The MCP server is the equalizer β€” it works in all three platforms and provides the same persona invocation regardless of which tool the developer uses.

The governance gap: CC repos get hooks, managed settings, and plugin force-enable. Copilot repos get blocking compliance hooks (.github/hooks/agentboot.json, exit code 2) but no managed-settings channel, and command-hook timeouts fail open. Cursor and other community-tier repos get instructions only β€” advisory. There is no managed-settings HARD-guardrail channel on non-CC platforms today. AgentBoot is transparent about this gap rather than overpromising (see the platform capability matrix, and run agentboot conformance to test declared enforcement empirically). The compliance story beyond hooks is: instruction-based refusal + CI-based review (PR bots) + organizational policy.


Build Status​

The org-connection building blocks described on this page are shipped: agentboot build emits a loadable Claude Code plugin (dist/plugin/) and the managed-settings bundle (dist/managed/) for MDM deployment, agentboot connect / agentboot hubs / agentboot use handle hub linking, and agentboot sync distributes to the fleet. Remaining forward-looking pieces β€” a ready-made public marketplace, plugin update notifications, and further onboarding polish β€” are tracked on the roadmap, not here.


The Full Picture​

Org Platform Team Individual Developer
───────────────── ────────────────────

agentboot.config.json ──┐
custom personas ─────────
domain layers ───────────
gotchas rules ───────────
compliance hooks β”€β”€β”€β”€β”€β”€β”€β”˜
β”‚
agentboot build
β”‚
agentboot export
β”‚
β”Œβ”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ β”‚
β–Ό β–Ό
Plugin .claude/
(marketplace) (sync to repos)
β”‚ β”‚
β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚
└───►│ Developer β”‚β—„β”€β”€β”˜
β”‚ β”‚
β”‚ Also gets: β”‚
β”‚ - managed │◄── IT pushes via MDM
β”‚ settings β”‚
β”‚ - personal │◄── ~/.claude/CLAUDE.md
β”‚ prefs β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Most developers rarely run the raw agentboot CLI directly β€” /ab is their interface. They either:

  1. Get the plugin automatically (managed settings)
  2. Get .claude/ by cloning a repo (sync)
  3. Use /ab connect for self-service setup
  4. Some combination of all three

AgentBoot is invisible to the end developer. They see personas, skills, and hooks β€” not a framework. When they do interact with AgentBoot directly, /ab is the conversational interface β€” the CLI is for platform teams and CI pipelines.


The Developer Experience​

For the individual developer, the day-to-day interaction with AgentBoot is through /ab β€” a conversational skill inside Claude Code. There is no CLI to learn, no config files to edit, no build commands to run.

Initial setup: /ab connect detects the org from git remotes (or asks), installs the org plugin, and confirms what personas are available. One conversation, done.

Ongoing use: Developers invoke personas directly (/review-code, /gen-tests). When they want to contribute back β€” propose a new gotcha, suggest a trait improvement, promote a personal pattern to the team β€” they use /ab:

/ab propose gotcha "Lambda functions in src/lambdas/ must use structured logging"
/ab promote trait my-error-handling --to team
/ab status

Every /ab action that modifies hub content creates a pull request on the ab/* branch. The developer never touches the hub repo directly.

The CLI (agentboot) is for platform teams and CI. It handles validate, build, sync, export, and other pipeline operations that run in automated environments. Developers do not need it installed.