course-builder: Skill for Claude Code

.claude/skills/tts-synthesis/SKILL.md

tts-synthesis is a skill for Claude Code from tobyilee/course-builder. It costs 128 tokens per session (1,326 once invoked), scanned A, original, MIT.

A tool that turns course transcripts into spoken audio files. TTS, or text-to-speech, converts written text into speech; the workflow can split audio by slide and join it into one full recording.

In plain words
What is it for?
Use it to create per-slide MP3 files and a complete MP3 from a transcript containing slide and pause markers.
Why use it?
It avoids manually recording or cutting narration and preserves pauses and slide boundaries from the transcript.

Skill for Claude Code

Written for Claude Code: installed under .claude/. Also seen: reads .claude/ paths.

This is tobyilee/course-builder's own configuration. It tells Claude Code how to work on course-builder itself, so it is not a mod to install elsewhere. Copy it as a starting point and replace the rules that are about this project. Everything course-builder configures →

Needs its repository: it runs a file that does not travel with it, so clone the repository first. The line is python3 scripts/synthesize-tts.py \.

Reuse

Borrowing it

Nothing to install: this file belongs to tobyilee/course-builder. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.

Copy the file
curl -O https://raw.githubusercontent.com/tobyilee/course-builder/main/.claude/skills/tts-synthesis/SKILL.md
Clone the repo
git clone --depth 1 https://github.com/tobyilee/course-builder

Made for: Claude Code.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for tts-synthesis

