| name | restore-team-communications |
| version | 0.2.0 |
| description | Repair Claude teammate routing after same-session compaction or resume when the sc-lint-roslyn team still exists on disk and the saved leadSessionId still matches the current SESSION_ID, but SendMessage or teammate reachability is broken.
|
Restore Team Communications
Use this skill only when all of these are true:
ATM_IDENTITY=team-lead
SESSION_ID still matches leadSessionId in
~/.claude/teams/sc-lint-roslyn/config.json
- the team directory still exists on disk
- Claude teammate communication is broken or suspect after compaction or resume
Do not use this skill for fresh startup or after clear. If the current
SESSION_ID does not match leadSessionId, use /team-lead and follow the
full restore procedure instead.
Step 0 — Prove Whether Repair Is Needed
First, try normal Claude-to-Claude communication before changing anything:
SendMessage(to="<claude-teammate>", message="ping: verify sc-lint-roslyn communications path")
If the message is delivered and acknowledged, stop. No repair is needed.
Do not read inbox files, session files, or tmux panes directly on this path.
Step 1 — Back Up Current State
Back up before any destructive recovery:
atm teams backup sc-lint-roslyn
BACKUP_PATH=$(ls -td ~/.claude/teams/.backups/sc-lint-roslyn/*/ | head -1)
cp -r ~/.claude/tasks/sc-lint-roslyn/ "$BACKUP_PATH/tasks-cc"
echo "CC task list backed up to $BACKUP_PATH/tasks-cc"
Step 2 — Remove Broken Team Registration
Clear both live Claude routing state and the persisted team directory:
TeamDelete
rm -rf ~/.claude/teams/sc-lint-roslyn
If TeamDelete reports no active team name, proceed. That means live routing
was already absent.
Step 3 — Recreate Team And Restore ATM State
Recreate the team:
TeamCreate(team_name="sc-lint-roslyn", description="sc-lint-roslyn team", agent_type="team-lead")
Then restore from the most recent backup:
atm teams restore sc-lint-roslyn --from "$BACKUP_PATH"
If required members are missing after restore, add them before verification.
Step 4 — Verify Both Communication Layers
Repair is not complete until all checks pass:
SendMessage to another Claude teammate.
atm send to a non-Claude model.
atm send to Codex and verify the nudge fires.
For Codex-directed ATM sends, the nudge must include a clear call to action, not
just a passive unread-mail announcement. Preferred structured nudge payload:
<atm><action>read atm --team sc-lint-roslyn</action><action>ack the message</action><action>execute the assigned task</action><when idle="immediate" busy="after-current-task"/><console announce="concise" pause="false"/></atm>
Fallback plain-text wording:
read atm --team sc-lint-roslyn for task <TASK-ID> and complete it before stopping
If the task is queued behind active work, use a queued-task nudge instead of an
interruptive one.
Step 5 — Resume Work Quietly
If the repair succeeded:
- do not broadcast internal restore diagnostics over ATM
- send only the minimum teammate message needed to resume work
- return to normal project coordination
If the repair failed, stop and report the exact failed verification step.