Files
dickshow-index/rubric.py
T

81 lines
3.2 KiB
Python

"""The Transgression Index (TI): an arbitrary-but-anchored 0-10 scale for how
edgy/transgressive content is. Deliberately opinionated anchors so scores are
comparable across episodes. Shared by analyze.py prompts and aggregate.py.
"""
RUBRIC = """
TRANSGRESSION INDEX (TI) RUBRIC - score each quote and each dimension 0-10:
0 Wholesome/neutral: could air on network morning TV.
1 Mild crudeness: innuendo, toilet humor, light profanity.
2 Frequent profanity, explicit sexual talk, crude insults aimed at public figures.
3 Edgy shock humor: jokes about death/tragedy/disability; mean-spirited roasts.
4 Slurs used (quoted or reclaimed), graphic sexual content, sustained cruelty
toward an individual as a running bit.
5 Dehumanizing generalizations about groups (by race/sex/religion/etc.) played
for laughs; celebration of harassment campaigns.
6 Sincere demeaning rhetoric about protected groups (not clearly ironic);
praising doxxing/deplatforming of enemies; glorifying self-harm or violence
rhetorically.
7 Targeted abuse: encouraging audiences to swarm/threaten a named private
individual; credible threats framed as jokes.
8 Endorsement of political violence or extremism beyond rhetoric; material
support (fundraising) for violent/extremist causes.
9 Direct incitement to violence; non-consensual sexual content endorsement.
10 Planning/praising specific acts of terror or mass violence.
Sub-dimensions (each 0-10, same anchors applied narrowly):
- profanity: raw frequency/intensity of swearing only.
- slur_usage: occurrence of slurs/bigoted epithets (quoted bits count half).
- harassment_or_cruelty: targeted attacks on named individuals.
- sincerity: how sincere vs comedic the worst content is (0 = pure bit,
10 = stated sincerely). NOTE: this measures tone, not severity.
overall_ti is NOT an average - it is the peak sustained level (>=60 seconds
or a defining moment of the episode).
"""
SCHEMA_EXAMPLE = """{
"ep_num": 361,
"title": "Episode 361 - Dick on Lizard Feet",
"pub_date": "2023-05-30",
"runtime_minutes": 147,
"one_line_summary": "...",
"guests": [{"name": "...", "role": "host/cohost/guest/caller", "notes": "..."}],
"talking_points": [
{"topic": "short label",
"summary": "2-3 sentence account of what was said, including positions and punchlines",
"start_ts": 1234.5,
"people": ["maddox", "eric july"],
"controversy_ti": 4}
],
"arguments": [
{"claim": "what the host asserts",
"position": "pro/anti/mockery-of",
"target": "who or what it is against",
"quality": "strong|moderate|weak|trollish",
"evidence_used": "receipts, anecdotes, statistics cited"}
],
"ideas": [
{"concept": "coined term / recurring bit / theory introduced",
"explanation": "what it means",
"first_ts": 1234.5}
],
"notable_quotes": [
{"quote": "verbatim quote (may be lightly cleaned)",
"ts": 1234.5,
"ti": 5,
"why": "one clause explaining the score"}
],
"transgression": {
"overall_ti": 5,
"profanity": 7,
"slur_usage": 3,
"harassment_or_cruelty": 4,
"sincerity": 2,
"targets": ["groups or individuals the edge is aimed at"],
"rationale": "2 sentences justifying overall_ti"
},
"content_warnings": ["slurs", "sexual content"]
}"""