Files
TheLadder/tools/story-to-pack/probe/bierce/README.md
T
JesseMarkowitzandClaude Opus 5.5 3a4758172d 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
2026-10-07 06:05:51 -04:00

7.8 KiB

Bierce reference set: Tales of Soldiers and Civilians (1891)

A hand-made comparison baseline for the story-to-pack pipeline, a sibling of the Jacobs set in ../jacobs/ and the Wharton set in ../wharton/. Claude read every scene and wrote each summary, predicament, group and option. 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/tales-of-soldiers-and-civilians.txt Project Gutenberg #13334 ("Collected Works of Ambrose Bierce, Vol. II", which holds this book and nothing else)
split_gutenberg.py → stories.json (26 stories: 15 "Soldiers", 11 "Civilians") and chunks.json (299 scenes, same 320-word paragraph rule as ../chunk.py)
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 ../jacobs/claude/batches/
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 (unchanged from Jacobs: it resolves paths relative to itself)
claude/page.py → claude/REFERENCE.html, the readable page

Rebuild: python3 split_gutenberg.py && cd claude && python3 build.py && python3 page.py.

What is in it

  • 299 predicaments: one sentence each (median 20 words, min 15, max 24), written to the redescribe.py rules: no names, jobs, ranks, places or story-only objects. The topic_words leak check flags 20 of 299. 18 are role or kin words (partner, newcomer, visitor, lover, father, guest), kept on purpose because the design's cast is roles. The other 2 are "judge" used as a verb. War roles are kept as roles, not ranks: enemy, comrades, superior, subordinate, prisoner, captor.
  • 31 groups, each a situation that recurs in three or more stories (18 span 3, 10 span 4, 2 span 5, 1 spans 6). No story supplies more than half of any group's members. Each scene sits in at most one group: 201 are assigned and 98 fit nothing that recurs. All 26 stories feed at least one group.
  • Options: 3 to 5 per group, 128 in all (25 groups have 4, 5 have 5, 1 has 3). 96 come from what someone in a scene did or refused to do (scene:N), 15 are archetypes and 17 fill gaps. 22 scene options cite a scene outside their own group. That is looser than DESIGN.md's "drawn from other scenes in the cluster", and groups.json marks each one in_group: false. As in Wharton, most of these are the scene just before or after a member, where the character acts.
  • Moves: spine paths with a direction only (+, -, risk, set). There are no magnitudes, as the design requires. standing is moved 65 times, the two skills 66 times and money only 9. Relationship roles are generic (authority, comrades, loved_one, family, rival, captor, doubters and others), and flags record what the player did (slept_on_watch, duty_over_love, struck_blind, took_dare, guilty_secret).
  • Skills proposed for this corpus: nerve, reused from Jacobs, for holding steady under fear, and wits, for reading signs and thinking coolly in a tight spot. wits fits Bierce's scouts, trapped men and sceptics better than Jacobs' cunning would.
  • Stage comes from protagonist standing, judged per story, not per scene, in STANDING in groups_src.py. Enlisted men, a captive, a child, a pauper and two frontier loners rank low. Officers and professionals rank middle. A planter, a governor, a camp's leading citizen, a rich idler and an heiress rank high. The groups come out 19 middle, 9 low and 3 high. The skew is the book's own: most soldier stories are told from an officer's side.

Against the existing catalogue

The 36-entry catalogue (O. Henry, Wharton, Jacobs) is mostly courtship, secrets and schemes. Nine groups overlap an existing entry closely: G04 private score (power_over_you), G13 alone with the dead (dread), G19 truth nobody would believe (cant_prove_it), G21 judged before heard (wrongly_judged), G22 tempting chance (sure_thing / strings), G26 devoted to one who wronged you (sacrifice), G27 someone thought gone turns up (past_comes_back), G31 new to a hardened company (newcomer) and G18 warning easy to laugh off (between dread and sign). Three overlap in part: G03 told to obey without question (pressed_to_wrong, plus own_words_back in scene 138), G05 stranger not what they seem (sure_thing) and G20 careless words cost a life (owning_up).

Nineteen are new situation types:

  • Duty and orders: G02 duty demands you harm someone you love; G06 your heart is on the other side.
  • Watch and danger: G01 on watch, and your guard slips; G07 the only way to know is to go and look; G17 the danger you can only wait for; G16 cornered, looking for a way out; G15 condemned and waiting to die.
  • Courage and fear: G09 refusing the safe way out lest it look like fear; G10 your courage called into question; G11 finding out you are afraid; G12 a gaze you cannot escape.
  • Harm to others: G14 the one you struck in the dark (mistaken-identity violence); G08 one bold act sweeps everyone into slaughter.
  • Help and suffering: G23 turned away when you need help most; G24 watching others suffer from safety; G25 trying to save someone who will not be saved.
  • Loss and isolation: G28 coming home too late; G29 alone with an old grief; G30 lost in the dark, far from help.

How this corpus differs from Jacobs and Wharton

It is the largest reference set so far, 26 stories against Jacobs' 12 and Wharton's 10. That is the first corpus inside DESIGN.md's 20-30 range. So the bar was raised to three stories per group, and 31 groups still cleared it.

The register is war and horror, and the situations are mostly inner ones. Where Jacobs and Wharton recur on money, marriage and secrets, Bierce recurs on fear, duty, courage and dying. That shows in the moves. money hardly appears, and nerve carries much of the weight. A pack built from this corpus will need its numeric search to make nerve and standing do the work that money does in the other packs.

Groups straddle the two halves of the book, and a tool that groups by setting or mood should split them. G14 "the one you struck in the dark" holds a soldier who shoots his twin brother on picket and a lawyer who shoots a woman he takes for a panther. G12 "a gaze you cannot escape" holds a trapped scout staring into his own rifle, a guest facing a snake, a mother facing a panther and a girl under a mesmerist. G10 "your courage called into question" holds a battlefield suicide and a ghost-story dare.

Twist endings concentrate meaning in the last scene. Many stories turn on a final line: the rider was his father, the snake was stuffed, the applicant was the founder, the child was a deaf mute. Those closing scenes often belong to a different situation from the story's body, or to none. That is one reason 98 scenes stay unassigned. Most of the rest are scene-setting narration (the Chickamauga march, Owl Creek's dying dream, the Coulter's Notch gun duel) or one-story material with no second instance, such as the mercy killing in The Coup de Grâce.

Known defects

  • Scene 166 ends with the stray part heading CIVILIANS. The in-story subtitles and section headings of A Son of the Gods, An Affair of Outposts, One Kind of Officer, George Thurston, The Suitable Surroundings and The Eyes of the Panther (for example "HOW TO SAY WHAT IS WORTH HEARING") stay inline in scene text. They are not removed, so that chunks.json stays the corpus as split.
  • Scene 227 is only the mock-archaic epigraph of The Man and the Snake. It was summarised anyway and is in no group.