From 653b39abfad963ff6cfd110504d3c93740eaa249 Mon Sep 17 00:00:00 2001 From: Vasanth Date: Fri, 30 Oct 2026 12:51:31 +0530 Subject: [PATCH] read-trans: Tanglish explainer for YouTube transcripts, with eval Co-Authored-By: Claude Sonnet 5.5 --- README.md | 1 + skills/read-trans/README.md | 24 ++++++++++ skills/read-trans/SKILL.md | 46 +++++++++++++++++++ tests/evals/read_trans/README.md | 9 ++++ tests/evals/read_trans/check_output.py | 24 ++++++++++ .../read_trans/fixture_make_it_better.txt | 15 ++++++ .../read_trans/results/make_it_better.md | 31 +++++++++++++ 7 files changed, 150 insertions(+) create mode 100644 skills/read-trans/README.md create mode 100644 skills/read-trans/SKILL.md create mode 100644 tests/evals/read_trans/README.md create mode 100644 tests/evals/read_trans/check_output.py create mode 100644 tests/evals/read_trans/fixture_make_it_better.txt create mode 100644 tests/evals/read_trans/results/make_it_better.md diff --git a/README.md b/README.md index 2a0098f..bf443c6 100644 --- a/README.md +++ b/README.md @@ -10,5 +10,6 @@ Claude skills for RPA projects. Each folder in `skills/` is one skill: copy it i | `sql-review` | Reviews SQL code (SQL Server + pyodbc) against 10 rules through a subagent and writes every issue with a before/after fix plan to `query_tracker.md`. Read-only. | | `rpa-bot-handoff` | Writes a short ` Handover SOP` (at most 4 pages, Markdown and Word) for a bot being handed over: how to run it (URL, what to click), what shows where, where the result is, how a problem shows and what to do, and how to email the dev team. | | `pr` | Writes the PR body (Summary, Evidence, Merge Danger) and raises the PR to `main` with the `tea` CLI, with Murugeswaran as reviewer. Runs only on `/pr`; asks before creating a branch and before raising the PR. | +| `read-trans` | Reads a YouTube transcript (pasted or a file) and explains it in Tanglish: 2-line short version, medium explanation, final takeaway, and what to do in your own projects with a ready-to-copy prompt. Runs on `/read-trans`. Eval: `tests/evals/read_trans/`. | Run all tests: `uv run --with pytest --with playwright pytest tests` diff --git a/skills/read-trans/README.md b/skills/read-trans/README.md new file mode 100644 index 0000000..fc86721 --- /dev/null +++ b/skills/read-trans/README.md @@ -0,0 +1,24 @@ +# read-trans + +A Claude Code skill that explains a YouTube transcript in **Tanglish** (Tamil in English letters): a 2-line short version, a medium explanation, the final takeaway, and what to do in your own projects. + +## Install + +Copy this folder to `~/.claude/skills/read-trans/` and start a new Claude Code session. + +## Use + +- `/read-trans` then paste the transcript +- `/read-trans path/to/transcript.txt` +- "intha transcript Tanglish la explain pannu" + +## Output + +1. **Video enna solluthu**: 2 lines +2. **Medium explanation**: 4-6 numbered points +3. **Final takeaway**: 3-5 bullets +4. **Unga projects-ku enna pannanum**: steps plus a ready-to-copy prompt + +## Evals + +See `tests/evals/read_trans/`. Run the check with `python tests/evals/read_trans/check_output.py `. diff --git a/skills/read-trans/SKILL.md b/skills/read-trans/SKILL.md new file mode 100644 index 0000000..eac95f6 --- /dev/null +++ b/skills/read-trans/SKILL.md @@ -0,0 +1,46 @@ +--- +name: read-trans +description: Reads a YouTube transcript (pasted text or a .txt/.srt/.vtt file) and explains it in simple Tanglish - Tamil written in English letters with technical words kept in English. Gives a 2-line short version, a medium explanation, and a "what do I do in my projects" takeaway with a ready-to-copy prompt. Use whenever the user types /read-trans, pastes a YouTube/video transcript, or says "transcript Tanglish la sollu", "intha video enna solluthu", "video explain pannu", even if they don't say "read-trans". +--- + +# Read Trans + +Turn a YouTube transcript into a Tanglish explanation the user can read in two minutes and act on. The user is a developer who watches English tech videos and wants to know: what happened, and what should I do in my own projects. + +## Input + +- Transcript pasted after `/read-trans`, or a file path (`.txt`, `.srt`, `.vtt`). Read the file if a path is given. +- Only a YouTube link and no transcript: you can't watch the video. Ask the user to paste the transcript. Don't guess from the title. +- Strip timestamps (`0:07`, `1 minute, 4 seconds`), `Chapter N:` lines and caption numbering before reading. + +## Output + +Always these 4 sections, in this order, with these headings: + +### 1. Video enna solluthu (short) +Exactly 2 lines. What the speaker did and what he found. + +### 2. Medium explanation +Numbered points (4-6). Tell it as a sequence: what he set up, what he ran, what happened, what surprised him. Say it so a person who did not watch can picture it. Name the tools, models, numbers and prices he mentions (e.g. "Sonnet ~$22, Opus ~$137"). + +### 3. Final takeaway +3-5 bullets: only the lessons the speaker himself states or clearly shows. One bullet = one idea. No own arithmetic, no own conclusions here. + +### 4. Unga projects-ku enna pannanum +This is the part the user cares about most. Concrete, numbered steps the user can do today, not the speaker's story. Steps that come from the video are plain. Steps that are your own idea end with "(En idea)" so the user knows the speaker didn't say it. End with one ready-to-copy prompt or command in a fenced block, if the video is about prompting or tooling. If the video gives nothing actionable, say so in one line instead of inventing steps. + +## Language rules + +- **Tanglish = spoken Tamil in English letters** ("idhu romba nalla irukku", "panna num"). Not Tamil script, unless the user asks for Tamil script. +- Keep technical words in English: prompt, API, model, session, code, test, feature, deploy. +- Short sentences. Simple words. No formal Tamil. +- Sections 1-3 carry only what the speaker said. Your own comments or ideas go only in section 4, marked "(En idea)". +- Copy qualifiers exactly: "did not work" is not "broke", "about $22" is not "$22 exactly". +- Skip sponsor plugs, "like and subscribe", and intros that carry no information. +- If the speaker's own claim looks doubtful (e.g. a number that doesn't add up), say so in one line. + +## Don't + +- Don't quote the transcript line by line. Explain it. +- Don't pad. If the transcript is short, the output is short. +- Don't write files unless the user asks. Reply in chat. diff --git a/tests/evals/read_trans/README.md b/tests/evals/read_trans/README.md new file mode 100644 index 0000000..b2c221a --- /dev/null +++ b/tests/evals/read_trans/README.md @@ -0,0 +1,9 @@ +# read-trans eval + +- `fixture_make_it_better.txt`: short transcript with timestamps, chapter markers and a "like and subscribe" plug. +- `results/make_it_better.md`: output of a fresh subagent that followed only `skills/read-trans/SKILL.md`. +- `check_output.py `: PASS/FAIL on structure (4 headings, a prompt block), Tanglish (no Tamil script, enough Tanglish words), no leaked timestamps/chapters/plugs, costs kept, under 700 words. + +Run: `python tests/evals/read_trans/check_output.py tests/evals/read_trans/results/make_it_better.md` + +History: run 1 passed the check but put its own arithmetic in the takeaway and did not mark its own ideas. SKILL.md was tightened (speaker-only sections 1-3, own ideas marked `(En idea)`); run 2 is the stored result. diff --git a/tests/evals/read_trans/check_output.py b/tests/evals/read_trans/check_output.py new file mode 100644 index 0000000..1ffb2bb --- /dev/null +++ b/tests/evals/read_trans/check_output.py @@ -0,0 +1,24 @@ +"""Check a read-trans output file: python check_output.py output.md (exit 1 on failure).""" +import re, sys + +text = open(sys.argv[1], encoding="utf-8").read() +low = text.lower() +fails = [] + +def need(ok, msg): + if not ok: + fails.append(msg) + +for h in ("video enna solluthu", "medium explanation", "final takeaway", "projects-ku enna pannanum"): + need(h in low, f"missing section: {h}") +need(not re.search(r"[\u0b80-\u0bff]", text), "Tamil script found (should be Tanglish)") +need(not re.search(r"\b\d+:\d{2}\b", text), "timestamp leaked into output") +need(not re.search(r"chapter \d", low), "chapter marker leaked") +need("```" in text, "no ready-to-copy prompt block in the projects section") +need(len(re.findall(r"\b(irukku|panna|pannanum|solluthu|romba|idhu|athu|aana|illa)\b", low)) >= 8, "not enough Tanglish words") +need("subscribe" not in low, "sponsor/subscribe plug repeated") +need("$137" in text and "$22" in text, "model costs missing") +need(len(text.split()) < 700, "too long (>700 words)") + +print("\n".join(["FAIL: " + f for f in fails]) or "PASS") +sys.exit(1 if fails else 0) diff --git a/tests/evals/read_trans/fixture_make_it_better.txt b/tests/evals/read_trans/fixture_make_it_better.txt new file mode 100644 index 0000000..86a264f --- /dev/null +++ b/tests/evals/read_trans/fixture_make_it_better.txt @@ -0,0 +1,15 @@ +0:00 0 seconds Today I gave Claude Code a horrible coffee shop website and told it make it better, 100 times in a row. +0:15 15 seconds I did this with Sonnet 5.5 on medium effort and Opus 5.5 on medium effort. +Chapter 2: The prompt +0:25 25 seconds The prompt was: look at the site first, then innovate. Think about user experience, think outside the box. Make one bold change. You must ship a change every time. +0:50 50 seconds I had to force it to change every time because earlier it stopped at round 20 or 25 and said nothing else can be done. +Chapter 3: Setup +1:20 1 minute, 20 seconds Every round ran in a clean room: fresh session, no skills, no CLAUDE.md, no plugins, no memory. Only the site code carried over from the last round. +Chapter 4: Sonnet +2:10 2 minutes, 10 seconds Sonnet cost about $22 and ran almost 2 hours. Early rounds were good: sticky order bar, receipt style order, an AI video, an order form. After round 32 there were no big milestones. Lines of code kept rising linearly but quality did not. +Chapter 5: Opus +7:40 7 minutes, 40 seconds Opus cost $137 and ran 8.5 hours. Round 1 was already better. It added a QR code that texts your order, and a mood-based drink picker. By round 100 it had 21,000 lines: leaves, pumpkin carving, caffeine tracker, music, a Spanish toggle that did not work. Some sections broke. It was AI slop. +Chapter 6: Surprises +12:30 12 minutes, 30 seconds Neither model used web search, even though I said innovate. They never looked at award winning sites for inspiration. +Chapter 7: Final thoughts +13:15 13 minutes, 15 seconds The model sets the ceiling and the prompt sets the direction. Innovate without a vision turns into adding. It tried to upsell everything, a hard sell instead of a soft close. Please like and subscribe. diff --git a/tests/evals/read_trans/results/make_it_better.md b/tests/evals/read_trans/results/make_it_better.md new file mode 100644 index 0000000..81c93e7 --- /dev/null +++ b/tests/evals/read_trans/results/make_it_better.md @@ -0,0 +1,31 @@ +### 1. Video enna solluthu (short) +Speaker oru horrible coffee shop website-ai Claude Code kitta "make it better" nu 100 times sonnaar, Sonnet 5.5 and Opus 5.5 (rendum medium effort) la. +Opus better ideas kudutthuchu aana 100 rounds la AI slop aayiduchu; Sonnet cheap ah irunthuchu aana 32 round-ku apram quality nikkala. + +### 2. Medium explanation +1. Setup: oru mosamaana coffee shop website. Prompt: "look at the site first, then innovate, think about user experience, think outside the box, make one bold change, you must ship a change every time." Idhu 100 times loop. +2. "You must ship a change" nu force pannaan, because munnadi round 20 or 25 la model "innum onnum panna mudiyaadhu" nu niruthiduchu. +3. Every round clean room: fresh session, no skills, no CLAUDE.md, no plugins, no memory. Site code mattum next round-ku poachu. +4. Sonnet: about $22, almost 2 hours. Early rounds nalla irunthuchu: sticky order bar, receipt style order, AI video, order form. Round 32-ku apram big milestone illa. Lines of code linear ah ericchu, aana quality ericchila. +5. Opus: $137, 8.5 hours. Round 1 la ye better. QR code (scan pannaa order text aagum), mood-based drink picker. Round 100 la 21,000 lines: leaves, pumpkin carving, caffeine tracker, music, Spanish toggle (adhu work aagala). Sila sections broke. Speaker: "AI slop". +6. Surprise: rendu model-um web search use pannala, "innovate" nu sonnaalum. Award winning sites paathu inspiration edukkala. + +### 3. Final takeaway +- Model dhaan ceiling set pannum; prompt dhaan direction set pannum. +- Vision illaama "innovate" nu sonna, model add pannikite irukkum, improve pannaadhu. +- Model ellathayum upsell panna paathuchu: hard sell, soft close illa. +- Repeat panna panna lines of code ericchu, quality ericchila (Sonnet 32 round-ku apram). +- Model ah force pannaama vittaa round 20-25 la niruthidum. + +### 4. Unga projects-ku enna pannanum +1. "Make it better" maari vague prompt kudukaadhe. Enna improve venum nu direction sollu (vision, goal, target user). +2. Loop la run pannum bodhu "look at the site/code first, then make one bold change" nu one change per round nu limit pannu. +3. Model web search use pannala, so inspiration venumna neeye sollu: "search award winning sites first" nu prompt la explicit ah eludhu. (En idea) +4. 20-30 rounds-ku mela poga vendaam; Sonnet 32-ku apram gain illa. Oru stop point vechuko. (En idea) +5. Ovvoru round-um fresh session, clean context la run pannu, code mattum carry over aagattum. Idhu speaker-oda setup. +6. Round mudinjadhum feature work aagudha nu check pannu (Spanish toggle maari broken things pidikka). (En idea) +7. Cost paaru: Sonnet ~ $22 vs Opus ~ $137. Chinna improvement-ku Sonnet podhum, Opus ku vision/prompt strong ah irukkanum. (En idea) + +``` +Look at the current site first. Then make ONE bold change that improves user experience for [target user] toward this goal: [goal]. Before coding, search the web for 2-3 award-winning sites in this space and borrow one idea. Do not add features unrelated to the goal. Do not upsell. Make sure the change actually works, and fix anything broken from earlier rounds before adding new things. +```