story-to-pack: add the corpora and the catalogue v2/v3

Fourteen corpora split and classified: aesop, bierce, chekhov, holmes,
keefe, lawson, lorimer, maupassant, nobody, plaintales, poe, torchy,
wallingford and winesburg, each with its splitter and the hand-written
groups and pages; catalogue v2 and v3; and the shared splitters
gutenberg_chunks.py, se_split.py and se_build.py.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019rwKTmug58sEsJ72AuWsEi
This commit is contained in:
JesseMarkowitz
2026-10-07 06:05:51 -04:00
co-authored by Claude Opus 5.5
parent e5617b86ba
commit 3a4758172d
566 changed files with 303901 additions and 0 deletions
@@ -0,0 +1,144 @@
# Maupassant reference set: *Original Short Stories, Volume IV*
A hand-made comparison baseline for the story-to-pack pipeline, the fourth beside O. Henry
(`../v2/claude/`), Wharton (`../wharton/`) and Jacobs (`../jacobs/`). Every summary, predicament,
group and option here was written by Claude reading the scenes. **No local inference was used.**
Compare the local-model runs against it. Do not treat it as ground truth: it is one careful reading.
| File | What it is |
| --- | --- |
| `corpus/original-short-stories-vol4.txt` | Project Gutenberg #3080 plain text (public domain English translation) |
| `split_gutenberg.py` | → `stories.json` (12 stories) and `chunks.json` (137 scenes, same 320-word paragraph rule as `../chunk.py`, tail ≥ 80) |
| `dump.py` | `python3 dump.py A B` prints scenes A..B for reading |
| `claude/batches/sNN.json` | per story: `{chunk, story, summary, predicament}`, the same schema as the sibling probes |
| `claude/groups_src.py` | the groups, options and per-story protagonist standing |
| `claude/build.py` | checks everything, then writes `claude/records.json` and `claude/groups.json` |
| `claude/page.py` | → `claude/REFERENCE.html`, the readable page |
Rebuild: `python3 split_gutenberg.py && cd claude && python3 build.py && python3 page.py`.
## Splitting
Titles are matched on the flush-left body headers after the indented contents block. Two body
headers differ from their contents entry, `THE TRIP OF LE HORLA` and `FAREWELL!`, and are mapped
explicitly. `PART I`-`PART V` headings (*The Story of a Farm Girl*) and one bracketed editorial note
(the *Horla* piece's first-publication line) are dropped. The tail rule drops two closing
paragraphs, as it would anywhere: *The Marquis de Fumerol* loses its 21-word frame close ("the story
of all conversions in extremis") and *The Trip of the Horla* its 76-word thanks to the pilot.
## What is in it
- **137 predicaments**: one sentence each (median 20 words, min 16, max 24), written to the
`redescribe.py` rules: no names, jobs, places or story-only objects. The `topic_words` leak check
flags 52 of 137. Four are false positives by sense ("judge" as a verb, "room" as space, "party"
as a group of travellers). Five use "house". The rest are role words, kept on purpose because the
design's cast is roles: servant and employer (15 and 10, nearly all *The Story of a Farm Girl* and
*The Gamekeeper*, where the servant-employer tie *is* the predicament), husband and wife, lover,
rival, guest, visitor, owner.
- **13 groups**, each a situation that recurs in **two or more stories** (11 of the 13 reach three
or four). Each scene sits in at most one group: 92 are assigned and 45 fit nothing that recurs.
Under the catalogue's single recurrence rule (`../catalogue/recurrence.log`: at least 5 scenes, 3
stories, no story over 50%) only 4 survive: G02, G04, G06 and G11. Eight groups have one story
supplying more than half their scenes.
- Unassigned scenes are concentrated where the corpus is not narrative: 10 of the 14 scenes of
*The Trip of the Horla* (balloon reportage), and scene-setting frames at the start of *The
Gamekeeper*, *The Wreck* and *The Wolf*.
## Options
3 to 5 per group, 61 in all. 52 come from what someone in a scene did (`scene:N`), 5 are archetypes
and 4 fill gaps. **5 scene options cite a scene outside their own group** (87, 68, 26, 15, 129). Each
is the scene next to or near a member in the same story, where the character acts on the
predicament: the same pattern the Wharton reference found. `groups.json` marks each one
`in_group: false`.
## Moves
Spine paths with a direction only (`+`, `-`, `risk`, `set`). There are no magnitudes, as the design
requires. Skill labels proposed for this corpus: **`pride`** and **`shrewdness`**.
- `pride` is self-regard and the wish to be seen well. The corpus turns on it more than on daring:
the clerk's wife who would rather stay home than look poor, the carpenter who must kneel to his
rival, the lover who writes yearly and never says what matters. Many options move it *down*
(bowing, going as you are, owning up), which Jacobs' `nerve` rarely did.
- `shrewdness` is peasant and petty-official calculation: announcing a death early to save a day's
work, a half-truth sworn to a suspicious master, a small lie to stall a lender. It replaces
Jacobs' `cunning`, which read as plotting; here the calculation is small, habitual and
self-deceiving.
## Stage
Stage comes from protagonist standing, judged **per story, not per scene**, recorded in `STANDING`
in `groups_src.py`: four stories low (the peasant and servant stories and *The Inn*), six middle,
two high (*The Marquis de Fumerol*, *The Wolf*). *The Gamekeeper* is told by a landowner but its
predicaments are the old servant's, so it ranks low. Groups split 4 low, 7 middle, 2 high.
## How this corpus sits against the 36-entry catalogue
The brief was sharper, not duplicate, territory beside Wharton's high-society scheming. Six groups
have no entry close to them, six are a sharper cut of an existing entry, and one mostly repeats one.
**New situation types (nothing in the catalogue like them):**
- **G03 A relative's death, counted as a cost.** A dying relative is weighed in lost working days
(*The Moribund*) or in damage to the family's political name (*The Marquis de Fumerol*). The
catalogue has no event where the pressure is a relative's dying.
- **G05 Called to account.** Examined by someone whose judgement you need, you present yourself
better than the facts allow: the carpenter who is honest except for padded bills, the soldier who
denies the debts. This is self-justification, not being caught (`caught_out`) or confessing
(`owning_up`).
- **G07 Meeting someone time has changed.** A reunion where one side no longer recognises the
other: the friend who takes the aged clerk's wife for a stranger, the idealised woman turned
stout mother, the young caretaker gone white-haired. Nearest are `homecoming` and
`past_comes_back`, but neither is about the shock of change.
- **G10 Passion past the point of caution.** Rage or obsession about to do what cannot be undone:
the shamed boy's arson, the keeper's shot, the hunter strangling the wolf. The catalogue has no
revenge or rage event.
- **G11 Danger closing in, and others depend on you.** A shared physical peril where others look to
you: whether to tell them, how to keep their spirits up, whether to go out alone. `dread` is
private fear; this is responsibility.
- **G13 Haunted by someone you failed.** Guilt that has begun to feel like punishment: the survivor
who stopped searching, the barren wife who blames an old sin.
**Sharper cuts of existing entries:**
- **G01 Keeping up appearances before people who matter**, from `pretence`, `overlooked` and
`station`. It is not pretending to be someone else. It is dreading being seen as what you are,
and paying real money not to be. This is what *The Diamond Necklace* gives. It is the same story
as the famous "The Necklace", in another translation. Its borrowing and its ball (73-76) are the
core members.
- **G02 A cover-up that costs more than the truth**, from `hiding_from_close` and `your_scheme`.
The new element is escalation out of all proportion to the cause. A day's work saved leads to
bribed officials and mourners at a living man's bedside. A lost necklace leads to ten years of
debt. A hidden child leads to a forced marriage.
- **G04 Bowing to the one who holds your living**, from `strings`, `compromise_for_money` and
`power_over_you`. The price is not a wrong act but self-abasement before someone you despise or
have mocked: the atheist's public communion, the rake's endured sermons, the servant's coerced
marriage. This is where the corpus's rural hardship exploited by the more powerful sits.
- **G06 Taking the common for the fine, or the fine for the common**, from `pretence`,
`wrongly_judged` and `station`. It covers low standing mistaken for high and the reverse: the
inspector taken for the ship's owner, the soldier who takes a judge's salon for a brothel, the
paste necklace, the shunned uncle who proves dignified. The class resentment the brief asked
about surfaces here (71: the soldier gloating at a chance to blackmail his respectable
brother-in-law) rather than as a group of its own. Tried as a separate "resentment expressed
sideways" group, it held only 3 scenes whose predicaments were about something else, so it was
dropped rather than forced.
- **G08 Parted for a long season from someone you love**, from `unspoken` and `homecoming`, with
separation rather than silence as the pressure. A mother parted from her child is in it as well
as lovers.
- **G12 Alone too long**, from `dread`. The fear comes from isolation, not from a threat.
**Mostly a duplicate:** **G09 Suddenly smitten** is courtship, close to `unspoken`, and only two
stories.
## How this corpus differs
It is small: 12 stories and 137 scenes, against Jacobs' 157. Its registers are mixed. Six stories
are the social irony the brief was after (*The Moribund*, *The Story of a Farm Girl*, *Theodule
Sabot's Confession*, *The Wrong House*, *The Diamond Necklace*, *The Marquis de Fumerol*). Three are
frame-told hunting or disaster tales (*The Gamekeeper*, *The Wreck*, *The Wolf*), one is Alpine
horror (*The Inn*), and one is a reverie on age (*Farewell*). *The Trip of the Horla* is not the
horror novella of that name: it is reportage of a balloon flight in a craft named *Le Horla*, with
almost no predicament. Most of the social-irony material lands in G01-G06. The survival and horror
stories supply G10-G13, which is why the new-type list leans toward rage, peril and guilt as much as
vanity.