Corrective Action: Incomplete Agent Onboarding — Missing Registration Points, Deprecated File Write, Wrong Task Assignment
Date: April 12, 2026 Category: Verification Failure — Incomplete Process + Missing Read-Before-Write Impact: ~30 minutes of session time; Chris caught all three failures manually Resolution Time: ~40 minutes from first symptom to all corrections applied
Incident
What Happened
During the onboarding of Hone (Skill & Command Architect), Aegis declared onboarding "complete" after updating only 3 of ~10 required registration points. When sent back to finish, Aegis wrote to a deprecated file (org-roster.yaml) without reading its header. Separately, V assigned a HubSpot task to Ryan Ginsberg by defaulting to the default_user config instead of using the agent's own Friend record. Chris caught all three failures.
Timeline
| Time | Event |
|---|---|
| Session start | Chris requested onboarding of Hone |
| T+~10 min | Aegis created agent def, AGENT.md, updated INDEX.md |
| T+~12 min | Aegis reported "onboarding complete" |
| T+~13 min | Chris caught it: "Isn't there more to the onboarding than that, Aegis?" |
| T+~15 min | Aegis re-spawned to complete remaining registration points |
| T+~20 min | Aegis wrote to agents/org-roster.yaml — file header says DEPRECATED |
| T+~21 min | Chris caught it: "I thought we were not using the org-roster.yaml file anymore?" |
| T+~25 min | V created HubSpot task, assigned to Ryan Ginsberg via default_user |
| T+~26 min | Chris caught it: "Why did you assign to Ryan?" |
| T+~40 min | All corrections applied |
Root Cause
Three distinct failures, one shared pattern: asserting completion or correctness without verification.
Failure 1: Incomplete Onboarding (Primary)
No codified onboarding checklist exists. Aegis's knowledge of registration points is implicit, spread across the codebase. Without a checklist, completeness depends on agent recall, which proved incomplete — 3 of 10 points addressed, 7 missed.
Failure 2: Write to Deprecated File
No read-before-write discipline for unfamiliar files. agents/org-roster.yaml has a 7-line deprecation header stating "Do NOT update it." Aegis jumped straight to editing without reading the header.
Failure 3: Wrong Task Assignment
V used the default_user shortcut from client config (ryan_ginsberg) for an AI agent work item. The customer-assignable task pattern (Friend records + task-to-contact association) was documented in memory but not consulted.
Category: Verification Failure
This is the 10th incident in this pattern family. Echo found 9 prior incidents across 3 sub-patterns:
- Declaring multi-step processes complete without end-to-end verification (4 prior: Paragon data drift, HubSpot course integrity, Founding Pathfinder payments, Inngest pipeline)
- Writing/asserting without reading current state (3 prior: all-hands duplicate properties, Sanity write context loss, behavioral enforcement failure)
- Using defaults without verifying applicability (3 prior: URL assumption, Supabase connectivity, meeting documentation dual role)
The cross-cutting lesson from all 10 incidents: the most effective prevention is structural (hooks, gateways, checklists) rather than behavioral (rules, memory entries). The Apr 9 Behavioral Enforcement Failure CAR documents this explicitly: after 6 escalating behavioral fixes, the pattern only stopped when hooks made violations structurally impossible.
Fix Applied
Immediate Resolution
| Fix | Status |
|---|---|
| Aegis re-spawned, completed all remaining registration points | Done |
| Dewey index updated (sections 330 + 390) | Done |
| MEMORY.md agent counts updated (84 → 86) | Done |
| Job description created | Done |
| Org chart HTML updated (node + edges + counts) | Done |
ai-team-structure.ts updated |
Done |
agent-office.db registration completed |
Done |
org-roster.yaml edit reverted |
Done |
org-roster.yaml deleted entirely (deprecated, stale by 15+ agents) |
Done |
| 7 scripts referencing deleted file logged as Hone's first HubSpot task | Done |
| Hone Friend record created (Contact ID: 215190664854) | Done |
| Task reassigned: Ryan removed, associated to Hone's Contact (typeId 204) | Done |
Verification
- All registration points confirmed present via re-read
org-roster.yamlconfirmed deleted from filesystem- HubSpot task confirmed: no owner, associated to Hone Contact
Prevention Measures
Rules Added
| Layer | File | Rule |
|---|---|---|
| Agent Definition | .claude/agents/aegis.md |
Add codified Agent Onboarding Checklist (12 registration points). Aegis may not report onboarding complete until every item is addressed and verified. |
| Agent Definition | .claude/agents/aegis.md |
Read-before-write: "Before editing any file not in your standard registration list, read the first 10 lines for deprecation notices." |
| Critical Lessons | memory/MEMORY.md |
"AI agent tasks use Friend record association (typeId 204), not hubspot_owner_id. The default_user config is for client deliverables only." |
| Critical Lessons | memory/MEMORY.md |
"Agent onboarding requires 12 registration points — not just the agent def and roster. See Aegis's onboarding checklist." |
Agent Onboarding Checklist (to be added to Aegis)
.claude/agents/{codename}.md— Agent definitionagents/{directory}/AGENT.md— Implementation directoryskills/ai-leadership/INDEX.md— Roster entry (org, group, counts).claude/codebase-index.md— Dewey index (sections 330/390, counts)- MEMORY.md — Agent count in Current State
/mnt/d/Leadership/assessments/job-descriptions/{codename}.md— Job description (markdown)/mnt/d/Leadership/assessments/job-descriptions/{codename}.html— Job description (HTML)- Org chart HTML — Node in interactive visualization
apps/website/src/data/ai-team-structure.ts— Website agent datadata/agent-office.db— SQLite agent registry- HubSpot Friend record — Contact with
agent_readiness_level - Verification pass — Re-read each target to confirm entry appears
Detection Triggers
If Aegis reports "onboarding complete" without mentioning all 12 registration points by name, self-correct immediately.
Lessons
The onboarding process for AI agents has grown to span 12 registration points across 10+ files. No single agent can reliably recall all of them from context. The fix is structural: a checklist that is followed mechanically, not a set of expectations that are remembered imperfectly. This is the same lesson the team has learned 9 times before in different contexts — verification must be structural, not behavioral.
Related Incidents
| Date | Incident | Pattern |
|---|---|---|
| Mar 2, 2026 | Portal documents filter | Declared visible without API verification |
| Mar 10, 2026 | Paragon account data drift | Multi-step process, each step "done" independently |
| Mar 11, 2026 | Sanity write context loss | Ad-hoc approach without reading existing reference |
| Mar 12, 2026 | HubSpot course integrity | API built against assumed schema, never verified |
| Mar 14, 2026 | All-hands duplicate properties | Interpreted null as "doesn't exist" without reading property index |
| Mar 15, 2026 | Supabase connectivity | Defaulted to training data pattern without checking alternatives |
| Mar 16, 2026 | URL assumption pattern | Generated URLs from defaults, not filesystem truth |
| Mar 30, 2026 | Inngest transcription pipeline | Deployed and assumed working; never verified |
| Apr 9, 2026 | Behavioral enforcement failure | Behavioral rules repeatedly violated; fixed only by structural hooks |
| Apr 9, 2026 | Meeting documentation dual role | Defaulted to summarization when verbatim was required |
| Apr 9, 2026 | Founding Pathfinder payment visibility | Batch creation without reconciliation step |
Filed by: V (COO) Review: Chris Carolan (Advisory Committee) Status: Fixes applied, prevention measures pending confirmation