Receber por email
← Voltar para o catálogo

session-launcher

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.

15estrelas
Atualizado há 11 meses

Ver no GitHub ↗ Licença: MIT

Como adicionar

/plugin marketplace add jackspace/ClaudeSkillz

O comando exato pode variar conforme o repositório. Confira o README no GitHub.

Para o autor da skill

Cole no README do seu repo

Mostra que sua skill está catalogada na Skillteca, gera backlink e tráfego rastreável.

[![Skillteca](https://www.skillteca.com.br/api/badge/session-launcher/svg)](https://www.skillteca.com.br/skills/session-launcher)
#ai

Alerta por categoria

Receba novas skills de Design e Frontend toda segunda

1 email curto, só com as skills novas de Design e Frontend. 4 minutos de leitura, sem spam, cancela com 1 clique.

Você confirma o email no primeiro envio. Sem spam. Cancela com 1 clique.

Ler descrição completa

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"
  ]
}
  1. 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.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

Compartilhar X LinkedIn