Docs/Skills and code/skill video-script-production
.claude/skills/video-script-production/examples/moser-baer-v7/README.md
Worked example: Moser Baer v7 (frozen 2026-10-25): v6 polished after the user's line-by-line notes on the Hinglish script (references/review-round-7.md).
Mentioned on: page 08
Worked example: Moser Baer v7 (frozen 2026-10-25)
v6 polished after the user's line-by-line notes on the Hinglish script (references/review-round-7.md). Frozen as the model for the K, L, M fields (clarity, turns, density) and for the Hinglish and TTS file set. ../moser-baer-v6/ remains the model for everything else. The live files are in research/the-fall-of-moser-baer/script/; if the two differ, this copy is the one that passed. It is an example of form, not of facts.
Files: SCRIPT-v7.md (what the notes asked for and what v7 does, packaging, script, changes, ledger, do-not-use, open items), chain-v7.json, HANDOFF-v7.md, STATUS-v7.md, lint/lint-v7.md (70 rules, all pass) and lint/compare-v6-v7.md, SCRIPT-v7-hinglish.md, and tts/spec-v7-*.json (where the TTS tags go; scripts/tts-gemini.js builds the prompt files from them).
Where the new fields live in the text
| Chain field | Text in v7 | Rule |
|---|---|---|
humans[].tags | "Ratul Puri, Deepak's son and a company director, put it plainly" (arrival, beat 3); "In 2003 Ratul, Deepak's son, told Business Today..." (return, same beat); "Ratul, Deepak's son, argued" (beat 7); "Ratul Puri, Deepak's son, said" (beat 9); "the founder's son, Ratul Puri" (beat 12). "Mahesh Sharma, the worker we met at the start, joined the plant" (beat 3); "Mahesh Sharma, the union's president" (beat 10); "the union's former president" (close) | K1, K2 |
concepts (pivot) | defined once, in the hook: "Whenever something stopped working, he moved on to something new, and the business world has a word for that: a pivot." Then "That was his first pivot" (beat 1), "his second pivot" (2), "his third pivot" (3), "fourth pivot" (7), "pivoted three times" (5), "Three pivots worked. The fourth didn't." (close) | K6, K5 |
counted_sets | "three problems at once" (beat 8) is followed by its three items; "three questions for any company" (hook) is paid by "One... Two... Three..." (close); "Three pivots worked" is a tally of the three signposted pivots | K5 |
audience.known_terms | crore, CBI: never glossed ("₹1,100 crore expansion plan", no "a crore is ten million") | K7 |
one_off_names / not_cast | Esso, Shalimar Paints, World Bank, Philips, IRENA, Alchemist, Sony, Dixon, Central Bank of India each have a stated reason; Moser Baer and the publications are not_cast; Xidex was cut because it could not be given one | K3, K4 |
cdl.hook_elements.turn_quote | "...and made serious money doing it. But one morning in November 2017, its workers reached the plant..." (the prize in the audience's words, then a contrast) | L1 |
humans[witness].cost_quote | "had spent a full 17 years inside"; "give up part of their own pay" | L2 |
beats[].link_to_next: BUT | beat 2 to 3: "...even though late is usually fatal"; beat 6 to 7: "But the other exit was so far from discs..."; beat 7 to 8: "But the market it was running into..."; beat 11 to 12: "But that leaves the question..." | L3 |
persona.aloof (beat 5) | "I'll take the company at its word until someone shows me different." (replaces "I don't have a favourite theory") | L4, G1 |
beats[].headline_quote | beat 3: "Here's how a latecomer ended up second in the world, even though late is usually fatal."; beat 7: "The other exit was solar, and it came with a huge bill and a date."; beat 9: "What happened took half a year: the company went from saying it was well-funded to asking for time."; beat 10: "The lenders did step in, and nothing got fixed."; beat 12: "The short answer: the alleged frauds are too small to explain the hole." | M1 |
cdl.hook_elements.tease_quote, takeaway_quote | "Along the way: a cocktail party on America's west coast, a press conference that aged badly in half a year, and a national honour." (24 words) / "By the end you'll have three questions for any company, and for you." (13 words) | M2 |
| (no field: the absence of a phrase) | beat 4 ends "A company panting on a treadmill can look healthy right up to the moment it doesn't. But the first signs were starting to show." instead of "If that's right, you'd expect... There should be a sign" | M3 |
The Hinglish and the TTS
SCRIPT-v7-hinglish.md follows the English paragraph for paragraph (58 paragraphs); scripts/hinglish-parity.js says PARITY OK. Its section 2 lists what changed, the user's words kept, what was not taken from the notes and why, and the Hinglish rules. The TTS prompt files are generated, not hand-edited: node scripts/tts-gemini.js --script SCRIPT-v7-hinglish.md --spec tts/spec-v7-hinglish.json --out tts --name v7-hinglish.
Show the raw text
# Worked example: Moser Baer v7 (frozen 2026-10-25)
v6 polished after the user's line-by-line notes on the Hinglish script (`references/review-round-7.md`). Frozen as the model for the **K, L, M** fields (clarity, turns, density) and for the Hinglish and TTS file set. `../moser-baer-v6/` remains the model for everything else. The live files are in `research/the-fall-of-moser-baer/script/`; if the two differ, this copy is the one that passed. It is an example of *form*, not of facts.
Files: `SCRIPT-v7.md` (what the notes asked for and what v7 does, packaging, script, changes, ledger, do-not-use, open items), `chain-v7.json`, `HANDOFF-v7.md`, `STATUS-v7.md`, `lint/lint-v7.md` (70 rules, all pass) and `lint/compare-v6-v7.md`, `SCRIPT-v7-hinglish.md`, and `tts/spec-v7-*.json` (where the TTS tags go; `scripts/tts-gemini.js` builds the prompt files from them).
## Where the new fields live in the text
| Chain field | Text in v7 | Rule |
|---|---|---|
| `humans[].tags` | "Ratul Puri, **Deepak's son and a company director**, put it plainly" (arrival, beat 3); "In 2003 Ratul, **Deepak's son**, told Business Today..." (return, same beat); "Ratul, Deepak's son, argued" (beat 7); "Ratul Puri, Deepak's son, said" (beat 9); "**the founder's son**, Ratul Puri" (beat 12). "Mahesh Sharma, **the worker we met at the start**, joined the plant" (beat 3); "Mahesh Sharma, **the union's president**" (beat 10); "**the union's former president**" (close) | K1, K2 |
| `concepts` (pivot) | defined once, in the hook: "Whenever something stopped working, he moved on to something new, and the business world has a word for that: **a pivot**." Then "That was his **first** pivot" (beat 1), "his **second** pivot" (2), "his **third** pivot" (3), "**fourth** pivot" (7), "pivoted three times" (5), "**Three pivots worked.** The fourth didn't." (close) | K6, K5 |
| `counted_sets` | "three problems at once" (beat 8) is followed by its three items; "three questions for any company" (hook) is paid by "One... Two... Three..." (close); "Three pivots worked" is a tally of the three signposted pivots | K5 |
| `audience.known_terms` | crore, CBI: never glossed ("₹1,100 crore expansion plan", no "a crore is ten million") | K7 |
| `one_off_names` / `not_cast` | Esso, Shalimar Paints, World Bank, Philips, IRENA, Alchemist, Sony, Dixon, Central Bank of India each have a stated reason; Moser Baer and the publications are `not_cast`; Xidex was cut because it could not be given one | K3, K4 |
| `cdl.hook_elements.turn_quote` | "...and made serious money doing it. **But one morning in November 2017**, its workers reached the plant..." (the prize in the audience's words, then a contrast) | L1 |
| `humans[witness].cost_quote` | "had spent **a full** 17 years inside"; "give up part of **their own** pay" | L2 |
| `beats[].link_to_next: BUT` | beat 2 to 3: "...even though late is usually fatal"; beat 6 to 7: "**But** the other exit was so far from discs..."; beat 7 to 8: "**But** the market it was running into..."; beat 11 to 12: "**But** that leaves the question..." | L3 |
| `persona.aloof` (beat 5) | "I'll take the company at its word until someone shows me different." (replaces "I don't have a favourite theory") | L4, G1 |
| `beats[].headline_quote` | beat 3: "Here's how a latecomer ended up second in the world, even though late is usually fatal."; beat 7: "The other exit was solar, and it came with a huge bill and a date."; beat 9: "What happened took half a year: the company went from saying it was well-funded to asking for time."; beat 10: "The lenders did step in, and nothing got fixed."; beat 12: "The short answer: the alleged frauds are too small to explain the hole." | M1 |
| `cdl.hook_elements.tease_quote`, `takeaway_quote` | "Along the way: a cocktail party on America's west coast, a press conference that aged badly in half a year, and a national honour." (24 words) / "By the end you'll have three questions for any company, and for you." (13 words) | M2 |
| (no field: the absence of a phrase) | beat 4 ends "A company panting on a treadmill can look healthy right up to the moment it doesn't. But the first signs were starting to show." instead of "If that's right, you'd expect... There should be a sign" | M3 |
## The Hinglish and the TTS
`SCRIPT-v7-hinglish.md` follows the English paragraph for paragraph (58 paragraphs); `scripts/hinglish-parity.js` says `PARITY OK`. Its section 2 lists what changed, the user's words kept, what was not taken from the notes and why, and the Hinglish rules. The TTS prompt files are generated, not hand-edited: `node scripts/tts-gemini.js --script SCRIPT-v7-hinglish.md --spec tts/spec-v7-hinglish.json --out tts --name v7-hinglish`.
Shown as it is in the repository at build time (2026-11-03); the home directory appears as <home>. If this page and the file differ, the file is right. Back to the catalogue.