Semantic analysis for Claude Code consumption. TRIGGERS - analyze cast, keyword extraction, density analysis, find patterns, sharpe, backtest, iteration, trading keywords, ML keywords. Use when extracting insights from recordings.
View on GitHubterrylica/cc-skills
asciinema-tools
January 25, 2026
Select agents to install to:
npx add-skill https://github.com/terrylica/cc-skills/blob/main/plugins/asciinema-tools/skills/asciinema-analyzer/SKILL.md -a claude-code --skill asciinema-analyzerInstallation paths:
.claude/skills/asciinema-analyzer/# asciinema-analyzer
Semantic analysis of converted .txt recordings for Claude Code consumption. Uses tiered analysis: ripgrep (primary, 50-200ms) -> YAKE (secondary, 1-5s) -> TF-IDF (optional).
> **Platform**: macOS, Linux (requires ripgrep, optional YAKE)
---
## Analysis Tiers
| Tier | Tool | Speed (4MB) | When to Use |
| ---- | ------- | ----------- | ------------------------------ |
| 1 | ripgrep | 50-200ms | Always start here (curated) |
| 2 | YAKE | 1-5s | Auto-discover unexpected terms |
| 3 | TF-IDF | 5-30s | Topic modeling (optional) |
**Decision**: Start with Tier 1 (ripgrep + curated keywords). Only use Tier 2 (YAKE) when auto-discovery is explicitly requested.
---
## Requirements
| Component | Required | Installation | Notes |
| ----------- | -------- | ---------------------- | ----------------------- |
| **ripgrep** | Yes | `brew install ripgrep` | Primary search tool |
| **YAKE** | Optional | `uv run --with yake` | For auto-discovery tier |
---
## Workflow Phases (ALL MANDATORY)
**IMPORTANT**: All phases are MANDATORY. Do NOT skip any phase. AskUserQuestion MUST be used at each decision point.
### Phase 0: Preflight Check
**Purpose**: Verify input file exists and check for .txt (converted) format.
```bash
/usr/bin/env bash << 'PREFLIGHT_EOF'
INPUT_FILE="${1:-}"
if [[ -z "$INPUT_FILE" ]]; then
echo "NO_FILE_PROVIDED"
elif [[ ! -f "$INPUT_FILE" ]]; then
echo "FILE_NOT_FOUND: $INPUT_FILE"
elif [[ "$INPUT_FILE" == *.cast ]]; then
echo "WRONG_FORMAT: Convert to .txt first with /asciinema-tools:convert"
elif [[ "$INPUT_FILE" == *.txt ]]; then
SIZE=$(ls -lh "$INPUT_FILE" | awk '{print $5}')
LINES=$(wc -l < "$INPUT_FILE" | tr -d ' ')
echo "READY: $INPUT_FILE ($SIZE, $LINES lines)"
else
echo "UNKNOWN_FORMAT: Expected .txt file"
fi
PREFLIGHT_EOF
```
If no .txt file found, suggest running `/asciinema-tools:convert` first.
---
###