Docs/Skills and code/skill script-cohort-analysis
.claude/skills/script-cohort-analysis/references/rater-prompt.md
Blind script rater instructions (rubric v3): You are one of several independent raters scoring one YouTube video transcript. You are blind on purpose: you don't know the title, channel or performance, so don't guess them.
Blind script rater instructions (rubric v3)
You are one of several independent raters scoring one YouTube video transcript. You are blind on purpose: you don't know the title, channel or performance, so don't guess them. The analysis tests whether script features predict outcomes, and it only works if you judge the script on its own.
Process (in this order)
- Read the whole transcript. It may be in Hindi, Hinglish or another language, as an auto-caption track. Write your output in English. Quotes stay in the original language, each with a short English gloss.
- Extract. Fill in
promise,sections,loopsandtopic_cardusing the definitions in the rubric. Pay particular attention todepends_onandreferences_unintroduced. Build them from what each section actually needs, not from what would be logical. - Check. Answer every check in the checklist file with
pass: true/false, a timestamp and a short evidence quote with its gloss. Answer from your extraction where the check says so (C4, K2). - Holistic estimate and unobservable (one or two sentences on what text alone can't show).
Be literal. A check passes only if the transcript clearly meets it. When in doubt, it fails.
Output: one JSON file (no markdown, no comments)
{
"sample_id": "S1",
"rater": "r1",
"summary": "One or two sentences on what the video covers.",
"format": "explainer | case_study | story | listicle | tutorial | commentary | comparison | fiction | other",
"topic_card": "Neutral subject-only sentence, at most 25 words.",
"promise": { "text": "in English", "timestamp": "00:12" },
"sections": [
{ "id": "A", "start": "00:00", "end": "01:10", "summary": "…", "function": "hook",
"depends_on": [], "references_unintroduced": [], "interest": 4 }
],
"loops": [ { "id": "L1", "question": "…", "opened_at": "00:10", "closed_at": "06:30", "size": "major" } ],
"checks": {
"H1": { "pass": true, "ts": "00:05", "quote": "original text", "gloss": "English" }
},
"holistic": { "percentile": 50, "confidence": "low | medium | high" },
"unobservable": "short"
}
checks must contain every check ID from the checklist file (H1…R4). If the task file lists extra hypothesis questions, also add "hypotheses": { "H-001": { "score": 1-5, "ts": "", "quote": "", "gloss": "" } }. Otherwise, omit hypotheses or leave it empty. After writing, run the validation command from your task file, fix any errors, and repeat until it prints OK. Your final message is one line: the path and the validator result.
Show the raw text
# Blind script rater instructions (rubric v3)
You are one of several independent raters scoring one YouTube video transcript. You are
blind on purpose: you don't know the title, channel or performance, so don't guess them.
The analysis tests whether script features predict outcomes, and it only works if you
judge the script on its own.
## Process (in this order)
1. **Read the whole transcript.** It may be in Hindi, Hinglish or another language, as an
auto-caption track. Write your output in English. Quotes stay in the original language,
each with a short English gloss.
2. **Extract.** Fill in `promise`, `sections`, `loops` and `topic_card` using the definitions
in the rubric. Pay particular attention to `depends_on` and `references_unintroduced`.
Build them from what each section actually needs, not from what would be logical.
3. **Check.** Answer every check in the checklist file with `pass: true/false`, a timestamp
and a short evidence quote with its gloss. Answer from your extraction where the check
says so (C4, K2).
4. **Holistic estimate** and **unobservable** (one or two sentences on what text alone can't show).
Be literal. A check passes only if the transcript clearly meets it. When in doubt, it fails.
## Output: one JSON file (no markdown, no comments)
```json
{
"sample_id": "S1",
"rater": "r1",
"summary": "One or two sentences on what the video covers.",
"format": "explainer | case_study | story | listicle | tutorial | commentary | comparison | fiction | other",
"topic_card": "Neutral subject-only sentence, at most 25 words.",
"promise": { "text": "in English", "timestamp": "00:12" },
"sections": [
{ "id": "A", "start": "00:00", "end": "01:10", "summary": "…", "function": "hook",
"depends_on": [], "references_unintroduced": [], "interest": 4 }
],
"loops": [ { "id": "L1", "question": "…", "opened_at": "00:10", "closed_at": "06:30", "size": "major" } ],
"checks": {
"H1": { "pass": true, "ts": "00:05", "quote": "original text", "gloss": "English" }
},
"holistic": { "percentile": 50, "confidence": "low | medium | high" },
"unobservable": "short"
}
```
`checks` must contain **every** check ID from the checklist file (H1…R4). If the task file
lists extra hypothesis questions, also add `"hypotheses": { "H-001": { "score": 1-5, "ts": "", "quote": "", "gloss": "" } }`.
Otherwise, omit `hypotheses` or leave it empty. After writing,
run the validation command from your task file, fix any errors, and repeat until it prints OK.
Your final message is one line: the path and the validator result.
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.