Add story-to-pack research and a structured situation review

Research toward building a content pack from a story corpus, kept on its own
branch and independent of the game. Records the selection experiments against
blind labels, and settles selection as gate G2 followed by a human review:
review.py writes REVIEW.md and a review.json form, apply_review.py checks the
filled form and writes situations.json for the next stage.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01C6UDQ9o6L6Ey173U7XVou6
This commit is contained in:
JesseMarkowitz
2026-09-15 06:59:35 -04:00
co-authored by Claude Opus 5
parent d84ae495f4
commit fa3769d0fe
112 changed files with 79868 additions and 0 deletions
@@ -0,0 +1,23 @@
{
"R001": {"label": 1, "name": "an inheritance or fortune and what it obliges"},
"R002": {"label": 0, "name": ""},
"R003": {"label": 1, "name": "someone coerces someone with a threat"},
"R004": {"label": 1, "name": "a run-in with the police"},
"R005": {"label": 0, "name": ""},
"R006": {"label": 1, "name": "a spouse schemes against or confronts a spouse over infidelity"},
"R007": {"label": 1, "name": "schemes, cons and theft over money"},
"R008": {"label": 1, "name": "courtship"},
"R009": {"label": 1, "name": "coercion over money: threats, bribes, demands for payment"},
"R010": {"label": 1, "name": "courtship"},
"R011": {"label": 2, "name": "money and marriage: wealthy suitors, inheritances"},
"R012": {"label": 1, "name": "who holds sway in a dining room or hotel"},
"R013": {"label": 0, "name": ""},
"R014": {"label": 1, "name": "drinking in the saloon"},
"R015": {"label": 2, "name": "a spouse schemes against or confronts a spouse over infidelity"},
"R016": {"label": 0, "name": ""},
"R017": {"label": 1, "name": "money owed and repayment"},
"R018": {"label": 1, "name": "trying to impress or win someone's favour"},
"R019": {"label": 1, "name": "who holds sway in a dining room or hotel"},
"R020": {"label": 2, "name": "someone coerces someone with a threat"},
"R021": {"label": 0, "name": ""}
}