Skip to main content

Inventory: Agent Fleet

Agent Fleet Inventory — SENTINEL Audit 2026-05-09

Auditor: sentinel-architect
Scope: ~/.claude/agents/ vs specialist-mapping.json vs persona dirs vs chains vs definitions dual-store
Status: READ-ONLY. No files modified.


1. 66 vs 29 vs 12 Reconciliation

Raw counts (tool-verified)

Store Count Notes
~/.claude/agents/*.md 66 Includes 0.md, Explore.md, Plan.md as named agents
specialist-mapping.json mappings 29 Key: mappings object
specialist-mapping.json companies 9 ALAI, AgentForge, CodeCraft, Finverge, FlowForge, Proveo, Securion, Skybound, Vizu
Persona dirs in ~/system/agents/personas/ 12 AgentForge, Axiom, CodeCraft, Datavera, Finverge, FlowForge, Lexicon, Proveo, Resolver, Securion, Skybound, Vizu

Critical gap: 3 persona companies are completely absent from specialist-mapping.json:

  • Axiom — not in company_summary, zero agents mapped
  • Datavera — not in company_summary, zero agents mapped
  • Resolver — not in company_summary, zero agents mapped
  • Lexicon — not in company_summary, zero agents mapped (persona dir exists, skillforge.md maps to "Skillforge" not Lexicon)

So the real company gap is 4 out of 12 personas have no presence in specialist-mapping.json.


Mapped agents (29 in specialist-mapping.json)

Agent file Company On disk (~/.claude/agents/)?
alem-clone.md ALAI MISSING
angie-jones.md Proveo YES
anthropic-chief-architect.md AgentForge MISSING
brad-frost.md Vizu YES
bruce-momjian.md CodeCraft YES
builder.md CodeCraft YES
chip-huyen.md AgentForge YES
claude-code-guide.md AgentForge YES
codecraft.md CodeCraft YES
dorota-huizinga.md Proveo MISSING
georgi-gerganov.md AgentForge YES
hadi-hariri.md CodeCraft MISSING
james-bach.md Proveo MISSING
kelsey-hightower.md FlowForge YES
lea-verou.md Vizu YES
lee-robinson.md CodeCraft MISSING
lisa-crispin.md Proveo MISSING
markos-zachariadis.md Finverge YES
martin-kleppmann.md CodeCraft YES
parisa-tabriz.md Securion YES
paul-hudson.md Skybound YES
petter-graff.md CodeCraft YES
proveo.md Proveo YES
sentinel-architect.md Securion YES
sentinel-ba.md Skybound YES
sentinel-developer.md CodeCraft YES
sentinel-tester.md Proveo YES
sentinel-validator.md Proveo YES
skillforge.md Skillforge YES

7 agents mapped in specialist-mapping.json but MISSING from ~/.claude/agents/:

  1. alem-clone.md — exists in definitions/, not synced to ~/.claude/agents/
  2. anthropic-chief-architect.md — NOT in definitions/ either; completely phantom
  3. dorota-huizinga.md — exists in definitions/, not synced
  4. hadi-hariri.md — exists in definitions/, not synced
  5. james-bach.md — exists in definitions/, not synced
  6. lee-robinson.md — exists in definitions/, not synced
  7. lisa-crispin.md — exists in definitions/, not synced

anthropic-chief-architect.md is the worst case: mapped in specialist-mapping.json, NOT in definitions/, NOT in ~/.claude/agents/ — fully phantom, cannot be dispatched.


42 unmapped agents (in ~/.claude/agents/ but NOT in specialist-mapping.json)

Classification: ORPHAN = nowhere used | DUPLICATE = covered by mapped peer | NEEDS-MAPPING = used in chains/skills but unmapped

Agent Classification Reasoning
0.md ORPHAN No name, no description, artifact
agentforge.md NEEDS-MAPPING Company persona file; Axiom/Datavera/Resolver equivalents all exist — AgentForge has a persona dir but no company-level mapping entry
backend-builder.md DUPLICATE Covered by builder.md (CodeCraft, mapped)
backend-dev.md DUPLICATE Covered by codecraft.md + builder.md
baseline-comparator.md NEEDS-MAPPING Active agent (Veritas baseline, MLX-backed); used in verify-fix-loop skill; no mapping
code-reviewer.md DUPLICATE Covered by petter-graff.md / sentinel-developer.md
code-simplifier.md DUPLICATE Covered by sentinel-developer.md
database-dev.md DUPLICATE Covered by bruce-momjian.md
datavera.md NEEDS-MAPPING Company persona file for Datavera (persona dir exists, 0 mapped agents)
design-builder.md DUPLICATE Covered by brad-frost.md / lea-verou.md
devils-advocate.md NEEDS-MAPPING Pre-action blocker used in 0 chain yamls but referenced in mehanik flow; unregistered
devops-dev.md DUPLICATE Covered by kelsey-hightower.md
distiller.md NEEDS-MAPPING Used in 21 chain yaml steps (highest after builder/validator); no mapping. CRITICAL gap.
dr-sarah-chen.md ORPHAN No description parsed; no chain/skill references found
dzevad-jahic.md NEEDS-MAPPING Bosnian linguistic QA (Lexicon company, per CLAUDE.md); not in specialist-mapping.json despite CLAUDE.md routing directive
evidence-verifier.md NEEDS-MAPPING Active Veritas agent (gemma-4-26b @ FORGE); triggers on mc.js done for H tasks; no mapping
Explore.md ORPHAN Capital E; appears to be a stub
finverge.md NEEDS-MAPPING Company persona file for Finverge; persona dir mapped but no company-level agent entry
fix-builder.md NEEDS-MAPPING Write-only counterpart to verifier; used in verify-fix-loop skill; no mapping
flowforge.md NEEDS-MAPPING Company persona file for FlowForge; only kelsey-hightower.md individual is mapped
frontend-builder.md DUPLICATE Covered by lea-verou.md / lee-robinson.md
frontend-dev.md DUPLICATE Covered by lea-verou.md
fullstack-dev.md DUPLICATE Covered by codecraft.md
helixsupport.md ORPHAN Role=coordinator; 0 skill/chain references found
indy-dandev.md ORPHAN AI research agent (Indian AI + Dan Abramov persona); no chain/skill references; not used in current system
integration-dev.md DUPLICATE Covered by codecraft.md
jake-wharton.md NEEDS-MAPPING Android/Kotlin expert (Jake Wharton persona); no AgentForge/Skybound mapping entry
lexicon.md NEEDS-MAPPING Company persona file for Lexicon (documentation company per CLAUDE.md); 0 agents in specialist-mapping.json
maria-santos.md ORPHAN No description parsed; no chain/skill references found
mehanik.md NEEDS-MAPPING Core orchestration gate; referenced in 7 skill files; CLAUDE.md cites /mehanik command as mandatory pre-dispatch gate; completely absent from specialist-mapping.json
meta-agent.md ORPHAN No chain/skill references found
Plan.md ORPHAN Capital P; appears to be a stub
proxima.md NEEDS-MAPPING Marketing/content agent; referenced in 10 skill files; no company assignment
rag-builder.md ORPHAN No chain/skill references; likely superseded by AgentForge rag-tuning-agent.yaml
redzo-reviewer.md ORPHAN No chain/skill references found
resolver.md NEEDS-MAPPING Company persona for Resolver (persona dir exists, 8 internal agents; 0 in specialist-mapping.json)
securion.md NEEDS-MAPPING Company persona for Securion; parisa-tabriz.md + sentinel-architect.md individually mapped, but no company-level dispatcher
skybound.md NEEDS-MAPPING Company persona for Skybound; individual members mapped but no company dispatcher
thaer-sabri.md ORPHAN No description parsed; no chain/skill references found
validator.md NEEDS-MAPPING Used in 44 skill files and 22 chain yaml steps; one of the most-used agents in the entire system; NOT in specialist-mapping.json. CRITICAL gap.
verifier.md NEEDS-MAPPING 2 skill file references; verify-fix-loop skill; not mapped
vizu.md NEEDS-MAPPING Company persona for Vizu; brad-frost.md + lea-verou.md individually mapped, no company dispatcher

Summary of 42 unmapped:

  • ORPHAN: 10 (0.md, dr-sarah-chen.md, Explore.md, helixsupport.md, indy-dandev.md, maria-santos.md, meta-agent.md, Plan.md, rag-builder.md, redzo-reviewer.md, thaer-sabri.md) — wait, 11 counting redzo
  • Actually: 0.md, dr-sarah-chen.md, Explore.md, helixsupport.md, indy-dandev.md, maria-santos.md, meta-agent.md, Plan.md, rag-builder.md, redzo-reviewer.md, thaer-sabri.md = 11 ORPHAN
  • DUPLICATE: backend-builder.md, backend-dev.md, code-reviewer.md, code-simplifier.md, database-dev.md, design-builder.md, devops-dev.md, frontend-builder.md, frontend-dev.md, fullstack-dev.md, integration-dev.md = 11 DUPLICATE
  • NEEDS-MAPPING: 20 (agentforge, baseline-comparator, datavera, devils-advocate, distiller, dzevad-jahic, evidence-verifier, finverge, fix-builder, flowforge, jake-wharton, lexicon, mehanik, proxima, resolver, securion, skybound, validator, verifier, vizu)

Note: counts = 11+11+20 = 42. The original "37 unmapped" figure understates by 5 because it excludes alem-clone.md (mapped but disk-missing) and overcounts mapped agents that are actually absent.


2. Persona Dirs Deep Dive

All 12 persona dirs have a consistent structure: agents/, blueprints/, brand/, CLAUDE.md, company.json, config.json, legal/, ops/, README.md, skills/, state/, tools/.

Persona Has README Has CLAUDE.md Has company.json Agents inside (count) Owner in company.json In specialist-mapping.json
AgentForge YES YES YES (domain: AI) 8 N/A Partial (3 individuals mapped, no company dispatcher)
Axiom YES YES YES (domain: ARCHITECTURE) 5 N/A NO — completely absent
CodeCraft YES YES YES (domain: DEVELOPMENT) 8 N/A Partial (6 individuals mapped)
Datavera YES YES YES (domain: DATA) 8 N/A NO — completely absent
Finverge YES YES YES (domain: FINANCE) 9 N/A Partial (1 individual mapped)
FlowForge YES YES YES (domain: DEVOPS) 10 N/A Partial (1 individual mapped)
Lexicon YES YES YES (domain: DOCUMENTATION) 9 N/A NO — skillforge.md maps to "Skillforge" not Lexicon
Proveo YES YES YES (domain: QA) 8 N/A Partial (6 individuals mapped)
Resolver YES YES YES (domain: SYSTEMIC) 8 N/A NO — completely absent
Securion YES YES YES (domain: SECURITY) 8 N/A Partial (2 individuals mapped)
Skybound YES YES YES (domain: PRODUCT) 7 N/A Partial (2 individuals mapped)
Vizu YES YES YES (domain: DESIGN) 7 N/A Partial (2 individuals mapped)

Structural finding: All company.json files report owner: N/A. No human/agent owner is recorded for any virtual company. This means there is no machine-readable way to route escalation or accountability.

Persona vs mapping mismatch:

  • 87 total agents inside persona dirs (sum of agent subdirs across 12 companies) — none of these internal PI agents (builder.yaml, lead.yaml, reviewer.yaml, etc.) appear in specialist-mapping.json. specialist-mapping.json only tracks the "celebrity" individual agents, not the PI agent swarms inside each company.

3. Chain Coverage

Agents referenced in chains

Agent Times referenced in chains In specialist-mapping.json? Disk present?
builder 25 YES YES
validator 22 NO YES
distiller 21 NO YES
sentinel-validator 9 YES YES
minion 5 NO NOT in ~/.claude/agents/ (in definitions/ only)
planner 4 NO NOT in ~/.claude/agents/ at all

Critical: minion and planner are referenced in chains but have NO corresponding .md in ~/.claude/agents/.

  • minion.md exists in ~/system/agents/definitions/ but was never synced forward
  • planner does not exist in definitions/ or ~/.claude/agents/ — it is a phantom agent referenced in 3 chains (plan-build.yaml, plan-build-review.yaml, plan-review-plan.yaml)

Dead chains (0 references anywhere in skills/ or system/)

Chains that are never invoked via skills or daemons:

Chain Skill refs System refs Verdict
codecraft-api-backend.yaml 0 0 DEAD
codecraft-nextjs-app.yaml 0 0 DEAD
full-review.yaml 0 0 DEAD
minion-bugfix.yaml 0 0 DEAD
minion-docs.yaml 0 0 DEAD
minion-one-shot.yaml 0 0 DEAD
minion-refactor.yaml 0 0 DEAD
minion-security-fix.yaml 0 0 DEAD
plan-build-review.yaml 0 0 DEAD
plan-build.yaml ~1 (plan-build-test skill ref) 0 BORDERLINE
plan-review-plan.yaml 0 0 DEAD
scout-flow.yaml 0 0 DEAD
securion-security-review.yaml 0 0 DEAD

Note: The skill-*.yaml chains in the chains/ dir are not invoked by name in skills/. They appear to be template definitions, not live dispatch chains. Chains are not invoked via a chain runner — skills embed agents directly via agent: field inline. The chain YAML format appears to be an aspirational DAG definition language that has no runtime executor wired up.

Effectively ALL 35 chain YAMLs are dead — there is no chain runner in the skill system. Skills call agents directly, not via chain files.


4. Dual-Store Consistency

Files in both ~/.claude/agents/ and ~/system/agents/definitions/

48 files exist in both stores. ALL 48 are byte-for-byte SYNCED (diff returned empty for every shared file). The sync script at ~/bin/agent-definitions-sync.sh is working correctly for the files it covers.

Sync gaps

16 files ONLY in ~/.claude/agents/ (not in definitions/) — not covered by sync:

baseline-comparator.md
claude-code-guide.md
devils-advocate.md
dr-sarah-chen.md
dzevad-jahic.md
evidence-verifier.md
Explore.md
fix-builder.md
indy-dandev.md
jake-wharton.md
maria-santos.md
mehanik.md
Plan.md
redzo-reviewer.md
thaer-sabri.md
verifier.md

8 files ONLY in definitions/ (not synced to ~/.claude/agents/) — these agents are UNREACHABLE by Claude Code:

dorota-huizinga.md    ← mapped in specialist-mapping.json, should be in ~/.claude/agents/
hadi-hariri.md        ← mapped in specialist-mapping.json, should be in ~/.claude/agents/
james-bach.md         ← mapped in specialist-mapping.json, should be in ~/.claude/agents/
lee-robinson.md       ← mapped in specialist-mapping.json, should be in ~/.claude/agents/
lisa-crispin.md       ← mapped in specialist-mapping.json, should be in ~/.claude/agents/
minion.md             ← referenced in 5 chain yaml steps, unreachable
sentry-code-simplifier.md  ← not in mapping, not in chains
sp-code-reviewer.md   ← not in mapping, not in chains

The first 5 are mapped and therefore expected to be dispatched — they cannot be. Any dispatch attempt for dorota-huizinga, hadi-hariri, james-bach, lee-robinson, or lisa-crispin will silently fail or fall back.


5. Skill → Agent Linkage

Sample of 10 skills with agent dispatch analysis:

Skill Agent referenced Agent in ~/.claude/agents/? In specialist-mapping.json?
hop-build No sub-agent dispatch (marker-only skill) N/A N/A
build builder (3 parallel), rag-context-for-builder.js (tool) YES YES
code-review code-reviewer, securion sub-agent, sentinel-architect code-reviewer YES (unmapped), securion YES (unmapped dispatcher), sentinel-architect YES (mapped)
debugging No agent dispatch found in instructions N/A N/A
deploy-verify No agent (runs Playwright directly) N/A N/A
design-system No agent dispatch N/A N/A
doc-coauthoring No named agent dispatch N/A N/A
fiken-agent Self-referential meta-skill; dispatches sub-task SKILL.md files Indirect N/A
financial-overview No agent dispatch found N/A N/A
incident-response References securion agent (remediation) securion.md YES (unmapped dispatcher) NO

Flags:

  • code-review skill dispatches code-reviewer (unmapped, 44 skill refs) and securion (unmapped company dispatcher) directly by name
  • incident-response references securion as a response agent — but securion.md is NOT in specialist-mapping.json (only individual members are mapped)
  • validator is the most-used agent (44 skill files, 22 chain steps) with NO mapping entry

Open Questions

  1. Chain runner: Is there a chain executor anywhere in the system (~/system/tools/, ~/projects/, pi-orchestrator)? If not, the entire chains/ directory is documentation-only, not executable automation.

  2. planner agent: Referenced in 3 chains (plan-build, plan-build-review, plan-review-plan) but does not exist on disk anywhere. Was it renamed to distiller or mehanik?

  3. Axiom, Datavera, Resolver: Three fully-formed virtual companies with persona dirs, README, CLAUDE.md, 5-8 internal agents each — but zero presence in specialist-mapping.json. Are these active companies being used via direct session invocation (not via John routing)?

  4. anthropic-chief-architect.md: Mapped in specialist-mapping.json, absent from both ~/.claude/agents/ AND definitions/. Was this agent removed intentionally or is it a sync failure?

  5. company.json owner=N/A: All 12 companies have no human owner. Is there a separate ownership registry, or is this a gap in accountability chain?

  6. Lexicon vs Skillforge naming: CLAUDE.md routing table names the company "Lexicon" and lists "Dževad Jahić" as its agent. specialist-mapping.json has skillforge.md mapping to company "Skillforge". These are two different names for what appears to be the same documentation company. Which is canonical?

  7. ~/.claude/agents/*.md priority: Claude Code loads subagents from ~/.claude/agents/. The definitions/ store is a backup. But 8 mapped agents live only in definitions/ and are therefore unreachable. Is ~/bin/agent-definitions-sync.sh being run on any schedule?


Architectural Concerns (no auto-fix)

A. Mapping covers only 29 of 66 agents (44%) — the layer is too thin to be a reliable routing table.
The specialist-mapping.json is supposed to be John's source of truth for "who builds this?" routing. But the two highest-usage agents in the entire system (validator with 44 skill refs, distiller with 21 chain refs) are absent. Routing decisions based on this file are structurally incomplete.

B. 7 mapped agents unreachable at runtime.
Agents marked as mapped (specialist-mapping.json claims them) but missing from ~/.claude/agents/ will fail silently when dispatched. The mapping implies reachability but does not enforce it. No health check validates the mapping → disk correspondence.

C. The chain YAML layer has no executor.
35 chain YAML files define multi-step agent pipelines, but skills invoke agents directly by name — not via the chain files. The chains/ directory is a documentation artifact, not live infrastructure. All automation currently runs through inline skill → agent calls. This creates a documentation drift risk: chain files will diverge from actual behavior with no mechanism to detect it.

D. 4 virtual companies are phantom — infrastructure without routing.
Axiom, Datavera, Resolver, Lexicon each have: persona dir, README, CLAUDE.md, company.json, 5-9 internal agents. None appear in specialist-mapping.json or John's routing table. They consume disk and cognitive space but cannot be dispatched through the normal John → discover.js → specialist route. Direct session invocation (naming the company in a prompt) is the only access path — undocumented and unreliable.

E. Dual-store sync is manual and partial.
16 agents exist only in ~/.claude/agents/ (single source of truth but no backup). 8 agents exist only in definitions/ (backed up but unreachable). The sync script does not auto-run; it must be manually invoked. This creates continuous drift pressure.

F. planner is a phantom agent in live chains.
Three chains reference an agent named planner that has no .md file anywhere on disk. If these chains were ever executed, planner steps would fail with no error at the mapping layer.

G. No machine-readable owner for any virtual company.
company.json owner: N/A across all 12 companies means there is no way to auto-route escalation, billing, or accountability. This is a governance gap, not a code gap.