recover
The recover skill reestablishes session context after Claude's memory is compacted by detecting in-progress work (RPI runs, evolve cycles), loading stored knowledge artifacts, and summarizing ongoing tasks and next steps. Use this when resuming a multi-turn session with AgentOps to quickly regain situational awareness without manual recap.
git clone --depth 1 https://github.com/boshu2/agentops /tmp/recover && cp -r /tmp/recover/images/gemini/skills/recover ~/.claude/skills/recoverSKILL.md
# /recover — Context Recovery After Compaction
> **Purpose:** Help you get back up to speed after context compaction. Detects in-progress work (RPI runs, evolve cycles), loads relevant knowledge, and summarizes what you were doing and what's next. AgentOps 3.0's default recovery path is explicit (`ao session bootstrap`, `ao codex start` / `ao codex stop`); Codex native hooks are opt-in compatibility, not assumed.
**YOU MUST EXECUTE THIS WORKFLOW. Do not just describe it.**
**CLI dependencies:** gt, ao, bd — all optional. Shows what's available, skips what isn't.
---
## Quick Start
```bash
/recover # Full recovery dashboard
/recover --json # Machine-readable JSON output
ao codex status # Codex hookless lifecycle health
ao codex start # Rebuild startup context explicitly in Codex
```
---
## Execution Steps
### Step 1: Detect In-Progress Sessions (Parallel)
Run ALL of the following in parallel bash calls:
**Call 1 — RPI Phased State:**
```bash
if [ -f .agents/rpi/phased-state.json ]; then
echo "=== RPI_STATE ==="
cat .agents/rpi/phased-state.json
else
echo "RPI_STATE=NONE"
fi
```
**Call 2 — Evolve Cycle History:**
```bash
if [ -f .agents/evolve/cycle-history.jsonl ]; then
echo "=== EVOLVE_STATE ==="
tail -3 .agents/evolve/cycle-history.jsonl
else
echo "EVOLVE_STATE=NONE"
fi
```
**Call 3 — Git Recent Changes:**
```bash
echo "=== GIT_STATUS ==="
git status --short
echo "=== GIT_LOG ==="
git log --oneline -5
echo "=== GIT_BRANCH ==="
git branch --show-current
```
**Call 4 — Work Queue State:**
```bash
if command -v bd &>/dev/null; then
echo "=== IN_PROGRESS ==="
bd list --status in_progress 2>/dev/null | head -3
echo "=== READY ==="
bd ready 2>/dev/null | head -3
else
echo "BD_UNAVAILABLE"
fi
```
**Call 5 — Knowledge and Messages:**
```bash
# Knowledge artifacts
echo "=== KNOWLEDGE_COUNT ==="
echo "Learnings=$(ls .agents/learnings/ 2>/dev/null | wc -l | tr -d ' ')"
echo "Patterns=$(ls .agents/patterns/ 2>/dev/null | wc -l | tr -d ' ')"
# Inbox if gt available
if command -v gt &>/dev/null; then
echo "=== MESSAGES ==="
gt mail inbox 2>/dev/null | head -3
else
echo "GT_UNAVAILABLE"
fi
```
**Call 6 — Codex Lifecycle (if available):**
```bash
if command -v ao &>/dev/null; then
echo "=== CODEX_STATUS ==="
ao codex status --json 2>/dev/null || echo "CODEX_STATUS=UNAVAILABLE"
else
echo "AO_UNAVAILABLE"
fi
```
### Step 2: Load Context from Knowledge Base
If RPI state detected, run:
```bash
if command -v ao &>/dev/null; then
ao lookup --query "rpi recovery context" --limit 5 2>/dev/null || true
fi
```
**Apply retrieved knowledge:** If learnings are returned, check each for applicability to the recovery context. Cite applicable learnings by filename and record: `ao metrics cite "<path>" --type applied 2>/dev/null || true`
If Codex hookless fallback mode is detected (pre-v0.115.0, no native hooks), also run:
```bash
if command -v ao &>/dev/null && { [ -n "${CODEX_THREAD_ID:-}" ] || [ "${CODEX_INTERNAL_ORIGINATOR_OVERRIDE:-}" = "Codex Desktop" ]; }; then
ao codex start --no-maintenance 2>/dev/null || true
fi
```
### Step 3: Parse and Summarize Session State
Extract from collected data:
1. **RPI Detection:** If `.agents/rpi/phased-state.json` exists:
- Extract `goal`, `epic_id`, `phase`, `cycle`, `started_at`
- Map phase number to phase name (1=research, 2=plan, 3=implement, 4=validate)
- Show elapsed time since started_at
2. **Evolve Detection:** If `.agents/evolve/cycle-history.jsonl` exists:
- Read last entry for most recent cycle
- Extract `goals_fixed`, `result`, `timestamp`
- Show latest cycle summary
3. **Recent Work:** From git log:
- Last 3 commits (extracted in Call 3)
- Uncommitted changes count
4. **Pending Work:** From beads:
- In-progress issues (up to 3)
- Ready issues count
5. **Knowledge State:**
- Total learnings and patterns available
- Unread messages count if gt available
### Step 4: Render Recovery Dashboard
Assemble gathered data into this format:
```
══════════════════════════════════════════════════════════════
Context Recovery Dashboard
══════════════════════════════════════════════════════════════
IN-PROGRESS RPI RUN
Epic: <epic_id>
Goal: <first 80 chars of goal>
Phase: <phase name: research | plan | implement | validate>
Cycle: <cycle #>
Started: <time ago (e.g., "2 hours ago")>
Status: <PHASE_START | IN_PROGRESS | READY_FOR_GATE | ...>
─ Next Step: <state-aware suggestion from Step 5>
OR
RECENT EVOLVE CYCLE (IF NO RPI)
Cycle: <cycle #>
Latest Goal: <goal_id or summary>
Result: <result>
Items Completed: <count or "—">
Timestamp: <time ago>
─ Next Step: <state-aware suggestion from Step 5>
OR
[NO ACTIVE SESSION]
No RPI run or evolve cycle in progress.
Last activity: <time of last commit or "unknown">
IN-PROGRESS WORK
<list up to 3 in-progress issues with IDs>
<or "No in-progress work">
READY TO WORK
<count of ready issues>
<or "No ready issues">
RECENT COMMITS
<last 3 commits>
PENDING CHANGES
<uncommitted file count or "clean">
KNOWLEDGE AVAILABLE
Learnings: <count> Patterns: <count>
INBOX
<message count or "No messages" or "gt not installed">
──────────────────────────────────────────────────────────────
SUGGESTED NEXT ACTION
<state-aware command from Step 5>
──────────────────────────────────────────────────────────────
QUICK COMMANDS
/status Current workflow dashboard
/research Deep codebase exploration
/plan Decompose work into issues
/implement Execute a single issue
/crank Autonomous epic execution
/validate Full close-out and learnings
══════════════════════════════════════════════════════════════
```
### Step 5: Suggest Next Action (State-Aware)
Evaluate context top-to-bottom. Use the FIRST matching condition:
| Priority | Condition | Suggestion |
|----------|-----------|------------|
| 1 | RPI run in-progress + phase=researchUse Agent Mail from Codex for file leases, notifications, inboxes, and conflict prevention.
>-
>-
Use when converting markdown plans into br beads with dependencies for implementation or swarm execution.
Use when switching AI coding CLI accounts quickly to recover from subscription rate limits or OAuth friction.
>-
Use when starting non-trivial work, mining lessons, or preventing repeated mistakes with cm procedural memory.
Mine past agent sessions for working prompts, decisions, and patterns. Use when "what did I ask?", "find that prompt", session archaeology, or agent history.