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:
co-authored by
Claude Opus 5.5
parent
e5617b86ba
commit
3a4758172d
@@ -0,0 +1,436 @@
|
||||
"""Hand-built reference grouping of the Torchy predicaments (Claude-written, no local inference).
|
||||
|
||||
Each scene is in at most one group; scenes that fit no recurring situation stay unassigned.
|
||||
Every group spans at least three stories, and no story supplies more than half a group's members.
|
||||
Stories 30 and 31 are one story in two parts (the lobster boat and the unmasking), so they count
|
||||
as ONE story for both rules. Chunks 245, 736 and 737 are publisher's advertising and are in no
|
||||
group; 244 and 735 are real story endings.
|
||||
Options follow DESIGN.md: 3-5 per group, each marked by where it came from --
|
||||
'archetype' a fixed, setting-free option
|
||||
'scene:N' what someone in scene N actually did (or refused to do)
|
||||
'filled' written to fill a gap the scenes leave
|
||||
`moves` names spine paths and a direction only (+ / - / risk / set). No magnitudes: the model never
|
||||
chooses a number. Skill labels proposed for this corpus: cheek (saying the bold thing to people
|
||||
above you: the frank answer, the bluff, the backchat) and savvy (street sense: seeing through a
|
||||
fraud, reading a room, solving by common sense what the experts dress up).
|
||||
Relationship roles are generic: `boss` is whoever is over you at the top (the old head or his heir),
|
||||
`boss_family` his relatives, `supervisor` the fussy official between you and the top.
|
||||
"""
|
||||
G = [
|
||||
# ---- the door, the boss and the office ------------------------------------------------------------
|
||||
dict(id='G01', name='Deciding who gets past the door',
|
||||
predicament='You keep the door to someone important, and a caller is pushing to get past, or somebody is pushing you to let them through.',
|
||||
actor='gatekeeper', wants='to let the right people through', counterpart='callers at the door',
|
||||
members=[74, 75, 195, 196, 273, 301, 303, 440, 442, 487, 488, 606, 633, 721],
|
||||
options=[
|
||||
('Hold the line: nobody gets past but the one you were told to admit.', 'scene:440', {'relationships.boss':'+', 'relationships.visitor':'-'}),
|
||||
('Give them nothing until they say what they want.', 'scene:196', {'cheek':'+', 'relationships.visitor':'risk'}),
|
||||
('Hear them out yourself, courteously, and promise an answer.', 'scene:488', {'relationships.visitor':'+', 'standing':'+', 'savvy':'+'}),
|
||||
('Tell them bluntly to stop rocking the boat.', 'scene:721', {'cheek':'+', 'relationships.visitor':'-', 'standing':'risk'}),
|
||||
('Send them straight in and let the boss sort it out.', 'filled', {'relationships.boss':'-', 'relationships.visitor':'+'})]),
|
||||
dict(id='G02', name='Judging a caller on sight',
|
||||
predicament='You have to judge a caller at the door by how they look, and what you see tells you to send them away.',
|
||||
actor='gatekeeper', wants='to be rid of a nuisance', counterpart='a caller who looks like nobody who matters',
|
||||
members=[18, 105, 106, 107, 202, 203, 302, 306, 354, 355, 364],
|
||||
options=[
|
||||
('Mock them and send them off.', 'scene:106', {'cheek':'+', 'relationships.visitor':'-', 'standing':'risk'}),
|
||||
('Block them outright.', 'scene:18', {'relationships.visitor':'-', 'relationships.boss':'risk'}),
|
||||
('Plan a chilly welcome and keep them waiting.', 'scene:302', {'relationships.boss_family':'-'}),
|
||||
('Ask their business before you judge.', 'filled', {'savvy':'+', 'relationships.visitor':'+'}),
|
||||
('Hear them out and take their case up yourself.', 'scene:204', {'relationships.visitor':'+', 'relationships.supervisor':'-', 'standing':'risk'})]),
|
||||
dict(id='G03', name='Called in, and expecting the sack',
|
||||
predicament='You have been summoned over something you really did, you expect to be fired, and all that is left to choose is how you answer.',
|
||||
actor='junior in trouble', wants='to keep the job, or at least their pride', counterpart='the boss sitting in judgement',
|
||||
members=[3, 4, 20, 21, 64, 65, 66, 146, 154, 155, 156, 244, 259, 312, 313],
|
||||
options=[
|
||||
('Own up frankly, and offer to go.', 'scene:155', {'cheek':'+', 'relationships.boss':'+', 'standing':'risk'}),
|
||||
('Joke your way through the questions.', 'scene:20', {'cheek':'+', 'relationships.boss':'risk'}),
|
||||
('Confess before you are even asked.', 'scene:65', {'relationships.boss':'+', 'flags.owned_up':'set'}),
|
||||
('Deny everything.', 'filled', {'relationships.boss':'-', 'standing':'risk'}),
|
||||
('Apologise and promise it will never happen again.', 'filled', {'standing':'-', 'relationships.boss':'+'})]),
|
||||
dict(id='G04', name='A petty supervisor who resents you',
|
||||
predicament='The official between you and the top wanted someone meeker, resents you, and is waiting for you to slip.',
|
||||
actor='junior', wants='to be left alone, or to get the better of him', counterpart='a petty supervisor',
|
||||
members=[16, 17, 19, 31, 82, 118, 119, 128, 129, 189, 236, 261, 262, 272, 322],
|
||||
options=[
|
||||
('Needle him for sport.', 'scene:16', {'cheek':'+', 'relationships.supervisor':'-'}),
|
||||
('Answer his lectures with cheek.', 'scene:119', {'cheek':'+', 'relationships.supervisor':'-', 'standing':'risk'}),
|
||||
('Dare him to fire you, knowing he cannot.', 'scene:32', {'cheek':'+', 'relationships.supervisor':'-', 'relationships.colleague':'+'}),
|
||||
('Work with him on the boss\'s errand, just this once.', 'scene:262', {'relationships.supervisor':'+'}),
|
||||
('Keep your head down and give him nothing to report.', 'archetype', {'relationships.supervisor':'+', 'cheek':'-'})]),
|
||||
dict(id='G05', name='Pulled off your job for a family chore',
|
||||
predicament='Someone in the boss\'s family wants a private favour done, nothing to do with your job, and the boss has already said you can go.',
|
||||
actor='junior', wants='to stay in favour without becoming a servant', counterpart='the boss\'s family',
|
||||
members=[24, 25, 27, 41, 43, 157, 158, 167, 215, 216, 217, 221, 326, 341, 353, 382, 712],
|
||||
options=[
|
||||
('Take the expense money and get it done, whatever it takes.', 'scene:27', {'relationships.boss_family':'+', 'standing':'+', 'flags.family_errand':'set'}),
|
||||
('Try to excuse yourself as there on company business.', 'scene:216', {'relationships.boss_family':'-'}),
|
||||
('Do it, then bill them to the penny.', 'scene:353', {'cheek':'+', 'money':'+', 'relationships.boss_family':'risk'}),
|
||||
('Stay late for it, and ask nothing.', 'scene:382', {'relationships.boss':'+'}),
|
||||
('Ask what is in it for you before you agree.', 'filled', {'savvy':'+', 'money':'+', 'relationships.boss_family':'-'})]),
|
||||
dict(id='G06', name='Sent to stand in for the boss',
|
||||
predicament='The boss, or someone in his family, has sent you in his place to judge, host or negotiate with people far above your rank.',
|
||||
actor='junior stand-in', wants='to bring back what was wanted', counterpart='people who expected the boss',
|
||||
members=[274, 275, 276, 277, 278, 286, 327, 328, 331, 340, 444, 445, 446, 447, 452, 620, 622, 728, 729, 730,
|
||||
733, 735],
|
||||
options=[
|
||||
('Recite the brief you were given, word for word.', 'scene:331', {'standing':'risk', 'savvy':'-'}),
|
||||
('Admit plainly how junior you are.', 'scene:447', {'relationships.visitor':'+', 'standing':'-'}),
|
||||
('Drop the brief and use your own common sense.', 'scene:278', {'savvy':'+', 'relationships.boss':'risk'}),
|
||||
('Roll up your sleeves and do the work yourself.', 'scene:622', {'relationships.boss':'+', 'standing':'-'}),
|
||||
('Report back that the one to win over is not the one you were sent to beat.', 'scene:452', {'savvy':'+', 'relationships.boss':'+'})]),
|
||||
dict(id='G07', name='The boss\'s family troubles land on you',
|
||||
predicament='Someone in the boss\'s family is in a scrape, a quarrel or an unhappy marriage, and you are the one on the spot.',
|
||||
actor='junior', wants='to fix it quietly', counterpart='the boss\'s family',
|
||||
members=[108, 110, 113, 114, 309, 310, 311, 386, 388, 389, 429, 430, 431, 432, 433, 434, 435, 436, 437, 470,
|
||||
471, 480, 537, 559],
|
||||
options=[
|
||||
('Slip away so someone is free to help from outside.', 'scene:310', {'savvy':'+', 'relationships.boss_family':'+'}),
|
||||
('Hurry them away before the police arrive.', 'scene:110', {'relationships.boss_family':'+', 'flags.hushed_up':'set'}),
|
||||
('Suggest a secret dodge that spares everyone a scene.', 'scene:471', {'savvy':'+', 'relationships.boss_family':'+', 'flags.hushed_up':'set'}),
|
||||
('Stay as a witness, in case it turns ugly.', 'scene:388', {'relationships.boss':'+'}),
|
||||
('Tell the boss everything.', 'filled', {'relationships.boss':'+', 'relationships.boss_family':'-'})]),
|
||||
dict(id='G08', name='Someone in the boss\'s family is being taken in',
|
||||
predicament='Someone in the boss\'s family is being flattered by a person you know is after their money, and they will not thank you for saying so.',
|
||||
actor='junior', wants='to protect them without telling tales', counterpart='the boss\'s relative and the flatterer',
|
||||
members=[46, 47, 48, 49, 50, 53, 454, 455, 456, 465, 466, 467, 469, 557, 558, 561],
|
||||
options=[
|
||||
('Warn them to their face.', 'scene:50', {'cheek':'+', 'relationships.boss_family':'-'}),
|
||||
('Let them hear the truth from the flatterer\'s own mouth.', 'scene:51', {'savvy':'+', 'relationships.boss_family':'+'}),
|
||||
('Dig up everything on the flatterer first.', 'scene:457', {'savvy':'+', 'money':'-'}),
|
||||
('Take it to the boss and let him deal with it.', 'scene:456', {'relationships.boss':'+', 'relationships.boss_family':'-'}),
|
||||
('Say nothing; it is not your business.', 'archetype', {'relationships.boss_family':'risk'})]),
|
||||
dict(id='G09', name='Getting rid of an embarrassing guest',
|
||||
predicament='Someone the family does not want is about to spoil an occasion, and you have been told, or have offered, to get them out without a scene.',
|
||||
actor='junior', wants='them gone quietly', counterpart='an unwanted guest',
|
||||
members=[76, 77, 78, 116, 117, 395, 396, 560, 562, 563, 564, 713, 714, 715, 717, 718, 719, 720],
|
||||
options=[
|
||||
('Bundle them off with a vague story and no plan.', 'scene:77', {'relationships.boss_family':'+', 'money':'+'}),
|
||||
('Scare them off with a danger you invent.', 'scene:562', {'savvy':'+', 'cheek':'+', 'flags.told_a_tale':'set'}),
|
||||
('Stage a scene that makes them leave of their own accord.', 'scene:718', {'savvy':'+', 'relationships.boss':'+', 'flags.told_a_tale':'set'}),
|
||||
('Pass the problem on to someone you dislike.', 'scene:117', {'relationships.colleague':'-', 'money':'+'}),
|
||||
('Pay their fare to go far away.', 'scene:395', {'money':'-', 'relationships.boss':'+'})]),
|
||||
dict(id='G10', name='Talking the boss into backing someone overlooked',
|
||||
predicament='Someone capable is stuck, snubbed or about to be let go, and you could put their case to the boss yourself.',
|
||||
actor='junior', wants='a fair chance for someone else', counterpart='the boss',
|
||||
members=[40, 187, 188, 200, 201, 204, 205, 356, 362, 365, 499, 507],
|
||||
options=[
|
||||
('Take the blame for them, and tell the boss their whole story.', 'scene:40', {'relationships.boss':'risk', 'relationships.colleague':'+', 'flags.recommended':'set'}),
|
||||
('Go to the boss at home and ask for the promotion outright.', 'scene:200', {'cheek':'+', 'relationships.boss':'risk', 'relationships.colleague':'+', 'flags.recommended':'set'}),
|
||||
('Slip their proposal onto the boss\'s desk as if it came through channels.', 'scene:204', {'savvy':'+', 'relationships.supervisor':'-', 'standing':'risk'}),
|
||||
('Argue they are too valuable to lose.', 'scene:187', {'relationships.boss':'+', 'savvy':'+'}),
|
||||
('Keep out of it; it is not your place.', 'archetype', {'relationships.colleague':'-'})]),
|
||||
dict(id='G11', name='Someone everyone makes fun of',
|
||||
predicament='There is one person everyone around you mocks, and you can join in, look away or take their side.',
|
||||
actor='onlooker', wants='to fit in, or to do right', counterpart='the butt of the joke',
|
||||
members=[28, 30, 32, 177, 178, 179, 180, 367, 578, 579, 580, 581, 607, 608, 609, 610, 611, 614, 615, 616,
|
||||
617],
|
||||
options=[
|
||||
('Mock them along with everyone else.', 'scene:28', {'relationships.outcast':'-'}),
|
||||
('Stand up for them against the one bullying them.', 'scene:32', {'cheek':'+', 'relationships.outcast':'+', 'relationships.supervisor':'-'}),
|
||||
('Make friends with them.', 'scene:179', {'relationships.outcast':'+'}),
|
||||
('Tell them their work is good.', 'scene:578', {'relationships.outcast':'+', 'savvy':'+'}),
|
||||
('Stay out of it; it is only fun.', 'archetype', {'relationships.outcast':'-', 'flags.looked_away':'set'})]),
|
||||
dict(id='G12', name='Minding someone who will not be minded',
|
||||
predicament='You have been put in charge of someone, a relative or a colleague, who does not want a minder and means to go their own way.',
|
||||
actor='minder', wants='to keep them out of trouble', counterpart='a charge who resists',
|
||||
members=[111, 112, 222, 223, 224, 225, 226, 290, 291, 292, 294, 295, 296, 297, 299, 343, 344, 345, 347],
|
||||
options=[
|
||||
('Tell them bluntly what they are doing wrong.', 'scene:295', {'cheek':'+', 'relationships.charge':'risk'}),
|
||||
('Give them plain advice and a push.', 'scene:296', {'relationships.charge':'+', 'savvy':'+'}),
|
||||
('Wrestle them into line.', 'scene:225', {'relationships.charge':'-'}),
|
||||
('Tell them you disapprove, and keep your distance.', 'scene:347', {'relationships.charge':'-', 'cheek':'+'}),
|
||||
('Report honestly to whoever put you in charge, even if it costs you.', 'scene:299', {'money':'risk', 'relationships.boss_family':'risk', 'flags.honest_report':'set'})]),
|
||||
dict(id='G13', name='Calling on a friend from the bottom rung',
|
||||
predicament='What you need cannot be got through the proper channels, and an old friend from lower down could get it for you.',
|
||||
actor='junior', wants='what the front door will not give', counterpart='old friends from the bottom rung',
|
||||
members=[26, 88, 100, 101, 401, 457, 458, 531, 532, 598, 731, 732],
|
||||
options=[
|
||||
('Get an old friend to deliver a fake message.', 'scene:26', {'savvy':'+', 'relationships.old_friends':'+', 'flags.trick':'set'}),
|
||||
('Ask an old acquaintance what the street says.', 'scene:88', {'savvy':'+', 'relationships.old_friends':'+'}),
|
||||
('Trade on your old rank and its slang.', 'scene:531', {'relationships.old_friends':'+', 'savvy':'+'}),
|
||||
('Pay for what they tell you.', 'scene:532', {'money':'-', 'savvy':'+'}),
|
||||
('Promise them something back, and pay it.', 'scene:101', {'relationships.old_friends':'+', 'standing':'-'})]),
|
||||
dict(id='G14', name='A bluff on the spot',
|
||||
predicament='A door, a guard or a desk is between you and where you need to be, and a quick lie might get you past.',
|
||||
actor='junior', wants='to get past', counterpart='whoever guards the way',
|
||||
members=[34, 35, 36, 37, 38, 39, 51, 99, 144, 463, 529, 530, 533],
|
||||
options=[
|
||||
('Pose as someone with business there.', 'scene:463', {'cheek':'+', 'standing':'risk', 'flags.bluffed':'set'}),
|
||||
('Claim a powerful connection you do not have.', 'scene:144', {'cheek':'+', 'standing':'risk', 'flags.bluffed':'set'}),
|
||||
('Find a cover story that suits the one you want to reach.', 'scene:533', {'savvy':'+', 'money':'-'}),
|
||||
('When the bluff walks into its owner, stall and signal for help.', 'scene:37', {'cheek':'+', 'relationships.boss':'risk'}),
|
||||
('Give up and go the proper way.', 'archetype', {'standing':'-'})]),
|
||||
# ---- station, rising, and looking the part ------------------------------------------------------------
|
||||
dict(id='G15', name='Passing for grander than you are',
|
||||
predicament='You are being taken for grander than you are, and it is working, as long as nobody finds out where you come from.',
|
||||
actor='person passing', wants='to be taken for more', counterpart='a company that believes it',
|
||||
members=[54, 59, 60, 67, 135, 136, 137, 139, 552, 553, 556, 569],
|
||||
options=[
|
||||
('Neither confirm nor deny what they say about you.', 'scene:60', {'standing':'+', 'flags.passing':'set'}),
|
||||
('Borrow the clothes and take the floor.', 'scene:136', {'cheek':'+', 'standing':'risk'}),
|
||||
('Slip back into your real place before anyone asks.', 'scene:139', {'savvy':'+'}),
|
||||
('Look straight through the people you came from.', 'scene:556', {'standing':'+', 'relationships.family':'-', 'flags.passing':'set'}),
|
||||
('Tell them plainly where you come from.', 'filled', {'standing':'-', 'relationships.family':'+'})]),
|
||||
dict(id='G16', name='Out of place among the rich',
|
||||
predicament='You are among people far richer than you, plainly not one of them, and everyone can see it.',
|
||||
actor='outsider', wants='to hold your own', counterpart='a rich crowd',
|
||||
members=[44, 68, 133, 168, 171, 172, 342, 407, 551],
|
||||
options=[
|
||||
('Brazen it out and enjoy yourself.', 'scene:342', {'cheek':'+', 'standing':'risk'}),
|
||||
('Retreat to a corner and wait for it to end.', 'scene:171', {'standing':'-'}),
|
||||
('Refuse what they offer you.', 'scene:172', {'standing':'+'}),
|
||||
('Spend what you must to look the part.', 'scene:551', {'money':'-', 'standing':'+'}),
|
||||
('Find the one person there who treats you as an equal.', 'scene:173', {'relationships.sweetheart':'+'})]),
|
||||
dict(id='G17', name='Making yourself fit for the next rung',
|
||||
predicament='You want to be ready for the rung above you, and looking and sounding the part will cost money, evenings or pride.',
|
||||
actor='ambitious junior', wants='to be ready when the chance comes', counterpart='the people who will judge them',
|
||||
members=[94, 95, 232, 481, 482, 555],
|
||||
options=[
|
||||
('Study in every spare moment.', 'scene:95', {'savvy':'+', 'relationships.friend':'+'}),
|
||||
('Spend on a made-to-measure suit.', 'scene:481', {'money':'-', 'standing':'+'}),
|
||||
('Pay for lessons so you will not shame yourself.', 'scene:555', {'money':'-', 'standing':'+'}),
|
||||
('Smarten up quietly and daydream.', 'scene:232', {'standing':'+'}),
|
||||
('Save your money; they can take you as you are.', 'archetype', {'money':'+', 'standing':'-'})]),
|
||||
dict(id='G18', name='Still on the bottom rung',
|
||||
predicament='Years in, you are still at the bottom, people expected you to be higher by now, and you must decide whether to wait, push or go.',
|
||||
actor='long-serving junior', wants='to rise', counterpart='the people who could raise them',
|
||||
members=[29, 33, 181, 246, 479, 490],
|
||||
options=[
|
||||
('Tell them you like it where you are.', 'scene:246', {'relationships.boss':'+', 'standing':'-'}),
|
||||
('Keep away from everyone until you have made good.', 'scene:33', {'relationships.friend':'-', 'savvy':'+'}),
|
||||
('Accept that someone has to stay at the bottom.', 'scene:181', {'standing':'-', 'flags.gave_up':'set'}),
|
||||
('Threaten to quit unless your place is made plain.', 'scene:490', {'cheek':'+', 'relationships.boss':'risk', 'standing':'risk'}),
|
||||
('Leave and try elsewhere.', 'scene:29', {'money':'risk', 'relationships.boss':'-'})]),
|
||||
# ---- courtship --------------------------------------------------------------------------------------
|
||||
dict(id='G19', name='A sweetheart far above you',
|
||||
predicament='Someone far above you in station has been kind to you, and you cannot believe you have any right to hope.',
|
||||
actor='suitor of low standing', wants='to be worthy of them', counterpart='a sweetheart far above',
|
||||
members=[173, 174, 190, 191, 230, 231, 233, 234, 243, 397, 667],
|
||||
options=[
|
||||
('Keep their picture and tell yourself it is hopeless.', 'scene:230', {'relationships.sweetheart':'-'}),
|
||||
('Let the letters quietly die.', 'scene:191', {'relationships.sweetheart':'-', 'money':'+'}),
|
||||
('Greet them warmly in front of their crowd anyway.', 'scene:173', {'relationships.sweetheart':'+', 'standing':'risk'}),
|
||||
('Tell them how you feel before they go.', 'filled', {'relationships.sweetheart':'risk', 'cheek':'+'}),
|
||||
('Wait until you can meet them as an equal.', 'scene:479', {'relationships.sweetheart':'risk', 'standing':'+'})]),
|
||||
dict(id='G20', name='Her guardian says you are not good enough',
|
||||
predicament='The person who has charge of the one you love has decided you are beneath her, and has the means to keep you apart.',
|
||||
actor='suitor', wants='to be accepted', counterpart='the sweetheart\'s guardian',
|
||||
members=[198, 199, 247, 248, 258, 403, 423, 424, 475, 476, 484, 485, 486, 489, 492, 508, 522, 565, 568, 576,
|
||||
621, 623, 624, 625, 632, 665, 666, 668, 669, 670, 671, 672, 673, 674],
|
||||
options=[
|
||||
('Give a flip answer and leave.', 'scene:258', {'cheek':'+', 'relationships.guardian':'-'}),
|
||||
('Answer every question about your pay and post honestly.', 'scene:198', {'relationships.guardian':'risk', 'standing':'-'}),
|
||||
('Do her a service she cannot refuse, and let her thank you.', 'scene:522', {'relationships.guardian':'+', 'savvy':'+'}),
|
||||
('Give her advice so good she has to take it.', 'scene:623', {'relationships.guardian':'+', 'savvy':'+'}),
|
||||
('Let your new standing speak for you.', 'scene:492', {'standing':'+', 'relationships.guardian':'-'})]),
|
||||
dict(id='G21', name='Contriving a way to be near her',
|
||||
predicament='You have been kept from the one you love, and a ruse, a disguise or a borrowed invitation might put you in the same room.',
|
||||
actor='banned suitor', wants='time with her', counterpart='whoever keeps them apart',
|
||||
members=[235, 237, 242, 249, 250, 255, 256, 257, 404, 405, 408, 409, 411, 412, 413, 414, 419, 420, 422,
|
||||
472, 473, 474, 477, 478, 538, 539, 540, 612],
|
||||
options=[
|
||||
('Take a humble job that puts you near her.', 'scene:409', {'standing':'-', 'relationships.sweetheart':'+', 'flags.in_disguise':'set'}),
|
||||
('Forge a message so you are the one sent.', 'scene:237', {'savvy':'+', 'cheek':'+', 'relationships.boss':'risk'}),
|
||||
('Hang back while the rivals rush off.', 'scene:255', {'savvy':'+', 'relationships.sweetheart':'+'}),
|
||||
('Quietly sabotage the rival\'s plans to stretch out the time.', 'scene:419', {'relationships.rival':'-', 'relationships.sweetheart':'+', 'flags.sabotage':'set'}),
|
||||
('Steer someone else\'s invitation so you are included.', 'scene:539', {'savvy':'+', 'relationships.boss_family':'+'})]),
|
||||
dict(id='G22', name='A rival for her in the room',
|
||||
predicament='Someone richer or grander is courting the person you love, often with her family\'s blessing, and he is right there.',
|
||||
actor='suitor', wants='to win her', counterpart='a rival suitor',
|
||||
members=[130, 131, 132, 138, 239, 240, 241, 251, 252, 253, 254, 406, 415, 416, 417, 418, 421, 566, 567, 571, 572],
|
||||
options=[
|
||||
('Spend more than you can afford to outshine him.', 'scene:130', {'money':'-', 'relationships.sweetheart':'risk'}),
|
||||
('Push forward, rival or no rival.', 'scene:239', {'cheek':'+', 'relationships.sweetheart':'+', 'relationships.rival':'-'}),
|
||||
('Pack the rival off in another carriage.', 'scene:241', {'savvy':'+', 'relationships.rival':'-', 'relationships.sweetheart':'+'}),
|
||||
('Hide rather than be seen at a disadvantage.', 'scene:406', {'standing':'-'}),
|
||||
('Show him you bear no grudge.', 'scene:132', {'relationships.rival':'+', 'money':'+'})]),
|
||||
dict(id='G23', name='The boss notices you are in love',
|
||||
predicament='The boss has noticed your mind is on someone, and you must decide whether to confide in him or ask a favour.',
|
||||
actor='junior in love', wants='time and help', counterpart='a kindly boss',
|
||||
members=[175, 194, 398, 399, 483],
|
||||
options=[
|
||||
('Blurt out that you need time off at once.', 'scene:399', {'relationships.boss':'risk', 'money':'+', 'relationships.sweetheart':'+'}),
|
||||
('Confide in the boss what it is all for.', 'scene:483', {'relationships.boss':'+'}),
|
||||
('Sulk at your desk and hope nobody asks.', 'scene:398', {'relationships.boss':'-'}),
|
||||
('Ask for time off, too happy to ask whether it is paid.', 'scene:194', {'money':'risk', 'relationships.sweetheart':'+'}),
|
||||
('Keep work and courtship apart.', 'archetype', {'relationships.boss':'+', 'relationships.sweetheart':'-'})]),
|
||||
dict(id='G24', name='Meddling in the boss\'s love life',
|
||||
predicament='You know more about the boss\'s heart than anyone, and you could take a hand in his romance, whether or not he asked you to.',
|
||||
actor='trusted junior', wants='to repay the boss\'s kindness', counterpart='the boss and the woman he loves',
|
||||
members=[675, 678, 679, 680, 681, 682, 683, 684, 685, 686, 688, 689, 690, 691, 692, 693, 694, 695, 698, 699,
|
||||
700, 701, 711],
|
||||
options=[
|
||||
('Plant a reminder where he will find it.', 'scene:680', {'savvy':'+', 'relationships.boss':'risk'}),
|
||||
('Send a gift in his name without telling him.', 'scene:683', {'cheek':'+', 'relationships.boss':'risk', 'flags.meddled':'set'}),
|
||||
('Go through his private files to find out what went wrong.', 'scene:694', {'savvy':'+', 'relationships.boss':'risk', 'flags.meddled':'set'}),
|
||||
('Plead his case to her yourself.', 'scene:692', {'relationships.boss':'+', 'relationships.boss_love':'+'}),
|
||||
('Leave his private life alone.', 'archetype', {'relationships.boss':'+'})]),
|
||||
dict(id='G25', name='Stiffening a timid man\'s spine',
|
||||
predicament='Someone decent is about to back down before a bully, a tyrant or the woman he loves, and a push from you might make him stand firm.',
|
||||
actor='onlooker', wants='to see them stand firm', counterpart='a timid man',
|
||||
members=[98, 102, 103, 104, 380, 381, 438, 439, 545, 546, 547, 548, 573, 696, 697],
|
||||
options=[
|
||||
('Call him spineless to his face.', 'scene:98', {'cheek':'+', 'relationships.friend':'risk'}),
|
||||
('Tell him to walk in and say it straight, and announce him yourself.', 'scene:547', {'cheek':'+', 'relationships.friend':'+'}),
|
||||
('Answer for him when he cannot.', 'scene:380', {'cheek':'+', 'relationships.friend':'risk', 'flags.committed_him':'set'}),
|
||||
('Advise a firmer line, and plan it with him.', 'scene:438', {'savvy':'+', 'relationships.friend':'+'}),
|
||||
('Let him find his own nerve.', 'archetype', {'relationships.friend':'-'})]),
|
||||
# ---- after the promotion ----------------------------------------------------------------------------
|
||||
dict(id='G26', name='Newly promoted, and not everyone accepts it',
|
||||
predicament='You have just been raised above people who used to order you about: some defer, some resent it, and some have not heard.',
|
||||
actor='newly promoted junior', wants='to be taken seriously in the new place', counterpart='the old hierarchy',
|
||||
members=[96, 97, 491, 493, 494, 495, 496, 497, 498, 523, 524, 525, 526, 536, 634, 635],
|
||||
options=[
|
||||
('Refuse the deference and offer your hand.', 'scene:496', {'relationships.colleagues':'+', 'standing':'+'}),
|
||||
('Let yourself be ordered about as the boy again, and wait.', 'scene:525', {'relationships.boss':'+', 'standing':'-'}),
|
||||
('Let yourself feel like the indispensable one.', 'scene:523', {'standing':'risk', 'relationships.colleagues':'-'}),
|
||||
('Sit brooding that you are only a dummy in the post.', 'scene:498', {'standing':'-'}),
|
||||
('Prove yourself on the first real test.', 'scene:536', {'relationships.boss':'+', 'money':'+', 'savvy':'+'})]),
|
||||
dict(id='G27', name='Everyone trusts the expert, and you think he is wrong',
|
||||
predicament='An expert, a senior colleague or the police have settled what is going on, everyone above you believes them, and your common sense says otherwise.',
|
||||
actor='junior', wants='to be proved right', counterpart='a trusted expert',
|
||||
members=[115, 263, 264, 265, 266, 267, 268, 270, 500, 501, 502, 504, 506, 599, 601],
|
||||
options=[
|
||||
('Quietly run down your own lead.', 'scene:267', {'savvy':'+', 'relationships.boss':'risk'}),
|
||||
('Tell the boss the expert is simply wrong.', 'scene:501', {'cheek':'+', 'relationships.supervisor':'-', 'standing':'risk'}),
|
||||
('Learn the subject overnight and argue it before the top.', 'scene:500', {'savvy':'+', 'standing':'risk', 'relationships.boss':'+'}),
|
||||
('Say nothing; the expert knows best.', 'archetype', {'relationships.supervisor':'+'}),
|
||||
('Keep your doubt to yourself until you have proof.', 'filled', {'savvy':'+'})]),
|
||||
# ---- wrongdoing, secrets and access -------------------------------------------------------------------
|
||||
dict(id='G28', name='A wrongdoer at your mercy',
|
||||
predicament='Someone who did real wrong is in your hands, begging, and handing them over would be right but hard.',
|
||||
actor='person holding the proof', wants='to do right by everyone', counterpart='a culprit who begs',
|
||||
members=[87, 89, 90, 91, 92, 93, 387, 390, 393, 600, 602, 603, 604],
|
||||
options=[
|
||||
('Quietly undo the damage and say nothing.', 'scene:93', {'relationships.culprit':'+', 'flags.kept_quiet':'set'}),
|
||||
('Name the theft to their face.', 'scene:92', {'cheek':'+', 'relationships.culprit':'-'}),
|
||||
('Bargain: everything back, and the charge dropped.', 'scene:603', {'savvy':'+', 'relationships.culprit':'+'}),
|
||||
('Give them what they ask, to be rid of them.', 'scene:393', {'money':'-', 'relationships.culprit':'+'}),
|
||||
('Report it to the boss.', 'filled', {'relationships.boss':'+', 'relationships.culprit':'-'})]),
|
||||
dict(id='G29', name='Standing by someone the law or a mob is after',
|
||||
predicament='Someone you owe or pity is cornered by officials or an angry crowd, and you could step clear of them.',
|
||||
actor='loyal junior', wants='to see them safe', counterpart='the hunted, and those hunting them',
|
||||
members=[12, 13, 122, 124, 125, 126, 127, 592, 593, 594],
|
||||
options=[
|
||||
('Insist they are honest, whatever the officials say.', 'scene:12', {'relationships.hunted':'+', 'standing':'risk'}),
|
||||
('Barge in with a bluff to reach them.', 'scene:124', {'cheek':'+', 'relationships.hunted':'+', 'flags.bluffed':'set'}),
|
||||
('Refuse to leave when told to save yourself.', 'scene:125', {'relationships.hunted':'+', 'standing':'risk'}),
|
||||
('Take their hand as if they were with you.', 'scene:593', {'relationships.hunted':'+', 'relationships.sweetheart':'risk'}),
|
||||
('Step clear before you are mixed up in it.', 'archetype', {'relationships.hunted':'-'})]),
|
||||
dict(id='G30', name='An order from above you think is wrong',
|
||||
predicament='The boss has given an order you think dishonest or reckless, and you are the one who must carry it out or refuse.',
|
||||
actor='subordinate', wants='to keep the job and a clear conscience', counterpart='the boss',
|
||||
members=[183, 184, 185, 186, 314, 315, 317, 459],
|
||||
options=[
|
||||
('Refuse, and resign rather than make a false entry.', 'scene:185', {'relationships.boss':'-', 'money':'-', 'flags.refused_order':'set'}),
|
||||
('Say nothing and let it go out.', 'scene:315', {'relationships.boss':'+', 'flags.looked_away':'set'}),
|
||||
('Carry it out with a flourish and a joke.', 'scene:317', {'cheek':'+', 'relationships.boss':'+'}),
|
||||
('Do it, and complain bitterly afterwards.', 'scene:459', {'money':'+', 'standing':'-'}),
|
||||
('Tell the boss plainly it should not be done.', 'filled', {'cheek':'+', 'relationships.boss':'risk'})]),
|
||||
dict(id='G31', name='Pumped for what you know',
|
||||
predicament='Someone friendly, or someone official, is asking you questions, and what you know belongs to someone else.',
|
||||
actor='junior', wants='to be obliging without betraying anyone', counterpart='a questioner',
|
||||
members=[9, 69, 70, 71, 153, 332, 333],
|
||||
options=[
|
||||
('Stall them, then tell the boss.', 'scene:9', {'relationships.boss':'+', 'savvy':'+'}),
|
||||
('Enjoy the treats and chatter on.', 'scene:71', {'relationships.friend':'-', 'savvy':'-', 'flags.let_slip':'set'}),
|
||||
('Tell the truth, for the fun of shocking them.', 'scene:153', {'cheek':'+', 'relationships.boss':'risk', 'flags.let_slip':'set'}),
|
||||
('Ask who they are before you say a word.', 'filled', {'savvy':'+'}),
|
||||
('Say nothing at all.', 'archetype', {'relationships.questioner':'-'})]),
|
||||
dict(id='G32', name='Covering for the boss\'s absence',
|
||||
predicament='Someone above you has gone off on private business just when he is needed, and you are the one left to cover for him.',
|
||||
actor='junior', wants='to protect him without lying outright', counterpart='those asking where he is',
|
||||
members=[84, 85, 86, 166, 169, 170, 176, 709, 710, 722],
|
||||
options=[
|
||||
('Tell a kindly cover story.', 'scene:85', {'relationships.boss':'+', 'flags.covered':'set'}),
|
||||
('Pay out of your own pocket so nobody is let down.', 'scene:86', {'money':'-', 'relationships.family':'+'}),
|
||||
('Quietly do his forgotten duty yourself.', 'scene:170', {'savvy':'+', 'relationships.boss':'+', 'flags.covered':'set'}),
|
||||
('Tell the one asking the truth, lightly.', 'scene:710', {'relationships.boss':'risk', 'standing':'+'}),
|
||||
('Say you do not know where he is.', 'archetype', {'relationships.boss':'-'})]),
|
||||
dict(id='G33', name='Someone wants to trade on your access',
|
||||
predicament='Because you sit near the powerful, a stranger or an old acquaintance wants you to open a door, pass on a word or lend your name.',
|
||||
actor='trusted insider', wants='to stay trusted', counterpart='someone who wants access',
|
||||
members=[383, 384, 385, 509, 510, 511, 646, 647, 648, 649, 653],
|
||||
options=[
|
||||
('Check with the one they claim to know before you pay a cent.', 'scene:385', {'savvy':'+', 'relationships.boss':'+'}),
|
||||
('Brush them off with a joke.', 'scene:510', {'cheek':'+'}),
|
||||
('Shadow them to see what they are really after.', 'scene:511', {'savvy':'+', 'relationships.boss':'+'}),
|
||||
('Ask who told them you were such an easy mark.', 'scene:649', {'cheek':'+', 'relationships.stranger':'-'}),
|
||||
('Do the favour; it costs you nothing.', 'filled', {'relationships.stranger':'+', 'relationships.boss':'risk', 'flags.lent_name':'set'})]),
|
||||
dict(id='G34', name='The boss in a temper',
|
||||
predicament='The boss is raging, the whole place is afraid of him, and you have to go in anyway.',
|
||||
actor='junior', wants='to get through it, or bring him round', counterpart='a raging boss',
|
||||
members=[55, 56, 164, 165, 305, 316, 318, 319, 687],
|
||||
options=[
|
||||
('Take your time, and refuse to be rattled.', 'scene:164', {'cheek':'+', 'relationships.boss':'risk'}),
|
||||
('Tease him that his temper is mostly bluff.', 'scene:317', {'cheek':'+', 'relationships.boss':'+'}),
|
||||
('Walk in as calm as a guest.', 'scene:55', {'standing':'+', 'relationships.boss':'+'}),
|
||||
('Find him something else to do.', 'scene:318', {'savvy':'+', 'relationships.boss':'+', 'money':'-'}),
|
||||
('Keep out of his way until it blows over.', 'archetype', {'relationships.boss':'-'})]),
|
||||
# ---- benefactors, families and old loves -------------------------------------------------------------
|
||||
dict(id='G35', name='A benefactor who wants to run your life',
|
||||
predicament='Someone who supports you, a rich relative or a parent, has decided what work and what marriage are good for you.',
|
||||
actor='dependent', wants='to live their own way', counterpart='a controlling benefactor',
|
||||
members=[300, 334, 335, 336, 337, 370, 371, 372, 374],
|
||||
options=[
|
||||
('Walk away from the money.', 'scene:335', {'money':'-', 'relationships.benefactor':'risk', 'flags.walked_away':'set'}),
|
||||
('Own the deception, and leave with a handshake.', 'scene:336', {'relationships.benefactor':'+', 'money':'-'}),
|
||||
('Stay at the dreary work and tell yourself you deserve no better.', 'scene:371', {'money':'+', 'standing':'-'}),
|
||||
('Keep your real work secret under their roof.', 'scene:334', {'relationships.benefactor':'-', 'flags.secret_work':'set'}),
|
||||
('Ask them what they are afraid you will become.', 'filled', {'relationships.benefactor':'+', 'savvy':'+'})]),
|
||||
dict(id='G36', name='Taken in by someone richer',
|
||||
predicament='Someone older and richer has taken you in, and you must decide how much of their generosity, and their rules, to accept.',
|
||||
actor='young person taken in', wants='a home without losing themselves', counterpart='a benefactor',
|
||||
members=[147, 148, 149, 150, 152, 636, 637, 638, 663, 664],
|
||||
options=[
|
||||
('Come back when you could have run.', 'scene:147', {'relationships.benefactor':'+'}),
|
||||
('Be yourself at their table, irreverence and all.', 'scene:149', {'cheek':'+', 'relationships.benefactor':'+'}),
|
||||
('Side with the lively one against the pious one.', 'scene:638', {'relationships.benefactor':'+', 'relationships.household':'-'}),
|
||||
('Take the gift on its thin pretext.', 'scene:664', {'relationships.benefactor':'+', 'relationships.sweetheart':'+'}),
|
||||
('Insist on paying your own way.', 'filled', {'money':'-', 'standing':'+'})]),
|
||||
dict(id='G37', name='Helping a couple against the family',
|
||||
predicament='A couple you know want to marry, and someone in the family is set on stopping it.',
|
||||
actor='ally of the couple', wants='to see them married', counterpart='a family elder who forbids it',
|
||||
members=[72, 73, 197, 541, 542, 543, 549, 644, 645],
|
||||
options=[
|
||||
('Stand by the couple against the elder.', 'scene:73', {'relationships.couple':'+', 'relationships.elder':'-'}),
|
||||
('Let the elder see them together, and soften.', 'scene:197', {'relationships.couple':'+', 'relationships.elder':'+'}),
|
||||
('Keep the elder distracted while the couple act.', 'scene:543', {'savvy':'+', 'relationships.elder':'risk'}),
|
||||
('Give them your blessing after the fact.', 'scene:645', {'relationships.couple':'+'}),
|
||||
('Stay out of family business.', 'archetype', {'relationships.elder':'+', 'relationships.couple':'-'})]),
|
||||
dict(id='G38', name='A love let slip, and one more chance',
|
||||
predicament='You let someone you loved drift away, through pride, work or neglect, and a last chance to see them has come.',
|
||||
actor='former suitor', wants='them back', counterpart='the one who got away',
|
||||
members=[192, 193, 279, 280, 281, 283, 284, 285, 639, 640, 641, 642, 643, 676, 677],
|
||||
options=[
|
||||
('Go, and marry them that same night.', 'scene:193', {'relationships.lost_love':'+', 'money':'risk'}),
|
||||
('Wait for them in the cold, however long it takes.', 'scene:284', {'relationships.lost_love':'risk', 'standing':'-'}),
|
||||
('Tell yourself it is hopeless and put their picture away.', 'scene:677', {'relationships.lost_love':'-'}),
|
||||
('Turn up at their door and ask whether they are still themselves.', 'scene:641', {'relationships.lost_love':'+', 'cheek':'+'}),
|
||||
('Give the ring to someone who waited for you instead.', 'scene:286', {'relationships.lost_love':'-'})]),
|
||||
dict(id='G39', name='A snob shown up',
|
||||
predicament='Someone around you looks down on a humble person you have reason to think is worth far more, and the truth is about to come out.',
|
||||
actor='onlooker', wants='to see the snob put right', counterpart='a snob and the person they scorn',
|
||||
members=[79, 80, 287, 293, 298, 357, 363, 366, 570, 574, 575, 626, 627, 628, 629, 630, 631, 725],
|
||||
options=[
|
||||
('Mock the snob for it.', 'scene:357', {'cheek':'+', 'relationships.snob':'-'}),
|
||||
('Rub it in once the truth is out.', 'scene:366', {'cheek':'+', 'relationships.snob':'-', 'standing':'+'}),
|
||||
('Hand the snob to the one person who can show them up.', 'scene:78', {'savvy':'+', 'relationships.snob':'-'}),
|
||||
('Refuse to join the sneering.', 'scene:294', {'relationships.snob':'risk', 'relationships.humble':'+'}),
|
||||
('Let the snob find out for themselves.', 'archetype', {'savvy':'+'})]),
|
||||
]
|
||||
|
||||
# Protagonist standing by story, for stage assignment (DESIGN.md "Stages"). Per story, not per
|
||||
# scene: a coarse first cut, and the one place this grouping uses a judgement not in the text.
|
||||
# Judged by RANK, the job he holds in the story, so that all three volumes use one measure.
|
||||
STANDING = {**{s: 'low' for s in range(0, 37)}, # office boy at the gate (0 at a swindle's two-room office)
|
||||
**{s: 'middle' for s in range(37, 50)}, # private secretary to a subsidiary
|
||||
**{s: 'high' for s in range(50, 55)}} # in the directors' meetings, acting head, near equal
|
||||
# Story 36 is low: he is promoted only in its last scenes (491-493). 48 and 49 stay middle: learning his
|
||||
# family changes his standing with the guardian, not his job. From 50 he sits in on directors' meetings.
|
||||
# The readers staged by different measures. Volume 1's reader used rank (all low) and noted that his
|
||||
# PULL rises from story 12. Volume 2's reader used trust and reach, and rated 21, 24, 25, 29, 32, 33
|
||||
# and 34 middle, the stories where he acts in the boss's name with money or authority. Volume 3's
|
||||
# reader used rank. Those seven stay low here: he is still the office boy in all of them. Where his
|
||||
# influence runs ahead of his rank is shown by the groups (G06, G10), not by his stage.
|
||||
Reference in New Issue
Block a user