---
name: convert
description: Convert .cast to .txt for Claude Code analysis. Supports batch mode. TRIGGERS - convert cast, cast to txt, batch convert
allowed-tools: Bash, AskUserQuestion, Glob, Write
argument-hint: "[file] [-o output] [--batch] [--source dir] [--output-dir dir] [--skip-existing] [--index] [--analyze]"
---

# /asciinema-tools:convert

Convert asciinema .cast recordings to clean .txt files. Supports single file and batch directory modes.

> **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

### Single File Mode

| Argument       | Description                        |
| -------------- | ---------------------------------- |
| `file`         | Path to .cast file                 |
| `-o, --output` | Output path (default: same dir)    |
| `--index`      | Create timestamp indexed version   |
| `--chunks`     | Split at 30s+ idle pauses          |
| `--dims`       | Preserve terminal dimensions       |
| `--analyze`    | Auto-run /analyze after conversion |

### Batch Mode

| Argument          | Description                                              |
| ----------------- | -------------------------------------------------------- |
| `--batch`         | Enable batch mode for directory conversion               |
| `--source`        | Source directory (default: ~/asciinemalogs)              |
| `--output-dir`    | Output directory (default: ~/Downloads/cast-txt/)        |
| `--skip-existing` | Skip files that already have .txt output (default: true) |

**Note**: `--batch` and positional `file` are mutually exclusive.

## Execution

Invoke the `asciinema-converter` skill with user-selected options.

### Single File Skip Logic

- If `file` provided → skip Phase 1 (file selection)
- If options provided → skip Phase 2 (options)
- If `-o` provided → skip Phase 3 (output location)
- If `--analyze` provided → skip Phase 6 and auto-run analyze

### Batch Mode Skip Logic

- If `--batch` provided → skip Phases 1-3, enter batch phases (7-10)
- If `--source` provided → skip Phase 7 (source selection)
- If `--output-dir` provided → skip Phase 8 (output organization)

### Single File Workflow

1. **Preflight**: Check asciinema convert command
2. **Discovery**: Find .cast files
3. **Selection**: AskUserQuestion for file
4. **Options**: AskUserQuestion for conversion options
5. **Location**: AskUserQuestion for output location
6. **Execute**: Run asciinema convert
7. **Report**: Display compression ratio
8. **Next**: AskUserQuestion for follow-up action

### Batch Workflow

1. **Preflight**: Check asciinema convert command
2. **Source**: AskUserQuestion for source directory
3. **Output**: AskUserQuestion for output directory
4. **Execute**: Batch convert with progress reporting
5. **Report**: Display aggregate compression stats
6. **Next**: AskUserQuestion for follow-up action

## Examples

```bash
# Single file conversion
/asciinema-tools:convert ~/Downloads/session.cast

# Batch mode with defaults
/asciinema-tools:convert --batch

# Batch mode with custom paths
/asciinema-tools:convert --batch --source ~/Downloads --output-dir ~/cast-txt/

# Batch mode, force re-convert existing
/asciinema-tools:convert --batch --skip-existing=false
```

## Troubleshooting

| Issue                  | Cause                   | Solution                            |
| ---------------------- | ----------------------- | ----------------------------------- |
| asciinema not found    | asciinema not installed | `brew install asciinema`            |
| Convert command failed | Corrupted .cast file    | Try `asciinema cat file.cast` first |
| No .cast files found   | Wrong directory         | Check --source path                 |
| Output not created     | Permission denied       | Check write permissions on output   |
| File too large         | Long recording session  | Use --chunks to split at pauses     |

## Post-Execution Reflection

After this skill completes, check before closing:

1. **Did the command succeed?** — If not, fix the instruction or error table that caused the failure.
2. **Did parameters or output change?** — If the underlying tool's interface drifted, update Usage examples and Parameters table to match.
3. **Was a workaround needed?** — If you had to improvise (different flags, extra steps), update this SKILL.md so the next invocation doesn't need the same workaround.

Only update if the issue is real and reproducible — not speculative.
