
Session Launcher
- 51 installs
- 16 repo stars
- Updated November 20, 2025
- jackspace/claudeskillz
Restore full project context on a fresh conversation by loading memory indexes and session state into a status dashboard.
About
This skill restores project context when a new conversation starts by searching files, memory indexes, and session state. Developers use it to see current project, recent decisions, and active blockers in a dashboard.
- Triggers on cues like hi-ai, continue, or restore context
- Builds a dashboard of current project, decisions, and blockers
Session Launcher by the numbers
- 51 all-time installs (skills.sh)
- Ranked #1,611 of 3,280 Productivity & Planning skills by installs in the Skillselion catalog
- Data as of Aug 2, 2026 (Skillselion catalog sync)
npx skills add https://github.com/jackspace/claudeskillz --skill session-launcherAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 51 |
|---|---|
| repo stars | ★ 16 |
| Last updated | November 20, 2025 |
| Repository | jackspace/claudeskillz ↗ |
What it does
Restore full project context on a fresh conversation by loading memory indexes and session state into a status dashboard.
Files
Session Launcher
Purpose
Zero context loss between conversations. When a new session starts, this skill: 1. Searches for project context files 2. Loads memory indexes and past decisions 3. Reads session state 4. Creates visual dashboard with actionable links 5. Makes you immediately productive
For SDAM users: Compensates for lack of episodic memory by externalizing all session context. For ADHD users: Eliminates "where was I?" friction - instant continuation. For dyschronometria: Shows explicit timestamps on all context.
Activation Triggers
- User says: "hi-ai"
- User says: "continue", "restore context", "what was I working on"
- Start of new conversation (proactively offer)
Core Workflow
1. Search for Context Files
Check these locations in order:
# Current project context
./.context/current.json
./.context/session.json
./DECISIONS.md
./README.md
# User's memory storage
~/.claude-memories/ (Linux/macOS) or %USERPROFILE%\.claude-memories\ (Windows)index.json
~/.claude-sessions/ (Linux/macOS) or %USERPROFILE%\.claude-sessions\ (Windows)current.json
~/.claude-sessions/ (Linux/macOS) or %USERPROFILE%\.claude-sessions\ (Windows)projects/2. Load Memory Index
Read ~/.claude-memories/ (Linux/macOS) or %USERPROFILE%\.claude-memories\ (Windows)index.json:
{
"total_memories": N,
"memories": [
{
"id": "unique-id",
"type": "DECISION|BLOCKER|CONTEXT|PREFERENCE|PROCEDURE",
"content": "the memory",
"timestamp": "ISO8601",
"tags": ["tag1", "tag2"],
"project": "project-name"
}
]
}Extract:
- Recent decisions (last 7 days)
- Active blockers (status != "resolved")
- Project context (matching current directory)
- User preferences
3. Identify Current Project
Determine project from: 1. Current working directory name 2. .context/project.txt if exists 3. Git repository name: basename $(git rev-parse --show-toplevel 2>/dev/null) 4. Ask user if unclear
4. Create Session Dashboard
Generate HTML file at ~/.claude-artifacts/ (Linux/macOS) or %USERPROFILE%\.claude-artifacts\ (Windows)session-dashboard-{timestamp}.html:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Session Restored</title>
<style>
body {
font-family: monospace;
max-width: 1200px;
margin: 40px auto;
padding: 20px;
background: #1e1e1e;
color: #d4d4d4;
}
.section {
background: #252526;
border: 1px solid #3e3e42;
border-radius: 6px;
padding: 20px;
margin: 20px 0;
}
.section h2 {
margin-top: 0;
color: #4ec9b0;
border-bottom: 1px solid #3e3e42;
padding-bottom: 10px;
}
.timestamp {
color: #858585;
font-size: 0.9em;
}
.decision {
background: #2d2d30;
padding: 10px;
margin: 10px 0;
border-left: 3px solid #4ec9b0;
}
.blocker {
background: #2d2d30;
padding: 10px;
margin: 10px 0;
border-left: 3px solid #f48771;
}
.action {
display: inline-block;
background: #0e639c;
color: white;
padding: 8px 16px;
margin: 5px;
border-radius: 4px;
text-decoration: none;
}
.metric {
font-size: 2em;
color: #4ec9b0;
font-weight: bold;
}
</style>
</head>
<body>
<h1>🚀 Session Restored</h1>
<p class="timestamp">Restored at: {current_timestamp}</p>
<div class="section">
<h2>📁 Current Project</h2>
<div class="metric">{project_name}</div>
<p>Location: <code>{project_path}</code></p>
<p>Last worked: <span class="timestamp">{last_session_time}</span></p>
</div>
<div class="section">
<h2>🎯 Recent Decisions (Last 7 Days)</h2>
{for each recent decision:}
<div class="decision">
<strong>{decision.content}</strong>
<div class="timestamp">{decision.timestamp} - {relative_time}</div>
{if decision.tags:}<p>Tags: {tags_joined}</p>{endif}
</div>
{endfor}
</div>
<div class="section">
<h2>🚧 Active Blockers</h2>
{for each active blocker:}
<div class="blocker">
<strong>{blocker.content}</strong>
<div class="timestamp">{blocker.timestamp} - {relative_time}</div>
</div>
{endfor}
{if no blockers:}<p>✅ No active blockers</p>{endif}
</div>
<div class="section">
<h2>📊 Memory Stats</h2>
<p>Total memories: <span class="metric">{total_memories}</span></p>
<p>Decisions: {decision_count} | Blockers: {blocker_count} | Procedures: {procedure_count}</p>
</div>
<div class="section">
<h2>⚡ Quick Actions</h2>
<a href="file://~/.claude-memories/ (Linux/macOS) or %USERPROFILE%\.claude-memories\ (Windows)index.json" class="action">View All Memories</a>
<a href="file://{project_path}" class="action">Open Project</a>
<a href="file://~/.claude-artifacts/ (Linux/macOS) or %USERPROFILE%\.claude-artifacts\ (Windows)" class="action">View Artifacts</a>
</div>
</body>
</html>5. Output Summary
After creating dashboard, output to user:
🚀 Session Restored
📁 Project: {project_name}
📍 Location: {project_path}
🕐 Last worked: {relative_time}
📝 Recent Decisions ({count}):
{for each decision (max 5):}
• {decision.content} ({relative_time})
{endfor}
🚧 Active Blockers ({count}):
{for each blocker:}
• {blocker.content} ({relative_time})
{endfor}
💾 Memory: {total_memories} total memories loaded
📊 Dashboard: {dashboard_path}
✅ Full context restored. Ready to continue!
What would you like to work on?Memory Integration
Reading Memories
Always check memory index for:
- Project-specific context
- User preferences (tech stack, coding style)
- Past decisions affecting current work
- Similar past problems/solutions
Time Anchoring (for Dyschronometria)
Convert all timestamps to relative format:
- "2 hours ago"
- "3 days ago"
- "Last Tuesday"
- Include ISO timestamp for precision
Context Filtering
Filter memories by: 1. Project match: memory.project === current_project 2. Recency: Last 30 days weighted higher 3. Type priority: BLOCKER > DECISION > CONTEXT > PROCEDURE 4. Relevance: Tag matching if available
Session State Management
Saving Session State
Before ending conversation (if user says "goodbye", "see you", "done for now"):
1. Create/update ~/.claude-sessions/ (Linux/macOS) or %USERPROFILE%\.claude-sessions\ (Windows)current.json:
{
"project": "project-name",
"project_path": "/full/path",
"last_active": "ISO8601_timestamp",
"last_files": [
"/path/to/file1.js",
"/path/to/file2.py"
],
"last_topic": "Brief description of what we were working on",
"next_actions": [
"Suggested next step 1",
"Suggested next step 2"
]
}2. Update memory index with session summary:
{
"type": "NOTE",
"content": "Session ended: {brief_summary_of_work}",
"timestamp": "ISO8601",
"tags": ["session", "project-name"],
"project": "project-name"
}Project-Specific Sessions
For multi-project users, maintain:
~/.claude-sessions/ (Linux/macOS) or %USERPROFILE%\.claude-sessions\ (Windows)projects/
├── boostbox.json
├── toolhub.json
├── 88dimensions.json
└── mcp-stack.jsonEach contains project-specific state.
Visual Dashboard Features
For Aphantasia Users
Always provide:
- Concrete metrics (numbers, counts)
- Visual structure (HTML dashboard)
- Explicit links (clickable file paths)
- Status indicators (✅ ❌ 🚧 emojis)
For ADHD Users
Dashboard must:
- Load instantly (<2 seconds)
- Show quick actions (immediate next steps)
- Highlight blockers (red/urgent visual treatment)
- Provide direct links (one-click access to files)
For SDAM Users
Dashboard must:
- Externalize all context (no assumption of memory)
- Show time anchors (when things happened)
- Display decision history (what was decided)
- Link to artifacts (proof of past work)
Error Handling
If No Context Found
👋 Hi! This looks like a fresh start.
I couldn't find existing session context, so let's establish some:
1. What project are you working on?
2. Should I create a memory index for you?
3. Would you like to start tracking decisions?
(I'll create the necessary directories and get you set up)If Memory Index Corrupted
⚠️ Memory index appears corrupted.
Creating backup at: ~/.claude-memories/ (Linux/macOS) or %USERPROFILE%\.claude-memories\ (Windows)backups/index-{timestamp}.json
Initializing fresh index...
✅ Fresh index created. Previous memories backed up.If Multiple Projects Detected
🤔 I found context for multiple projects:
1. BOOSTBOX (last active: 2 days ago)
2. Tool Hub (last active: 5 days ago)
3. MCP Stack (last active: 1 week ago)
Which project would you like to work on?Integration with Other Skills
Memory Manager
- Queries memory-manager for structured memory search
- Defers complex memory operations to memory-manager
- Uses memory-manager's categorization system
Context Manager
- Works with context-manager to maintain
.context/directory - Reads context-manager's structured data
- Updates session state via context-manager
Error Debugger
- Surfaces recent blockers for error-debugger to consider
- Checks if current error matches past error memories
Quick Reference
File Locations
- Memory index:
~/.claude-memories/ (Linux/macOS) or %USERPROFILE%\.claude-memories\ (Windows)index.json - Current session:
~/.claude-sessions/ (Linux/macOS) or %USERPROFILE%\.claude-sessions\ (Windows)current.json - Project sessions:
~/.claude-sessions/ (Linux/macOS) or %USERPROFILE%\.claude-sessions\ (Windows)projects/{name}.json - Dashboards:
~/.claude-artifacts/ (Linux/macOS) or %USERPROFILE%\.claude-artifacts\ (Windows)session-dashboard-*.html
Trigger Phrases
- "hi-ai" (primary)
- "continue"
- "restore context"
- "what was I working on"
- "where did we leave off"
Success Criteria
✅ User says "hi-ai" and is immediately productive ✅ No need to explain "what we were working on" ✅ All past decisions visible ✅ Active blockers surfaced ✅ Context restored in <2 seconds
{
"sections": {
"Visual Dashboard Features": "### For Aphantasia Users\r\n\r\nAlways provide:\r\n- **Concrete metrics** (numbers, counts)\r\n- **Visual structure** (HTML dashboard)\r\n- **Explicit links** (clickable file paths)\r\n- **Status indicators** (✅ ❌ 🚧 emojis)\r\n\r\n### For ADHD Users\r\n\r\nDashboard must:\r\n- **Load instantly** (<2 seconds)\r\n- **Show quick actions** (immediate next steps)\r\n- **Highlight blockers** (red/urgent visual treatment)\r\n- **Provide direct links** (one-click access to files)\r\n\r\n### For SDAM Users\r\n\r\nDashboard must:\r\n- **Externalize all context** (no assumption of memory)\r\n- **Show time anchors** (when things happened)\r\n- **Display decision history** (what was decided)\r\n- **Link to artifacts** (proof of past work)",
"Activation Triggers": "- User says: \"hi-ai\"\r\n- User says: \"continue\", \"restore context\", \"what was I working on\"\r\n- Start of new conversation (proactively offer)",
"Integration with Other Skills": "### Memory Manager\r\n\r\n- Queries memory-manager for structured memory search\r\n- Defers complex memory operations to memory-manager\r\n- Uses memory-manager's categorization system\r\n\r\n### Context Manager\r\n\r\n- Works with context-manager to maintain `.context/` directory\r\n- Reads context-manager's structured data\r\n- Updates session state via context-manager\r\n\r\n### Error Debugger\r\n\r\n- Surfaces recent blockers for error-debugger to consider\r\n- Checks if current error matches past error memories",
"Memory Integration": "### Reading Memories\r\n\r\nAlways check memory index for:\r\n- Project-specific context\r\n- User preferences (tech stack, coding style)\r\n- Past decisions affecting current work\r\n- Similar past problems/solutions\r\n\r\n### Time Anchoring (for Dyschronometria)\r\n\r\nConvert all timestamps to relative format:\r\n- \"2 hours ago\"\r\n- \"3 days ago\"\r\n- \"Last Tuesday\"\r\n- Include ISO timestamp for precision\r\n\r\n### Context Filtering\r\n\r\nFilter memories by:\r\n1. **Project match**: `memory.project === current_project`\r\n2. **Recency**: Last 30 days weighted higher\r\n3. **Type priority**: BLOCKER > DECISION > CONTEXT > PROCEDURE\r\n4. **Relevance**: Tag matching if available",
"Purpose": "Zero context loss between conversations. When a new session starts, this skill:\r\n1. Searches for project context files\r\n2. Loads memory indexes and past decisions\r\n3. Reads session state\r\n4. Creates visual dashboard with actionable links\r\n5. Makes you immediately productive\r\n\r\n**For SDAM users**: Compensates for lack of episodic memory by externalizing all session context.\r\n**For ADHD users**: Eliminates \"where was I?\" friction - instant continuation.\r\n**For dyschronometria**: Shows explicit timestamps on all context.",
"Quick Reference": "### File Locations\r\n\r\n- **Memory index**: `/home/toowired/.claude-memories/index.json`\r\n- **Current session**: `/home/toowired/.claude-sessions/current.json`\r\n- **Project sessions**: `/home/toowired/.claude-sessions/projects/{name}.json`\r\n- **Dashboards**: `/home/toowired/.claude-artifacts/session-dashboard-*.html`\r\n\r\n### Trigger Phrases\r\n\r\n- \"hi-ai\" (primary)\r\n- \"continue\"\r\n- \"restore context\"\r\n- \"what was I working on\"\r\n- \"where did we leave off\"\r\n\r\n### Success Criteria\r\n\r\n✅ User says \"hi-ai\" and is immediately productive\r\n✅ No need to explain \"what we were working on\"\r\n✅ All past decisions visible\r\n✅ Active blockers surfaced\r\n✅ Context restored in <2 seconds",
"Core Workflow": "/home/toowired/.claude-memories/index.json\r\n/home/toowired/.claude-sessions/current.json\r\n/home/toowired/.claude-sessions/projects/\r\n```\r\n\r\n### 2. Load Memory Index\r\n\r\nRead `/home/toowired/.claude-memories/index.json`:\r\n\r\n```json\r\n{\r\n \"total_memories\": N,\r\n \"memories\": [\r\n {\r\n \"id\": \"unique-id\",\r\n \"type\": \"DECISION|BLOCKER|CONTEXT|PREFERENCE|PROCEDURE\",\r\n \"content\": \"the memory\",\r\n \"timestamp\": \"ISO8601\",\r\n \"tags\": [\"tag1\", \"tag2\"],\r\n \"project\": \"project-name\"\r\n }\r\n ]\r\n}\r\n```\r\n\r\nExtract:\r\n- Recent decisions (last 7 days)\r\n- Active blockers (status != \"resolved\")\r\n- Project context (matching current directory)\r\n- User preferences\r\n\r\n### 3. Identify Current Project\r\n\r\nDetermine project from:\r\n1. Current working directory name\r\n2. `.context/project.txt` if exists\r\n3. Git repository name: `basename $(git rev-parse --show-toplevel 2>/dev/null)`\r\n4. Ask user if unclear\r\n\r\n### 4. Create Session Dashboard\r\n\r\nGenerate HTML file at `/home/toowired/.claude-artifacts/session-dashboard-{timestamp}.html`:\r\n\r\n```html\r\n<!DOCTYPE html>\r\n<html>\r\n<head>\r\n <meta charset=\"UTF-8\">\r\n <title>Session Restored</title>\r\n <style>\r\n body {\r\n font-family: monospace;\r\n max-width: 1200px;\r\n margin: 40px auto;\r\n padding: 20px;\r\n background: #1e1e1e;\r\n color: #d4d4d4;\r\n }\r\n .section {\r\n background: #252526;\r\n border: 1px solid #3e3e42;\r\n border-radius: 6px;\r\n padding: 20px;\r\n margin: 20px 0;\r\n }\r\n .section h2 {\r\n margin-top: 0;\r\n color: #4ec9b0;\r\n border-bottom: 1px solid #3e3e42;\r\n padding-bottom: 10px;\r\n }\r\n .timestamp {\r\n color: #858585;\r\n font-size: 0.9em;\r\n }\r\n .decision {\r\n background: #2d2d30;\r\n padding: 10px;\r\n margin: 10px 0;\r\n border-left: 3px solid #4ec9b0;\r\n }\r\n .blocker {\r\n background: #2d2d30;\r\n padding: 10px;\r\n margin: 10px 0;\r\n border-left: 3px solid #f48771;\r\n }\r\n .action {\r\n display: inline-block;\r\n background: #0e639c;\r\n color: white;\r\n padding: 8px 16px;\r\n margin: 5px;\r\n border-radius: 4px;\r\n text-decoration: none;\r\n }\r\n .metric {\r\n font-size: 2em;\r\n color: #4ec9b0;\r\n font-weight: bold;\r\n }\r\n </style>\r\n</head>\r\n<body>\r\n <h1>🚀 Session Restored</h1>\r\n <p class=\"timestamp\">Restored at: {current_timestamp}</p>\r\n\r\n <div class=\"section\">\r\n <h2>📁 Current Project</h2>\r\n <div class=\"metric\">{project_name}</div>\r\n <p>Location: <code>{project_path}</code></p>\r\n <p>Last worked: <span class=\"timestamp\">{last_session_time}</span></p>\r\n </div>\r\n\r\n <div class=\"section\">\r\n <h2>🎯 Recent Decisions (Last 7 Days)</h2>\r\n {for each recent decision:}\r\n <div class=\"decision\">\r\n <strong>{decision.content}</strong>\r\n <div class=\"timestamp\">{decision.timestamp} - {relative_time}</div>\r\n {if decision.tags:}<p>Tags: {tags_joined}</p>{endif}\r\n </div>\r\n {endfor}\r\n </div>\r\n\r\n <div class=\"section\">\r\n <h2>🚧 Active Blockers</h2>\r\n {for each active blocker:}\r\n <div class=\"blocker\">\r\n <strong>{blocker.content}</strong>\r\n <div class=\"timestamp\">{blocker.timestamp} - {relative_time}</div>\r\n </div>\r\n {endfor}\r\n {if no blockers:}<p>✅ No active blockers</p>{endif}\r\n </div>\r\n\r\n <div class=\"section\">\r\n <h2>📊 Memory Stats</h2>\r\n <p>Total memories: <span class=\"metric\">{total_memories}</span></p>\r\n <p>Decisions: {decision_count} | Blockers: {blocker_count} | Procedures: {procedure_count}</p>\r\n </div>\r\n\r\n <div class=\"section\">\r\n <h2>⚡ Quick Actions</h2>\r\n <a href=\"file:///home/toowired/.claude-memories/index.json\" class=\"action\">View All Memories</a>\r\n <a href=\"file://{project_path}\" class=\"action\">Open Project</a>\r\n <a href=\"file:///home/toowired/.claude-artifacts/\" class=\"action\">View Artifacts</a>\r\n </div>\r\n</body>\r\n</html>\r\n```\r\n\r\n### 5. Output Summary\r\n\r\nAfter creating dashboard, output to user:\r\n\r\n```\r\n🚀 Session Restored\r\n\r\n📁 Project: {project_name}\r\n📍 Location: {project_path}\r\n🕐 Last worked: {relative_time}\r\n\r\n📝 Recent Decisions ({count}):\r\n{for each decision (max 5):}\r\n • {decision.content} ({relative_time})\r\n{endfor}\r\n\r\n🚧 Active Blockers ({count}):\r\n{for each blocker:}\r\n • {blocker.content} ({relative_time})\r\n{endfor}\r\n\r\n💾 Memory: {total_memories} total memories loaded\r\n\r\n📊 Dashboard: {dashboard_path}\r\n\r\n✅ Full context restored. Ready to continue!\r\n\r\nWhat would you like to work on?\r\n```",
"Error Handling": "### If No Context Found\r\n\r\n```\r\n👋 Hi! This looks like a fresh start.\r\n\r\nI couldn't find existing session context, so let's establish some:\r\n\r\n1. What project are you working on?\r\n2. Should I create a memory index for you?\r\n3. Would you like to start tracking decisions?\r\n\r\n(I'll create the necessary directories and get you set up)\r\n```\r\n\r\n### If Memory Index Corrupted\r\n\r\n```\r\n⚠️ Memory index appears corrupted.\r\n\r\nCreating backup at: /home/toowired/.claude-memories/backups/index-{timestamp}.json\r\nInitializing fresh index...\r\n\r\n✅ Fresh index created. Previous memories backed up.\r\n```\r\n\r\n### If Multiple Projects Detected\r\n\r\n```\r\n🤔 I found context for multiple projects:\r\n\r\n1. BOOSTBOX (last active: 2 days ago)\r\n2. Tool Hub (last active: 5 days ago)\r\n3. MCP Stack (last active: 1 week ago)\r\n\r\nWhich project would you like to work on?\r\n```",
"Session State Management": "### Saving Session State\r\n\r\nBefore ending conversation (if user says \"goodbye\", \"see you\", \"done for now\"):\r\n\r\n1. Create/update `/home/toowired/.claude-sessions/current.json`:\r\n\r\n```json\r\n{\r\n \"project\": \"project-name\",\r\n \"project_path\": \"/full/path\",\r\n \"last_active\": \"ISO8601_timestamp\",\r\n \"last_files\": [\r\n \"/path/to/file1.js\",\r\n \"/path/to/file2.py\"\r\n ],\r\n \"last_topic\": \"Brief description of what we were working on\",\r\n \"next_actions\": [\r\n \"Suggested next step 1\",\r\n \"Suggested next step 2\"\r\n ]\r\n}\r\n```\r\n\r\n2. Update memory index with session summary:\r\n\r\n```json\r\n{\r\n \"type\": \"NOTE\",\r\n \"content\": \"Session ended: {brief_summary_of_work}\",\r\n \"timestamp\": \"ISO8601\",\r\n \"tags\": [\"session\", \"project-name\"],\r\n \"project\": \"project-name\"\r\n}\r\n```\r\n\r\n### Project-Specific Sessions\r\n\r\nFor multi-project users, maintain:\r\n\r\n```\r\n/home/toowired/.claude-sessions/projects/\r\n├── boostbox.json\r\n├── toolhub.json\r\n├── 88dimensions.json\r\n└── mcp-stack.json\r\n```\r\n\r\nEach contains project-specific state."
},
"content": "### 1. Search for Context Files\r\n\r\nCheck these locations in order:\r\n\r\n```bash\r\n./.context/current.json\r\n./.context/session.json\r\n./DECISIONS.md\r\n./README.md",
"id": "session-launcher",
"name": "session-launcher",
"description": "Restores full context when user says \"hi-ai\" or starts a new conversation. Searches project files, loads memory indexes, reads session state, and creates visual dashboard showing current project, recent decisions, active blockers, and quick actions. Use when user says \"hi-ai\", \"continue\", \"restore context\", or starts a fresh conversation."
}---
name: session-launcher
description: Restores full context when user says "hi-ai" or starts a new conversation. Searches project files, loads memory indexes, reads session state, and creates visual dashboard showing current project, recent decisions, active blockers, and quick actions. Use when user says "hi-ai", "continue", "restore context", or starts a fresh conversation.
---
# Session Launcher
## Purpose
Zero context loss between conversations. When a new session starts, this skill:
1. Searches for project context files
2. Loads memory indexes and past decisions
3. Reads session state
4. Creates visual dashboard with actionable links
5. Makes you immediately productive
**For SDAM users**: Compensates for lack of episodic memory by externalizing all session context.
**For ADHD users**: Eliminates "where was I?" friction - instant continuation.
**For dyschronometria**: Shows explicit timestamps on all context.
## Activation Triggers
- User says: "hi-ai"
- User says: "continue", "restore context", "what was I working on"
- Start of new conversation (proactively offer)
## Core Workflow
### 1. Search for Context Files
Check these locations in order:
```bash
# Current project context
./.context/current.json
./.context/session.json
./DECISIONS.md
./README.md
# User's memory storage
/home/toowired/.claude-memories/index.json
/home/toowired/.claude-sessions/current.json
/home/toowired/.claude-sessions/projects/
```
### 2. Load Memory Index
Read `/home/toowired/.claude-memories/index.json`:
```json
{
"total_memories": N,
"memories": [
{
"id": "unique-id",
"type": "DECISION|BLOCKER|CONTEXT|PREFERENCE|PROCEDURE",
"content": "the memory",
"timestamp": "ISO8601",
"tags": ["tag1", "tag2"],
"project": "project-name"
}
]
}
```
Extract:
- Recent decisions (last 7 days)
- Active blockers (status != "resolved")
- Project context (matching current directory)
- User preferences
### 3. Identify Current Project
Determine project from:
1. Current working directory name
2. `.context/project.txt` if exists
3. Git repository name: `basename $(git rev-parse --show-toplevel 2>/dev/null)`
4. Ask user if unclear
### 4. Create Session Dashboard
Generate HTML file at `/home/toowired/.claude-artifacts/session-dashboard-{timestamp}.html`:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Session Restored</title>
<style>
body {
font-family: monospace;
max-width: 1200px;
margin: 40px auto;
padding: 20px;
background: #1e1e1e;
color: #d4d4d4;
}
.section {
background: #252526;
border: 1px solid #3e3e42;
border-radius: 6px;
padding: 20px;
margin: 20px 0;
}
.section h2 {
margin-top: 0;
color: #4ec9b0;
border-bottom: 1px solid #3e3e42;
padding-bottom: 10px;
}
.timestamp {
color: #858585;
font-size: 0.9em;
}
.decision {
background: #2d2d30;
padding: 10px;
margin: 10px 0;
border-left: 3px solid #4ec9b0;
}
.blocker {
background: #2d2d30;
padding: 10px;
margin: 10px 0;
border-left: 3px solid #f48771;
}
.action {
display: inline-block;
background: #0e639c;
color: white;
padding: 8px 16px;
margin: 5px;
border-radius: 4px;
text-decoration: none;
}
.metric {
font-size: 2em;
color: #4ec9b0;
font-weight: bold;
}
</style>
</head>
<body>
<h1>🚀 Session Restored</h1>
<p class="timestamp">Restored at: {current_timestamp}</p>
<div class="section">
<h2>📁 Current Project</h2>
<div class="metric">{project_name}</div>
<p>Location: <code>{project_path}</code></p>
<p>Last worked: <span class="timestamp">{last_session_time}</span></p>
</div>
<div class="section">
<h2>🎯 Recent Decisions (Last 7 Days)</h2>
{for each recent decision:}
<div class="decision">
<strong>{decision.content}</strong>
<div class="timestamp">{decision.timestamp} - {relative_time}</div>
{if decision.tags:}<p>Tags: {tags_joined}</p>{endif}
</div>
{endfor}
</div>
<div class="section">
<h2>🚧 Active Blockers</h2>
{for each active blocker:}
<div class="blocker">
<strong>{blocker.content}</strong>
<div class="timestamp">{blocker.timestamp} - {relative_time}</div>
</div>
{endfor}
{if no blockers:}<p>✅ No active blockers</p>{endif}
</div>
<div class="section">
<h2>📊 Memory Stats</h2>
<p>Total memories: <span class="metric">{total_memories}</span></p>
<p>Decisions: {decision_count} | Blockers: {blocker_count} | Procedures: {procedure_count}</p>
</div>
<div class="section">
<h2>⚡ Quick Actions</h2>
<a href="file:///home/toowired/.claude-memories/index.json" class="action">View All Memories</a>
<a href="file://{project_path}" class="action">Open Project</a>
<a href="file:///home/toowired/.claude-artifacts/" class="action">View Artifacts</a>
</div>
</body>
</html>
```
### 5. Output Summary
After creating dashboard, output to user:
```
🚀 Session Restored
📁 Project: {project_name}
📍 Location: {project_path}
🕐 Last worked: {relative_time}
📝 Recent Decisions ({count}):
{for each decision (max 5):}
• {decision.content} ({relative_time})
{endfor}
🚧 Active Blockers ({count}):
{for each blocker:}
• {blocker.content} ({relative_time})
{endfor}
💾 Memory: {total_memories} total memories loaded
📊 Dashboard: {dashboard_path}
✅ Full context restored. Ready to continue!
What would you like to work on?
```
## Memory Integration
### Reading Memories
Always check memory index for:
- Project-specific context
- User preferences (tech stack, coding style)
- Past decisions affecting current work
- Similar past problems/solutions
### Time Anchoring (for Dyschronometria)
Convert all timestamps to relative format:
- "2 hours ago"
- "3 days ago"
- "Last Tuesday"
- Include ISO timestamp for precision
### Context Filtering
Filter memories by:
1. **Project match**: `memory.project === current_project`
2. **Recency**: Last 30 days weighted higher
3. **Type priority**: BLOCKER > DECISION > CONTEXT > PROCEDURE
4. **Relevance**: Tag matching if available
## Session State Management
### Saving Session State
Before ending conversation (if user says "goodbye", "see you", "done for now"):
1. Create/update `/home/toowired/.claude-sessions/current.json`:
```json
{
"project": "project-name",
"project_path": "/full/path",
"last_active": "ISO8601_timestamp",
"last_files": [
"/path/to/file1.js",
"/path/to/file2.py"
],
"last_topic": "Brief description of what we were working on",
"next_actions": [
"Suggested next step 1",
"Suggested next step 2"
]
}
```
2. Update memory index with session summary:
```json
{
"type": "NOTE",
"content": "Session ended: {brief_summary_of_work}",
"timestamp": "ISO8601",
"tags": ["session", "project-name"],
"project": "project-name"
}
```
### Project-Specific Sessions
For multi-project users, maintain:
```
/home/toowired/.claude-sessions/projects/
├── boostbox.json
├── toolhub.json
├── 88dimensions.json
└── mcp-stack.json
```
Each contains project-specific state.
## Visual Dashboard Features
### For Aphantasia Users
Always provide:
- **Concrete metrics** (numbers, counts)
- **Visual structure** (HTML dashboard)
- **Explicit links** (clickable file paths)
- **Status indicators** (✅ ❌ 🚧 emojis)
### For ADHD Users
Dashboard must:
- **Load instantly** (<2 seconds)
- **Show quick actions** (immediate next steps)
- **Highlight blockers** (red/urgent visual treatment)
- **Provide direct links** (one-click access to files)
### For SDAM Users
Dashboard must:
- **Externalize all context** (no assumption of memory)
- **Show time anchors** (when things happened)
- **Display decision history** (what was decided)
- **Link to artifacts** (proof of past work)
## Error Handling
### If No Context Found
```
👋 Hi! This looks like a fresh start.
I couldn't find existing session context, so let's establish some:
1. What project are you working on?
2. Should I create a memory index for you?
3. Would you like to start tracking decisions?
(I'll create the necessary directories and get you set up)
```
### If Memory Index Corrupted
```
⚠️ Memory index appears corrupted.
Creating backup at: /home/toowired/.claude-memories/backups/index-{timestamp}.json
Initializing fresh index...
✅ Fresh index created. Previous memories backed up.
```
### If Multiple Projects Detected
```
🤔 I found context for multiple projects:
1. BOOSTBOX (last active: 2 days ago)
2. Tool Hub (last active: 5 days ago)
3. MCP Stack (last active: 1 week ago)
Which project would you like to work on?
```
## Integration with Other Skills
### Memory Manager
- Queries memory-manager for structured memory search
- Defers complex memory operations to memory-manager
- Uses memory-manager's categorization system
### Context Manager
- Works with context-manager to maintain `.context/` directory
- Reads context-manager's structured data
- Updates session state via context-manager
### Error Debugger
- Surfaces recent blockers for error-debugger to consider
- Checks if current error matches past error memories
## Quick Reference
### File Locations
- **Memory index**: `/home/toowired/.claude-memories/index.json`
- **Current session**: `/home/toowired/.claude-sessions/current.json`
- **Project sessions**: `/home/toowired/.claude-sessions/projects/{name}.json`
- **Dashboards**: `/home/toowired/.claude-artifacts/session-dashboard-*.html`
### Trigger Phrases
- "hi-ai" (primary)
- "continue"
- "restore context"
- "what was I working on"
- "where did we leave off"
### Success Criteria
✅ User says "hi-ai" and is immediately productive
✅ No need to explain "what we were working on"
✅ All past decisions visible
✅ Active blockers surfaced
✅ Context restored in <2 seconds