README.md
[![agentmods](https://agentmods.dev/badge/skills/tobyilee/course-builder/tts-synthesis.svg)](https://agentmods.dev/skills/tobyilee/course-builder/tts-synthesis)
Your own site
<a href="https://agentmods.dev/skills/tobyilee/course-builder/tts-synthesis"><img src="https://agentmods.dev/badge/skills/tobyilee/course-builder/tts-synthesis.svg" alt="Measured on agentmods" height="20"></a>
Per session 128 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,326 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00128 $0.01326
Opus 5 $0.00064 $0.00663
Sonnet 5 $0.00026 $0.00265
Haiku 4.5 $0.00013 $0.00133

Measured 6d ago against content hash 2c9333b7609d, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-06, from the pricing page.

Security

Grade A, and why

tts-synthesis scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 6d ago.

The scan reads SKILL.md. This mod also ships 1 executable file (scripts/run.sh), listed below but not scanned — reading those needs a real analyzer, not pattern matching.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

.claude/skills/tts-synthesis/SKILL.md · 100 lines

How it starts

The opening of the file, as written. The whole thing — 100 lines — stays where its author put it; the contents beside it link to each section on GitHub.

TTS Synthesis — Pluggable Audio Pipeline

transcript.txt를 per-slide MP3 + full.mp3로 합성한다. OpenAI gpt-4o-mini-tts + nova + speed 1.3가 기본. edge-tts는 offline/무료 대안.

왜 이 스킬이 존재하는가

원래 하네스의 Non-Goal이었으나 Phase 7에서 확장. TTS 합성은 (1) transcript 마커 파싱, (2) 엔진별 API 호출, (3) pause 무음 삽입 + concat, (4) retry가 모두 얽혀있어 스크립트화하지 않으면 재사용이 어렵다.

실행

표준 호출

python3 scripts/synthesize-tts.py \
  course/sections/<sec>/classes/<cls>/transcript.txt \
  course/sections/<sec>/classes/<cls>/audio

위는 기본값 (openai + nova + speed 1.3 + default 친근 ko instructions)을 사용.

래퍼 (pipefail 보장)

bash .claude/skills/tts-synthesis/scripts/run.sh \
  <transcript.txt> <out_dir> [추가 플래그]

래퍼가 set -o pipefail + tee의 실제 exit 전파 + .env 로딩을 책임진다.

엔진 전환

# edge-tts로 (오프라인, rate limit 있음)
--engine edge --voice ko-KR-SunHiNeural

# OpenAI 다른 voice/모델
--voice shimmer
--model tts-1-hd   # 고음질, 비용 2배
--speed 1.0        # 원속도

입력 마커 규격

  • [slide N] (줄 단독, N=1..) — TTS 후처리용 오디오 구간 분할 기준
  • [pause:Xms] — 무음 삽입 (기본 300~800). speed 파라미터에 영향받지 않음 (원본 유지, 사용자 확인된 선호)
  • [emph]...[/emph] — SSML 변환 시 <emphasis> (OpenAI는 instructions로 대체)

출력 구조

<out_dir>/
  slide_01.mp3  ~  slide_NN.mp3   # 슬라이드별
  full.mp3                          # 전체 concat

에이전트/오케스트레이터 연결

이 스킬은 tts-synthesizer 에이전트의 단일 책임 스킬. course-builder 오케스트레이터 Phase 5의 step 4 로 통합되어 있으며, asset-builderbuild-bundle.sh 안에서 자동 위임 호출한다:

Phase 5 (build):
  step 1 gate (asset-builder)
  step 2 Marp HTML (asset-builder)
  step 3 Marp PNG (asset-builder, SKIP_PLAYER 가능)
  step 4 TTS 합성 ← tts-synthesizer (이 스킬), per-class
  step 5 manifest (asset-builder)
  step 6 player HTML (asset-builder, SKIP_PLAYER 가능)
  step 7 SSML 검증 (asset-builder)
  step 8 bundle.zip (asset-builder)

자동 호출 조건 (모두 충족):

  • coherence_report.overall == "pass" — gate 통과
  • OPENAI_API_KEY 존재 (없으면 edge-tts 폴백)
  • SKIP_TTS != 1
  • audio/full.mp3 미존재 또는 FORCE_TTS=1

standalone 호출(빌드 외부 사용자 트리거)도 지원 — tts-synthesizer 에이전트를 직접 invoke.

Read the full file on GitHub · 100 lines

Files

What ships with it

1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 6d ago First seen · 100 lines · 128 tokens per session scan A 2c9333b7609d

Subscribe to this mod's changes

tts-synthesis is a skill published in the GitHub repository tobyilee/course-builder (22 stars, last pushed 4mo ago), licensed MIT. It adds 128 tokens to every session and 1,326 once invoked, about $0.0006 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

Other skills, from other repositories

baoyu-comic

Knowledge comics (知识漫画): educational, biography, tutorial.

NousResearch/hermes-agent · 17 tokens

html-ppt-zhangzara-cartesian

An economics senior thesis on the employment effects of local minimum-wage increases — identification strategy, evidence, and limitations. Built as a decision-grade coursework defense deck for thesis committee.

nexu-io/open-design · 46 tokens

html-ppt-zhangzara-daisy-days

A customer-success workshop onboarding users to a project-management app — the first-value path and the habits that retain. Built as a decision-grade professional training deck for new customers, CS team.

nexu-io/open-design · 49 tokens

html-ppt-zhangzara-playful

A retail sales-floor training on consultative selling — the flow, the role-plays, and the daily habit that lifts conversion. Built as a decision-grade professional training deck for store associates, floor managers.

nexu-io/open-design · 52 tokens

html-ppt-zhangzara-retro-windows

An IT security-awareness training on spotting phishing — the tells, the drill, and what to do in the first 60 seconds. Built as a decision-grade professional training deck for all employees.

nexu-io/open-design · 51 tokens

sprite-animation

A pixel / sprite-style animated explainer slide — full-bleed cream stage, bold display year, animated pixel-art mascot (e.g. Hanafuda card, mushroom, or 8-bit console), kinetic Japanese display type, ticking timeline ribbon. Reads like a single frame of an educational motion video — looping CSS keyframes, no JS, ready…

nexu-io/open-design · 141 tokens