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β
Model A: Single Org Plugin (Recommended)β
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 Name | Skill Invocation | Verdict |
|---|---|---|
"acme" | /acme:review-code | Too long |
"acme" | /acme:review-code | Good β org identity, short |
"ab" | /ab:review-code | Fine 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'sdist/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:Xand/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-codenot/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:
- Skill asks for org name (or reads from git remote, or env var)
- 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)
- Adds that marketplace and installs the org plugin
- 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.
Recommended: Three-Path Strategyβ
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:
- Get the plugin automatically (managed settings)
- Get .claude/ by cloning a repo (sync)
- Use
/ab connectfor self-service setup - 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.