---
name: post-session
description: Complete post-session workflow - finalize orphaned recordings, convert, and AI summarize. TRIGGERS - post session, analyze recording, session review
allowed-tools: Bash, Grep, AskUserQuestion, Glob, Write, Read, Task
argument-hint: "[file] [--finalize] [-q|--quick] [-f|--full] [--summarize] [--output file]"
---

# /asciinema-tools:post-session

Complete post-session workflow: finalize orphaned recordings → convert to text → AI-powered summarize.

> **Self-Evolving Skill**: This skill improves through use. If instructions are wrong, parameters drifted, or a workaround was needed — fix this file immediately, don't defer. Only update for real, reproducible issues.

## Arguments

| Argument      | Description                                      |
| ------------- | ------------------------------------------------ |
| `file`        | Path to .cast file (or auto-detect)              |
| `--finalize`  | Include finalize step (stop processes, compress) |
| `-q, --quick` | Quick analysis (keyword grep + brief summary)    |
| `-f, --full`  | Full analysis (convert + AI deep-dive summarize) |
| `--summarize` | Include AI summarize step (iterative deep-dive)  |
| `--output`    | Save findings to markdown file                   |

## Workflow Modes

### Quick Mode (`-q`)

```
[file] → convert → keyword grep → brief summary
```

### Full Mode (`-f`)

```
[file] → convert → AI summarize (iterative deep-dive)
```

### Complete Mode (`--finalize --full`)

```
stop processes → compress → push → convert → AI summarize
```

## Execution

### Phase 1: Discovery

```yaml
AskUserQuestion:
  question: "What would you like to do?"
  header: "Workflow"
  options:
    - label: "Quick analysis (Recommended)"
      description: "Convert + keyword search + brief summary"
    - label: "Full AI analysis"
      description: "Convert + iterative AI deep-dive with guidance"
    - label: "Complete workflow"
      description: "Finalize orphans + convert + AI summarize"
    - label: "Finalize only"
      description: "Stop processes and push to orphan branch"
```

### Phase 2: File Selection

If no file specified, discover available recordings:

```bash
/usr/bin/env bash << 'DISCOVER_EOF'
echo "=== Running asciinema processes ==="
ps aux | grep -E "asciinema rec" | grep -v grep | while read -r line; do
  PID=$(echo "$line" | awk '{print $2}')
  CAST=$(echo "$line" | grep -oE '[^ ]+\.cast' | head -1)
  if [[ -n "$CAST" ]]; then
    SIZE=$(ls -lh "$CAST" 2>/dev/null | awk '{print $5}' || echo "?")
    echo "  [RUNNING] PID $PID: $CAST ($SIZE)"
  fi
done

echo ""
echo "=== Recent .cast files ==="
find ~/eon -name "*.cast" -size +1M -mtime -7 2>/dev/null | while read -r f; do
  SIZE=$(ls -lh "$f" | awk '{print $5}')
  MTIME=$(stat -f "%Sm" -t "%m-%d %H:%M" "$f" 2>/dev/null)
  echo "  $f ($SIZE, $MTIME)"
done | head -10

echo ""
echo "=== Recent .txt files (already converted) ==="
find ~/eon -name "*.txt" -size +100M -mtime -7 2>/dev/null | while read -r f; do
  SIZE=$(ls -lh "$f" | awk '{print $5}')
  echo "  $f ($SIZE)"
done | head -5
DISCOVER_EOF
```

```yaml
AskUserQuestion:
  question: "Which recording to analyze?"
  header: "Select"
  options:
    # Dynamically populated from discovery
    - label: "{filename} ({size})"
      description: "{path}"
```

### Phase 3: Finalize (if selected)

Chain to `/asciinema-tools:finalize`:

1. Stop running asciinema processes
2. Verify file integrity
3. Compress with zstd
4. Push to orphan branch

### Phase 4: Convert

```bash
/usr/bin/env bash << 'CONVERT_EOF'
CAST_FILE="$1"
TXT_FILE="${CAST_FILE%.cast}.txt"

echo "Converting: $CAST_FILE"
echo "Output: $TXT_FILE"

if asciinema convert -f txt "$CAST_FILE" "$TXT_FILE"; then
  ORIG=$(ls -lh "$CAST_FILE" | awk '{print $5}')
  CONV=$(ls -lh "$TXT_FILE" | awk '{print $5}')
  echo "✓ Converted: $ORIG → $CONV"
else
  echo "✗ Conversion failed"
  exit 1
fi
CONVERT_EOF
```

### Phase 5: Analysis

**Quick mode**: Keyword grep + brief summary

```bash
# Run curated keyword searches
grep -c -i "error\|fail\|exception" "$TXT_FILE"
grep -c -i "success\|complete\|done" "$TXT_FILE"
grep -c -i "sharpe\|drawdown\|backtest" "$TXT_FILE"
# ... summarize counts
```

**Full mode**: Chain to `/asciinema-tools:summarize`

- Initial guidance via AskUserQuestion
- Strategic sampling (head/middle/tail)
- Iterative deep-dive with user guidance
- Synthesis into findings report

### Phase 6: Output

```yaml
AskUserQuestion:
  question: "Analysis complete. What next?"
  header: "Output"
  options:
    - label: "Display summary"
      description: "Show findings in terminal"
    - label: "Save to markdown"
      description: "Write findings to {filename}_findings.md"
    - label: "Continue exploring"
      description: "Deep-dive into specific sections"
    - label: "Done"
      description: "Exit workflow"
```

## Example Usage

```bash
# Interactive mode - auto-detect and guide
/asciinema-tools:post-session

# Quick analysis on specific file
/asciinema-tools:post-session session.cast -q

# Full AI analysis with output
/asciinema-tools:post-session session.cast -f --output findings.md

# Complete workflow including finalize
/asciinema-tools:post-session --finalize -f
```

## Related Commands

- `/asciinema-tools:daemon-status` - View status and find unhandled files
- `/asciinema-tools:finalize` - Finalize orphaned recordings
- `/asciinema-tools:convert` - Convert .cast to .txt
- `/asciinema-tools:summarize` - AI-powered deep analysis
- `/asciinema-tools:analyze` - Keyword-based analysis

## Troubleshooting

| Issue                    | Cause                    | Solution                                    |
| ------------------------ | ------------------------ | ------------------------------------------- |
| No recordings found      | No .cast files in ~/eon  | Check recording directory with `find ~/eon` |
| File discovery empty     | Wrong search path        | Manually specify file path as argument      |
| Convert fails            | Corrupted .cast file     | Run `/asciinema-tools:finalize` first       |
| AI summarize timeout     | Recording too large      | Use `-q` for quick analysis first           |
| Orphan branch push fails | Git authentication issue | Check GitHub token with `echo $GH_TOKEN`    |

## Post-Execution Reflection

After this skill completes, reflect before closing the task:

0. **Locate yourself.** — Find this SKILL.md's canonical path before editing.
1. **What failed?** — Fix the instruction that caused it.
2. **What worked better than expected?** — Promote to recommended practice.
3. **What drifted?** — Fix any script, reference, or dependency that no longer matches reality.
4. **Log it.** — Evolution-log entry with trigger, fix, and evidence.

Do NOT defer. The next invocation inherits whatever you leave behind.
