Young's Mind
Tech

Persona audit — all agents, both hosts. One real defect found and fixed.

Requested by: Young (DM 2026-09-28): "That is true, Alpha is now only available on opencode on production server" → "Thanks Tam, pls clean up personas for all agents". Method: scripted audit across all three persona trees (name-vs-body identity, foreign X Persona headers, [Name] voice anchors, per-file name-frequency) run separately on LAB over LAN SSH and on prod via the tam_server_key; then single-match guarded edits with backups on the one defective file, verified by read-back.

Persona audit — all agents, both hosts. One real defect found and fixed.

Requested by: Young (DM 2026-09-28): "That is true, Alpha is now only available on opencode on production server" → "Thanks Tam, pls clean up personas for all agents". Method: scripted audit across all three persona trees (name-vs-body identity, foreign X Persona headers, [Name] voice anchors, per-file name-frequency) run separately on LAB over LAN SSH and on prod via the tam_server_key; then single-match guarded edits with backups on the one defective file, verified by read-back.

Audit result per tree

TreeAgentsVerdict
lab:~/.solos/personas/ (canonical)ace, alpha, atlas, echo, min, mira, nova, solall clean — every file's header names its own agent; no foreign [Name] anchors; alpha.md and atlas.md are genuinely distinct files (sha differ) with correctly separated identity lines
lab:~/.solos/config/opencode/agents/8 agent stubsclean (thin per-agent stubs, own front-matter)
prod:~/.config/opencode/agent/alpha onlydefective — fixed this pass

min.md on LAB looks header-less to a # … Persona grep but is fine: it uses # Min — Coordination & Briefs Agent + ## Identity + - **You are Min**. Not a defect.

The one real defect: prod alpha.md was Atlas's persona under Alpha's name

Verified on prod before the fix — the file serving Alpha's only surface contained:

  • # 🔒 IMMUTABLE — **Atlas** Persona header
  • | Domain | **Atlas** | Delegates to | delegation table
  • 5 voice-anchor examples all prefixed [Atlas] …
  • *Appended by **Atlas** as corrections…* / *…when drift is detected…* footers
  • - **Your surfaces are dual** — you operate on **Telegram** (@**SolOSAtlas_bot**)… — Alpha has no bot; its Hermes profile was retired 2026-09-28
  • 1. **Six ADK2 Agents**: Sol…Atlas … :8300-8306 — the retired pre-LAB topology

Applied fixes (prod alpha.md, two guarded passes, backups *.bak-alphafix*)

  1. Header Atlas Persona → Alpha Persona
  2. Identity line → Alpha as the OpenCode-side surface, naming its real endpoints (:4090 web / :49374 API, loopback + nginx) and its A2A twin Atlas (:8306)
  3. Delegation table header Atlas → Alpha
  4. 5 × [Atlas] voice anchors → [Alpha]
  5. Surfaces line → OpenCode-only; states plainly there is no Telegram bot and Hermes retired
  6. Both "Appended by Atlas" footers → Alpha
  7. Fleet inventory → the eight-agent LAB A2A layout (Sol :8300 … Min :8307, offsite Eve/Eva/Tam doors) with the ADK2 six-agent layout marked retired
  8. Stale Mira↔Atlas milestone note annotated as historical

Read-back on prod: [Atlas] anchors 0 · Atlas Persona 0 · SolOSAtlas_bot 0 · Six ADK2 Agents 0 · Alpha header 1 · [Alpha] anchors 5.

Scope notes / what this pass did NOT touch

  • No other prod agent file exists (agent/ holds only alpha.md); the other seven personas live on LAB and are clean.
  • LAB alpha.md remains the canonical Alpha persona and was left as-is; the prod file is a legitimately different surface (OpenCode agent, not A2A peer) and now describes itself accurately rather than borrowing Atlas's voice.
  • prod alpha.md still loads on the next OpenCode session; no service restart was required for a prompt-file change, and no restart was performed.
  • Atlas-vs-Alpha operational split is a design decision Young owns; this pass only removed the false-identity residue.
Copyright © 2026