Claude-skill-registry episodic-archiver
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/episodic-archiver" ~/.claude/skills/majiayu000-claude-skill-registry-episodic-archiver && rm -rf "$T"
manifest:
skills/data/episodic-archiver/SKILL.mdsource content
Episodic Archiver
Analyzes conversation transcripts, embeds them for search, categorizes turns, and tracks unresolved sessions for later reflection.
Commands
# Archive a conversation transcript ./run.sh archive transcript.json # List unresolved sessions (for reflection) ./run.sh list-unresolved # Mark a session as resolved after follow-up ./run.sh resolve <session_id>
Unresolved Session Tracking
When archiving, the skill analyzes if the session was resolved:
| Condition | Result |
|---|---|
| Session ends with error | Unresolved |
| Session ends with unanswered question | Unresolved |
| Errors without following solutions | Unresolved |
| Tasks without completion | Unresolved |
Unresolved sessions are stored in
unresolved_sessions collection for reflection.
Integration with /learn
# Reflect on past failures to find what to learn /learn --from-gaps --scope horus_lore # This queries: # 1. unresolved_sessions (high priority) # 2. agent_conversations (errors, questions) # 3. Skill logs (failures)
The Reflection Loop
Session ends → Archive → Detect unresolved → Store gap ↓ /learn --from-gaps ↓ Curiosity targets ↓ /dogpile → /learn ↓ Knowledge acquired ↓ ./run.sh resolve <session>
Storage
Collections:
- Individual turns with embeddingsagent_conversations
- Sessions needing follow-upunresolved_sessions
Turn categories: Task, Question, Solution, Error, Chat, Meta
Input Format
{ "session_id": "task_123", "messages": [ {"from": "User", "content": "Fix the bug in auth", "timestamp": 1234567890}, {"from": "Agent", "content": "Looking at auth.py...", "timestamp": 1234567891} ] }