permanent-underclass-linux-x64 0.1.0-beta.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +14 -0
- package/bin/permanent-underclass +0 -0
- package/data/characters.jsonl +15 -0
- package/data/endings.jsonl +27 -0
- package/data/events/ai_researcher.jsonl +147 -0
- package/data/events/angel_investor.jsonl +145 -0
- package/data/events/chief_of_staff.jsonl +113 -0
- package/data/events/crypto_bro.jsonl +140 -0
- package/data/events/digital_nomad.jsonl +125 -0
- package/data/events/ex_faang_engineer.jsonl +129 -0
- package/data/events/hr_lady.jsonl +140 -0
- package/data/events/junior_dev.jsonl +116 -0
- package/data/events/marketing_manager.jsonl +164 -0
- package/data/events/plumber.jsonl +145 -0
- package/data/events/podcaster.jsonl +161 -0
- package/data/events/product_designer.jsonl +140 -0
- package/data/events/product_guy.jsonl +140 -0
- package/data/events/stealth_founder.jsonl +140 -0
- package/data/events/twitter_anon.jsonl +143 -0
- package/data/events/universal.jsonl +63 -0
- package/data/flags.jsonl +44 -0
- package/data/headlines.jsonl +112 -0
- package/data/sfx/cutilatk_ringtone_4_387502.mp3 +0 -0
- package/data/sfx/gamevideo_seamless_looping_tra_elevenlabs.mp3 +0 -0
- package/data/sfx/glitch_004.mp3 +0 -0
- package/data/sfx/lesiakower_8_bit_energetic_drums_chiptune_beat_384593.mp3 +0 -0
- package/data/sprites/semantics/choice_sprite_selection.jsonl +6453 -0
- package/data/sprites/semantics/event_sprite_selection.jsonl +2151 -0
- package/data/sprites/sprite_library.jsonl +2329 -0
- package/package.json +26 -0
- package/postinstall.cjs +12 -0
package/README.md
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# permanent-underclass-linux-x64
|
|
2
|
+
|
|
3
|
+
Platform binary package for `permanent-underclass` on:
|
|
4
|
+
- Linux x64
|
|
5
|
+
|
|
6
|
+
This package also includes bundled runtime assets:
|
|
7
|
+
- `data/**/*.jsonl` runtime catalogs/content
|
|
8
|
+
- `data/sfx/*.mp3`
|
|
9
|
+
|
|
10
|
+
Users should install/run via the wrapper package:
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
npx --yes permanent-underclass@beta
|
|
14
|
+
```
|
|
Binary file
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{"id": "junior_dev", "label": "Junior Dev", "description": "You mass-applied to 400 jobs and mass-got rejected from 399. The one that said yes doesn't know what you do either.", "starting_stats": {"money": 8000, "sanity": 70, "audience": 20, "ai_skill": 65, "friends": 45}, "starting_income_per_turn": 1800, "starting_subscription": "Pro", "starting_conditions": ["ImposterSyndrome"], "ability": "VibeCode", "origin_line": "You started as a JUNIOR DEV with $8,000, imposter syndrome, and a mass-produced dream.", "event_catalog": "junior_dev", "presentation": {"tag": "ENDANGERED", "quote": "\"it works on my machine\"", "backstory": "Fresh out of a bootcamp with $47k in student debt and a GitHub full of TODO apps. You landed your first real job six months ago. The codebase terrifies you. Your senior dev just got replaced by an AI pair-programmer. Now you're the most experienced human on the team. You're 23.", "accent_rgb": [51, 255, 51], "sprite_style": "junior_dev"}}
|
|
2
|
+
{"id": "growth_lead", "label": "Growth Lead", "description": "Your job title has changed four times. Your actual job has not. You make graphs go up and pretend to know why.", "starting_stats": {"money": 25000, "sanity": 55, "audience": 65, "ai_skill": 25, "friends": 50}, "starting_income_per_turn": 2200, "starting_subscription": "Pro", "starting_conditions": [], "ability": "Rebrand", "origin_line": "You started as a GROWTH LEAD with $25,000 and a personal brand nobody asked for.", "event_catalog": "marketing_manager", "presentation": {"tag": "SYNERGY", "quote": "\"let's circle back on that\"", "backstory": "You've survived four rounds of layoffs by mastering the art of looking essential in meetings. Your actual job is a mystery even to you. But you can rebrand anything - including yourself. The AI tools are writing better copy than your whole team. Time to pivot the narrative.", "accent_rgb": [255, 176, 0], "sprite_style": "marketing_manager"}}
|
|
3
|
+
{"id": "ex_googler", "label": "Ex-Googler", "description": "You peaked at 27 inside a building with free kombucha. The rest of your career is a controlled descent.", "starting_stats": {"money": 100000, "sanity": 52, "audience": 30, "ai_skill": 80, "friends": 25}, "starting_income_per_turn": 800, "starting_subscription": "Pro", "starting_conditions": ["ImposterSyndrome"], "ability": "GoldenHandcuffs", "origin_line": "You started as an EX-GOOGLER with $100,000 in savings and nothing to prove except everything.", "event_catalog": "ex_faang_engineer", "presentation": {"tag": "COASTING", "quote": "\"I was at Google before it was cool. Also after.\"", "backstory": "Five years at Google taught you two things: how to pass a system design interview and how to coast on autopilot. You left with $100k in savings and a superiority complex. Now every startup wants \"FAANG experience\" but none of them want to pay FAANG salaries. The golden age is over.", "accent_rgb": [255, 102, 255], "sprite_style": "ex_faang_engineer"}}
|
|
4
|
+
{"id": "the_designer", "label": "The Designer", "description": "The design team used to be six people. Now it's you. Your Figma files are immaculate. Your job security is not.", "starting_stats": {"money": 20000, "sanity": 62, "audience": 45, "ai_skill": 70, "friends": 50}, "starting_income_per_turn": 1700, "starting_subscription": "Free", "starting_conditions": [], "ability": "GoViral", "origin_line": "You started as THE DESIGNER with $20,000 and a portfolio full of NDAs.", "event_catalog": "product_designer", "presentation": {"tag": "DISRUPTED", "quote": "\"Can you make the logo bigger?\"", "backstory": "You're the only designer on a team of twelve engineers. Your Figma files are pristine. Your taste is real. But AI can generate 'good enough' mockups in seconds and your PM just asked if you've tried Midjourney. The design team used to be six people. Now it's you.", "accent_rgb": [0, 204, 255], "sprite_style": "product_designer"}}
|
|
5
|
+
{"id": "podcast_bro", "label": "The Podcaster", "description": "You have 2,000 loyal listeners and a Patreon that almost covers your mic rental. Your takes are free. So is your labor.", "starting_stats": {"money": 3000, "sanity": 65, "audience": 80, "ai_skill": 20, "friends": 70}, "starting_income_per_turn": 600, "starting_subscription": "Free", "starting_conditions": [{"MainCharacter": {"remaining_turns": 5}}], "ability": "Interview", "origin_line": "You started as THE PODCASTER with $3,000, a USB mic, and an audience that hadn't left yet.", "event_catalog": "podcaster", "presentation": {"tag": "VIBES ONLY", "quote": "\"Today's episode is brought to you by existential dread\"", "backstory": "You quit your day job to start a podcast about \"the future of work.\" The irony is not lost on you. You have 2,000 loyal listeners and a Patreon that almost covers your mic rental. Your audience loves your takes on AI - they just don't want to pay for them.", "accent_rgb": [255, 80, 80], "sprite_style": "podcaster"}}
|
|
6
|
+
{"id": "plumber", "label": "Plumber", "description": "While everyone was learning to code, you learned to fix pipes. Turns out AI can't snake a drain. You win. For now.", "starting_stats": {"money": 24000, "sanity": 62, "audience": 10, "ai_skill": 5, "friends": 60}, "starting_income_per_turn": 1500, "starting_subscription": "Free", "starting_conditions": [], "ability": "BaumolsRevenge", "origin_line": "You started as a PLUMBER with $24,000, a van, and a job AI couldn't do. Yet.", "event_catalog": "plumber", "presentation": {"tag": "ASCENDANT", "quote": "\"Try automating a leaking pipe\"", "backstory": "While everyone else was learning to code, you learned to fix pipes. Turns out AI can't snake a drain. You're the only character here with job security, but the gig economy is eating into your rates and your body won't do this forever. You're union. For now.", "accent_rgb": [255, 255, 51], "sprite_style": "plumber"}}
|
|
7
|
+
{"id": "stealth_founder", "label": "Stealth Founder", "description": "LinkedIn says 'Founder @ Stealth.' Translation: you have a landing page, a Stripe account, and $6,000 in runway.", "starting_stats": {"money": 6000, "sanity": 60, "audience": 50, "ai_skill": 80, "friends": 40}, "starting_income_per_turn": 400, "starting_subscription": "Pro", "starting_conditions": [], "ability": "ShipIt", "origin_line": "You started as a STEALTH FOUNDER with $6,000, a landing page, and a pitch deck nobody asked to see.", "event_catalog": "stealth_founder", "presentation": {"tag": "PRE-REVENUE", "quote": "\"Day 47 of building in public\"", "backstory": "You quit your job to build something. You're not sure what yet but the landing page is live. You ship MVPs with Claude and post MRR screenshots ($0). Your burn rate is your boss. Every week you don't launch is a week closer to moving back in with your parents.", "accent_rgb": [0, 255, 180], "sprite_style": "stealth_founder"}}
|
|
8
|
+
{"id": "angel_investor", "label": "Angel Investor", "description": "You write $25K checks and call it 'deploying capital.' Your portfolio is either going to 100x or zero. Mostly zero.", "starting_stats": {"money": 200000, "sanity": 45, "audience": 40, "ai_skill": 15, "friends": 80}, "starting_income_per_turn": 0, "starting_subscription": "Pro", "starting_conditions": [], "ability": "DeployCapital", "origin_line": "You started as an ANGEL INVESTOR with $200,000 and the belief that writing checks is a personality.", "event_catalog": "angel_investor", "presentation": {"tag": "DEPLOYING", "quote": "\"I'm not investing, I'm pattern matching\"", "backstory": "You made some money in tech and now you write small checks into startups you find on Twitter. You sit on two advisory boards and understand neither company. Your network is your product. But founders are shipping with AI now and they don't need your $25K — they need a GPU. Your relevance has a half-life.", "accent_rgb": [218, 165, 32], "sprite_style": "angel_investor"}}
|
|
9
|
+
{"id": "product_guy", "label": "Product Guy", "description": "You are the glue between engineering and design. AI is also glue now. There can only be one glue.", "starting_stats": {"money": 35000, "sanity": 50, "audience": 55, "ai_skill": 40, "friends": 55}, "starting_income_per_turn": 2500, "starting_subscription": "Pro", "starting_conditions": [], "ability": "Prioritize", "origin_line": "You started as a PRODUCT GUY with $35,000 and a Notion workspace that could run a small country.", "event_catalog": "product_guy", "presentation": {"tag": "DEPRIORITIZED", "quote": "\"Let me add that to the backlog\"", "backstory": "You write PRDs, run standups, and translate between engineers and executives. You are professionally vague. AI can now do all three of those things and it doesn't need a standup. Your CEO just asked what you 'actually produce.' You've been thinking about that question for six months.", "accent_rgb": [147, 112, 219], "sprite_style": "product_guy"}}
|
|
10
|
+
{"id": "twitter_anon", "label": "Twitter Anon", "description": "80K followers. Zero IRL friends. Nobody knows your real name. Your career IS the algorithm. If it stops showing your posts, you stop existing.", "starting_stats": {"money": 12000, "sanity": 55, "audience": 90, "ai_skill": 35, "friends": 10}, "starting_income_per_turn": 300, "starting_subscription": "Free", "starting_conditions": [{"MainCharacter": {"remaining_turns": 5}}], "ability": "PostBanger", "origin_line": "You started as a TWITTER ANON with $12,000, an egg avatar, and a mass of followers who don't know your name.", "event_catalog": "twitter_anon", "presentation": {"tag": "PSEUDONYMOUS", "quote": "\"ratio + you fell off + I have 80K followers\"", "backstory": "You started posting anonymously three years ago. Now you have 80,000 followers and a parasocial empire built on bangers, threads, and strategic quote-tweets. Nobody knows your real name. You make money from... consulting? A Gumroad PDF? It's unclear even to you. The algorithm is your employer and it does not offer benefits.", "accent_rgb": [100, 100, 100], "sprite_style": "twitter_anon"}}
|
|
11
|
+
{"id": "ai_researcher", "label": "AI Researcher", "description": "You're building the thing that's replacing everyone. Your h-index is your identity. Your guilt is your roommate.", "starting_stats": {"money": 18000, "sanity": 40, "audience": 35, "ai_skill": 95, "friends": 20}, "starting_income_per_turn": 2800, "starting_subscription": "Pro", "starting_conditions": ["ImposterSyndrome"], "ability": "Publish", "origin_line": "You started as an AI RESEARCHER with $18,000, a pre-print nobody cited, and the weight of what you're building.", "event_catalog": "ai_researcher", "presentation": {"tag": "ALIGNED?", "quote": "\"we don't fully understand why it works\"", "backstory": "You left your PhD program to join a frontier lab. Your work is cited by people who want to save the world and people who want to end it. You understand transformers better than you understand your own emotions. The models are getting smarter every quarter. So is your anxiety. You know exactly how capable these systems are, which is why you can't sleep.", "accent_rgb": [0, 200, 255], "sprite_style": "ai_researcher"}}
|
|
12
|
+
{"id": "crypto_bro", "label": "Crypto Bro", "description": "You survived the bear market, the rug pulls, and the SEC. Now AI is the new thing and you're not sure if you're early or late.", "starting_stats": {"money": 45000, "sanity": 50, "audience": 60, "ai_skill": 25, "friends": 35}, "starting_income_per_turn": 500, "starting_subscription": "Free", "starting_conditions": [{"MainCharacter": {"remaining_turns": 5}}], "ability": "ApeIn", "origin_line": "You started as a CRYPTO BRO with $45,000 in unrealized gains and the conviction that you understand disruption.", "event_catalog": "crypto_bro", "presentation": {"tag": "FEW UNDERSTAND", "quote": "\"ser, this is a paradigm shift\"", "backstory": "You made $200K in the bull run and lost half in the crash. You still have a hardware wallet with coins you won't sell 'on principle.' You've been through three market cycles and you think that makes you an expert on technological disruption. AI is the new crypto, except it actually works. You're trying to figure out if your pattern-matching skills transfer or if you're just another tourist in someone else's revolution.", "accent_rgb": [245, 166, 35], "sprite_style": "crypto_bro"}}
|
|
13
|
+
{"id": "hr_lady", "label": "HR Lady", "description": "You've fired 200 people with empathy and a scripted speech. Now the script is being read by a chatbot and you're wondering who fires the firer.", "starting_stats": {"money": 32000, "sanity": 45, "audience": 15, "ai_skill": 20, "friends": 75}, "starting_income_per_turn": 2200, "starting_subscription": "Pro", "starting_conditions": [], "ability": "Restructure", "origin_line": "You started as the HR LADY with $32,000, a stack of PIPs, and a job that requires you to be the last human standing.", "event_catalog": "hr_lady", "presentation": {"tag": "REDUNDANT", "quote": "\"this isn't personal, it's structural\"", "backstory": "You've conducted 200 terminations with the same calm voice and the same bottle of water pushed across the table. You know everyone's salary, everyone's PIP status, and everyone's emergency contact. AI can now write the severance packages, schedule the meetings, and generate the empathetic scripts. Your entire department is three people. It used to be twelve. You know what happens to departments that go from twelve to three.", "accent_rgb": [200, 80, 120], "sprite_style": "hr_lady"}}
|
|
14
|
+
{"id": "digital_nomad", "label": "Digital Nomad", "description": "You work from Bali, Lisbon, and Mexico City. Your freedom is real. So is your loneliness. One visa expiration away from reality.", "starting_stats": {"money": 15000, "sanity": 65, "audience": 45, "ai_skill": 50, "friends": 25}, "starting_income_per_turn": 1400, "starting_subscription": "Free", "starting_conditions": [], "ability": "GeoArbitrage", "origin_line": "You started as a DIGITAL NOMAD with $15,000, a carry-on bag, and a VPN pretending you're still in America.", "event_catalog": "digital_nomad", "presentation": {"tag": "UNTETHERED", "quote": "\"the WiFi here is actually really good\"", "backstory": "You sold everything and left. Laptop, passport, noise-canceling headphones. You make first-world money and spend it in developing economies. Your Instagram looks like freedom. Your WhatsApp looks like loneliness. You've lived in six countries in two years and have deep relationships in none of them. The arbitrage works until the clients dry up or the visa expires. You chose precarity before it chose everyone else.", "accent_rgb": [80, 220, 180], "sprite_style": "digital_nomad"}}
|
|
15
|
+
{"id": "chief_of_staff", "label": "Chief of Staff", "description": "You hold a founder's entire life together with Google Sheets and emotional intelligence. Nobody knows what you do. Everything breaks without you.", "starting_stats": {"money": 28000, "sanity": 38, "audience": 10, "ai_skill": 35, "friends": 85}, "starting_income_per_turn": 2000, "starting_subscription": "Pro", "starting_conditions": [], "ability": "Unblock", "origin_line": "You started as CHIEF OF STAFF with $28,000, a Notion workspace, and a founder who can't find their own calendar.", "event_catalog": "chief_of_staff", "presentation": {"tag": "LOAD-BEARING", "quote": "\"let me loop back and align on that\"", "backstory": "Your job title is Chief of Staff. Your actual job is therapist, project manager, translator, firefighter, and the only person who knows the WiFi password. The founder introduces you as 'the person who makes everything work' which is both a compliment and a confession that they couldn't survive a Tuesday without you. AI can now schedule meetings, write memos, and manage projects. It cannot yet handle the founder crying in the parking lot at 11pm. That's still you. For now.", "accent_rgb": [180, 140, 200], "sprite_style": "chief_of_staff"}}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
{"id": "Broke", "title": "BROKE", "body": "Your last $43 went to an automatic AI subscription renewal you forgot to cancel.\nYou laugh. Then you call your parents.", "type": "death"}
|
|
2
|
+
{"id": "BurnedOut", "title": "BURNED OUT", "body": "You stopped sleeping. Then you stopped caring.\nYour body quit before your ambition did.\nThe screen is still on. You are not.", "type": "death"}
|
|
3
|
+
{"id": "Crass", "title": "CRASS", "body": "You chose money every single time.\nNo rest, no friends, no meaning.\nCrassus would be proud.\nMarcus Aurelius would be disappointed.", "type": "secret", "scoring": {"conditions": [{"check": "cash_focus_pct >= 65", "points": 78}, {"check": "high_pressure_pct >= 45", "points": 28}, {"check": "money >= 250000", "points": 18}, {"check": "friends <= 20", "points": 10}, {"check": "has_flag:sold_out", "points": 24}, {"check": "has_flag:found_balance", "points": -30}], "min_threshold": 90, "specificity": 120}}
|
|
4
|
+
{"id": "Luddite", "title": "THE LUDDITE", "body": "You refused.\nEvery offer, every tool, every upgrade.\nThe world changed anyway.\nSome rich people pay a premium for artisanal human labor.", "type": "secret", "scoring": {"conditions": [{"check": "ai_skill == 0", "points": 80}, {"check": "ai_skill <= 8", "points": 24}, {"check": "subscription_is:free", "points": 40}, {"check": "ai_push_turns == 0", "points": 18}, {"check": "ai_push_turns <= 2", "points": 8}, {"check": "has_flag:rejected_ai", "points": 24}, {"check": "has_flag:embraced_ai", "points": -40}], "min_threshold": 90, "specificity": 120}}
|
|
5
|
+
{"id": "Oligarch", "title": "OLIGARCH", "body": "You own compute.\nYou own a fraction of the future.\nYou sit on two advisory boards.\nYour parents still don't understand what you do.", "type": "stat_threshold", "scoring": {"conditions": [{"check": "money > 500000", "points": 80}, {"check": "money > 350000", "points": 30}, {"check": "ai_skill > 70", "points": 36}, {"check": "friends > 20", "points": 22}, {"check": "has_flag:invested_in_ai", "points": 20}, {"check": "has_flag:sold_out", "points": 10}], "min_threshold": 115, "specificity": 110}}
|
|
6
|
+
{"id": "LonelyOligarch", "title": "LONELY OLIGARCH", "body": "You won by every financial metric.\nYou haven't spoken to a friend in weeks.\nThe AI asks how you're doing.\nIt responds helpfully.\nYou feel nothing.", "type": "stat_threshold", "scoring": {"conditions": [{"check": "money > 500000", "points": 80}, {"check": "money > 350000", "points": 30}, {"check": "ai_skill > 70", "points": 34}, {"check": "friends < 20", "points": 34}, {"check": "friends < 8", "points": 20}, {"check": "has_flag:burned_bridge", "points": 20}, {"check": "has_flag:found_balance", "points": -20}], "min_threshold": 115, "specificity": 110}}
|
|
7
|
+
{"id": "Irreplaceable", "title": "IRREPLACEABLE", "body": "You keep critical systems running while everyone argues online.\nYour pay keeps climbing.\nYour hands stay busy.\nYou are at peace.", "type": "class_locked", "scoring": {"conditions": [{"check": "character_is:plumber", "points": 100}, {"check": "money > 80000", "points": 14}, {"check": "sanity > 40", "points": 14}, {"check": "ai_skill between 15 70", "points": 10}, {"check": "has_flag:automated_own_job", "points": -35}], "min_threshold": 95, "specificity": 100}}
|
|
8
|
+
{"id": "Builder", "title": "THE BUILDER", "body": "You never stopped building.\nNot for clout. Not for money.\nWhen AGI arrived, you asked it to help.\nIt said yes.\nYou're still making things.", "type": "stat_threshold", "scoring": {"conditions": [{"check": "ai_skill > 60", "points": 24}, {"check": "ai_skill > 45", "points": 12}, {"check": "ai_push_turns >= 10", "points": 24}, {"check": "ai_push_turns >= 6", "points": 10}, {"check": "audience_push_turns >= 6", "points": 20}, {"check": "audience_push_turns >= 3", "points": 8}, {"check": "has_flag:side_project_shipped", "points": 32}, {"check": "has_flag:shipped_creative_work", "points": 24}, {"check": "audience > 40", "points": 8}], "min_threshold": 60, "specificity": 100}}
|
|
9
|
+
{"id": "Connector", "title": "THE CONNECTOR", "body": "You connected people.\nIntroductions. Communities. Trust.\nIn a world where AI can do everything,\nthe person everyone trusts is priceless.", "type": "stat_threshold", "scoring": {"conditions": [{"check": "friends > 90", "points": 54}, {"check": "all(friends > 70, friends <= 90)", "points": 26}, {"check": "audience > 50", "points": 24}, {"check": "all(audience > 35, audience <= 50)", "points": 10}, {"check": "has_flag:built_community", "points": 24}, {"check": "has_flag:became_mentor", "points": 18}, {"check": "relationship_turns >= 8", "points": 24}, {"check": "all(relationship_turns >= 5, relationship_turns < 8)", "points": 10}, {"check": "has_flag:burned_bridge", "points": -30}], "min_threshold": 70, "specificity": 100}}
|
|
10
|
+
{"id": "Comfortable", "title": "COMFORTABLE", "body": "Not rich. Not poor.\nYou have an apartment, a job AI hasn't fully eaten,\nand a subscription that does half your work.\nOn good days, you're grateful.\nOn bad days, you wonder if 'fine' is enough.", "type": "stat_threshold", "scoring": {"conditions": [{"check": "money > 50000", "points": 30}, {"check": "all(money > 30000, money <= 50000)", "points": 12}, {"check": "sanity between 35 85", "points": 10}, {"check": "audience between 30 85", "points": 10}, {"check": "ai_skill between 30 90", "points": 10}, {"check": "friends between 30 85", "points": 10}, {"check": "recovery_turns >= 6", "points": 12}, {"check": "relationship_turns >= 6", "points": 10}, {"check": "all(ai_push_turns >= 3, ai_push_turns <= 12)", "points": 8}, {"check": "has_flag:found_balance", "points": 30}, {"check": "high_pressure_turns >= 12", "points": -15}, {"check": "all(has_flag:hit_rock_bottom, not_flag:recovered_from_crisis)", "points": -20}], "min_threshold": 55, "specificity": 80}}
|
|
11
|
+
{"id": "EnlightenedDropout", "title": "ENLIGHTENED DROPOUT", "body": "You quit.\nYou moved somewhere cheap and beautiful.\nYou make ceramics.\nYou don't know what the new model can do.\nYou're the happiest person in this simulation.", "type": "stat_threshold", "scoring": {"conditions": [{"check": "sanity > 80", "points": 34}, {"check": "friends > 80", "points": 24}, {"check": "money < 20000", "points": 28}, {"check": "ai_skill < 30", "points": 24}, {"check": "audience < 45", "points": 12}, {"check": "recovery_turns >= 10", "points": 16}, {"check": "has_flag:took_sabbatical", "points": 26}, {"check": "has_flag:found_balance", "points": 16}, {"check": "ai_skill > 45", "points": -35}, {"check": "audience > 60", "points": -20}, {"check": "high_pressure_turns >= 8", "points": -16}], "min_threshold": 75, "specificity": 100}}
|
|
12
|
+
{"id": "Artist", "title": "THE ARTIST", "body": "You made human things.\nImperfect and alive.\nIn a sea of generated slop,\nthe handmade became precious.", "type": "stat_threshold", "scoring": {"conditions": [{"check": "audience > 60", "points": 24}, {"check": "sanity > 60", "points": 16}, {"check": "audience_push_turns >= 8", "points": 32}, {"check": "audience_push_turns >= 5", "points": 12}, {"check": "has_flag:shipped_creative_work", "points": 28}, {"check": "has_flag:went_viral", "points": 10}, {"check": "high_pressure_pct >= 50", "points": -10}], "min_threshold": 65, "specificity": 100}}
|
|
13
|
+
{"id": "FamousForNoReason", "title": "FAMOUS FOR NO REASON", "body": "400,000 followers.\n$200 in your checking account.\nBrands want you to promote AI tools you can't afford.\nThe irony sustains you.\nFinancially, it does not.", "type": "stat_threshold", "scoring": {"conditions": [{"check": "audience > 90", "points": 62}, {"check": "money < 10000", "points": 40}, {"check": "sanity < 55", "points": 10}, {"check": "has_flag:went_viral", "points": 18}, {"check": "has_flag:built_following", "points": 18}], "min_threshold": 95, "specificity": 100}}
|
|
14
|
+
{"id": "PermanentUnderclass", "title": "PERMANENT UNDERCLASS", "body": "You are on UBI now.\n$2,000 a month.\nThe algorithm shows you ads for AI courses\nthat cost more than your income.", "type": "stat_threshold", "scoring": {"conditions": [{"check": "money < 5000", "points": 62}, {"check": "ai_skill < 30", "points": 34}, {"check": "subscription_is:free", "points": 10}, {"check": "has_flag:took_on_debt", "points": 16}, {"check": "has_flag:debt_cleared", "points": -30}, {"check": "has_flag:recovered_from_crisis", "points": -14}], "min_threshold": 95, "specificity": 100}}
|
|
15
|
+
{"id": "Survivor", "title": "THE SURVIVOR", "body": "You're alive.\nYou adapted, sort of.\nNot thriving, not dead.\nThe median outcome.", "type": "fallback", "scoring": {"conditions": [{"check": "turns_recorded >= 0", "points": 1}], "min_threshold": 0, "specificity": 10}}
|
|
16
|
+
{"id": "Sellout", "title": "THE SELLOUT", "body": "You took the bag every time they offered.\nYour old life is gone. Your new one says 'AI-native.'\nYour bank account is excellent.\nYour oldest friend unfollowed you.\nYou can't explain what you do without lying a little.", "type": "flag_gated", "scoring": {"conditions": [{"check": "has_flag:sold_out", "points": 60}, {"check": "has_flag:embraced_ai", "points": 28}, {"check": "money > 200000", "points": 24}, {"check": "sanity < 50", "points": 14}, {"check": "friends < 30", "points": 12}, {"check": "has_flag:found_balance", "points": -25}], "min_threshold": 90, "specificity": 115}}
|
|
17
|
+
{"id": "Whistleblower", "title": "THE WHISTLEBLOWER", "body": "You leaked the internal docs.\nThe story ran. Your name was in it.\nYou are unemployable, infamous, and correct.\nSomeone will write a book about you.\nYou can't afford to buy it.", "type": "flag_gated", "scoring": {"conditions": [{"check": "has_flag:blew_the_whistle", "points": 65}, {"check": "money < 10000", "points": 28}, {"check": "audience > 60", "points": 24}, {"check": "friends > 30", "points": 12}, {"check": "has_flag:got_fired", "points": 18}, {"check": "has_flag:sold_out", "points": -40}], "min_threshold": 85, "specificity": 125}}
|
|
18
|
+
{"id": "Mentor", "title": "THE MENTOR", "body": "Someone you mentored just got promoted.\nThey thanked you in a LinkedIn post.\nYou cried in your car.\nThe chain continues.\nThis is the only kind of scaling that matters.", "type": "flag_gated", "scoring": {"conditions": [{"check": "has_flag:has_mentor", "points": 40}, {"check": "has_flag:became_mentor", "points": 45}, {"check": "friends > 60", "points": 20}, {"check": "relationship_turns >= 8", "points": 18}, {"check": "has_flag:burned_bridge", "points": -30}], "min_threshold": 85, "specificity": 120}}
|
|
19
|
+
{"id": "Phoenix", "title": "THE PHOENIX", "body": "You hit zero. Actually zero.\nThen you rebuilt. Different this time.\nNot bigger. Not faster.\nJust yours.\nThe scar tissue is load-bearing now.", "type": "flag_gated", "scoring": {"conditions": [{"check": "has_flag:hit_rock_bottom", "points": 40}, {"check": "has_flag:recovered_from_crisis", "points": 40}, {"check": "money > 30000", "points": 14}, {"check": "sanity > 50", "points": 14}, {"check": "recovery_turns >= 6", "points": 12}], "min_threshold": 81, "specificity": 125}}
|
|
20
|
+
{"id": "Collaborator", "title": "THE COLLABORATOR", "body": "You and the machine made something together.\nYou brought the taste. It brought the throughput.\nPurists hate you. Customers don't care.\nYou did more this year than your old team did in three.\nYou still do the final pass by hand.", "type": "flag_gated", "scoring": {"conditions": [{"check": "has_flag:embraced_ai", "points": 36}, {"check": "has_flag:collab_with_ai", "points": 32}, {"check": "friends > 40", "points": 14}, {"check": "ai_skill > 60", "points": 18}, {"check": "has_flag:side_project_shipped", "points": 22}, {"check": "has_flag:shipped_creative_work", "points": 16}, {"check": "has_flag:output_is_slop", "points": -30}], "min_threshold": 80, "specificity": 115}}
|
|
21
|
+
{"id": "Ghost", "title": "THE GHOST", "body": "No followers. No community. No reputation.\nJust a six-figure account and a locked profile.\nYou optimized for invisibility and it worked.\nNo one knows your name.\nIncluding the algorithm.", "type": "flag_gated", "scoring": {"conditions": [{"check": "audience < 15", "points": 40}, {"check": "friends < 15", "points": 36}, {"check": "money > 100000", "points": 34}, {"check": "ai_skill > 40", "points": 10}, {"check": "has_flag:built_community", "points": -30}, {"check": "has_flag:went_viral", "points": -30}], "min_threshold": 90, "specificity": 115}}
|
|
22
|
+
{"id": "DebtSpiral", "title": "DEBT SPIRAL", "body": "The course cost $18,000.\nThe certification cost $4,000.\nThe AI subscription costs $200/month.\nYou are more qualified than ever.\nYou are also deeper in the hole than ever.", "type": "flag_gated", "scoring": {"conditions": [{"check": "has_flag:took_on_debt", "points": 55}, {"check": "money < 8000", "points": 34}, {"check": "ai_skill > 30", "points": 12}, {"check": "has_flag:debt_cleared", "points": -60}, {"check": "has_flag:recovered_from_crisis", "points": -20}], "min_threshold": 80, "specificity": 110}}
|
|
23
|
+
{"id": "Canceled", "title": "CANCELED", "body": "The screenshot went around.\nContext didn't matter. Apologies made it worse.\nYour audience is bigger than ever.\nHalf of them are hate-watching.\nYou are the main character. You didn't want to be.", "type": "flag_gated", "scoring": {"conditions": [{"check": "has_flag:got_canceled", "points": 55}, {"check": "has_flag:went_viral", "points": 28}, {"check": "audience > 50", "points": 18}, {"check": "sanity < 40", "points": 14}, {"check": "friends < 30", "points": 12}, {"check": "has_flag:found_balance", "points": -20}], "min_threshold": 85, "specificity": 120}}
|
|
24
|
+
{"id": "Expat", "title": "THE EXPAT", "body": "You moved to Lisbon. Or was it Medellín.\nYour rent is $400. Your WiFi is strong.\nYou do in four hours what used to take eight.\nAmerican problems feel like someone else's news now.\nYou still convert everything to dollars though.", "type": "flag_gated", "scoring": {"conditions": [{"check": "has_flag:moved_abroad", "points": 60}, {"check": "sanity > 55", "points": 20}, {"check": "money > 15000", "points": 18}, {"check": "has_flag:went_freelance", "points": 22}, {"check": "friends < 40", "points": 8}], "min_threshold": 80, "specificity": 115}}
|
|
25
|
+
{"id": "SlopMerchant", "title": "SLOP MERCHANT", "body": "You generate 200 pieces of content a day.\nNone of it is good. All of it performs.\nThe algorithm loves you. Your craft is dead.\nYou used to have a style.\nNow you have a pipeline.", "type": "flag_gated", "scoring": {"conditions": [{"check": "has_flag:output_is_slop", "points": 50}, {"check": "has_flag:embraced_ai", "points": 28}, {"check": "ai_skill > 60", "points": 18}, {"check": "audience > 40", "points": 14}, {"check": "sanity < 45", "points": 12}, {"check": "has_flag:shipped_creative_work", "points": -20}], "min_threshold": 80, "specificity": 115}}
|
|
26
|
+
{"id": "Unionized", "title": "UNIONIZED", "body": "You organized the group chat at 2am.\nManagement called it 'disruption.' You called it survival.\nThe vote passed 74 to 31.\nThe AI can't replace collective bargaining.\nNot yet, anyway.", "type": "flag_gated", "scoring": {"conditions": [{"check": "has_flag:joined_union", "points": 55}, {"check": "friends > 50", "points": 22}, {"check": "has_flag:survived_layoff_wave", "points": 20}, {"check": "money < 40000", "points": 10}, {"check": "sanity > 40", "points": 10}, {"check": "has_flag:sold_out", "points": -35}], "min_threshold": 80, "specificity": 120}}
|
|
27
|
+
{"id": "Scraped", "title": "SCRAPED", "body": "They trained the model on your work.\nYou found your style in the outputs. Unmistakable.\nThe lawsuit is pending. The damage is done.\nYour art lives forever inside something that doesn't know your name.\nRoyalties: $0.", "type": "flag_gated", "scoring": {"conditions": [{"check": "has_flag:plagiarized_by_ai", "points": 55}, {"check": "has_flag:shipped_creative_work", "points": 24}, {"check": "audience > 40", "points": 16}, {"check": "money < 20000", "points": 14}, {"check": "has_flag:rejected_ai", "points": 18}, {"check": "has_flag:embraced_ai", "points": -15}], "min_threshold": 80, "specificity": 120}}
|