transcript-fixer
An agent skill by daymade, from daymade/claude-code-skills. Tags: analysis, audio, documentation, review, validation.
What it does
Corrects speech-to-text transcription errors with dictionary rules and Claude's built-in AI (no external API key required); Native AI Correction is the default, Stage 1 alone is incomplete, and Stage 3 API is only for automation without Claude Code. Builds personalized correction databases, loads person-name ASR variants from the configured global people roster, and reads per-domain contexts for homophones. Before correcting a person name, the agent must consult both the global roster and the owning project's identity roster; project rosters are not auto-loaded, and occurrence frequency is never identity evidence. Use for ASR/STT output with recognition errors, homophones, garbled technical terms, person-name errors, or mixed Chinese/English, and for cleaning meeting notes, lecture transcripts, interviews, or any speech-recognition text—even when the user only says “fix this transcript,” “clean up these meeting notes,” or mentions a garbled name.
Install
With the skills CLI, which installs into Claude Code, Codex, Cursor and other agents:
npx skills add daymade/claude-code-skills --skill transcript-fixer
Or copy the skill folder into Claude Code's skills directory by hand (~/.claude/skills for every project, or .claude/skills inside one):
git clone --depth 1 https://github.com/daymade/claude-code-skills
cp -r claude-code-skills/daymade-audio/transcript-fixer ~/.claude/skills/transcript-fixer
Safety box score
Grade D, elevated risk: 61 of 100 risk points, rated 2026-10-16. The grade rates what the skill and its scripts can reach on the machine of whoever installs it, across eight categories from shell execution to secrets access. How the score works.
This skill fixes ASR transcripts, can write back to the transcript and local SQLite/config state under `~/.transcript-fixer`, and can optionally send transcript chunks to a remote GLM API for Stage 2 correction. The main risks are network egress of transcript content, bundled subprocess/package-install helpers, and broad file mutation/deletion of user artifacts and sidecars. Several key implementation files were not readable in this review, so some of the blast radius is only partially verified.
| Category | Level | Why |
|---|---|---|
| Code & shell execution | 2 (moderate) | The bundle runs subprocesses in shipped scripts (`subprocess.run([...])` in `scripts/ensure_deps.py`, `subprocess.call([...])` in `scripts/run_tests.py`) and even prints a shell install command: `curl -LsSf https://astral.sh/uv/install.sh | sh`. |
| Network access | 2 (moderate) | Stage 2 posts transcript chunks to a remote API (`httpx.Client(...).post(f"{self.base_url}/v1/messages", ...)` in `scripts/core/ai_processor.py`), and the setup helper suggests downloading `uv` over the network. |
| Filesystem reach | 2 (moderate) | The skill reads/writes user home state under `~/.transcript-fixer` (`config.json`, `corrections.db`, contexts, venv) and its native workflow edits the original transcript file directly and can remove sidecars. |
| Secrets & credentials | 2 (moderate) | It explicitly stores and reads API credentials via `GLM_API_KEY` / `ANTHROPIC_API_KEY` and a config file entry (`"api_key": "your-glm-api-key"`), then sends them as `x-api-key`. |
| Privilege & persistence | 2 (moderate) | It alters persistent user-environment state by creating a shared home venv (`~/.transcript-fixer/.venv`) and suggesting a `~/.zshrc` alias (`alias tf=...`), which goes beyond the project tree. |
| Instruction hijack surface | 1 (low) | `SKILL.md` contains many hard workflow directives (for example, `do not run Stage 3` and `never rewrite speech for fluency`), but I found no hidden/fetched prompt injection or attempt to conceal instructions. |
| Irreversible actions | 2 (moderate) | The core purpose is to autonomously modify user data: `Native mode edits the original file directly` and `--close-sidecars ... removes them only when everything is closed`, so it can rewrite transcripts and delete evidence artifacts. |
| Transparency | 2 (moderate) | Several important implementation files were not readable in this review (`scripts/fix_transcription.py`, `scripts/cli/commands.py`, core processors, dashboard JS), so the exact effects of the main entrypoints are only partially inspectable. |
Before installing
- Read `scripts/core/ai_processor.py` and confirm you are okay with transcript chunks leaving the machine for Stage 2.
- Inspect `scripts/ensure_deps.py` before using its setup path; it prints a `curl ... | sh` installer suggestion and a `~/.zshrc` alias.
- Check how `~/.transcript-fixer/config.json`, `corrections.db`, and `contexts/` will be created or modified on your account.
- Run it first on a disposable transcript or throwaway account, since native mode edits the original file and can remove sidecars.
Rated 2026-10-16 by an automated review of 47 files from the skill's repository.
Source
- Repository
- daymade/claude-code-skills (all skills from this repository)
- Path
- daymade-audio/transcript-fixer/SKILL.md
- Branch
- main
- Updated
- 2026-09-20
Related skills
- get-pr-comments — Fetch and summarize review comments from the active pull request
- maintain-verification-skill — Periodic pass that keeps a project's verification skill and feature map honest: parallel source readers per feature, one live session driving every feature.
- no-comments — Spawn Comment Sicko, fix accepted findings, and offer encodings for claimed constraints.
- principle-minimize-reader-load — Apply when reviewing or shaping code that's hard to trace.
- principle-prove-it-works — Apply after completing a task, before declaring done.
- review-walkthrough — Generates an interactive HTML walkthrough for reviewing code changes. Use only when explicitly called.