feat: fleet audit tool — deduplicate agents, one identity per machine
Closes #1144. Builds a fleet audit pipeline that detects duplicate
agent identities, ghost accounts, and authorship ambiguity across
all machines.
Deliverables:
bin/fleet_audit.py — Full audit tool with four checks:
- Identity registry validation (one name per machine, unique gitea_user)
- Git authorship audit (detects ambiguous committers from branch names)
- Gitea org member audit (finds ghost accounts with zero activity)
- Cross-reference registry vs fleet-routing.json (orphan/location mismatch)
fleet/identity-registry.yaml — Canonical identity registry:
- 8 active agents (timmy, allegro, ezra, bezalel, bilbobagginshire,
fenrir, substratum, claw-code)
- 7 ghost/deprecated accounts marked inactive
- Rules: one identity per machine, unique gitea_user, required fields
tests/test_fleet_audit.py — 11 tests covering all validation rules.
Usage:
python3 bin/fleet_audit.py # full audit -> JSON
python3 bin/fleet_audit.py --identity-check # registry only
python3 bin/fleet_audit.py --git-authors # authorship only
python3 bin/fleet_audit.py --report out.json # write to file
2026-04-13 18:51:31 -04:00
|
|
|
version: 1
|
|
|
|
|
rules:
|
|
|
|
|
one_identity_per_machine: true
|
|
|
|
|
unique_gitea_user: true
|
2026-04-13 20:20:57 -04:00
|
|
|
required_fields:
|
|
|
|
|
- name
|
|
|
|
|
- machine
|
|
|
|
|
- role
|
feat: fleet audit tool — deduplicate agents, one identity per machine
Closes #1144. Builds a fleet audit pipeline that detects duplicate
agent identities, ghost accounts, and authorship ambiguity across
all machines.
Deliverables:
bin/fleet_audit.py — Full audit tool with four checks:
- Identity registry validation (one name per machine, unique gitea_user)
- Git authorship audit (detects ambiguous committers from branch names)
- Gitea org member audit (finds ghost accounts with zero activity)
- Cross-reference registry vs fleet-routing.json (orphan/location mismatch)
fleet/identity-registry.yaml — Canonical identity registry:
- 8 active agents (timmy, allegro, ezra, bezalel, bilbobagginshire,
fenrir, substratum, claw-code)
- 7 ghost/deprecated accounts marked inactive
- Rules: one identity per machine, unique gitea_user, required fields
tests/test_fleet_audit.py — 11 tests covering all validation rules.
Usage:
python3 bin/fleet_audit.py # full audit -> JSON
python3 bin/fleet_audit.py --identity-check # registry only
python3 bin/fleet_audit.py --git-authors # authorship only
python3 bin/fleet_audit.py --report out.json # write to file
2026-04-13 18:51:31 -04:00
|
|
|
agents:
|
2026-04-13 20:20:57 -04:00
|
|
|
- name: timmy
|
|
|
|
|
machine: local-mac
|
|
|
|
|
role: father-house
|
|
|
|
|
gitea_user: timmy
|
|
|
|
|
active: true
|
|
|
|
|
lane: orchestration
|
|
|
|
|
notes: The father. Runs on Alexander's Mac. Hermes default profile.
|
|
|
|
|
- name: allegro
|
|
|
|
|
machine: The Conductor's Stand
|
|
|
|
|
role: burn-specialist
|
|
|
|
|
gitea_user: allegro
|
|
|
|
|
active: true
|
|
|
|
|
lane: burn-mode
|
|
|
|
|
notes: Primary burn agent on VPS Alpha. Fast execution.
|
|
|
|
|
- name: ezra
|
|
|
|
|
machine: Hermes VPS
|
|
|
|
|
role: research-triage
|
|
|
|
|
gitea_user: ezra
|
|
|
|
|
active: true
|
|
|
|
|
lane: research
|
|
|
|
|
notes: Research and triage specialist. VPS Ezra.
|
|
|
|
|
- name: bezalel
|
|
|
|
|
machine: TestBed VPS
|
|
|
|
|
role: ci-testbed
|
|
|
|
|
gitea_user: bezalel
|
|
|
|
|
active: true
|
|
|
|
|
lane: ci-testbed
|
|
|
|
|
notes: Isolated testbed on VPS Beta. Build verification and security audits.
|
|
|
|
|
- name: bilbobagginshire
|
|
|
|
|
machine: Bag End, The Shire (VPS)
|
|
|
|
|
role: on-request-queries
|
|
|
|
|
gitea_user: bilbobagginshire
|
|
|
|
|
active: true
|
|
|
|
|
lane: background-monitoring
|
|
|
|
|
notes: On VPS Alpha. Ollama-backed. Low-priority Q&A only.
|
|
|
|
|
- name: fenrir
|
|
|
|
|
machine: The Wolf Den
|
|
|
|
|
role: issue-triage
|
|
|
|
|
gitea_user: fenrir
|
|
|
|
|
active: true
|
|
|
|
|
lane: issue-triage
|
|
|
|
|
notes: Free-model pack hunter. Backlog triage.
|
|
|
|
|
- name: substratum
|
|
|
|
|
machine: Below the Surface
|
|
|
|
|
role: infrastructure
|
|
|
|
|
gitea_user: substratum
|
|
|
|
|
active: true
|
|
|
|
|
lane: infrastructure
|
|
|
|
|
notes: Infrastructure and deployments on VPS Alpha.
|
|
|
|
|
- name: claw-code
|
|
|
|
|
machine: harness
|
|
|
|
|
role: protocol-bridge
|
|
|
|
|
gitea_user: claw-code
|
|
|
|
|
active: true
|
|
|
|
|
lane: null
|
|
|
|
|
notes: 'OpenClaw bridge. Protocol adapter, not an endpoint. See #836.'
|
|
|
|
|
- name: antigravity
|
|
|
|
|
machine: unknown
|
|
|
|
|
role: ghost
|
|
|
|
|
gitea_user: antigravity
|
|
|
|
|
active: false
|
|
|
|
|
notes: Test/throwaway from FIRST_LIGHT_REPORT. Zero activity.
|
|
|
|
|
- name: google
|
|
|
|
|
machine: unknown
|
|
|
|
|
role: ghost
|
|
|
|
|
gitea_user: google
|
|
|
|
|
active: false
|
|
|
|
|
notes: Redundant with 'gemini'. Use gemini for all Google/Gemini work.
|
|
|
|
|
- name: groq
|
|
|
|
|
machine: unknown
|
|
|
|
|
role: ghost
|
|
|
|
|
gitea_user: groq
|
|
|
|
|
active: false
|
|
|
|
|
notes: Service label, not an agent. groq_worker.py is infrastructure.
|
|
|
|
|
- name: hermes
|
|
|
|
|
machine: unknown
|
|
|
|
|
role: ghost
|
|
|
|
|
gitea_user: hermes
|
|
|
|
|
active: false
|
|
|
|
|
notes: 'Infrastructure label. Real wizards: allegro, ezra.'
|
|
|
|
|
- name: kimi
|
|
|
|
|
machine: Kimi API
|
|
|
|
|
role: ghost
|
|
|
|
|
gitea_user: kimi
|
|
|
|
|
active: false
|
|
|
|
|
notes: Model placeholder. KimiClaw is the real account if active.
|
|
|
|
|
- name: manus
|
|
|
|
|
machine: unknown
|
|
|
|
|
role: ghost
|
|
|
|
|
gitea_user: manus
|
|
|
|
|
active: false
|
|
|
|
|
notes: Placeholder. No harness configured.
|
|
|
|
|
- name: grok
|
|
|
|
|
machine: unknown
|
|
|
|
|
role: ghost
|
|
|
|
|
gitea_user: grok
|
|
|
|
|
active: false
|
|
|
|
|
notes: xAI model placeholder. No active harness.
|
|
|
|
|
- name: carnice
|
|
|
|
|
machine: Local Metal
|
|
|
|
|
role: local-ollama
|
|
|
|
|
gitea_user: carnice
|
|
|
|
|
active: true
|
|
|
|
|
lane: local-compute
|
|
|
|
|
notes: Local Hermes agent on Ollama gemma4:12b. Code generation.
|
|
|
|
|
- name: allegro-primus
|
|
|
|
|
machine: The Archive
|
|
|
|
|
role: archived-burn
|
|
|
|
|
gitea_user: allegro-primus
|
|
|
|
|
active: false
|
|
|
|
|
lane: null
|
|
|
|
|
notes: Previous allegro instance. Deprecated in favor of current allegro.
|