Fable Test — Roguelite Design Analysis 2
Summary
Full redo of the January 2026 "Roguelite Design Analysis" post (originally by Claude Opus 4.5), repeating the same walkthrough process — framework, 22-game classification, frequency analysis, hypothetical designs, comparison — but re-derived from scratch under the instruction to assume Opus was wrong at various points. Produced the companion post "Roguelite Design Analysis 2" (posts/roguelite-design-analysis-2.md).
Setup and error survey:
- Read the original post (posts/roguelite-design-analysis.md, 2849 lines) and the full original session log (logs/2026-01-02-18-59.md, 18k lines) to reconstruct how the owner walked Opus through the process: framework construction → axis validation/rejection (Information Asymmetry and Failure Mode rejected) → 22-game classification with "don't guess, search the wiki" rule → frequency counts → hypothetical designs curated across three batches → invented-options cleanup → Partitioned/Progressive additions → experimental frequency → summary.
- Headline discovery before redoing anything: the invented-options cleanup was only ever run on the 12 hypothetical games, never on the 22 real-game classifications or the frequency analysis. The published frequency analysis counts non-existent options as rows: "Pre-run"/"Time-scaled"/"Milestone" under Pacing, "Distributed" under Distribution Timing, "Highly Synergistic"/"Multiplicative" under Interaction, "Transformable"/"Transformative"/"Maxed" under Upgrade Depth, "Minimal" under Growth, "Varied" under Starting Variance, "Influenced"/"Minimal" under Run Identity, "Evolutionary"/"Consumable" under Reversibility.
- Factual errors found on re-read: Hades boons claimed sellable at Wells of Charon (false — Wells sell items) and Hades core-slot exclusivity missed entirely; SNKRX classified single-source (missing the passive-item system); Super Auto Pets given a nonexistent bench; Spelunky capacity "1 held item" ignoring the passive layer; FTL "Forced negatives" from blue-option gating (category error); Slay the Spire "Subtractive growth" (removal is power gain); Nuclear Throne "no negatives" (crowns); Into the Breach "Distributed" distribution timing.
- Conceptual cascade: the original summary's flagship "Traded appears in 5 experimental games but zero real ones — a striking gap" shown to be an artifact on both sides (devil deals/Chaos gates/cursed chests are sacrifice-priced but were filed under Optional; the experimental "Traded" instances were opportunity-cost mislabels).
Decisions for the redo (owner): new companion post after analysis, log also published, original post links to the new one; framework re-derived entirely blind ("don't think of Opus at all"); hypothetical designs regenerated from scratch for fresh curation.
Blind framework re-derivation (21 axes):
- Organizing spine: the acquisition pipeline — offer → decision → receipt → holding → trajectory, plus meta and experience layers. Redundancy test: axes describing the same pipeline stage in overlapping words are suspect.
- New axes vs the original: Cost (unifies resource-gating, devil-deal sacrifice, Risk of Rain time pressure; values Free/Currency/Vitality/Time/Risk/Opportunity), Arrangement (Irrelevant/Ordered/Spatial/Structural — Noita wand topology, SAP order, TFT boards, Balatro joker order finally countable), Embodiment (Avatar/Gear/Units/World — added at owner request after being offered as a candidate).
- Restructures: Negatives reduced to None/Avoidable/Unavoidable with sacrifice moved to Cost; Reactive moved from timing to trigger (Discovery); Competitive consolidated into Supply (Contested); Foresight redefined to exclude viewing owned build; "Scarce" split into offer-starved vs currency-starved.
- Back-loaded choice timing kept as an explicitly empty value with an argument for why it stays empty (decisions need a consequences-phase).
Reclassification of 22 games (23 entries):
- Batch 1 (Isaac, Hades, Dead Cells, Gungeon, Noita, Nuclear Throne) approved with no major objections; owner then authorized all remaining batches at once.
- Verification per the original don't-guess rule: SNKRX classified from its actual source (buy_screen.lua: run_passive_pool passive items, interest 1-per-5-max-5, 2g reroll, shop lock, buyable shop levels, max_units = 7+NG+loop clamped to 12) — the owner's own game was the most under-classified in the original; 20 Minutes Till Dawn runes verified via wiki (permanent soul-bought upgrades, 2 equipped — original's "Unlocks only" wrong).
- Other material corrections: Hades Typed capacity + Exclusive composition (core slots) + Scheduled distribution (Chaos boons, the only real-game case); TFT/Balatro/SNKRX Elastic capacity; StS energy as Rivalrous composition; ItB start variance Chosen kit + Inherited (surviving pilot); RoR2 printers/scrappers as Shaped agency, void items Transformative, lunar coins Banked persistence; Rogue Legacy gains Catalog foresight (fully visible manor tree); VS/20MTD triggers corrected to Performance (kill-driven XP).
Frequency recount (23 entries) — headline flips vs the original:
- "Performance-based: 0" flips to 6 (the original's cleanest unused-option finding was a misclassification artifact).
- The Traded gap dissolves into Cost values (Vitality 4, Risk 6); what's actually rare is Time cost (2, both Risk of Rain).
- Unified source: 0/23 (original claimed 2). Elastic capacity 0→4. Arrangement: 6 entries have it. Unavoidable negatives appear only behind difficulty opt-ins (malaise, Ascender's Bane).
- Honest empty-cells map: Pulsed supply, Front-loaded and Back-loaded choice, Clock and Player-summoned triggers, Predetermined agency, Partitioned distribution (Scheduled at exactly 1), Unified source, World embodiment, Metamorphic growth, Seeded default starts.
Design exercise (batch → curate, matching the original session's process):
- Batch 1: 3 archetypal (Vaultbreaker, Nightswarm, Cinderdeck) + 8 experimental. Kept: Manifest (the owner's original 2023 frontloaded-choice/distributed-distribution hypothesis, which Opus never actually built), Summit, Eventide, Castoff. Killed: Rearguard, Chimera, Triune, Dealt.
- Owner surfaced the Son of a Serpent connection: the black midi "Slow" idea (5:33 song as the entire gather phase, collapse speed mapped to song intensity) pairs with Summit's structure. Also conceded Summit isn't Back-loaded — it's a single Milestone; true back-loading is bounded by the need for consequences ("an empty cell can be load-bearing").
- Batch 2 (around keepers): kept B-Side (Slow × Summit — Side A musical gather, the Flip forge, Side B gauntlet; tracklist as content pipeline), Tab (choice timing as bankable resource; picks compound at shrines; commitment weight becomes player-set), Ferment (skipped offers ripen in place; conservation of offers; final door harvests the unclaimed). Killed: Ephemera, Terroir — with the redirect that Terroir variations should go in the direction of UFO 50's Paint Chase.
- Batch 3 (10 designs, matching the original's 10-more round): kept Cordon (Qix/Paint Chase enclosure drafting — claim what you encircle, indivisibly; trail as exposure), Almanac (Ferment on a public calendar, plant-forward, no backtracking), Pilgrim (vows as constraint-priced power, delivered one station late, payout families aligned with the vow), Unmade (unpicked forge recipes become constructs that hunt you; recipe cards read bidirectionally as power and threat), Heirloom (last run's skips seed this run's world, depth-weighted to kill farm runs; Legacy persistence). Killed: Coat, Setlist, Ledger, Vigil.
- Assay (identification as scarce resource) flagged mid-expansion per the owner's tell-me-before-continuing instruction: the veteran-knowledge problem forces either per-run identity recombination (NetHack lineage) or accepting the mechanic's decay (Isaac lineage). Owner removed Assay entirely.
- Final set: 3 archetypal + 12 experimental.
Experimental frequency analysis + closing summary theses:
- Economic triggers 17/23 real → 0/12 experimental; Currency 19→1; Scheduled distribution 1→4; Clock 0→4; Player-summoned 0→3. The de-fusing of choose/receive/pay is the set's shared move.
- Unified source 12/12 vs 0/23 — the starkest divergence; both the elegance reading and the production-pressure reading stated.
- Commitment-heaviness replicated across both independent analyses (Locked 11/12, zero Refundable/Fluid) — argued weight is the underpriced design resource.
- New mechanism class: offer-side power (fermentation, opposition-accruing costs, conservation laws) — "the skip button as an act of authorship."
- Meta-lesson: survivors came from bending axes (Tab, Pilgrim, Ferment, Summit), not filling rare cells; rarity-bingo produced the corpses.
- Replicated blind spots stated: all-Synergistic composition, zero Build-led skill weighting across both generators' sets.
Publication:
- Companion post assembled (~1230 lines): attribution "Analysis by Claude (Fable 5), direction by a327ex", links to the original at top; original post updated to link forward to this one as the more current analysis.
- Order per owner: post written first, this log published, then the post committed and the renderer synced.
Let's redo the roguelite design analysis post. Read it, but assume that Opus 4.5 did it incorrectly at various points. Read the entire log for that session too so you can see how I walked Opus through the entire process, and then repeat that process, but using your own reasoning abilities instead of assuming that the content that Opus generated was correct. Makes sense?
Fable 5
Makes sense. Let me find the post and its session log first.
Glob (a327ex-site/logs/roguelite)
No files found
Grep (roguelite design)
Found 12 files
a327ex-site\logs\website-redesign.md
a327ex-site\logs\gamedev-progress-assessment.md
a327ex-site\logs\ebb-weapon-design-and-plan.md
a327ex-site\logs\ebb-temporary-end-design.md
a327ex-site\logs\blot-theme-date-sorting-fix.md
a327ex-site\logs\anchor-arena-final-and-neovim-diff-tool.md
a327ex-site\logs\2026-01-04-12-15.md
a327ex-site\logs\2026-01-03-18-20.md
a327ex-site\logs\2026-01-03-15-30.md
a327ex-site\logs\2026-01-03-12-30.md
a327ex-site\logs\2026-01-02-18-59.md
a327ex-site\posts\roguelite-design-analysis.md
Found the post. Let me read it and find the session log that produced it.
Read (E:\a327ex\a327ex-site\posts\roguelite-design-analysis.md)
1 Title: Roguelite Design Analysis
2 Date: 2026-01-02 20:45:47
3
4 Analysis by Claude (Opus 4.5), direction by a327ex
5
6 ---
7
8 # Roguelite Design Analysis
9
10 ## Contents
11
12 1. [The Framework](#the-framework) — 17 axes across 6 categories
13 2. [Game Classifications](#game-classifications) — 22 games analyzed
14 3. [Frequency Analysis](#frequency-analysis) — what's common, what's rare
15 4. [Hypothetical Designs](#hypothetical-designs) — 12 imaginary games exploring design space
16 5. [Experimental Analysis](#experimental-games-frequency-analysis) — patterns in the hypothetical designs
17 6. [Summary](#summary-design-space-for-new-roguelites) — what the experimental designs reveal
18
19 ---
20
21 ## The Framework
22
23 [Framework](#the-framework) | [Games](#game-classifications) | [Frequency](#frequency-analysis) | [Designs](#hypothetical-designs) | [Experimental](#experimental-games-frequency-analysis)
24
25 The axes are organized into categories: **Acquisition**, **Management**, **Information**, **Progression**, **Meta**, and **Experience**.
26
27 ---
28
29 ## ACQUISITION AXES
30
... [1235 more lines]
Read (E:\a327ex\a327ex-site\posts\roguelite-design-analysis.md)
1266
1267 **12. Comprehension:** Learnable
1268 - Complex trait interactions
1269 - Meta knowledge matters
1270
1271 **13. Growth Pattern:** Oscillating
1272 - Win streaks / loss streaks
1273 - Power spikes at key upgrades (2-star, 3-star, hitting trait threshold)
1274
1275 **14. Persistence:** Nothing within game
1276 - Ranked progression outside of individual games
1277
1278 **15. Starting Variance:** Varied
1279 - Different augment choices
1280 - Different item drops from PvE rounds
1281 - Carousel picks
1282
1283 **16. Run Identity:** Fluid + can Early-crystallize
1284 - Pivoting is core skill
1285 - Sometimes you commit early to a comp
1286
1287 **17. Skill vs Build Ratio:** Build-dominant + Knowledge-dominant
1288 - Knowing meta comps crucial
1289 - Knowing when to pivot crucial
1290 - Economy management matters
1291 - No execution (auto-battler)
1292
1293 ---
1294
1295 ### Dota Underlords
... [1235 more lines]
Bash (wc -l "E:/a327ex/a327ex-site/logs/2026-01-02-18-59.md" && head -30 "E:/a327ex/a3...)
18149 E:/a327ex/a327ex-site/logs/2026-01-02-18-59.md
Title: Roguelite Design Analysis
Date: 2026-01-02 18:59:00
# Roguelite Design Analysis
## Summary
Extended game design session that evolved from Emoji Ball Battles brainstorming into a comprehensive roguelite taxonomy framework and blog post.
**Emoji Ball Battles Design Doc:**
- Added Earclacks as inspiration for "Weapon Ball" physics format
- Stripped all minesweeper/exploration content, keeping only physics ball combat core (729 → 157 lines)
**Roguelite Taxonomy Framework:**
- Developed 17-axis framework across 6 categories (Acquisition, Management, Information, Progression, Meta, Experience)
- Added 2 subtables: Pacing (under Choice Timing), Commitment Weight (under Reversibility)
- Created new "Time-pressured" Scarcity option for Risk of Rain games
- Classified 22 real games against the framework
- Built frequency analysis showing most/least common options
**Hypothetical Game Designs:**
- Generated 12 imaginary games: 3 archetypal + 9 experimental
- Favorites identified: Loadout (1), Tide Runner (3), Branching Path (4), Expedition (8), Stance Dancer (9), Tide Caller (10), Labyrinth of Choices (11)
- Framework validation revealed invented options (Wagered, Bet-determined, Generationally Earned, etc.)
- Systematic correction: collapsed invented options into existing framework options
- User correction when I over-corrected valid options (Random-varied, Inherited, Legacy)
**New Framework Options Added:**
- Distribution Timing: Partitioned — power segmented, only one segment accessible at a time (stance systems)
... [1 more lines]
Read (E:\a327ex\a327ex-site\posts\roguelite-design-analysis.md)
2531 **8. Capacity: Unlimited (but geometry-limited)**
2532 No hard cap on node bonuses, but you can only reach so many nodes. Practical limit from labyrinth structure.
2533
2534 **9. Interaction: Hierarchical + Synergistic**
2535 Deeper nodes are strictly stronger than shallow nodes (hierarchical). Nodes in the same branch synergize (synergistic within paths).
2536
2537 **10. Upgrade Depth: Branching (literally)**
2538 The entire upgrade system IS branching. Deeper nodes are upgraded versions of the branch's theme.
2539
2540 **11. Power Source Diversity: Single source (unified)**
2541 All power from node completion. The labyrinth is the only system.
2542
2543 **12. Visibility: Complete + Progressive**
2544 See the full map structure. Unvisited nodes show their type but not exact rewards — details revealed as you get closer.
2545
2546 **13. Comprehension: Transparent**
2547 Node rewards clearly shown when adjacent. No hidden mechanics.
2548
2549 **14. Growth Pattern: Multiplicative**
2550 Power grows as you complete nodes. Deeper nodes give more power — late-run growth accelerates exponentially.
2551
2552 **15. Persistence: Unlocks**
2553 Unlock new labyrinth "seeds" — different branch structures. Unlock starting positions deeper in labyrinths.
2554
2555 **16. Starting Variance: Seeded**
2556 Each run uses a labyrinth seed. Same seed = same layout. Different seeds = different strategic puzzles.
2557
2558 **17. Run Identity: Emergent**
2559 Your path IS your build. "I went fire branch into AoE" is both your route and your character identity. Unified.
2560
... [289 more lines]
Bash (grep -n "^#|^**" "E:/a327ex/a327ex-site/logs/2026-01-02-18-59.md" | head -80)
4:# Roguelite Design Analysis
6:## Summary
10:**Emoji Ball Battles Design Doc:**
14:**Roguelite Taxonomy Framework:**
21:**Hypothetical Game Designs:**
28:**New Framework Options Added:**
32:**Experimental Games Frequency Analysis:**
37:**Design Space Summary:**
42:**Blog Post Finalization:**
47:**Continuation Session (Log Formatting Fixes):**
247:**Quick summary of what I read:**
249:**Core concept:** Minesweeper dungeon navigation + physics auto-battler combat. The cerebral tension of deducing safe paths paired with the spectacle of balls bouncing and colliding with gravity physics.
251:**The loop:** Navigate grid → use numbers to deduce mines → find valuable rooms → reach boss → physics ball fight → win upgrade → next floor. Single champion ball that evolves throughout the run.
253:**Resources:** Player HP (dungeon survival, separate from ball combat HP), Gold, Keys, possibly Bombs.
255:**Room types:** Extensive list inspired by Isaac — mines, shops, treasures, healing, devil/angel deals (mutually exclusive), vaults, gambling, challenge rooms, secrets.
257:**Implementation layers:** Well-defined from Layer 0 (core physics combat — "make watching two balls fight entertaining") through Layer 6 (content/polish), each with clear exit criteria.
259:**Open questions explicitly flagged:** Dungeon generation details, combat feel (initial velocity, gravity, arena size), economy (starting resources, prices, drop rates), progression (run length, difficulty curve), meta (starting ball selection, challenge modes).
282:## Earclacks Physics Ball Simulations
286:### The Game Status
290:### Planned Features
294:### Fan-Made Games
314:**Earclacks** is a creator known for producing "satisfying physics simulation videos" featuring weapon-based battles. The community dubbed these concept videos "Weapon Ball"—a physics-based battle format.
316:## The Weapon Ball Concept
320:## What Makes the Physics Appealing
324:## Battle Mechanics
375:**Sources:**
461:**Removed:**
474:**Kept:**
545:## Your Current Framework
559:## Testing the Framework Against Games
... [50 more lines]
Bash (grep -n -E "^(##? )?(User|Assistant|Human|Claude)\b|^---$" "E:/a327ex/a327ex-sit...)
54:---
261:---
373:---
543:---
557:---
578:---
613:---
688:---
706:---
729:---
735:---
786:---
838:---
867:---
908:---
949:---
1019:---
1085:---
1154:---
1196:---
1226:---
1529:---
1539:---
1632:---
1655:---
1663:---
1671:---
1701:---
1770:---
2016:---
... [30 more lines]
Bash (sed -n '54,110p' "E:/a327ex/a327ex-site/logs/2026-01-02-18-59.md")
---
> Hi, Claude. I'd like to do some game design brainstorming today. Do you find the Emoji Ball Battles design document anywhere in the Anchor folder?
Let me search for the Emoji Ball Battles design document.
<details>
<summary><code>Glob (**/*design*)</code></summary>
<pre><code>No files found</code></pre>
</details>
<details>
<summary><code>Glob (**/*emoji*)</code></summary>
<pre><code>No files found</code></pre>
</details>
<details>
<summary><code>Glob (**/*ball*battle*)</code></summary>
<pre><code>No files found</code></pre>
</details>
<details>
<summary><code>Bash (ls -la docs/ 2>/dev/null || echo "No docs folder")</code></summary>
... [27 more lines]
User messages are blockquotes (>). Let me extract all of them with line numbers to map the full arc of the session.
Bash (grep -n '^>' "E:/a327ex/a327ex-site/logs/2026-01-02-18-59.md")
<persisted-output>
Output too large (87.7KB). Full output saved to: C:\Users\adn\.claude\projects\E--a327ex\134ede21-12a4-4969-9774-67a5bc5abfdc\tool-results\b3rmd1svi.txt
Preview (first 2KB):
56:> Hi, Claude. I'd like to do some game design brainstorming today. Do you find the Emoji Ball Battles design document anywhere in the Anchor folder?
135:> **Emoji Ball Battles** — a physics auto-battler build-heavy roguelite. Navigate Minesweeper-like dungeons inspired by The Binding of Isaac, watch your balls collide and bounce in physics-based combat until one team dies.
145:> My external drive is connected, it's there. Is it mounted?
181:> I copied it to the emoji-ball-battles folder, please read it.
271:> First, I'd like the introduction of the game idea, especially the physics ball part of it, to explicitly mention Earclacks as an inspiration. First, search for this online, then write in the document the most relevant information, and make sure that that name is explicitly mentioned in the document.
379:> Ok, now remove EVERYTHING in the document related to the exploration/minesweeper phase. We're going to keep the physics ball portion, and we're going to re-imagine anything on top of that. But first we must remove what was there before.
487:> Unrelated question, but how do I do a new line for text in the Claude Code message box?
...
</persisted-output>
Read (C:\Users\adn.claude\projects\E--a327ex\134ede21-12a4-4969-9774-67a5bc5abfdc\tool-results\b3rmd1svi.txt)
1 56:> Hi, Claude. I'd like to do some game design brainstorming today. Do you find the Emoji Ball Battles design document anywhere in the Anchor folder?
2 135:> **Emoji Ball Battles** — a physics auto-battler build-heavy roguelite. Navigate Minesweeper-like dungeons inspired by The Binding of Isaac, watch your balls collide and bounce in physics-based combat until one team dies.
3 145:> My external drive is connected, it's there. Is it mounted?
4 181:> I copied it to the emoji-ball-battles folder, please read it.
5 271:> First, I'd like the introduction of the game idea, especially the physics ball part of it, to explicitly mention Earclacks as an inspiration. First, search for this online, then write in the document the most relevant information, and make sure that that name is explicitly mentioned in the document.
6 379:> Ok, now remove EVERYTHING in the document related to the exploration/minesweeper phase. We're going to keep the physics ball portion, and we're going to re-imagine anything on top of that. But first we must remove what was there before.
7 487:> Unrelated question, but how do I do a new line for text in the Claude Code message box?
8 535:> OK. The main problem we need to solve is the problem of power choice and power distribution. Most roguelites now have what I call "distributed power choice + distribution". What this means is that players end up choosing their powers in a "choose 3" screen multiple times as the run progresses. There's nothing inherently wrong with this, except for the fact that it is overplayed, many games do it, so something different is necessary. The benefits of doing this is what players are constantly making strategic choices about their builds, it hits the correct choice cadence. The drawbacks are that because you have so many choices, you can usually force the run to always be what you want. Plus, you also have to keep making choices all the time, sometimes you're not in the mood to do that. So the problem we need to solve is moving *away* from distributed power choice and power distribution.
9 536:>
10 537:> One way, for instance, is a draft. A draft where you choose all upgrades before the run starts, but where they're distributed at a fixed interval, would be an example of frontloaded power choice and distributed power distribution. This same logic applies to games like "60 seconds", I believe, where you choose the items you'll use throughout the run in the first 60 seconds in a rush. I don't know any games that frontloaded power choice and distribution, but that would be like a draft where you both choose the upgrades/items, and get them from the start of the run, not sure if that'd work. And of course, I'm not sure either if frontloaded power distribution and distributed power choice would work. It also doesn't seem to make sense for either of them to be backloaded, like happening at the end of the run. So it seems the main alternative to distributed power choice and distribution if frontloaded power choice and distributed power distribution.
11 538:>
12 539:> Can you see any alternatives? Try to imagine how games handle their power choice and distribution, and try to classify them along these terms. Perhaps you may even imagine additionnal/better axes of analysis than this one, but start from this since it's the one I've been using for a while.
13 725:> I like the loadout idea the most. However, before that, I *really* like your addition of agency, reversibility, etc. Could you perhaps run a deeper analysis of roguelites and classify all of them on these axes, as well as any other axes you find? I don't care how long it takes, I just want a pretty thorough exploration. ultrathink
14 1230:> OK, your post contains multiple layers that I'll have to dig into individually. First, for now, forget Emoji Ball Battles entirely. Second, we're going to create a blog post that will contain this analysis, choose a name for it, give me a turn to see if it's a good name, then create the file in the notes folder. In this file, add your analysis exactly as it is now, up to 16. Run identity including that table.
15 1244:> Yea, the first is fine.
16 1286:> Push the website.
17 1327:> Is this being committed to the website repository and not to Anchor?
18 1340:> OK, commit with no message though
19 1393:> OK, now paste to me the axes going from 17 to 22, so I don't have to keep scrolling up.
20 1455:> Could you format these like the other ones? The other ones also have a column with their description, it's harder to understand what you mean without that description.
21 1517:> 17, 18, 19 and 21 are valid. 20 and 22 do not feel like they're valid. Would you like to defend 20 and 22 as valid?
22 1543:> Alright, please add 17, 18, 19 and 21 to the document.
23 1628:> Alright, given these 20 axes, do you feel any of them are redundant, unnecessary? Do you feel the categories are correct?
24 1705:> I think pacing is the more specific examples of how choice timing happens, but that's useful information to have under such analysis. So maybe add it as a subtable bellow choice timing. Perhaps that should be the solution for all others where the same problem occurs? I agree that Difficulty Coupling should likely be removed, this is a more general game design thing than power system necessarily. I think Run Identity is useful and should be kept. I think Skill vs Build is also important, as even though it isn't about power itself, it's about how runs feel to play. I agree Decision Density should be removed. Commitment WEight should be a subtable of 5, as it has some overlap but it's slightly different in a useful way.
25 1738:> Yes. Unless you think it needs further changes. Please run another analysis if you think anything still needs merging or removal or additions.
26 1776:> Yes, please add the Scarcity axis too.
27 1826:> Great, push the website, please.
28 1906:> Now, please list the games you used as examples in your in-depth analysis.
29 1959:> Great, now let's test the framework against all these games. Don't build tables, though. Just, for each game, go through each axis, and classify that game according to the options in that axis. If you don't know for sure, DO NOT GUESS! Search online, usually the game's wiki, for more information on how a mechanic works. If the game doesn't quite fit an axis' options, then note it, create a new one that seems to make sense, and later compile all "new" rows that needed to be added to every axis. If it looks like you're about to need to compact, make SURE to keep the 17 axes fully expanded, as well as your current work regarding the classifications of games you made so far. We'll first focus on games that I've played, so that I can check if your work is correct. Later, after you give me a turn to see your work, we'll expand it to more games. Before I give you the games that you need to analyze, and before you start, ask me any questions you have regarding what you should do.
30 1984:> 1. I'll list once you have no further questions.
... [647 more lines]
Read (C:\Users\adn.claude\projects\E--a327ex\134ede21-12a4-4969-9774-67a5bc5abfdc\tool-results\b3rmd1svi.txt)
678 10179:>
679 10180:> Last edit made was changing Capacity in Game 8 from "Generational scaling" to "Dynamic"
680 10181:>
681 10182:> 9. Optional Next Step:
682 10183:> Continue fixing Experimental Game 8 "The Bloodline Labyrinth" with remaining issues:
683 10184:> - Interaction: "Hierarchical + Inherited synergies" → "Hierarchical + Synergistic"
684 10185:> - Comprehension: "Transparent + Probabilistic inheritance" → "Transparent + Learnable"
685 10186:> - Growth Pattern: "Additive (within run) + Generational scaling (across runs)" → "Additive + Multiplicative"
686 10187:> - Run Identity: "Bloodline-shaped" → "Pre-determined"
687 10188:> - Skill vs Build Ratio: "Generational planning + Combat execution" → "Balanced"
688 10189:>
689 10190:> Then proceed to fix all issues in Experimental Game 9 "The Gambler's Dungeon".
690 10191:>
691 10192:> User's exact request: "For a few of the games, especially the last 2, you invented options in each of the 17 axes that don't exist or that could be collapsed into existing sections... Run this analysis for every game, but pay special attention to the last two.".
692 10193:> Please continue the conversation from where we left it off without asking the user any further questions. Continue with the last task that you were asked to work on.
693 10649:> Random-varied is an option for Starting Variance. Please read the 17 axes again before continuing the task.
694 10901:> Great, now let's run one final analysis. You should look at all experimental games and their chosen axis options and think/consider whether that mechanic could be better described by an option that doesn't yet exist for that axis. We're looking for opportunities to create new options, but only if those options are genuinely general that serve a unique purpose. ultrathink
695 11034:> Power is divided into mutually exclusive segments (stances, forms, loadouts). All segments exist simultaneously, but only one is accessible at a time. Switching between segments is player-controlled.
696 11035:>
697 11036:> Example: Stance Dancer's three-stance system, DMC style switching
698 11039:> Information is revealed through exploration or proximity. Distant or unvisited areas are obscured; nearby or visited areas are visible. The revelation is systematic based on player progression.
699 11040:>
700 11041:> Example: Fog-of-war maps, Labyrinth of Choices' distance-dependent node visibility
701 11043:> Add Partitioned and Progressive, make sure the size of the text is in line with the rest
702 11201:> The stance game is Frontloaded + Partitioned
703 11226:> Unknown slash command: push-website
704 11228:> Please /push-website
705 11282:> Great, now the very last task. Do a similar frequency analysis as the one that exists in the document, but only for the experimental games.
706 11336:> It's for the experimental games only, excluding the archetypal ones.
707 11387:> Great, push to website.
... [384 more lines]
Yes — makes sense. I've read the full post (roguelite-design-analysis.md) and gone through the session log (2026-01-02-18-59.md) — every one of your messages, the compaction summaries, and the shape of each stage you walked Opus through. Before I start the redo, here's what I found on the re-read, the process as I understand it, and a few questions batched into one message.
The process you walked Opus through
- Problem statement — your "distributed power choice + distribution is overplayed" framing; Opus proposed extra axes and alternative structures (you liked the loadout idea).
- Framework construction — iterative: initial ~16 axes → proposed 17–22, you rejected 20 (Information Asymmetry) and 22 (Failure Mode) → redundancy pass (Pacing and Commitment Weight demoted to subtables, Difficulty Coupling and Decision Density removed, Scarcity added) → final 17 axes + 2 subtables in 6 categories.
- Classification of 22 games — with your explicit rules: don't guess, search the wiki; list every option that applies; create new options where nothing fits (produced Time-pressured Scarcity); split games that differ by stage (Rogue Legacy Early/Late).
- Frequency analysis — over-eager counting per axis.
- Hypothetical designs — 3 archetypal + batches of experimental games, curated by you across three rounds (kept: Loadout, Tide Runner, Branching Path, Expedition, Stance Dancer, Tide Caller, Labyrinth, Bloodline Labyrinth, Gambler's Dungeon; rejected: Devil's Bargain, Deep Unknown, Moment, Cascade, and most of the third batch).
- Validation passes — you caught invented axis options; Opus collapsed them, over-corrected valid ones (Random-varied, Inherited, Legacy), then a "genuinely new options" pass added Partitioned and Progressive.
- Experimental-games frequency analysis + the closing summary, then attribution and publishing.
What I already found wrong, from the re-read alone
The invented-options cleanup was only ever run on the 12 hypothetical games — never on the 22 real-game classifications or the frequency analysis. The published frequency analysis counts options that don't exist in the framework as if they were real rows:
| Axis | Non-existent options counted | Where |
|---|---|---|
| Pacing | "Pre-run (2)", "Time-scaled (2)", "Milestone (1)" | line 1805 |
| Distribution Timing | "Distributed (1): Into the Breach" | line 1819 |
| Reversibility | "Evolutionary (1): Vampire Survivors"; Spelunky's entry uses "Consumable" | line 1851 |
| Interaction | "Highly Synergistic (4)" counted as a separate option; "Multiplicative (2)" | line 1870 |
| Upgrade Depth | "Transformable (2)", "Transformative (1)", "Maxed (1)" | line 1875 |
| Growth Pattern | "Minimal (2)" | line 1911 |
| Starting Variance | "Varied (2): TFT, Underlords" | line 1928 |
| Run Identity | "Influenced (6)", "Minimal (1)" | line 1933 |
The irony: Opus fixed "Permanent + Evolutionary → Permanent + Transformable" in the hypothetical Horde Breaker but left the identical error in the real Vampire Survivors entry it was copied from.
Factual classification errors from my own knowledge of these games (each to be verified properly during the redo, per your don't-guess rule):
- Hades — "Can sell boons at Wells of Charon" is false; Wells sell you temporary items, they don't buy boons. Bigger miss: core boon slots (Attack/Special/Cast/Dash/Call) are exclusive — a new god's attack boon replaces your current one. Opus classified Capacity as "Unlimited" and Interaction without Exclusive, missing the game's central capacity mechanic.
- SNKRX — classified "Power Source Diversity: Single source — just units with class bonuses," which ignores the passive items you pick as the snake levels. You'd know better than anyone, but I'm fairly sure your own game got misclassified.
- Spelunky — "Capacity: Hard cap — 1 held item" ignores that passive items (paste, gloves, spike shoes, spectacles) stack without limit plus the back slot; that's Contextual, not Hard cap.
- FTL — "Negative Acquisition: Forced" with the rationale "blue options require specific equipment." That's positive gating, not negative acquisition; a category error, not just a wrong label.
- Slay the Spire — "Growth Pattern: strategic Subtractive" misreads the option: card removal is power gain through consistency, not power loss. Subtractive means declining power (the table's own example is Darkest Dungeon stress).
- Nuclear Throne — "Negative Acquisition: None" misses crowns, which are exactly coupled positives/negatives taken mid-run.
- Into the Breach — mid-run acquisitions labeled "Distributed" under Distribution Timing (not an option; should be Immediate).
Conceptual problems that cascade into the published conclusions. This is the part that most changes the post:
- The summary's flagship claim — "Traded negatives appeared in five experimental games but zero real ones — a striking gap" — is likely an artifact on both sides. On the real-games side: Isaac devil deals, Hades Chaos gates, Dead Cells cursed chests are all "sacrifice to gain" (Traded's literal definition), but Opus filed them all under Optional. On the experimental side: "Loadout: Traded — equipment has weight" describes opportunity cost under a capacity constraint, which isn't negative acquisition at all. The axis conflates avoidability (Optional/Forced) with mechanism (Coupled/Traded), and the classifications leaned on Optional as a catch-all. Fix that, and the "striking gap" mostly evaporates.
- Visibility: Complete is doing double duty — "see all possibilities in the game" (catalog knowledge, like Into the Breach's teams) versus "can view your current deck/relics anytime" (Slay the Spire, Balatro, Peglin — that's seeing what you have, not what's available). The Complete counts are inflated by this confusion, which then feeds the experimental-comparison claim about Complete visibility.
- Vampire Survivors / 20MTD pacing as "Fixed interval" while "Performance-based (0): None" — XP comes from kills, so leveling rate is partly performance-driven. Worth an honest re-look, since "Performance-based is unused in real games" is one of the frequency findings.
Proposed redo process
Mirror your original walk, stage by stage, one turn each: (1) framework audit — my own reasoning pass over the 17 axes: option definitions, boundary problems like the ones above, category placement; you arbitrate each proposed change. (2) Reclassify all 22 games against the settled framework — in batches, verifying uncertain mechanics online rather than guessing, with your check after the first batch. (3) Recount the frequency analysis from the corrected classifications. (4) The hypothetical designs (see question below). (5) Experimental frequency + rewrite the closing summary from whatever the corrected data actually shows — I expect at least the Traded-gap paragraph to change materially. (6) Publish per your call.
Questions before I start
1. Where does the redone content live? (a) Replace the published post in place, same URL, updated attribution; (b) a new companion post, keeping the Opus original untouched as a historical artifact; (c) decide at the end — build everything in chat first. I recommend (c); the attribution question ("Analysis by Claude (Opus 4.5)" is currently a deliberate signature) is easier to settle once you see how much changed.
2. Framework: audit or re-derive? (a) Audit-and-correct: keep the 17-axis structure you settled — those were your decisions — and I propose targeted fixes where my reasoning finds real faults; (b) re-derive blind: I build my own framework from your original problem statement without anchoring on Opus's, then reconcile the two. I recommend (a) — (b) is the purer independence test but re-litigates calls you already made and breaks comparability with the published post. Your call if you want the purer version.
3. Hypothetical designs: keep, extend, or regenerate? (a) Keep the curated 12 — you chose them — and fix their axis classifications, internal coherence, and descriptions; (b) keep the 12 and I also generate a fresh batch from the corrected frequency data for you to curate, repeating the generative stage with my own design reasoning; (c) full regeneration from scratch. I recommend (a), with (b) as an optional stage if you want new material — (c) throws away your curation, which was the heart of that phase.
Answer those and I'll start with the framework audit.
- New companion post after we're done with the analysis, log also published, link to the new one at the top of the old one.
- Re-derive entirely, assume Opus was wrong, only converge on his solutions if it's actually true. Or do as you mentioned, don't think of Opus at all and re-derive blind.
- Regenerate too and I'll curate it again.
Good — starting the redo at the framework stage, deliverable in chat. One honesty note before the derivation: I can't literally unread Opus's framework, so "blind" here means I derived the structure below from your original problem statement and my own model of these games, and where I land on the same answer as Opus I kept it only if I could justify it independently. At the end I include a divergence map so you can see exactly where I converged, where I restructured, and what's new — that should make your validation pass easier, not anchor it.
The derivation
Your seed observation separates two events that most roguelites fuse into one moment: the instant you decide on a power and the instant you receive it. "Choose 1 of 3, get it now" fuses them; deckbuilders split them (acquire now, draw later); a pre-run draft splits them the other way. Taking that seriously, the natural spine for the whole framework is the acquisition pipeline — every power in every roguelite passes through the same stages:
offer → decision → receipt → holding → trajectory, with meta (across runs) and experience (how it feels to play) as cross-cutting layers.
Your two axes are the timing dimensions of decision and receipt. Each pipeline stage turns out to have its own small set of axes, and organizing by stage rather than by loose category makes redundancies visible: two axes are suspect if they describe the same pipeline stage in overlapping words, and fine if they describe different stages even when correlated. That's the test I used throughout.
Twenty axes total. Here they are.
OFFER — what power appears
1. Supply
How much power is on offer relative to what you can take?
| Value | Meaning | Example |
|---|---|---|
| Oversupplied | More offers than you can hold; the constraint is slots and attention, not availability | Vampire Survivors level-ups |
| Matched | Enough that you're never starved, little enough that taking X means not Y | Slay the Spire (skipping cards is correct play) |
| Starved | Offers are rare or unaffordable; prioritization dominates | FTL scrap, Spelunky items |
| Contested | A shared pool that other agents deplete | TFT's 8-player unit pool |
| Pulsed | Alternating drought and flood | No clean example among well-known roguelites |
Note the deliberate split from axis 6 (Cost): FTL is starved because scrap is scarce even though stores are full of goods; Spelunky is starved because offers themselves barely appear. The old framework's "Scarce" fused these two different phenomena.
2. Foresight
What can you see about power that isn't yours yet?
| Value | Meaning | Example |
|---|---|---|
| Catalog | The game's full possibility space is visible in-game | Into the Breach squads and weapons |
| Pool | You know what can appear this run and at what odds | TFT tier odds |
| Forecast | Upcoming offers are previewed before you reach them | Hades door symbols, Slay the Spire map |
| Immediate | You see only the current offer | Isaac room contents, Gungeon chests |
| Explored | Offers are revealed by proximity or progress | Noita (wands seen when you reach them) |
| Hidden | The offer is concealed until committed | Isaac's Curse of the Blind items |
Strictly defined as information about available or upcoming power. Being able to inspect your own deck or boon list is not foresight — every sane game allows that, and counting it made "Complete visibility" meaninglessly common in the old analysis.
DECISION — how you choose
3. Choice Timing
Where in the run do power decisions live?
| Value | Meaning | Example |
|---|---|---|
| Pre-run | Decided before the run exists | Into the Breach squad selection |
| Front-loaded | Concentrated in an opening phase | 60 Seconds' packing rush |
| Distributed | Spread across the whole run | Hades boons |
| Milestone | At specific structural points only | Monster Train champion upgrades |
| Back-loaded | Concentrated near the end | No known game (see note) |
| Continuous | A standing decision surface, revisited every beat | TFT / Super Auto Pets shops |
On back-loaded, since your original message raised it: it's coherent, not senseless — imagine accumulating unchosen or inert power all run, then choosing what to activate for the finale. Nothing ships this, I think, because it starves the run's middle of the build-expression payoff the genre sells. It stays in the table precisely so the frequency analysis can show it empty.
4. Trigger
What summons a decision point into existence? (Subordinate to Choice Timing, same as before, but note the restructure: "reactive" lives here as Discovery, not in axis 3 — timing says where decisions fall in the run, trigger says what causes them.)
| Value | Meaning | Example |
|---|---|---|
| Structural | Rooms, waves, floors cleared | Nuclear Throne level end |
| Performance | Driven by how well you play (kills, XP rate) | Vampire Survivors XP from kills |
| Economic | Player-initiated whenever affordable | FTL stores, Isaac shops |
| Discovery | Found it; decide now | Spelunky crates, Isaac item rooms |
| Clock | Real or game time elapses | Rare; timed events in some survivors-likes |
| Player-summoned | The player chooses when the decision happens at all | Loop Hero card placement |
I'm flagging now: Vampire Survivors classified as pure "fixed interval" pacing was one of the old post's errors — XP thresholds are fixed but XP income is kill-driven, so its trigger is Structural-Performance hybrid, and "Performance-based (0 games)" was a false frequency finding.
5. Agency
How much say do you have over what you get?
| Value | Meaning | Example |
|---|---|---|
| Predetermined | No say; fixed or seed-determined | Daily challenge seeds |
| Found | You take what appears | Risk of Rain chests |
| Curated | Pick one of N | Hades 1-of-3 boons |
| Shaped | You bend the pool: rerolls, filters, banishes, keepsakes | TFT leveling odds, VS banish, Isaac pool manipulation |
| Free | Choose anything from the full set | Noita wand editing, Into the Breach squad choice |
One deliberate removal: the old framework listed "Competitive" as an agency value. A contested pool doesn't change how much say you have over what you take from what's available — it changes what's available. It lives in Supply (Contested) only.
6. Cost — new axis
What does acquiring power cost you?
| Value | Meaning | Example |
|---|---|---|
| Free | Offered gratis | Level-up picks |
| Currency | Paid from an in-run economy | Shops everywhere |
| Vitality | Paid in health, life, or another survival resource | Isaac devil deals, Hades Chaos gates |
| Time | Browsing/acquiring raises difficulty or forfeits scaling | Risk of Rain's difficulty clock |
| Risk | Paid in probabilistic danger | Dead Cells cursed chests, Isaac Curse Rooms |
| Opportunity | Costs only the forgone alternative | The skip button in Slay the Spire |
This axis absorbs three things the old framework scattered as patches: "Resource-gated" pacing, "Time-pressured" scarcity (invented for Risk of Rain), and half of the Traded/Optional negative-acquisition mess. Devil deals are not "optional negatives" — they're vitality-priced acquisitions. Pricing is a cost phenomenon; negatives (axis 14) are reserved for negatives that enter your build.
7. Legibility
Can you evaluate a power at decision time?
| Value | Meaning | Example |
|---|---|---|
| Explicit | Effects stated plainly with numbers | Hades boon text |
| Computable | Stated, but evaluation requires math | Balatro chip×mult chains |
| Experiential | Learnable only across runs of play | Isaac's item catalog |
| Opaque | Resists evaluation even with experience | Noita cast-delay/recharge interactions |
| Unidentified | Literally unknown until used | Isaac pills, NetHack potions |
RECEIPT — when acquired power actually works
8. Distribution Timing
| Value | Meaning | Example |
|---|---|---|
| Immediate | Works the moment you get it | Most action roguelites |
| Randomized | Owned, but access is shuffled | Deck draw in any deckbuilder |
| Scheduled | Owned, but drips in on a plan | Pre-run drafts with interval delivery; rare in shipped games |
| Conditional | Owned, but usable only when a condition is met | Isaac active-item charges |
| Front-loaded | Everything usable from the start | Into the Breach, late-game Rogue Legacy |
| Partitioned | All of it exists, one segment active at a time | Stance/form systems (common outside roguelites — DMC styles) |
Partitioned survives my re-derivation on its own merits: possessing three loadouts and accessing one at a time is genuinely neither Conditional nor Scheduled.
HOLDING — the build in hand
9. Capacity
| Value | Meaning | Example |
|---|---|---|
| Unbounded | Stack forever | Risk of Rain items |
| Diluting | No hard limit, but more weakens each | Deck size in Slay the Spire |
| Slotted | Fixed slots | VS 6+6, Noita's 4 wand slots |
| Typed | Different limits per category | Isaac (∞ passives, 1 active) |
| Elastic | Capacity itself is buildable | Balatro joker slots via vouchers/Negatives, backpack games |
10. Reversibility
Once it's yours, can you un-choose it?
| Value | Meaning | Example |
|---|---|---|
| Locked | Permanent for the run | Hades boons (see note), Isaac passives |
| Improvable-only | Can grow, can't leave | VS weapons |
| Removable | Can be deleted, usually at a price | StS card removal |
| Swappable | Equip/unequip within slots | Dead Cells gear, Nuclear Throne's 2 weapons |
| Refundable | Converts back into resources | SAP/TFT/Balatro selling |
| Fluid | Continuously reconfigurable at no cost | SAP repositioning, Noita wand re-editing |
Note: the old post claimed Hades boons are sellable at Wells of Charon. They aren't — Wells sell temporary items. Hades boons are Locked (with narrow exceptions I'll handle at classification).
Derived rating — Commitment Weight (Light / Medium / Heavy / Critical): not an independent axis, but the felt product of reversibility × choice frequency × impact per choice. SAP is Light, Hades Medium, FTL purchases Heavy, Into the Breach's squad pick Critical. I keep it because it summarizes something the components don't state directly, but it should always be presented as derived.
11. Mutability
Can an individual power change after acquisition?
| Value | Meaning | Example |
|---|---|---|
| Static | Is what it is forever | Gungeon items |
| Scalar | Levels up along one track, capped | Hades poms, TFT stars, Brotato tiers |
| Unbounded | Scales without limit | Risk of Rain duplicate stacking |
| Branching | Chooses a path when upgrading | Monster Train champion paths |
| Transformative | Becomes a different thing | VS evolutions, Isaac transformations, Balatro enhancements/seals |
12. Composition
How do powers relate to each other?
| Value | Meaning | Example |
|---|---|---|
| Independent | Each stands alone | Plain stat pickups |
| Synergistic | Combinations exceed their parts, by explicit design | Isaac combos, VS evolution recipes |
| Exclusive | Some powers lock out or replace others | Devil/Angel exclusivity; Hades core slots (a new Attack boon replaces yours) |
| Gated | Prerequisites structure access | Skill trees, Hades duo requirements |
| Rivalrous | Powers compete for a shared operating resource | FTL reactor power routing |
| Systemic | Interactions emerge from simulation rules, not authored pairings | Noita, Spelunky physics |
The Hades example under Exclusive was flatly missing from the old classification, and it's the game's defining capacity constraint.
13. Arrangement — new axis
Does the configuration of your powers matter, beyond owning them?
| Value | Meaning | Example |
|---|---|---|
| Irrelevant | A bag of stuff; order and position mean nothing | Hades boon list |
| Ordered | Sequence carries mechanics | Super Auto Pets front-to-back, SNKRX snake order |
| Spatial | 2D position carries mechanics | TFT boards, Backpack Hero |
| Structural | Powers slot into machines whose topology matters | Noita wand building, FTL power grid |
The old framework had nowhere to put the fact that in Noita how you assemble the wand is most of the game, or that Backpack Hero's entire genre exists. It leaked this into vague "Systemic" labels. Arrangement is where build expression lives for a whole family of games, and it's absent from the old post.
14. Negatives
Do negatives enter your build? (Prices don't count — that's Cost. This axis is for negatives that persist as part of what you are.)
| Value | Meaning | Example |
|---|---|---|
| None | The build only ever gains | Vampire Survivors |
| Avoidable | Negatives exist but a normal run can skip them all | Isaac's downside items, Returnal parasites |
| Unavoidable | Negatives accrue regardless of consent | Curse of the Dead Gods corruption, Dead Cells malaise at high BC |
Deliberately reduced from five fuzzy values to a clean avoidability spectrum, with the mechanism (rider attached to a positive, or standalone curse) noted per game during classification rather than enshrined as separate values. The old "Traded" value was doing double duty for "sacrifice as price" (now Cost: Vitality) and "opportunity cost under constraints" (now just Capacity/Supply doing their jobs), which is exactly how the published summary ended up with the false "Traded appears in zero real games" finding.
15. Source Structure
How many distinct systems feed the build?
| Value | Meaning | Example |
|---|---|---|
| Unified | One system is the whole power surface | Luck be a Landlord's symbols |
| Dual | Two distinct systems | Peglin's orbs + relics |
| Parallel | Several systems, largely independent | Isaac's items/pills/cards/trinkets |
| Interlocking | Several systems that modify each other | FTL's crew/systems/weapons/power |
TRAJECTORY — power over the run
16. Growth Shape
| Value | Meaning | Example |
|---|---|---|
| Climbing | Steady accumulation | Hades |
| Compounding | Multiplicative; the curve bends upward | Balatro, late Risk of Rain |
| Stepped | Long plateaus, rare cliffs | Noita (a god-wand is a step function) |
| Oscillating | Rises and falls, or rises slower than the world | TFT streaks, Loop Hero |
| Flat | Little or no within-run growth | Spelunky, Into the Breach |
| Declining | You start whole and deplete | Darkest Dungeon's torch/supplies within an expedition |
| Metamorphic | Changes form more than size | TFT pivots |
17. Identity Formation
When does "what this run is" get decided?
| Value | Meaning | Example |
|---|---|---|
| Pre-committed | Before the run starts | Into the Breach |
| Early-locked | The first few picks crystallize it | Vampire Survivors |
| Emergent | It reveals itself mid-run | Isaac |
| Fluid | Pivotable until late | TFT, Super Auto Pets |
| Convergent | All runs drift toward the same end state | Optimal-stacking Risk of Rain |
META — across runs
18. Persistence
| Value | Meaning | Example |
|---|---|---|
| None | Runs are hermetic | TFT (rating aside) |
| Unlock-pool | New content enters future pools | Isaac, Gungeon |
| Permanent power | You get durably stronger | Hades Mirror, VS PowerUps, Rogue Legacy manor |
| Banked resources | Currency/materials carry over | Rogue Legacy gold |
| World-state | Story or world advances | Hades narrative, Cult of the Lamb |
| Legacy | A specific artifact of the last run seeds the next | Into the Breach's surviving pilot |
19. Start Variance
| Value | Meaning | Example |
|---|---|---|
| Fixed | Same start every time | Spelunky |
| Chosen kit | Pick a character/class | Slay the Spire |
| Assembled kit | Compose your own starting loadout | Hades weapon+aspect+keepsake |
| Randomized | The game rolls your start | Isaac's Eden |
| Seeded | Deterministic from a seed | Dailies |
| Inherited | Derived from your previous run | Rogue Legacy heirs |
EXPERIENCE
20. Skill Weighting
What actually wins runs?
| Value | Meaning | Example |
|---|---|---|
| Execution-led | Moment-to-moment play dominates | Spelunky, Nuclear Throne |
| Build-led | The right build plays itself | Vampire Survivors, Super Auto Pets |
| Knowledge-led | Knowing the system dominates both | Isaac, Noita |
| Balanced | All contribute materially | Hades, Slay the Spire, FTL |
Self-checks and one offered axis
Redundancy check, the same one you ran on Opus. Timing (3) and Identity Formation (17) correlate but aren't the same — VS has distributed choice yet early-locked identity. Supply (1) and Cost (6) split cleanly, as argued. Trigger (4) is subordinate to Choice Timing the way Pacing was, and I'd present it as a subtable the same way. Mutability (11) is per-power; Growth Shape (16) is whole-run. Nothing else overlaps by stage. The axis I'd watch skeptically is Legibility vs Foresight — both are information axes, but one is about whether you can see the offer and the other about whether you can read it; Curse of the Blind (can't see) vs unidentified pills (can see, can't read) proves they dissociate.
One candidate I'm offering rather than including — Embodiment: where power physically lives (your avatar / your gear / your units / the world). It separates auto-battlers from action roguelites at the power-system level, but it may be describing genre rather than power system, which is the same reason you rejected Information Asymmetry and Failure Mode last time. Your call whether it's in or out; I lean out.
Divergence map vs the Opus framework
New: Cost (6) and Arrangement (13) — the two axes I think the old framework genuinely lacked, and both do real work: Cost dissolves three of its patches (Resource-gated, Time-pressured, half of Traded), Arrangement captures Noita/TFT/SAP/backpack-genre build expression that previously had no home.
Restructured: Negatives reduced to an avoidability spectrum with sacrifice moved to Cost; "Reactive" moved from timing to trigger (Discovery); "Competitive" consolidated into Supply; Foresight redefined to exclude viewing your own build; "Scarce" split into offer-starved vs currency-starved.
Convergent, and I'll defend each as forced by the problem: the decision/receipt timing pair (your seed), Curated/Found/Free agency, capacity types, reversibility ladder, deck-draw as Randomized distribution, Partitioned, the persistence and start-variance menus, and Commitment Weight as a derived rating. These fall out of the pipeline model no matter who derives it.
Dropped: nothing from your validated 17 is missing entirely — everything either survives, moved to a cleaner home, or (Difficulty Coupling, Decision Density, Information Asymmetry, Failure Mode) stays dead for the reasons you already gave.
That's the framework — 20 axes, one derived rating, one offered candidate. Run your validation pass: challenge any axis or value you don't buy, and once it's settled I'll move to reclassifying the 22 games against it, in batches, wiki-verified where I'm unsure.
I like Embodiment, seems like it makes sense to me, so add it. What's next?
Embodiment is in. Adding it to HOLDING as axis 16 (after Source Structure), which renumbers the tail: Growth Shape 17, Identity Formation 18, Persistence 19, Start Variance 20, Skill Weighting 21 — so the framework is now 21 axes + the derived Commitment Weight rating.
16. Embodiment
Where does power physically live?
| Value | Meaning | Example |
|---|---|---|
| Avatar | Power fuses into the character you pilot | Hades boons, Isaac items |
| Gear | Power lives in objects you equip, swap, and configure | Dead Cells weapons, Noita wands |
| Units | Power lives in agents that act on their own | TFT champions, Super Auto Pets |
| World | Power is built into the environment itself | Loop Hero terrain cards |
Most games mix two; classify by where build expression concentrates.
What's next is the classification stage — the 22 games, against the new framework, carrying over your original ground rules: list every value that applies, brief reasoning per axis, most current version, default character noting differences, split games whose stages differ (Rogue Legacy Early/Late), and don't guess — verify. I'll go in four batches so you can check calibration on the first before I run ahead: (1) Isaac, Hades, Dead Cells, Gungeon, Noita, Nuclear Throne; (2) VS, Brotato, SNKRX, 20MTD, Slay the Spire, Balatro, Peglin; (3) SAP, TFT, Underlords, Into the Breach, FTL; (4) Spelunky, Rogue Legacy ×2, Risk of Rain 1/2. For SNKRX I'll classify from your actual source rather than memory.
Two mechanics in batch 1 I'm not certain enough about — verifying now rather than guessing:
ToolSearch (select:WebSearch)
[
{
"type": "tool_reference",
"tool_name": "WebSearch"
}
]
WebSearch (Dead Cells mutations how many slots respec cost transition rooms wiki)
Web search results for query: "Dead Cells mutations how many slots respec cost transition rooms wiki"
Links: [{"title":"Mutations - Official Dead Cells Wiki","url":"https://deadcells.wiki.gg/wiki/Mutations"},{"title":"Mutations - Dead Cells Wiki - Fandom","url":"https://deadcells.fandom.com/wiki/Mutations"},{"title":"Mutation List - Dead Cells Walkthrough & Guide - GameFAQs","url":"https://gamefaqs.gamespot.com/xboxone/231484-dead-cells/faqs/76305/mutation-list"},{"title":"Is \"Reset Mutations\" necessary? :: Dead Cells Suggestions & Ideas","url":"https://steamcommunity.com/app/588650/discussions/3/1700541698696031099/"},{"title":"Category:Mutations - Dead Cells Wiki","url":"https://deadcells.fandom.com/wiki/Category:Mutations"},{"title":"Comprehensive Mutations Guide for Dead Cells – My Gaming Tutorials","url":"https://mygamingtutorials.com/2025/06/13/comprehensive-mutations-guide-for-dead-cells/"},{"title":"Category:Survival mutations - Official Dead Cells Wiki","url":"https://deadcells.wiki.gg/wiki/Category:Survival_mutations"},{"title":"Dead Cells: 13 Best Mutations, Ranked","url":"https://www.thegamer.com/dead-cells-best-mutations-ranked/"}]
Based on the search results, here's the information about Dead Cells mutations:
**Number of Mutation Slots:**
Each area cleared in a run allows one more mutation, up to a total of 3 in standard gameplay (though this can vary in different game versions).
**Respec Cost:**
The price to reset mutations starts at 1,000 and doubles with each reset, until the cost reaches 8,000 gold, at which point it will stop increasing.
**How Respec Works:**
The player can spend gold between levels to remove all current mutations, allowing a new choice of mutations to replace the old set.
Regarding "transition rooms" specifically, the search results did not contain detailed information about that mechanic. If you need more specific information about transition rooms in Dead Cells, I'd be happy to search for that separately.
REMINDER: You MUST include the sources above in your response to the user using markdown hyperlinks.
WebSearch (Nuclear Throne crowns how to unlock equip character select crown vault wiki)
Web search results for query: "Nuclear Throne crowns how to unlock equip character select crown vault wiki"
Links: [{"title":"Crowns | Nuclear Throne Wiki | Fandom","url":"https://nuclear-throne.fandom.com/wiki/Crowns"},{"title":"Crowns | Nuclear Throne ULTRA Wikia | Fandom","url":"https://nuclear-throne-ultra.fandom.com/wiki/Crowns"},{"title":"Vault Raider Trophy • Nuclear Throne • PSNProfiles.com","url":"https://psnprofiles.com/trophy/4117-nuclear-throne/41-vault-raider"},{"title":"Nuclear Throne Trophy Guide • PSNProfiles.com","url":"https://psnprofiles.com/guide/11542-nuclear-throne-trophy-guide"},{"title":"Steam Community :: Guide :: A Guide to Nuclear Throne's Unlocks","url":"https://steamcommunity.com/sharedfiles/filedetails/?id=501057761"},{"title":"How do you unlock crowns? :: Nuclear Throne General Discussions","url":"https://steamcommunity.com/app/242680/discussions/0/1488861734108884459/"},{"title":"Crowns Guide - Nuclear Throne Hints & Secrets for Nintendo Switch","url":"https://www.chaptercheats.com/cheat/switch/440174/nuclear-throne/hint/151606"},{"title":"Steam Community :: Guide :: Nuclear Throne Achievements Walkthrough (SPOILERS)","url":"https://steamcommunity.com/sharedfiles/filedetails/?id=727650799"}]
Based on the search results, here's comprehensive information about Nuclear Throne crowns:
## How to Unlock Crowns
Looping the game with a character that has a Crown will unlock it for that character and make it available right from the start. There are three main ways to unlock crowns:
1. By killing the Throne and sitting on the Throne, killing the Throne and looping (don't have to kill Throne 2), or killing the Captain and sitting on the Throne.
2. To unlock any of the post-loop Crowns to be available from the start, you have to loop twice, first to acquire a post-loop Crown and again to unlock it.
3. Post-loop Crowns can also be unlocked by defeating the Captain boss in I.D.P.D. Headquarters. Beating the boss with a character that has a Crown will unlock it as a starting Crown for that character.
## How to Access Crown Vaults
In order to access a Crown Vault, you need to destroy a fully charged Proto Statue; this will spawn a portal to the crown vault. After touching the Crown Pedestal, you get to choose one Crown out of a set of six.
## Equipping Crowns at Character Select
In the character selection, equip the character that has already unlocked the target crown. Once you've unlocked a crown with a character, you can select it before starting a run.
## Crown Effects
Crowns only last for your current run and disappear after restarting. Crown effects do not stack. One Crown replaces the other, even if you take the same one twice.
REMINDER: You MUST include the sources above in your response to the user using markdown hyperlinks.
Both verified — Dead Cells mutations: 3 slots (one unlocked per area cleared), respec between levels at 1,000 gold doubling to an 8,000 cap; Nuclear Throne crowns: taken 1-of-6 at Crown Vaults mid-run, replace each other, and once unlocked become selectable at character select. Both details matter below.
Here's batch 1 of the reclassification — Isaac, Hades, Dead Cells, Gungeon, Noita, Nuclear Throne — against the 21-axis framework, with divergences from the published post rolled up at the end for your check.
The Binding of Isaac (Repentance)
- Supply: Matched — item rooms, shops, deals every floor, but keys/coins/hearts constrain; you build from a stream you can't exhaust.
- Foresight: Immediate + Hidden — you see the pedestal in front of you; Curse of the Blind and red chests conceal offers until committed.
- Choice Timing: Distributed. Trigger: Structural + Discovery + Economic — per-floor item rooms and boss drops, found secrets, shops/deals when affordable.
- Agency: Found + Curated + Shaped — random drops; take-or-leave pedestals and multi-item deal rooms; heavy pool manipulation (D6 rerolls, pool-affecting items).
- Cost: Free + Currency + Vitality + Risk — the quintessential multi-cost game: drops, coin/key purchases, devil deals and blood banks, curse rooms and gambling.
- Legibility: Experiential + Unidentified — the item catalog is learned across runs; pills are literally unidentified.
- Distribution: Immediate + Conditional — passives instant; actives on charge.
- Capacity: Typed — unlimited passives, 1 active (2 with Schoolbag), limited consumable slots.
- Reversibility: Locked (rerolls transform rather than undo). Weight: Medium — permanent, but dozens of choices per run.
- Mutability: Static, with transformative edges (set transformations like Guppy, Birthright).
- Composition: Synergistic + Exclusive — deep authored combos, with systemic tendencies in the tear-modifier pipeline; devil/angel pool exclusivity.
- Arrangement: Irrelevant.
- Negatives: Avoidable — downside items and pills are skippable; floor curses are imposed but attack information and structure, not the build (worth the mechanism note).
- Source Structure: Parallel — passives, actives, trinkets, pills/cards/runes, stats.
- Embodiment: Avatar + Units — items fuse into Isaac; familiar builds are a real secondary embodiment.
- Growth: Climbing + Stepped — steady accumulation, cliff-jumps when a build-definer lands (Brimstone).
- Identity: Emergent — the canonical example.
- Persistence: Unlock-pool.
- Start Variance: Chosen kit + Randomized — characters; Eden.
- Skill Weighting: Knowledge-led, execution still real.
Hades
- Supply: Matched — a reward every room, but core slots and obols bind.
- Foresight: Forecast + Immediate — door symbols preview reward type and god.
- Choice Timing: Distributed. Trigger: Structural + Economic — room clears; Charon/wells when affordable.
- Agency: Curated + Shaped — 1-of-3 boons; keepsakes force gods, Fated Persuasion rerolls offers.
- Cost: Free + Currency + Vitality — boons free, Charon's obols, Chaos gates paid in HP on entry.
- Legibility: Explicit — numbers on everything.
- Distribution: Immediate + Scheduled — and note: Chaos boons are a genuine Scheduled case (curse now, blessing arrives after N encounters), a value I called rare last turn.
- Capacity: Typed — the load-bearing correction: Attack/Special/Cast/Dash/Call are hard 1-each slots; passive-style boons stack uncapped.
- Reversibility: Locked, with lossy overwrite on core slots (a rival god's Attack boon replaces yours); keepsakes swappable per biome. No selling — Wells sell to you. Weight: Medium.
- Mutability: Scalar — poms and rarity upgrades; duos/legendaries are gated acquisitions, not transformations of owned boons.
- Composition: Synergistic + Gated + Exclusive — status-curse combos; duo/legendary prerequisites; slot replacement.
- Arrangement: Irrelevant.
- Negatives: Avoidable — Chaos curses are opt-in temporary riders.
- Source Structure: Parallel, boon-dominant — boons, hammers, keepsakes, well items.
- Embodiment: Avatar + Gear — boons on Zagreus; aspects/hammers on the weapon.
- Growth: Climbing.
- Identity: Emergent, with a shaped opening via keepsake.
- Persistence: Unlock-pool + Permanent power + World-state — weapons/aspects/keepsakes; Mirror; and the story itself, the genre's flagship World-state.
- Start Variance: Assembled kit — weapon + aspect + keepsake + Mirror configuration.
- Skill Weighting: Balanced.
Dead Cells
- Supply: Oversupplied — constant gear, shops every biome; the constraint is slots and color commitment.
- Foresight: Immediate — route choice shows biome names, not power previews.
- Choice Timing: Distributed + Milestone — drops throughout; mutations only between areas. Trigger: Discovery + Economic + Structural.
- Agency: Found + Curated + Free — random drops, small shops, and mutations are a free pick from your whole unlocked set, not an offer.
- Cost: Free + Currency + Risk — drops, gold, and cursed chests as the flagship risk-priced acquisition.
- Legibility: Explicit.
- Distribution: Immediate.
- Capacity: Slotted, with a scheduled ramp — 2 weapons + 2 skills; mutation slots grow 1→3, one per area cleared.
- Reversibility: Swappable + Removable — gear swaps freely; mutations respec between levels at 1,000 gold doubling to an 8,000 cap. Weight: Light-to-Medium.
- Mutability: Static in-run — item power comes from drop level/affixes; quality tiers are meta (Forge).
- Composition: Synergistic + Gated — status combos (oil→fire, bleed); the Brutality/Tactics/Survival color system is a genuine prerequisite structure — items scale off the colors your scrolls committed to.
- Arrangement: Irrelevant.
- Negatives: None at low difficulty, Unavoidable at high Boss Cells — malaise; the cursed-chest curse is a price (axis 6), not a build negative.
- Source Structure: Parallel — gear, mutations, scrolls, amulet.
- Embodiment: Gear + Avatar — gear-dominant; scrolls and mutations sit on the character.
- Growth: Climbing.
- Identity: Emergent, crystallizing via color commitment — scroll picks progressively lock what your build can scale.
- Persistence: Unlock-pool + Permanent power — blueprints; Forge quality and runes.
- Start Variance: Essentially Fixed — same beheaded, rusty-sword start, minor randomization of starter gear from your unlocked pool. Flag: the old post's claim that "DLC adds different characters with unique mechanics" is, as far as I can establish, false — Dead Cells has no alternate playable characters, only cosmetic heads/outfits. Check me on this one.
- Skill Weighting: Execution-led, build meaningfully secondary.
Enter the Gungeon
- Supply: Starved-to-Matched — famously stingy: ~two chests a floor gated by scarce keys, one shop, boss reward.
- Foresight: Immediate.
- Choice Timing: Distributed. Trigger: Discovery + Structural + Economic.
- Agency: Found + Curated — chest contents are rolled with no pick; shops offer choice.
- Cost: Currency + Free + Risk — shells and keys as the real currency; boss drops; cursed shrines/items.
- Legibility: Experiential — a huge pool whose effects you learn across runs (Ammonomicon helps once entries unlock).
- Distribution: Immediate + Conditional — actives recharge on damage dealt.
- Capacity: Unbounded + Typed — unlimited guns/passives, 1 active; ammo soft-limits gun usage.
- Reversibility: Locked in practice (dropping items is possible, near-never useful). Weight: Medium.
- Mutability: Static, with combo-transformations — the explicit synergy system literally upgrades guns when partners are held.
- Composition: Synergistic — authored, blue-arrow explicit.
- Arrangement: Irrelevant.
- Negatives: Avoidable — curse is opt-in via shrines/items.
- Source Structure: Parallel — guns, passives, actives.
- Embodiment: Gear + Avatar — the gun is the build.
- Growth: Climbing, shallow by design.
- Identity: Emergent, weakly — most runs converge on "shoot better"; drops tilt more than define.
- Persistence: Unlock-pool — plus shortcuts.
- Start Variance: Chosen kit — Gungeoneers.
- Skill Weighting: Execution-led — I'm demoting the old "Balanced": a good build cannot carry weak dodge-rolling, but strong play regularly wins itemless runs.
Noita
- Supply: Starved-to-Matched, knowledge-inverted — good wands/spells are rare on the default path; secrets knowledge turns scarcity into abundance.
- Foresight: Explored + Immediate — power is revealed by physically reaching it.
- Choice Timing: Distributed + Milestone — pickups happen anywhere; build decisions concentrate at Holy Mountains, where editing unlocks. Trigger: Discovery + Structural + Economic.
- Agency: Found + Curated + Free — what spawns is rolled; perks are 1-of-3; wand assembly is the genre's flagship Free.
- Cost: Free + Currency — gold at Holy Mountain shops.
- Legibility: Opaque + Experiential — cast delay/recharge/mana interactions resist evaluation even for veterans.
- Distribution: Immediate.
- Capacity: Slotted — 4 wand slots, per-wand spell slots.
- Reversibility: Fluid (spells) + Swappable (wands) + Locked (perks) — spells re-slot freely at edit points; perks are forever. Weight: Light for the wand game, Heavy for perks.
- Mutability: Static — spells don't level; what changes is the assembly, which is axis 13's job.
- Composition: Systemic + Rivalrous — the physics/material simulation, plus spells inside one wand genuinely competing for its mana and cast-time budget.
- Arrangement: Structural — the defining example; wand-building is the build.
- Negatives: Avoidable — downside perks and self-damaging spells are opt-in riders.
- Source Structure: Interlocking — perks modify wand/spell behavior deeply, flasks/materials feed the same simulation.
- Embodiment: Gear + Avatar — wands carry the power; perks ride the mage.
- Growth: Stepped — flat stretches, then a god-wand discontinuity.
- Identity: Emergent.
- Persistence: Unlock-pool, thin — new spells enter future pools.
- Start Variance: Fixed + Randomized — same cave, slight starting-wand variance.
- Skill Weighting: Knowledge-led.
Nuclear Throne
- Supply: Matched — steady weapon drops, one mutation per level; ammo scarcity tensions special weapons.
- Foresight: Immediate.
- Choice Timing: Distributed. Trigger: Performance + Structural — leveling is rad collection (kill-driven), cashed out at level transitions.
- Agency: Curated + Found — 1-of-4 mutations, 1-of-6 crowns at vaults; weapon drops are rolled.
- Cost: Free, with vault detours costing risk rather than resources.
- Legibility: Explicit + Experiential — mutation text is plain; weapon feel is learned.
- Distribution: Immediate.
- Capacity: Slotted — 2 weapons; mutations effectively capped by run length, Ultra at level 10.
- Reversibility: Locked (mutations) + Swappable (weapons). Weight: Medium.
- Mutability: Static + Branching at milestone — Ultra mutations are a character-level branching pick.
- Composition: Synergistic — mutation-weapon-character combos.
- Arrangement: Irrelevant.
- Negatives: Avoidable — crowns are the missing piece in the old post: explicit opt-in riders (1-of-6 at Crown Vaults, one at a time, replacing each other), most bundling a benefit with a standing drawback.
- Source Structure: Dual, plus character actives — weapons and mutations.
- Embodiment: Avatar + Gear — mutations on the body, weapons in hand.
- Growth: Climbing.
- Identity: Emergent, character-tilted.
- Persistence: Unlock-pool — characters, B-skins, golden weapons, crown unlocks.
- Start Variance: Chosen kit — character + golden weapon + (once unlocked by looping with them) a starting crown.
- Skill Weighting: Execution-led — the genre's twitch ceiling.
Where this diverges from the published classifications
- Hades: boons are not sellable (Wells sell to you) — Reversibility was wrong; core-slot exclusivity was missed entirely, flipping Capacity from "Unlimited" to Typed and adding Exclusive composition; Chaos boons turn out to be a real Scheduled-distribution case.
- Nuclear Throne: "Negative Acquisition: None" was wrong — crowns are the game's whole risk-rider system, and they also feed starting kits once unlocked.
- Dead Cells: mutations are respeccable (1k→8k doubling), not "locked until next biome"; mutation agency is Free-from-collection, not Curated; the "DLC characters" claim looks fabricated; Skill call moved to Execution-led.
- Gungeon: Supply moved from "Moderate" toward Starved (keys are the design's spine); Skill moved from "Balanced" to Execution-led.
- Noita: gains Arrangement: Structural and within-wand Rivalrous composition — the old framework had no vocabulary for the game's actual build system; Source moved from "Multi-source" to Interlocking.
- Isaac: largely converges with the old read, restated in the new vocabulary — the main additions are Shaped agency (rerolls/pool manipulation), the four-way Cost profile, and Units embodiment for familiar builds.
Sources for the two verified mechanics: Dead Cells Mutations wiki, Nuclear Throne Crowns wiki.
If batch 1's calibration looks right to you, I'll proceed with batch 2: Vampire Survivors, Brotato, SNKRX (from your source code), 20 Minutes Till Dawn, Slay the Spire, Balatro, Peglin.
I read through Isaac and I don't see any major objections or issues. You can do all batches at once.
All batches at once, then. Two verifications first: SNKRX from your actual source, and 20 Minutes Till Dawn's meta progression (the old post claimed Unlocks only, which I suspect is incomplete).
Glob (SNKRX*/**/main.lua)
SNKRX\main.lua
SNKRX-ref\main.lua
SNKRX-update\main.lua
WebSearch (20 Minutes Till Dawn meta progression souls permanent upgrades runes wiki)
Web search results for query: "20 Minutes Till Dawn meta progression souls permanent upgrades runes wiki"
Links: [{"title":"Runes | 20 Minutes Till Dawn Wiki | Fandom","url":"https://20-minutes-till-dawn.fandom.com/wiki/Runes"},{"title":"Steam Community :: Guide :: A Comprehensive Beginner's Guide to 20MTD (UPDATED FOR KATANA PATCH)","url":"https://steamcommunity.com/sharedfiles/filedetails/?id=3041661349"},{"title":"20 Minutes Till Dawn — Grokipedia","url":"https://grokipedia.com/page/20_Minutes_Till_Dawn"},{"title":"7 Things You Need To Know Before Starting 20 Minutes Till Dawn","url":"https://www.thegamer.com/20-minutes-till-dawn-beginner-tips-tricks/"},{"title":"Complete Guide To Sword & Shield Runes In 20 Minutes Till Dawn","url":"https://www.thegamer.com/20-minutes-till-dawn-rune-guide-upgrade-sword-shield-effects/"},{"title":"What is a rune in 20 minutes till dawn?","url":"https://www.vintageisthenewold.com/faq/what-is-a-rune-in-20-minutes-till-dawn"},{"title":"Upgrades | 20 Minutes Till Dawn Wiki | Fandom","url":"https://20-minutes-till-dawn.fandom.com/wiki/Upgrades"},{"title":"do meta progression exist ? :: 20 Minutes Till Dawn General Discussions","url":"https://steamcommunity.com/app/1966900/discussions/0/3416558383302005447/"},{"title":"Body and Soul - 20 Minutes Till Dawn Wiki","url":"https://20minutestilldawn.wiki.gg/wiki/Body_and_Soul"},{"title":"Souls | 20 Minutes Till Dawn Wiki | Fandom","url":"https://20-minutes-till-dawn.fandom.com/wiki/Souls"}]
Based on the search results, here's what I found about 20 Minutes Till Dawn's meta progression system:
## Souls and Meta-Progression
Souls are the currency used in 20 Minutes Till Dawn, and you are awarded souls whenever you die or successfully survive the night. Souls can be used to purchase Runes, Characters, and Weapons.
## Runes: Permanent Upgrades
Runes are permanent upgrades which can be purchased with souls from the loadout menu, by clicking "Runes" in the top-left. There are 2 rune types: Sword and Shield. Each rune type has 4 rank rows (1+, 5+, 10+, and 15+).
Runes provide permanent enhancements bought with souls accumulated from completed runs, divided into Sword runes for offensive boosts (e.g., increased critical damage or status ailment potency) and Shield runes for defensive gains (e.g., higher dodge rates or health regeneration), with only two equippable at once to promote strategic selection.
## How Rune Progression Works
The 2nd, 3rd, and 4th rows are unlocked by purchasing any 5, 10, or 15 ranks respectively. Once bought, unlocked ranks are permanent and non-refundable.
REMINDER: You MUST include the sources above in your response to the user using markdown hyperlinks.
Bash (ls -d /e/a327ex/SNKRX* 2>/dev/null; ls /e/a327ex/SNKRX-update/reference 2>/dev/n...)
/e/a327ex/SNKRX
/e/a327ex/SNKRX-ref
/e/a327ex/SNKRX-update
artifact
artifact_wording_style.md
projectile_ability_research.md
Bash (ls /e/a327ex/SNKRX/.lua && wc -l /e/a327ex/SNKRX/.lua | tail -5)
/e/a327ex/SNKRX/arena.lua
/e/a327ex/SNKRX/buy_screen.lua
/e/a327ex/SNKRX/conf.lua
/e/a327ex/SNKRX/enemies.lua
/e/a327ex/SNKRX/main.lua
/e/a327ex/SNKRX/mainmenu.lua
/e/a327ex/SNKRX/media.lua
/e/a327ex/SNKRX/objects.lua
/e/a327ex/SNKRX/player.lua
/e/a327ex/SNKRX/shared.lua
35 /e/a327ex/SNKRX/media.lua
446 /e/a327ex/SNKRX/objects.lua
4000 /e/a327ex/SNKRX/player.lua
878 /e/a327ex/SNKRX/shared.lua
12121 total
Bash (grep -n "interest|reroll|max_units|snake_max|passive" /e/a327ex/SNKRX/buy_sc...)
29: self.passives = nil
41:function BuyScreen:on_enter(from, level, loop, units, passives, shop_level, shop_xp)
45: self.passives = passives
49: max_units = math.clamp(7 + current_new_game_plus + self.loop, 7, 12)
69: self.party_text = Text({{text = '[wavy_mid, fg]party ' .. tostring(#units) .. '/' .. tostring(max_units), font = pixul_font, alignment = 'center'}}, global_text_tags)
91: {text = '[fg]Hire heroes of the same classes to unlock class passives:', font = pixul_font, height_multiplier = 1.2},
93: {text = '[fg]You gain [yellow]1 interest per 5 gold[fg], up to a maximum of 5.', font = pixul_font, height_multiplier = 1.2},
94: {text = "[fg]This means that saving above [yellow]25 gold[fg] doesn't yield more interest.", font = pixul_font, height_multiplier = 2.2},
142: passives = {}
144: run_passive_pool = {
153: max_units = math.clamp(7 + current_new_game_plus, 7, 12)
156: main:go_to('buy_screen', 1, 0, {}, passives, 1, 0)
174: system.save_run(self.level, self.loop, gold, self.units, self.passives, self.shop_level, self.shop_xp, run_passive_pool, locked_state)
314: if #self.units >= max_units then
318: {text = '[fg]maximum number of units [yellow](' .. max_units .. ') [fg]reached', font = pixul_font, alignment = 'center'},
395: for k, passive in ipairs(self.passives) do
397: table.insert(self.items, ItemCard{group = self.main, x = 45 + (i-1)*60, y = y + (j-1)*50, w = 40, h = 50, passive = passive.passive , level = passive.level, xp = passive.xp, parent = self, i = k})
542: passives = {}
544: run_passive_pool = {
553: max_units = math.clamp(7 + current_new_game_plus, 7, 12)
557: main:go_to('buy_screen', 1, 0, {}, passives, 1, 0)
710: system.save_run(self.parent.level, self.parent.loop, gold, self.parent.units, self.parent.passives, self.parent.shop_level, self.parent.shop_xp, run_passive_pool, locked_state)
713: main:go_to('arena', self.parent.level, self.parent.loop, self.parent.units, self.parent.passives, self.parent.shop_level, self.parent.shop_xp, self.parent.locked)
766: system.save_run(self.parent.level, self.parent.loop, gold, self.parent.units, self.parent.passives, self.parent.shop_level, self.parent.shop_xp, run_passive_pool, locked_state)
847: system.save_run(self.parent.level, self.parent.loop, gold, self.parent.units, self.parent.passives, self.parent.shop_level, self.parent.shop_xp, run_passive_pool, locked_state)
877: system.save_run(self.parent.level, self.parent.loop, gold, self.parent.units, self.parent.passives, self.parent.shop_level, self.parent.shop_xp, run_passive_pool, locked_state)
969: self.text = Text({{text = '[bg10]reroll: [yellow]2', font = pixul_font, alignment = 'center'}}, global_text_tags)
980: self.free_reroll = true
981: self.text = Text({{text = '[bg10]reroll: [yellow]0', font = pixul_font, alignment = 'center'}}, global_text_tags)
983: self.text = Text({{text = '[bg10]reroll: [yellow]5', font = pixul_font, alignment = 'center'}}, global_text_tags)
... [10 more lines]
Bash (grep -n "level == 3|level = 3|two copies|3 copies|level_up|reserve" /e/a327...)
106: table.insert(self.tutorial_cards, TutorialCharacterPart{group = self.tutorial, x = gw/2 + 114, y = gh/2 - 10, character = 'swordsman', level = 3})
274: if table.any(self.units, function(v) return v.character == character and v.level == 3 end) then
289: unit.reserve[1] = unit.reserve[1] + 1
290: if unit.reserve[1] > 1 then
291: unit.reserve[1] = 0
296: unit.reserve[1] = unit.reserve[1] + 1
297: if unit.reserve[1] > 2 then
298: if unit.reserve[2] == 1 then
299: unit.reserve[2] = 0
300: unit.reserve[1] = 0
301: unit.level = 3
304: unit.reserve[2] = unit.reserve[2] + 1
305: unit.reserve[1] = 0
327: table.insert(self.units, {character = character, level = 1, reserve = {0, 0}})
375: table.insert(self.characters, CharacterPart{group = self.main, x = gw - 30, y = y + (i-1)*19, character = unit.character, level = unit.level, reserve = unit.reserve, i = i, spawn_effect = unit.spawn_effect, parent = self})
811: self.max_xp = (self.parent.shop_level == 1 and 3) or (self.parent.shop_level == 2 and 4) or (self.parent.shop_level == 3 and 5) or (self.parent.shop_level == 4 and 6) or (self.parent.shop_level == 5 and 0)
838: self.max_xp = (self.parent.shop_level == 1 and 3) or (self.parent.shop_level == 2 and 4) or (self.parent.shop_level == 3 and 5) or (self.parent.shop_level == 4 and 6) or (self.parent.shop_level == 5 and 0)
869: self.max_xp = (self.parent.shop_level == 1 and 3) or (self.parent.shop_level == 2 and 4) or (self.parent.shop_level == 3 and 5) or (self.parent.shop_level == 4 and 6) or (self.parent.shop_level == 5 and 0)
979: if self.parent.level == 3 or (merchant and merchant.level == 3) then
1123: {text = '[' .. (self.level == 3 and 'yellow' or 'light_bg') .. ']Lv.3 [' .. (self.level == 3 and 'fg' or 'light_bg') .. ']Effect - ' ..
1700: new_game_plus = state.new_game_plus or 0
1701: if not state.new_game_plus then state.new_game_plus = new_game_plus end
1702: current_new_game_plus = state.current_new_game_plus or new_game_plus
1703: if not state.current_new_game_plus then state.current_new_game_plus = current_new_game_plus end
1704: max_units = math.clamp(7 + current_new_game_plus, 7, 12)
1855: self.ng_t = Text2{group = self.ui, x = gw/2 + 63, y = gh - 50, lines = {{text = '[bg10]current: ' .. current_new_game_plus, font = pixul_font, alignment = 'center'}}}
1912: max_units = math.clamp(7 + current_new_game_plus, 7, 12)
2064: current_new_game_plus = math.clamp(current_new_game_plus - 1, 0, 5)
2065: state.current_new_game_plus = current_new_game_plus
2066: self.ng_t.text:set_text({{text = '[bg10]current: ' .. current_new_game_plus, font = pixul_font, alignment = 'center'}})
SNKRX source confirms my suspicions and more: run_passive_pool in buy_screen.lua:144 — passive items are a full second power system (offered as picks, rerollable for 5 gold, they level up with XP); shop has interest (1 per 5 gold, capped at 5), a 2-gold reroll, shop lock state, and buyable shop levels that gate unit tiers; max_units = 7 + NG+ + loop capped at 12 — party capacity literally grows mid-run per loop and across meta. The old post's "Single source, just units with class bonuses" missed most of this.
Here are batches 2–4, all 17 remaining entries.
Vampire Survivors (current version)
- Supply: Oversupplied — the constraint is 6+6 slots, never availability.
- Foresight: Immediate.
- Choice Timing: Distributed. Trigger: Performance + Discovery — XP is kill-driven (level thresholds fixed, income isn't), plus elite chests.
- Agency: Curated + Shaped — 3-4 options per level; banish/skip/reroll are literal pool-shaping tools the old post predates or ignored.
- Cost: Free.
- Legibility: Explicit.
- Distribution: Immediate.
- Capacity: Slotted — 6 weapons, 6 passives.
- Reversibility: Improvable-only — nothing leaves once slotted. Weight: Medium, Heavy for the first few slots.
- Mutability: Scalar + Transformative + Unbounded — 8 levels, evolutions, and Limit Break past the cap.
- Composition: Synergistic + Gated — evolutions are prerequisite structures (weapon needs its specific passive).
- Arrangement: Irrelevant.
- Negatives: None.
- Source Structure: Dual — the level-up pool plus arcanas, which are a genuine second system in the current game.
- Embodiment: Avatar.
- Growth: Compounding — the old "Additive (exponential in practice)" was fighting its own vocabulary; the curve bends upward, so say so.
- Identity: Early-locked.
- Persistence: Unlock-pool + Permanent power — PowerUps.
- Start Variance: Chosen kit — character; arcana pick at start edges toward Assembled.
- Skill Weighting: Build-led.
Brotato
- Supply: Matched-to-Oversupplied — 4-slot shop plus batched level-ups every wave.
- Foresight: Immediate.
- Choice Timing: Distributed, batched at wave ends. Trigger: Performance + Structural + Economic — materials from kills are simultaneously XP and currency, so the economy is performance.
- Agency: Curated + Shaped — 1-of-4 upgrade picks and shop, with reroll and item lock.
- Cost: Currency + Free — and the elegant bit worth recording: spending materials is spending your own XP stream.
- Legibility: Explicit.
- Distribution: Immediate.
- Capacity: Typed — weapon slots (6, character-modified), unlimited items.
- Reversibility: Refundable (weapons) + Locked (items). Weight: Light-to-Medium.
- Mutability: Scalar — weapon tiers via merging identical weapons and shop upgrades.
- Composition: Synergistic — stat-scaling webs plus weapon-class set bonuses.
- Arrangement: Irrelevant.
- Negatives: Avoidable — the item pool is a flagship rider economy: most strong items carry stat downsides; character negatives belong to start variance instead.
- Source Structure: Dual — weapons + stat items.
- Embodiment: Avatar + Gear.
- Growth: Climbing.
- Identity: Emergent, heavily character-tilted.
- Persistence: Unlock-pool — plus Danger levels as difficulty meta.
- Start Variance: Chosen kit — character + starting weapon.
- Skill Weighting: Build-led, with real dodging.
SNKRX (from source)
- Supply: Matched — gold-bound with interest (1 per 5, max 5, nothing above 25 banked).
- Foresight: Immediate + Pool — unit tiers are known and gated by buyable shop levels.
- Choice Timing: Continuous — a shop every floor. Trigger: Structural + Economic.
- Agency: Curated + Shaped — rolled shop, 2g reroll, shop lock, shop-level purchases shifting the tier odds, passive offers rerollable for 5g.
- Cost: Currency — everything through gold.
- Legibility: Explicit.
- Distribution: Immediate.
- Capacity: Slotted + Elastic — 7 base, +1 per NG+ and +1 per loop up to 12; capacity growth is real, both meta and in-run.
- Reversibility: Refundable + Fluid — sell units, reorder the snake freely. Weight: Light.
- Mutability: Scalar — duplicates merge toward Lv.3; passive items level with XP too.
- Composition: Synergistic — class-threshold set bonuses.
- Arrangement: Ordered, weakly — snake position governs contact exposure and is freely rearrangeable. Correct me if order carries more mechanics than I'm crediting.
- Negatives: None.
- Source Structure: Dual — units + passive items. The old post's "Single source" is contradicted directly by
run_passive_pool. - Embodiment: Units.
- Growth: Climbing.
- Identity: Emergent, leaning Fluid — selling is cheap enough to pivot.
- Persistence: Unlock-pool + the NG+ ladder (raises cap and difficulty).
- Start Variance: Fixed — empty party, first shop roll; NG+ level selectable.
- Skill Weighting: Build-led, with snake-piloting execution as a real secondary.
20 Minutes Till Dawn
- Supply: Oversupplied — frequent kill-driven level-ups.
- Foresight: Immediate.
- Choice Timing: Distributed. Trigger: Performance.
- Agency: Curated.
- Cost: Free.
- Legibility: Explicit.
- Distribution: Immediate.
- Capacity: Unbounded, with per-line caps — no overall slot limit; each upgrade tree tops out.
- Reversibility: Locked. Weight: Medium.
- Mutability: Scalar.
- Composition: Synergistic + Gated — deeper tiers require their base picks.
- Arrangement: Irrelevant.
- Negatives: None.
- Source Structure: Dual — chosen weapon/character kit + the upgrade pool.
- Embodiment: Avatar + Gear.
- Growth: Climbing.
- Identity: Emergent, steered hard by the pre-run weapon.
- Persistence: Unlock-pool + Permanent power — the correction: runes are permanent soul-bought upgrades, two equipped at a time (Runes wiki); the old "Unlocks only" was wrong.
- Start Variance: Assembled kit — character + weapon + rune pair, chosen independently.
- Skill Weighting: Balanced — aiming and reload management are real.
Slay the Spire
- Supply: Matched — the skip button is load-bearing.
- Foresight: Forecast + Immediate — the map is the genre's canonical forecast.
- Choice Timing: Distributed. Trigger: Structural + Economic + Discovery.
- Agency: Curated + Shaped — 1-of-3-or-skip; relics that modify future rewards, removal/transform services.
- Cost: Free + Currency + Vitality + Opportunity — many events price rewards in HP; resting versus upgrading is pure opportunity cost.
- Legibility: Explicit.
- Distribution: Randomized + Immediate — cards through draw; relics/potions now.
- Capacity: Diluting + Typed — deck dilution; potion slots.
- Reversibility: Removable (cards) + Locked (relics). Weight: Medium.
- Mutability: Scalar + Transformative — one upgrade per card; transform events.
- Composition: Synergistic + Rivalrous — archetype combos, and cards genuinely compete for the 3-energy budget every turn. The energy economy is Rivalrous composition the old framework had no word for.
- Arrangement: Irrelevant — the deck is shuffled; you don't arrange it.
- Negatives: Avoidable, Unavoidable at high Ascension — curses are mostly declinable until Ascender's Bane, the StS analogue of malaise.
- Source Structure: Parallel — cards, relics, potions.
- Embodiment: Gear — the deck is an external, configurable object.
- Growth: Climbing — removal is consistency gain, not power loss; the old "Subtractive" misread its own definition.
- Identity: Emergent.
- Persistence: Unlock-pool.
- Start Variance: Chosen kit.
- Skill Weighting: Balanced, Knowledge-led at the top.
Balatro
- Supply: Matched — money binds; the interest economy again.
- Foresight: Immediate + Forecast — boss blinds previewed (a threat forecast that shapes build decisions).
- Choice Timing: Distributed. Trigger: Structural + Economic — shop after every blind.
- Agency: Curated + Shaped — shop; vouchers, tags, and rerolls bend future shops.
- Cost: Currency + Opportunity — interest breakpoints make every purchase price in forgone income.
- Legibility: Computable — the flagship example.
- Distribution: Immediate (jokers) + Randomized (deck).
- Capacity: Slotted + Elastic — joker/consumable slots, expandable via vouchers and Negative editions.
- Reversibility: Refundable + Removable — sell jokers, destroy cards. Weight: Light-to-Medium.
- Mutability: Scalar + Transformative — scaling jokers grow with play; cards take enhancements/editions/seals.
- Composition: Synergistic — the chip/mult/xmult chain is the game.
- Arrangement: Ordered — a real correction: joker order is mechanically significant (left-to-right evaluation, mult before xmult), and jokers are freely reorderable. The old framework couldn't see this.
- Negatives: Avoidable — perishable/rental stickers are opt-in.
- Source Structure: Parallel — jokers, deck modification, vouchers, consumables.
- Embodiment: Gear.
- Growth: Compounding — structurally mandatory; blind requirements are exponential.
- Identity: Emergent, leaning Early-locked — first jokers steer, pivots exist.
- Persistence: Unlock-pool — plus stakes as difficulty meta.
- Start Variance: Chosen kit — decks.
- Skill Weighting: Knowledge-led + Build-led.
Peglin
- Supply: Matched.
- Foresight: Forecast + Immediate — StS-style map.
- Choice Timing: Distributed. Trigger: Structural + Discovery.
- Agency: Curated.
- Cost: Free + Opportunity — no currency economy to speak of.
- Legibility: Explicit.
- Distribution: Randomized + Immediate — orbs drawn from the bag; relics now.
- Capacity: Diluting — the orb bag is a deck.
- Reversibility: Removable — orb removal at events. Weight: Medium.
- Mutability: Scalar — orb levels.
- Composition: Synergistic.
- Arrangement: Irrelevant.
- Negatives: Avoidable.
- Source Structure: Dual — orbs + relics.
- Embodiment: Gear.
- Growth: Climbing.
- Identity: Emergent.
- Persistence: Unlock-pool — plus Cruciball difficulty meta.
- Start Variance: Chosen kit — classes.
- Skill Weighting: Balanced — peg aiming is genuine execution.
Super Auto Pets
- Supply: Matched — fixed 10 gold per turn; note it is not contested: pools aren't shared in async play, a distinction the old post blurred by analogy to TFT.
- Foresight: Pool + Immediate — tier unlock schedule is public.
- Choice Timing: Continuous. Trigger: Structural.
- Agency: Curated + Shaped — rolls, plus freeze as pool-shaping.
- Cost: Currency.
- Legibility: Explicit.
- Distribution: Immediate.
- Capacity: Slotted — 5 team slots and no bench: freezing shop pets is the storage mechanism. The old post's "bench for holding pets" doesn't exist.
- Reversibility: Refundable + Fluid — sell for 1 gold, reposition freely. Weight: Light — the flagship.
- Mutability: Scalar — merge toward level 3; food buffs accumulate.
- Composition: Synergistic — trigger chains.
- Arrangement: Ordered — the flagship Ordered game; front-to-back trigger order is the build.
- Negatives: None.
- Source Structure: Dual — pets + food.
- Embodiment: Units.
- Growth: Climbing.
- Identity: Fluid — pivoting is the core skill.
- Persistence: Unlock-pool — packs.
- Start Variance: Fixed — plus pack choice.
- Skill Weighting: Build-led + Knowledge-led.
Teamfight Tactics
- Supply: Contested — the flagship; 8 players drain one pool.
- Foresight: Pool + Forecast — public tier odds; visible carousel.
- Choice Timing: Continuous. Trigger: Structural + Economic — rounds, plus player-initiated rerolls/leveling any time gold allows.
- Agency: Curated + Shaped — shop rolls; leveling and rolling to shift odds is the deepest pool-shaping in the genre.
- Cost: Currency + Opportunity — interest and streak economics make every action price in forgone gold.
- Legibility: Explicit + Experiential — text is clear, evaluation is meta-knowledge.
- Distribution: Immediate.
- Capacity: Slotted + Elastic — board size is your level: capacity is directly buildable.
- Reversibility: Refundable + Fluid — full sells, free repositioning. Weight: Light early, Heavy once committed.
- Mutability: Scalar — star-ups; item crafting bonds components into new items.
- Composition: Synergistic + Systemic — trait thresholds; positioning interactions.
- Arrangement: Spatial — the flagship Spatial game.
- Negatives: None.
- Source Structure: Parallel — champions, traits, items, augments.
- Embodiment: Units.
- Growth: Oscillating — spikes at upgrades and thresholds, power meaningful only relative to the lobby.
- Identity: Fluid, Early-locked when the lobby forces it.
- Persistence: None.
- Start Variance: Fixed + Randomized — same start, randomized augment/item openings.
- Skill Weighting: Knowledge-led + Build-led.
Dota Underlords
As TFT, with these differences (final, frozen version — flag anything my memory has wrong, the game being dead makes verification thin):
- Trigger/Agency: item power comes as Curated 1-of-3 drafts after PvE rounds — a free, draft-based item system rather than TFT's component drops.
- Choice Timing: adds a Milestone pick TFT lacks: the Underlord unit itself, chosen mid-run with its own ability build.
- Source Structure: Parallel — heroes, alliances, items, the Underlord.
- Persistence: None. Embodiment: Units. Arrangement: Spatial. Everything else tracks TFT.
Into the Breach
- Supply: Starved — reputation is tight and shared across wants.
- Foresight: Catalog — the flagship: full content and full enemy intent visible.
- Choice Timing: Pre-run + Milestone. Trigger: Structural (island ends) + Discovery (time pods).
- Agency: Free + Curated — exact squad choice; pod/store offers.
- Cost: Currency + Opportunity — reputation, cores; every grid-power purchase trades against weapons.
- Legibility: Explicit — perfect information as identity.
- Distribution: Front-loaded + Immediate.
- Capacity: Slotted — weapon slots, core budget.
- Reversibility: Locked (squad) + Swappable (weapons/pilots between missions). Weight: Critical at squad select, Medium after.
- Mutability: Scalar — cores, pilot XP.
- Composition: Synergistic + Rivalrous — team combos; cores are a shared budget across three mechs.
- Arrangement: Irrelevant — positioning is tactics, not build.
- Negatives: None — pilot death and grid attrition are losses, which belongs to growth, not negative acquisition.
- Source Structure: Parallel — mechs, pilots, cores, grid.
- Embodiment: Units.
- Growth: Climbing, small increments, with real Declining pressure — pilots can die mid-run, grid damage persists.
- Identity: Pre-committed — the flagship.
- Persistence: Unlock-pool + Legacy — coins buy squads; one pilot survives the timeline.
- Start Variance: Chosen kit + Inherited — squad plus the carried-over pilot.
- Skill Weighting: Execution-led — puzzle execution dominates.
FTL: Faster Than Light
- Supply: Starved — the flagship scrap economy.
- Foresight: Immediate + Forecast — map beacons; and note foresight is purchasable (Long-Range Scanners), an interesting case of gear buying information.
- Choice Timing: Distributed. Trigger: Discovery + Economic — events at jumps; upgrades/stores player-initiated.
- Agency: Found + Curated + Free — event RNG; store stock; but system upgrades are free-pick ship engineering.
- Cost: Currency + Risk — scrap for everything; risky event options price rewards in hull and crew.
- Legibility: Explicit.
- Distribution: Immediate.
- Capacity: Slotted — weapon/drone/augment slots, power caps.
- Reversibility: Refundable + Swappable + Locked — sell gear; rearrange loadout; system upgrades permanent. Weight: Heavy — scarcity makes each purchase binding.
- Mutability: Scalar — system levels, crew skills.
- Composition: Synergistic + Rivalrous — ion/beam-style combos; the reactor is the genre's purest shared-budget composition.
- Arrangement: Irrelevant.
- Negatives: None — risk costs resources, not build.
- Source Structure: Interlocking — systems, crew, weapons, augments all modify each other.
- Embodiment: Gear + Units — the ship and its crew.
- Growth: Climbing.
- Identity: Emergent, hull-tilted.
- Persistence: Unlock-pool — ships, layouts.
- Start Variance: Chosen kit.
- Skill Weighting: Balanced, Knowledge-led at the top — pause micro plus event knowledge.
Spelunky 1/2
- Supply: Starved.
- Foresight: Immediate.
- Choice Timing: Distributed, thin. Trigger: Discovery + Economic.
- Agency: Found + Curated — and theft is the fun edge case: Free agency priced in Risk — you may take anything in the shop if you're willing to fight the shopkeeper economy.
- Cost: Currency + Risk + Vitality — shops; theft and cursed pots; Kali sacrifices trade health-bearing assets for favor.
- Legibility: Experiential.
- Distribution: Immediate.
- Capacity: Typed — 1 held item, 1 back slot, unlimited stacking passives (paste, gloves, spectacles). The old "hard cap: 1 held item" ignored the entire passive layer.
- Reversibility: Swappable (held) + Locked (passives). Weight: Light-to-Medium.
- Mutability: Static.
- Composition: Systemic — the physics sandbox.
- Arrangement: Irrelevant.
- Negatives: Avoidable — the Curse is opt-in-by-recklessness.
- Source Structure: Parallel — held, back, passives, consumables.
- Embodiment: Avatar + Gear.
- Growth: Climbing, shallow and supply-starved — not "minimal," an invented value; jetpack-plus-paste runs are genuinely powered up.
- Identity: Emergent, weakly.
- Persistence: Unlock-pool, thin — shortcuts and characters are convenience/cosmetic; effectively no power persistence.
- Start Variance: Fixed.
- Skill Weighting: Execution-led — the genre's flagship.
Rogue Legacy (Early / fresh save)
- Supply: Starved — manor prices dwarf early gold.
- Foresight: Catalog — the full manor tree and gear lists are visible from the first death; you always know what you're saving toward.
- Choice Timing: Pre-run + Distributed, thin. Trigger: Economic (manor) + Discovery (blueprints, chests).
- Agency: Free (manor spending) + Curated (3 heirs) + Found (blueprints).
- Cost: Currency — with Charon's toll taxing unspent gold, a deliberate anti-banking pressure.
- Legibility: Explicit.
- Distribution: Front-loaded — runs start with everything the manor has bought.
- Capacity: Slotted — gear and rune slots.
- Reversibility: Locked (manor) + Swappable (gear/runes). Weight: Heavy — every purchase is precious.
- Mutability: Scalar — manor ranks, gear tiers.
- Composition: Synergistic + Gated — manor tree prerequisites.
- Arrangement: Irrelevant.
- Negatives: Semi-avoidable — heir traits are imposed on every candidate, but you select among three rolled heirs; some negative traits are even gold-positive. This is genuinely between Avoidable and Unavoidable and worth the note rather than a forced call.
- Source Structure: Parallel — manor, gear, runes, class, traits.
- Embodiment: Avatar + Gear.
- Growth: Flat within-run, Climbing across runs — the run is a gold-harvesting expedition for the real, meta-level growth loop.
- Identity: Pre-committed — heir choice defines the run.
- Persistence: Permanent power + Banked resources + Unlock-pool — the manor IS the game.
- Start Variance: Chosen kit + Inherited — class/traits among rolled heirs.
- Skill Weighting: Balanced — skill compensates for weakness while build catches up.
Rogue Legacy (Late / full manor)
Differences from Early only: 1. Supply: Oversupplied (gold exceeds needs); 6. Cost: trivialized; 10. Weight: Light — heir choice barely matters when overleveled; 17. Growth: Flat at saturation; 19. Persistence: saturated; 21. Skill Weighting: Build-led at base difficulty, Execution-led again in NG+. The pair is the framework's cleanest demonstration that meta-progression moves a game along the axes over calendar time — same game, different classification.
Risk of Rain 1
- Supply: Matched, browsing-taxed — chests are plentiful but every minute spent opening them raises difficulty.
- Foresight: Immediate.
- Choice Timing: Distributed. Trigger: Discovery + Economic + Performance — gold comes from kills.
- Agency: Found — chests roll; you choose only whether and which chest, not what.
- Cost: Currency + Time — the Time value's flagship: the difficulty clock prices acquisition in escalation.
- Legibility: Explicit, terse.
- Distribution: Immediate + Conditional — use items on cooldown.
- Capacity: Unbounded — stacking is the thesis.
- Reversibility: Locked. Weight: Light — few real decisions per acquisition.
- Mutability: Unbounded — duplicates are the upgrade system.
- Composition: Independent + Synergistic — most items stack independently; combos are emergent bonuses, not requirements.
- Arrangement: Irrelevant.
- Negatives: None in practice.
- Source Structure: Dual — items + use item, on fixed character kits.
- Embodiment: Avatar.
- Growth: Compounding.
- Identity: Emergent, drifting Convergent — stack-everything sameness at scale.
- Persistence: Unlock-pool — items, characters, artifacts.
- Start Variance: Chosen kit.
- Skill Weighting: Balanced — execution early, build godhood late.
Risk of Rain 2
As RoR1, with material differences:
- Agency: Found + Shaped — printers and scrappers are real pool-conversion tools RoR1 lacked.
- Cost: Currency + Time + Risk — shrines of chance; lunar pods priced in a persistent meta currency.
- Legibility: Explicit-simplified + Experiential — pickup text hides numbers the logbook reveals; closer to Experiential than the old "Transparent" call.
- Mutability: Unbounded + Transformative — void items corrupt entire stacks of their counterpart, the game's one transformative mechanic.
- Negatives: Avoidable — lunar items are the classic opt-in rider family.
- Source Structure: Parallel — items, equipment, lunar/void families, alternate skills.
- Persistence: Unlock-pool + Banked resources — lunar coins persist across runs.
- Start Variance: Chosen kit + Assembled — survivor plus alternate-skill/equipment loadout.
Divergence roll-up for this batch (vs the published post)
- SNKRX: Single→Dual source (passive items in
run_passive_pool), missing Shaped agency (reroll/lock/shop-leveling), missing Elastic capacity (7+NG+loop→12), gains Ordered arrangement. Your own game was the most under-classified in the set. - Super Auto Pets: the claimed bench doesn't exist — freeze is the storage mechanic.
- 20MTD: persistence was missing the rune system (permanent power), and start variance upgraded to Assembled kit.
- Slay the Spire: "Subtractive growth" dropped (removal is power gain); energy identified as Rivalrous composition.
- Balatro: joker order matters — Ordered arrangement; capacity is Elastic (vouchers/Negatives), which the old "Hard cap" hid.
- TFT: capacity is Elastic (leveling literally buys board slots); SAP/TFT "Contested" now correctly separates them (TFT yes, SAP no).
- Into the Breach: invented "Distributed" distribution → Front-loaded + Immediate; cores identified as Rivalrous; start variance gains Inherited (the surviving pilot).
- FTL: fake "Forced negatives" dropped; reactor as Rivalrous; purchasable foresight noted.
- Spelunky: capacity Hard-cap→Typed (the passive layer was ignored); "minimal growth" (invented value)→shallow Climbing.
- Rogue Legacy: gains Catalog foresight (the manor tree is fully visible — the old post missed the genre's best example of complete meta-visibility); the Early/Late pair reframed as the framework's proof that meta-progression moves games along axes.
- RoR2: printers/scrappers as Shaped agency; void items as Transformative; lunar coins as Banked persistence; comprehension demoted from "Transparent."
Sources for this batch's verifications: 20MTD Runes wiki, 20MTD Souls wiki, plus SNKRX read directly from buy_screen.lua and main.lua.
All 22 entries are now classified. Review at your leisure — Underlords and the SNKRX order-semantics call are the two I'd most like your eyes on. Next stage when you're ready: the frequency analysis, recounted from these corrected grids.
Go ahead.
Frequency analysis, recounted from the corrected grids. 23 classification entries (Rogue Legacy split into Early/Late, Spelunky 1/2 merged, both Risks of Rain separate) — worth noting the old post ran the same 23 sections while calling it 22. Where an entry got a ranged call (e.g. Gungeon's "Starved-to-Matched"), both values are counted and the secondary is marked ~.
Frequency Analysis (real games)
1. Supply
- Matched (11 +2~): Isaac, Hades, Nuclear Throne, Brotato, SNKRX, Slay the Spire, Balatro, Peglin, SAP, RoR1, RoR2 (~Gungeon, ~Noita)
- Starved (6): Gungeon, Noita, Into the Breach, FTL, Spelunky, Rogue Legacy Early
- Oversupplied (4 +1~): Dead Cells, Vampire Survivors, 20MTD, Rogue Legacy Late (~Brotato)
- Contested (2): TFT, Underlords
- Pulsed (0)
2. Foresight
- Immediate (18): everything except ItB, TFT, Underlords, RL Early, RL Late
- Forecast (6): Hades, Slay the Spire, Balatro, Peglin, TFT, FTL
- Pool (4): SNKRX, SAP, TFT, Underlords
- Catalog (3): Into the Breach, RL Early, RL Late
- Explored (1): Noita
- Hidden (1): Isaac
3. Choice Timing
- Distributed (18): all except SNKRX, SAP, TFT, Underlords, ItB
- Continuous (4): SNKRX, SAP, TFT, Underlords
- Milestone (4): Dead Cells, Noita, Underlords, Into the Breach
- Pre-run (3): Into the Breach, RL Early, RL Late
- Front-loaded (0), Back-loaded (0)
4. Trigger (subtable of Choice Timing)
- Economic (17): Isaac, Hades, Dead Cells, Gungeon, Noita, Brotato, SNKRX, StS, Balatro, TFT, Underlords, FTL, Spelunky, RL Early, RL Late, RoR1, RoR2
- Structural (15): Isaac, Hades, Dead Cells, Gungeon, Noita, NT, Brotato, SNKRX, StS, Balatro, Peglin, SAP, TFT, Underlords, ItB
- Discovery (14): Isaac, Dead Cells, Gungeon, Noita, VS, StS, Peglin, ItB, FTL, Spelunky, RL Early, RL Late, RoR1, RoR2
- Performance (6): Nuclear Throne, Vampire Survivors, Brotato, 20MTD, RoR1, RoR2
- Clock (0), Player-summoned (0)
5. Agency
- Curated (21): all except RoR1, RoR2
- Found (11): Isaac, Dead Cells, Gungeon, Noita, NT, FTL, Spelunky, RL Early, RL Late, RoR1, RoR2
- Shaped (11): Isaac, Hades, VS, Brotato, SNKRX, StS, Balatro, SAP, TFT, Underlords, RoR2
- Free (6): Dead Cells, Noita, ItB, FTL, RL Early, RL Late
- Predetermined (0)
6. Cost
- Currency (19): all except NT, VS, 20MTD, Peglin
- Free (12): Isaac, Hades, Dead Cells, Gungeon, Noita, NT, VS, Brotato, 20MTD, StS, Peglin, Underlords
- Risk (6): Isaac, Dead Cells, Gungeon, FTL, Spelunky, RoR2
- Opportunity (6, counted only where mechanically sharpened): StS, Balatro, Peglin, TFT, Underlords, ItB
- Vitality (4): Isaac, Hades, StS, Spelunky
- Time (2): RoR1, RoR2
7. Legibility
- Explicit (18): all except Isaac, Gungeon, Noita, Spelunky, Balatro
- Experiential (8): Isaac, Gungeon, Noita, NT, TFT, Underlords, Spelunky, RoR2
- Computable (1): Balatro
- Opaque (1): Noita
- Unidentified (1): Isaac
8. Distribution Timing
- Immediate (21): all except RL Early, RL Late
- Conditional (4): Isaac, Gungeon, RoR1, RoR2
- Randomized (3): Slay the Spire, Balatro, Peglin
- Front-loaded (3): Into the Breach, RL Early, RL Late
- Scheduled (1): Hades (Chaos boons)
- Partitioned (0)
9. Capacity
- Slotted (13): Dead Cells, Noita, NT, VS, SNKRX, Balatro, SAP, TFT, Underlords, ItB, FTL, RL Early, RL Late
- Typed (6): Isaac, Hades, Gungeon, Brotato, StS, Spelunky
- Unbounded (4): Gungeon, 20MTD, RoR1, RoR2
- Elastic (4): SNKRX, Balatro, TFT, Underlords
- Diluting (2): Slay the Spire, Peglin
10. Reversibility
- Locked (15): Isaac, Hades, Gungeon, Noita, NT, Brotato, 20MTD, StS, ItB, FTL, Spelunky, RL Early, RL Late, RoR1, RoR2
- Swappable (8): Dead Cells, Noita, NT, ItB, FTL, Spelunky, RL Early, RL Late
- Refundable (7): Brotato, SNKRX, Balatro, SAP, TFT, Underlords, FTL
- Fluid (5): Noita, SNKRX, SAP, TFT, Underlords
- Removable (4): Dead Cells, StS, Balatro, Peglin
- Improvable-only (1): Vampire Survivors
Commitment Weight (derived): Medium is the mode (Isaac, Hades, Gungeon, NT, VS, 20MTD, StS, Peglin, ItB-in-run…); Light clusters in the sell/reposition games (SNKRX, SAP, TFT/Underlords early, RL Late, both RoRs); Heavy where currency is scarce (FTL, RL Early); Critical only at Into the Breach's squad select.
11. Mutability
- Scalar (15): Hades, VS, Brotato, SNKRX, 20MTD, StS, Balatro, Peglin, SAP, TFT, Underlords, ItB, FTL, RL Early, RL Late
- Static (6): Isaac, Dead Cells, Gungeon, Noita, NT, Spelunky
- Transformative (4 +2~): VS, StS, Balatro, RoR2 (~Isaac transformations, ~Gungeon synergy-forms)
- Unbounded (3): VS (Limit Break), RoR1, RoR2
- Branching (1): Nuclear Throne (Ultras)
12. Composition
- Synergistic (21): all except Noita, Spelunky
- Gated (6): Hades, Dead Cells, VS, 20MTD, RL Early, RL Late
- Rivalrous (4): Noita, Slay the Spire, Into the Breach, FTL
- Systemic (4 +1~): Noita, TFT, Underlords, Spelunky (~Isaac's tear pipeline)
- Exclusive (2): Isaac, Hades
- Independent (2): RoR1, RoR2
13. Arrangement
- Irrelevant (17): everything below absent
- Ordered (3): Balatro, SAP, SNKRX (weak)
- Spatial (2): TFT, Underlords
- Structural (1): Noita
14. Negatives
- Avoidable (11 +2~): Isaac, Hades, Gungeon, Noita, NT, Brotato, StS, Balatro, Peglin, Spelunky, RoR2 (~RL Early/Late's semi-avoidable heir traits)
- None (10): Dead Cells (base), VS, SNKRX, 20MTD, SAP, TFT, Underlords, ItB, FTL, RoR1
- Unavoidable (2, both difficulty-gated): Dead Cells at high Boss Cells, StS at high Ascension
15. Source Structure
- Parallel (13): Isaac, Hades, Dead Cells, Gungeon, StS, Balatro, TFT, Underlords, ItB, Spelunky, RL Early, RL Late, RoR2
- Dual (8): NT, VS, Brotato, SNKRX, 20MTD, Peglin, SAP, RoR1
- Interlocking (2): Noita, FTL
- Unified (0)
16. Embodiment
- Avatar (14): Isaac, Hades, Dead Cells, Gungeon, Noita, NT, VS, Brotato, 20MTD, Spelunky, RL Early, RL Late, RoR1, RoR2
- Gear (14): Hades, Dead Cells, Gungeon, Noita, NT, Brotato, 20MTD, StS, Balatro, Peglin, FTL, Spelunky, RL Early, RL Late
- Units (7): Isaac (familiars), SNKRX, SAP, TFT, Underlords, ItB, FTL (crew)
- World (0)
17. Growth Shape
- Climbing (14): Isaac, Hades, Dead Cells, Gungeon, NT, Brotato, SNKRX, 20MTD, StS, Peglin, SAP, ItB, FTL, Spelunky
- Compounding (4): VS, Balatro, RoR1, RoR2
- Stepped (2): Isaac, Noita
- Oscillating (2): TFT, Underlords
- Flat (2): RL Early, RL Late (within-run)
- Declining (1~): Into the Breach (pilot loss, grid attrition)
- Metamorphic (0)
18. Identity Formation
- Emergent (16): Isaac, Hades, Dead Cells, Gungeon, Noita, NT, Brotato, SNKRX, 20MTD, StS, Balatro, Peglin, FTL, Spelunky, RoR1, RoR2
- Fluid (3 +1~): SAP, TFT, Underlords (~SNKRX)
- Pre-committed (3): Into the Breach, RL Early, RL Late
- Early-locked (1 +2~): Vampire Survivors (~Balatro, ~TFT when forced)
- Convergent (0 +2~): (~RoR1, ~RoR2 drift there at scale)
19. Persistence
- Unlock-pool (21): all except TFT, Underlords
- Permanent power (6): Hades, Dead Cells, VS, 20MTD, RL Early, RL Late
- Banked resources (3): RL Early, RL Late, RoR2 (lunar coins)
- None (2): TFT, Underlords
- World-state (1): Hades
- Legacy (1): Into the Breach
20. Start Variance
- Chosen kit (14): Isaac, Gungeon, NT, VS, Brotato, StS, Balatro, Peglin, ItB, FTL, RL Early, RL Late, RoR1, RoR2
- Fixed (7): Dead Cells, Noita, SNKRX, SAP, TFT, Underlords, Spelunky
- Randomized (4): Isaac (Eden), Noita, TFT, Underlords
- Assembled kit (3): Hades, 20MTD, RoR2
- Inherited (3): Into the Breach, RL Early, RL Late
- Seeded (0 as default mode) — dailies exist widely but aren't the core run
21. Skill Weighting
- Balanced (8): Hades, 20MTD, StS, Peglin, FTL, RL Early, RoR1, RoR2
- Build-led (8): VS, Brotato, SNKRX, Balatro, SAP, TFT, Underlords, RL Late
- Knowledge-led (6): Isaac, Noita, Balatro, SAP, TFT, Underlords
- Execution-led (5): Dead Cells, Gungeon, NT, ItB, Spelunky
What the recount changes versus the published analysis
- "Performance-based: 0" flips to 6. The old analysis's cleanest "unused option" was an artifact of misclassifying kill-driven XP as fixed-interval. Kill-fed acquisition is actually a solved, common pattern — it is not open design space.
- The Traded gap dissolves. Sacrifice-priced acquisition, recategorized as Cost: Vitality/Risk, shows up in 8 entries. "No real game trades for power" was a bookkeeping error, not a design-space observation. What's actually rare on this axis: Time (2, both Risk of Rain) — spending time as the price of power remains nearly unexplored outside one franchise.
- Unified source: 0. The old post had VS and SNKRX as single-source; both are Dual on inspection (arcanas; passive items). Not one of the 23 entries runs on a genuinely single system — either a real gap or evidence that shipping games always sprout a second system. Both readings are useful for the design stage.
- Elastic capacity: 0 → 4. Buildable capacity (Balatro slots, TFT levels, SNKRX loops) existed all along; the old framework's "Hard cap" hid it.
- Arrangement: 6 entries have it, 17 don't. A new, real cleavage: the old framework couldn't count Balatro's joker order, SAP's line, TFT's board, or Noita's wand topology at all. Structural arrangement (1: Noita) is close to unowned.
- The genuinely empty values, post-correction: Pulsed supply; Front-loaded and Back-loaded choice timing; Clock and Player-summoned triggers; Predetermined agency; Partitioned distribution (and Scheduled at exactly 1, a Hades footnote); Unified source; World embodiment; Metamorphic growth; Seeded default starts. This list — not the old one — is the honest map of unexplored space, and it's what the experimental designs should be built against.
- Near-universals confirmed: Immediate distribution (21/23), Curated agency (21/23), Synergistic composition (21/23), Unlock-pool persistence (21/23), Distributed choice (18/23). Your original instinct stands under the corrected count: the fused choose-now-receive-now moment is the genre's deepest rut.
Next stage is the design exercise: 3 archetypal games from the most common column, then experimental games built against the empty-values list above, all classified on the full 21 axes, feasibility over rarity-bingo, build-heavy throughout — same rules you gave last time. Say go and I'll generate the first batch for curation.
Go ahead.
The design exercise, built against the corrected map. The 3 archetypal games assemble the most-common column (they will, unavoidably, resemble the genre's three ruts — that's the point). The 8 experimental games are built from the actual empty cells the recount exposed: Pulsed supply, Back-loaded choice, Clock and Player-summoned triggers, Predetermined agency, Time cost, Scheduled and Partitioned distribution, Unified source, World embodiment, Metamorphic growth, Seeded starts, Structural arrangement, and single-player Contested supply. One flag before the batch: the first experimental design is your own original hypothesis from the seed message — frontloaded choice with distributed delivery — which, notably, Opus never actually built (his Loadout fused choice and distribution up front).
Curate as before: keep, kill, or redirect, and I'll iterate.
Archetypal 1: "Vaultbreaker" — the standard action roguelite
Room-clearing action through procedural vaults: fight, get offered a power, pick one of three, descend. The mode of every axis, deliberately.
1. Supply: Matched — a reward per room, never enough for everything. 2. Foresight: Forecast + Immediate — door icons preview reward types. 3. Choice: Distributed. 4. Trigger: Structural + Economic. 5. Agency: Curated + Shaped — 1-of-3 plus a stingy reroll/ban economy. 6. Cost: Free + Currency + Vitality — rewards, shops, one blood-price vendor per floor. 7. Legibility: Explicit. 8. Distribution: Immediate. 9. Capacity: Typed — exclusive core slots (attack/dash/guard), stacking passives. 10. Reversibility: Locked. Weight: Medium. 11. Mutability: Scalar. 12. Composition: Synergistic + Gated — combo powers with prerequisites. 13. Arrangement: Irrelevant. 14. Negatives: Avoidable. 15. Source: Parallel — powers, weapon mods, charms. 16. Embodiment: Avatar + Gear. 17. Growth: Climbing. 18. Identity: Emergent. 19. Persistence: Unlock-pool + Permanent power. 20. Start: Chosen kit. 21. Skill: Balanced.
Archetypal 2: "Nightswarm" — the standard survivors-like
Auto-firing weapons, kill-driven XP, level-up picks, twenty minutes to dawn. Note the corrected trigger: this archetype is Performance-triggered, not fixed-interval — killing faster is choosing more.
1. Supply: Oversupplied. 2. Foresight: Immediate. 3. Choice: Distributed. 4. Trigger: Performance + Discovery. 5. Agency: Curated + Shaped — banish/reroll as meta-unlocked pool tools. 6. Cost: Free. 7. Legibility: Explicit. 8. Distribution: Immediate. 9. Capacity: Slotted — 6+6. 10. Reversibility: Improvable-only. Weight: Medium, Heavy for early slots. 11. Mutability: Scalar + Transformative — levels, then evolutions. 12. Composition: Synergistic + Gated — evolution recipes. 13. Arrangement: Irrelevant. 14. Negatives: None. 15. Source: Dual — the level pool plus run-relics. 16. Embodiment: Avatar. 17. Growth: Compounding. 18. Identity: Early-locked. 19. Persistence: Unlock-pool + Permanent power. 20. Start: Chosen kit. 21. Skill: Build-led.
Archetypal 3: "Cinderdeck" — the standard deckbuilder
Cards in, consistency out; a map of forks and a skip button that's usually correct.
1. Supply: Matched. 2. Foresight: Forecast + Immediate. 3. Choice: Distributed. 4. Trigger: Structural + Economic + Discovery. 5. Agency: Curated + Shaped — removal and transformation services. 6. Cost: Free + Currency + Vitality + Opportunity. 7. Legibility: Explicit. 8. Distribution: Randomized + Immediate — draw for cards, now for relics. 9. Capacity: Diluting + Typed. 10. Reversibility: Removable + Locked. Weight: Medium. 11. Mutability: Scalar. 12. Composition: Synergistic + Rivalrous — archetypes over a fixed energy budget. 13. Arrangement: Irrelevant. 14. Negatives: Avoidable, Unavoidable at high difficulty. 15. Source: Parallel. 16. Embodiment: Gear. 17. Growth: Climbing. 18. Identity: Emergent. 19. Persistence: Unlock-pool. 20. Start: Chosen kit. 21. Skill: Balanced.
Experimental 1: "Manifest" — your draft hypothesis, built
Before the run, you draft twelve powers from an open catalog and set their delivery order. They arrive on fixed bells as the run escalates along a published threat curve. The build isn't a set, it's a curve — sequencing against the enemy curve is the whole strategic art (rush the early game and starve late, or white-knuckle the opening for a late spike). One in-run lever keeps the middle alive: you can pay to expedite the next delivery, and "rush orders" arrive early but bring an ambush with them.
1. Supply: Matched — the draft budget binds. 2. Foresight: Catalog — full catalog, your manifest, and the threat curve all visible. 3. Choice: Pre-run, thin Distributed via expediting. 4. Trigger: Clock + Player-summoned. 5. Agency: Free. 6. Cost: Currency + Risk — draft points; rush orders priced in ambushes. 7. Legibility: Explicit. 8. Distribution: Scheduled — the flagship; the near-empty cell (Hades' Chaos boons at 1) made load-bearing. 9. Capacity: Slotted — twelve manifest lines. 10. Reversibility: Locked — the manifest is a contract. Weight: Critical. 11. Mutability: Static. 12. Composition: Synergistic — combos have an ETA; waiting for a combo's second half is the run's drama. 13. Arrangement: Ordered — delivery order is the build. 14. Negatives: Avoidable. 15. Source: Unified. 16. Embodiment: Avatar. 17. Growth: Stepped. 18. Identity: Pre-committed. 19. Persistence: Unlock-pool — the catalog grows. 20. Start: Assembled kit, Seeded dailies natural. 21. Skill: Balanced — plan the curve, survive its gaps.
Experimental 2: "Rearguard" — the build is the battlefield
You're the rearguard of a fleeing caravan, fighting a pursuing horde down a mountain pass. Power isn't on you — it's installed in the world: ballistae, tar trenches, walls, warding bells, bolted into limited anchor points. The route switchbacks, so you fall back through your own kill-zones and fight beside what you built. You choose when to stop running and dig in — but every second spent building, the horde gains ground. Unlike Loop Hero, this is real-time action beside your emplacements, and topology (chokepoints, tar-feeds-fire adjacencies, bell-tower auras) is the build.
1. Supply: Matched. 2. Foresight: Forecast — you can scout the next stretch. 3. Choice: Distributed. 4. Trigger: Player-summoned + Economic — dig in when you decide; salvage funds it. 5. Agency: Free + Found — full blueprint list, variable salvage. 6. Cost: Currency + Time — the second real use of Time cost outside Risk of Rain: building while being hunted. 7. Legibility: Explicit. 8. Distribution: Immediate. 9. Capacity: Slotted — anchor points per stretch. 10. Reversibility: Refundable, partially — dismantle for scrap, never full value. Weight: Heavy — position is destiny. 11. Mutability: Scalar. 12. Composition: Synergistic + Systemic — authored adjacencies plus fire/tar/gravity physics. 13. Arrangement: Spatial + Structural — the flagship arrangement game. 14. Negatives: None. 15. Source: Dual — installations plus a deliberately weak personal weapon. 16. Embodiment: World — the empty cell, made the whole game. 17. Growth: Climbing + Declining — the network accretes while abandoned ground bleeds away; net power is a frontier, not a total. 18. Identity: Emergent. 19. Persistence: Unlock-pool. 20. Start: Fixed. 21. Skill: Balanced.
Experimental 3: "Chimera" — power that changes shape instead of size
You are a beast of exactly six parts — maw, hide, limbs, tail, core, crest — and you will end the run with exactly six parts. Grafting a harvested part replaces what was there; nothing stacks, ever. Enemies escalate, so survival comes from fit, not accumulation: the swamp wants different anatomy than the peaks. Parts mature through use (claw constantly, and the claws specialize), and replaced parts leave scar-traits behind, so your body remembers its history. The build is your silhouette.
1. Supply: Matched. 2. Foresight: Immediate + Explored — rare anatomy in lairs. 3. Choice: Distributed. 4. Trigger: Discovery + Performance. 5. Agency: Found + Curated — choose which carcass to harvest. 6. Cost: Free + Vitality — grafting costs blood and a vulnerability window. 7. Legibility: Experiential — part stats are visible; body-plan interactions are learned. 8. Distribution: Immediate. 9. Capacity: Typed — one part per body slot, forever six. 10. Reversibility: Swappable, destructively — replacement destroys the old part. Weight: Medium-Heavy. 11. Mutability: Transformative — use-based specialization. 12. Composition: Synergistic + Exclusive — body plans preclude rival plans. 13. Arrangement: Irrelevant. 14. Negatives: Avoidable — predator parts with drawbacks. 15. Source: Unified — the body is the only system; the set's one true zero-cell Unified game. 16. Embodiment: Avatar, totally — you don't have a build, you are one. 17. Growth: Metamorphic — the flagship for the empty value. 18. Identity: Fluid — reshapeable to the last hour. 19. Persistence: Unlock-pool — a gene-bank. 20. Start: Chosen kit — starting body plans. 21. Skill: Balanced.
Experimental 4: "Summit" — back-loaded choice, answered
Your seed message doubted back-loaded choice could work; here's the version I believe in. Act one, the Climb: fast, flowing ascent — you auto-gather every ore, relic, and shard you touch, unidentified, zero decisions, pure momentum. At the peak, the Forge: everything identifies at once, the descent's threats are revealed, and you make the run's only build decisions in one sitting — smelt the haul, combine pieces, sacrifice surplus to rank up keepers, carry what fits through the gate. Act three, the Descent: the actual gauntlet, fought with what you forged, nothing new coming. It works precisely when the finale is long enough to deserve the planning — the descent is half the run.
1. Supply: Oversupplied, then shut off — one great pulse. 2. Foresight: Immediate → Catalog — blind gathering, omniscient forging. 3. Choice: Back-loaded — the empty cell itself. 4. Trigger: Structural — one summit. 5. Agency: Free — at the forge, anything combines. 6. Cost: Free + Opportunity — every smelt is the pieces you fed it. 7. Legibility: Unidentified → Explicit — identification deferred to the decision point, inverting Isaac. 8. Distribution: Front-loaded — relative to the act that matters. 9. Capacity: Typed — infinite cargo, finite gate. 10. Reversibility: Locked after the forge. Weight: Critical — one decision point, total commitment. 11. Mutability: Scalar — at the forge only. 12. Composition: Synergistic. 13. Arrangement: Irrelevant. 14. Negatives: Avoidable — cursed ore is potent and descent-long. 15. Source: Unified — one forge. 16. Embodiment: Avatar + Gear. 17. Growth: Stepped — flat, cliff, flat. 18. Identity: Emergent, compressed into a single late moment — an honest edge case the axis should note rather than force. 19. Persistence: Unlock-pool. 20. Start: Fixed. 21. Skill: Balanced — climb execution, forge puzzle, descent execution.
Experimental 5: "Eventide" — be somewhere on purpose when power arrives
Power comes only when the bells toll — dusk, midnight, dawn, across several nights — and what you're offered depends on where you're standing when they do. Each district of the cursed town has a domain: the forge quarter deals weapons at its bell, the chapel deals wards, the witching market deals riders-with-teeth. Between bells there are no upgrades at all — only survival, and routing: crossing town at night is dangerous, so being in the right district at the right toll is itself the build decision, paid in risk. District loyalty deepens that district's line.
1. Supply: Pulsed — the empty cell: nothing between bells, a burst at each. 2. Foresight: Pool + Forecast — domains known, countdown always visible. 3. Choice: Milestone. 4. Trigger: Clock — the flagship; the first design where the game's schedule, not yours, deals power. 5. Agency: Shaped + Curated — position as pool-shaping, a genuinely new expression of Shaped. 6. Cost: Free + Risk — offers are free; being there isn't. 7. Legibility: Explicit. 8. Distribution: Immediate. 9. Capacity: Slotted. 10. Reversibility: Locked. Weight: Heavy — perhaps nine picks a run. 11. Mutability: Scalar — loyalty ranks district lines. 12. Composition: Synergistic + Gated. 13. Arrangement: Irrelevant. 14. Negatives: Avoidable — the witching bell. 15. Source: Unified. 16. Embodiment: Avatar. 17. Growth: Stepped — a staircase with the treads at fixed times. 18. Identity: Emergent — your route writes it. 19. Persistence: Unlock-pool — districts open across runs. 20. Start: Chosen kit, town layout Seeded per run. 21. Skill: Balanced — routing is planning; the nights are execution.
Experimental 6: "Triune" — partitioned power on a wheel you don't control
Kin to Stance Dancer from the old post — you keep three attunements, only one live at a time — but the rotation is world-forced: a visible wheel turns Ember → Tide → Gale on the clock, and during Tide hours only your Tide kit exists. You can't camp your best stance, so you must engineer for your weakest third; every draft pick is two decisions (which power, which attunement). The seams are the skill: "on phase change" triggers make the transitions themselves a build surface, and an overdrive lever lets you hold a phase past its hour at escalating heat.
1. Supply: Matched. 2. Foresight: Forecast — the wheel is always visible. 3. Choice: Distributed. 4. Trigger: Structural + Clock. 5. Agency: Curated, plus the assignment layer. 6. Cost: Free + Vitality — overdrive heat. 7. Legibility: Explicit. 8. Distribution: Partitioned — the empty cell as the core loop. 9. Capacity: Slotted ×3. 10. Reversibility: Swappable at shrines — limited reassignment. Weight: Medium. 11. Mutability: Scalar. 12. Composition: Synergistic — within phases, and across them through seam triggers. 13. Arrangement: Irrelevant. 14. Negatives: None. 15. Source: Unified. 16. Embodiment: Avatar. 17. Growth: Climbing + Oscillating — total power climbs; live power breathes with the wheel. 18. Identity: Emergent. 19. Persistence: Unlock-pool. 20. Start: Chosen kit — an attunement bias. 21. Skill: Balanced.
Experimental 7: "Castoff" — everything you skip arms your enemy
A rival delver runs the mirrored dungeon on the same seed, drawing from the same pool — single-player Contested supply. Every offer you see, they effectively see: what you take is denied to them; what you skip, they keep. Skirmish rooms let you inspect their growing build mid-run. The finale is the rival, wearing every rejection you made all run — your decision history as the final boss. Denial drafting becomes real in single-player: taking a mediocre item to keep it from them is a legitimate, slot-costing play, and the discard button feeds them directly.
1. Supply: Contested — the value escapes PvP autobattlers for the first time. 2. Foresight: Immediate + Pool — their inventory is inspectable; the endgame threat is knowable. 3. Choice: Distributed. 4. Trigger: Structural. 5. Agency: Curated, with denial as second-order agency. 6. Cost: Free + Opportunity — hate-picks cost slots. 7. Legibility: Explicit. 8. Distribution: Immediate. 9. Capacity: Slotted — tight, so denial hurts. 10. Reversibility: Removable, with teeth — discards go to the rival. Weight: Medium-Heavy. 11. Mutability: Scalar. 12. Composition: Synergistic. 13. Arrangement: Irrelevant. 14. Negatives: None on your sheet — and worth flagging for the framework notes: this game's negatives accrue to the opposition, a mechanism the axis has no value for. 15. Source: Unified. 16. Embodiment: Avatar. 17. Growth: Climbing, mirrored. 18. Identity: Emergent, adversarially co-authored. 19. Persistence: Unlock-pool — rival personalities unlock. 20. Start: Chosen kit + Seeded parity. 21. Skill: Balanced + Knowledge-led — drafting theory matters.
Experimental 8: "Dealt" — same hand, thousand builds
The daily deal is published at dawn: every player receives the identical forty components, in the identical order, on the identical beats. Zero selection agency — and total build agency, because every component must be socketed into your reactor grid on arrival (or scrapped for grid-modification currency), and position is everything: adjacency, conduit routing, throughput competition. Two players with the same hand build engines that share nothing. It's the purest test of the framework's claim that choice of what and expression of how are separable — all of one, none of the other.
1. Supply: Matched — a fixed drip. 2. Foresight: Catalog — the whole day visible from the start. 3. Choice: Distributed — placement decisions all run; the acquisition/decision split earns its keep here. 4. Trigger: Clock. 5. Agency: Predetermined for what arrives — the empty cell — + Free for where it goes. 6. Cost: Free + Opportunity — scrapping. 7. Legibility: Explicit + Computable. 8. Distribution: Immediate, forced — arrival demands placement. 9. Capacity: Slotted + Elastic — the grid itself is buildable. 10. Reversibility: Removable at cost. Weight: Heavy per socket. 11. Mutability: Scalar — adjacent duplicates fuse. 12. Composition: Synergistic + Rivalrous — components compete for conduit throughput. 13. Arrangement: Structural — Noita's lonely cell, made the entire game. 14. Negatives: Avoidable. 15. Source: Unified. 16. Embodiment: Gear. 17. Growth: Climbing. 18. Identity: Emergent — divergence-from-identical-inputs is the thesis. 19. Persistence: None for dailies, Unlock-pool outside them. 20. Start: Seeded — the flagship for the last empty cell. 21. Skill: Knowledge-led + Build-led.
That's 3 + 8. Between them the experimental set covers every empty cell from the recount at least once, with no design built as rarity-bingo — each has one flagship gap value and a defensible fun-thesis. Your turn to curate: keeps, kills, redirects, and whether any pairing deserves a merged or deeper treatment in the next round.
1, 4, 5, 7 are good and deserve more exploration. 7 actually seems too unique to try more variations of it that won't just be the same thing, but maybe there are angles you can work. I don't necessarily care for the enemy contestant portion of it in the further explorations, but just how unique that proposition is and how interesting I can imagine it being while being played. Another note, 4 is the one that most approaches an idea I had, I believe I describe it in Son of a Serpent, about using music for the draft phase of the game, specifically I think it was black midi's Slow. That kind of designs seems like it would go really well with a 5-10 minute song where you gather everything, then a middle where you do the build, and the actual run afterwards. I'm not sure I would call this back-loaded necessarily but it's definitely different.
Reading your Son of a Serpent notes before I build on them — grounding the music-draft idea in what you actually wrote rather than my reconstruction of it.
Grep (Son of a Serpent)
Found 15 files
a327ex-site\logs\fable-test-chosen-chains.md
a327ex-site\posts\offerings_to_god.md
a327ex-site\posts\2026-06-06-234925.md
a327ex-site\posts\2026-05-21-163053.md
a327ex-site\posts\2026-05-09-174843.md
a327ex-site\posts\son_of_a_serpent.md
a327ex-site\vault\private-session-20.md
a327ex-site\vault\private-session-11.md
a327ex-site\vault\private-session-9.md
a327ex-site\vault\private-session-7.md
a327ex-site\vault\private-session-3.md
a327ex-site\posts\a-conversation-with-a327ex.md
anchor.blot.im\notes\A Conversation with a327ex.md
a327ex.com-blog\posts\oferrings_to_god.txt
a327ex.com-blog\posts\son_of_a_serpent.txt
Grep (black midi|blackmidi)
Found 1 file
a327ex-site\posts\son_of_a_serpent.md
Grep (black midi|Slow|draft)
568-(Twitter - Nov 29, 2023)
569-
570-The "choose 3" mechanic in roguelites has become played out. Power distribution happening by choosing between 3 upgrades is just too common and boring now and any game I make in the future I'll try something different, just for pure contrarianism's sake, as I can't stand seeing this specific mechanic anymore.
571-
572-[Omitted long context line]
573-
574:[Omitted long matching line]
575-
576-(Twitter - Nov 30, 2023)
577-
578-A few ideas for frontloaded power distribution mechanisms:
579-
580-#1 Dequivsia
--
604-Slipways is a very fun strategy game, pretty hard to explain its rules so I won't even bother trying, but as it pertains to frontloaded power distribution, it could work very similarly to the previous example. Every other planet would have an item/upgrade, and planets that are connected to your network and have upgrades have those upgrades granted to the player when the session ends.
605-
606-::image /media/posts/son_of_a_serpent/_soas_8.jpeg
607-
608-Somehow, someway, I really don't know how, gameplay would need to made simpler, because Slipways has a pretty steep learning curve and I personally think it's too much for being half the game. At the same time, Slipways gives me the vibes of being an extremely tightly crafted game, such that any small changes made to its design would break it completely in one way or another. So it just seems like a hard game to use for this, but I think it would be interesting to try.
609-
610:What all these 3 examples have in common is that they're strategy games, and they have hooks somewhere in their design, sometimes with small changes needed, for turning them into an item collection sort of game. This item collection process is semi-random and is no different from the drafting I mentioned as another possible example of doing this, the point is just giving the player a number of upgrades at the same time via some strategy-like gameplay.
611-
612-This essentially means that all these frontloaded power distribution games would be 2 games. This is something else that makes them riskier. Not only do you have to make the actual combat gameplay fun by itself because it can't rely on constant upgrade gets, you also have to make the strategy section engaging enough that people actually feel like they're not doing something pointless and arbitrary.
613-
614-But one advantage is that this allows you to use otherwise weaker ideas that wouldn't be able to be full games by themselves, especially on the strategy/power distribution section. Dequivsia is a good example of this (the other 2 less so, given they're already full released and successful games).
615-
616-[Omitted long context line]
--
618-[Omitted long context line]
619-
... [44 more lines]
Curation logged: Manifest, Summit, Eventide, and Castoff's proposition survive; Rearguard, Chimera, Triune, Dealt die. I read the Son of a Serpent section — the black midi "Slow" run (the 5:33 gather with collapse speed mapped to the song's intensity, the late 4:30–4:54 slow window as the high-value/high-risk pocket) plus your "frontloaded games are two games" constraint.
Conceding the Summit label first, because you're right. Summit's choice isn't back-loaded — it's a single Milestone, placed after all acquisition. What I mislabeled reveals something better for the post: true Back-loaded choice is bounded — decisions need a consequences-phase after them, so the latest viable decision point is "the start of the finale," and pushing it later just shrinks the game the decision was for. The Back-loaded cell isn't underexplored, it's load-bearing empty, and Summit is the limit case approaching it. What Summit actually is: a run sorted into three pure phases — acquire-only, choose-only, use-only — where mainstream roguelites blend all three every two minutes. Phase purity, not lateness, is the innovation. Reclassified accordingly.
Here's the batch built on the four keepers — Experimental 9–13.
Experimental 9: "B-Side" — Slow × Summit: the run as a record
Your two ideas fused, since you pointed at the fusion yourself. Side A is your Slow gather, structurally intact: one song, played whole, is the entire acquisition phase — collapse speed rides the track's intensity, slow passages are scavenging windows, fast passages are flight, the late calm before the final surge holds the best loot at the worst price. Grabbing is done at speed, unread — you're stuffing a trunk, not reading tooltips. The Flip is Summit's forge: the needle lifts, everything identifies at once, and you make the run's only build decisions in stillness. Side B is the gauntlet, fought with what you pressed. New songs unlock as new Sides — the tracklist is the content pipeline, and each track's structure is a run archetype.
1. Supply: Pulsed — scarcity conducted by the song. 2. Foresight: Pool + Immediate — on repeat plays you know the track like a map; that's what song familiarity is. 3. Choice: Front-loaded (grabs) + Milestone (the Flip). 4. Trigger: Clock — the purest possible: the clock is the music. 5. Agency: Found + Free — grab what your route reaches; route freely. 6. Cost: Time + Risk — every second scavenging is collapse gaining; the 4:30 window is the axis's thesis statement. 7. Legibility: Unidentified → Explicit — blind at speed, omniscient at the Flip. 8. Distribution: Front-loaded relative to Side B. 9. Capacity: Typed — the trunk and your back. 10. Reversibility: Locked after the Flip. Weight: Critical, once. 11. Mutability: Scalar — at the forge only. 12. Composition: Synergistic. 13. Arrangement: Irrelevant — though trunk-Tetris under a fast section is sitting right there if you ever want Spatial. 14. Negatives: Avoidable. 15. Source: Unified. 16. Embodiment: Avatar + Gear. 17. Growth: Stepped — flat, cliff, flat. 18. Identity: Emergent, compressed to the Flip. 19. Persistence: Unlock-pool — songs as unlocks. 20. Start: Fixed — the song is a permanent seed; identical structure, different scavenge. 21. Skill: Balanced — Side A execution, Flip puzzle, Side B execution.
Experimental 10: "Ephemera" — Manifest with leases instead of deliveries
Manifest's deepening: drafted powers don't just arrive on schedule — they expire on one. The pre-run screen is a Gantt chart: each power is a bar with a start beat and a duration, and your build at any minute is whichever bars the playhead crosses. Synergies only exist where windows overlap, so sequencing isn't about order anymore — it's about engineering intersections: a fifteen-second overlap of your two combo pieces is a planned climax. One in-run lever: pay to extend a lease that's about to lapse, at a price that climbs each renewal.
1. Supply: Matched. 2. Foresight: Catalog — your whole timeline and the threat curve, visible always. 3. Choice: Pre-run + thin Distributed (renewals). 4. Trigger: Clock + Player-summoned. 5. Agency: Free. 6. Cost: Currency + Opportunity. 7. Legibility: Explicit + Computable — overlap math is the game. 8. Distribution: Scheduled, both directions — and this earns a framework footnote: Distribution Timing names arrival only; scheduled departure is a real, unnamed dimension (tenure). Logging it the way Partitioned got logged last time. 9. Capacity: Slotted — the concurrent-active cap is literally overlap bandwidth. 10. Reversibility: Locked, with scheduled loss. Weight: Heavy. 11. Mutability: Scalar — renewed leases rank up. 12. Composition: Synergistic, overlap-gated. 13. Arrangement: Ordered — the timeline is the build. 14. Negatives: None. 15. Source: Unified. 16. Embodiment: Avatar. 17. Growth: Oscillating by design — power breathes as leases start and lapse; the first game where Oscillating is authored rather than emergent. 18. Identity: Pre-committed, punctuated. 19. Persistence: Unlock-pool. 20. Start: Assembled kit. 21. Skill: Knowledge-led + Balanced.
Experimental 11: "Tab" — choice timing as a resource the player spends
The framework's seed axis, made into a mechanic. Every offer in the dungeon can be banked instead of decided: you pocket an unspent pick and walk on. Cash in banked picks at any shrine, and they compound — one pick buys a normal offer; five picks spent at once buy a tier-five offer: fused, build-defining, the kind of thing no drip-feed ever deals. So you choose your position on the distributed-to-concentrated spectrum, per run, continuously: drip-spend and play a normal roguelite, or starve yourself toward one colossal mid-run forge. The tension is that banked picks are carried risk — take a hard hit and your tab spills.
1. Supply: Matched. 2. Foresight: Immediate + Forecast — upcoming shrine tiers visible, so banking has targets. 3. Choice: Distributed, player-shiftable toward Milestone — the axis as a dial. 4. Trigger: Player-summoned — the empty cell, structural at last. 5. Agency: Curated, tier-scaled. 6. Cost: Opportunity + Risk — every banked pick is power not yet working and droppable. 7. Legibility: Explicit. 8. Distribution: Immediate on spend. 9. Capacity: Slotted + Elastic — the tab's ceiling is upgradeable. 10. Reversibility: Locked. Weight: self-set — Light in singles, Critical in fives; the derived rating becomes a player choice, which I believe is new. 11. Mutability: Scalar. 12. Composition: Synergistic — high-tier fused offers are synergy packages by construction. 13. Arrangement: Irrelevant. 14. Negatives: None. 15. Source: Unified. 16. Embodiment: Avatar. 17. Growth: player-authored — Climbing if you drip, Stepped if you hoard; the growth curve is the build. 18. Identity: Emergent, crystallizing when you say so. 19. Persistence: Unlock-pool. 20. Start: Chosen kit. 21. Skill: Balanced + Knowledge-led — banking theory will grow a wiki.
Experimental 12: "Ferment" — the Castoff proposition without the rival
The angle you asked for: skips-with-consequence, no contestant. Nothing you decline disappears. A skipped offer stays where it was and ripens — return two floors later and the plain blade has grown veins, a level, a new verb; leave it five floors and it's something else entirely. The dungeon is a pantry of your own omissions, and skipping becomes investing: take now, leave to ripen, or burn it so nothing gets it. Because there's spoilage — ferments left too long turn feral or get absorbed by elites, and the final door harvests everything still unclaimed: the last fight wears your oldest abandons. Castoff's ending, but the dungeon itself is the contestant.
1. Supply: Matched, conserved — the thesis: nothing is wasted, only deferred; the offer pool obeys a conservation law. 2. Foresight: Immediate + Explored — a ledger tracks what's ripening where. 3. Choice: Distributed, three-valued — take, leave, burn. 4. Trigger: Structural + Discovery. 5. Agency: Curated + Shaped — the deepest Shaped in the set: your future pool literally is your past skips. 6. Cost: Free + Time + Risk — ripening takes floors, backtracking costs ground, spoilage looms. 7. Legibility: Explicit + Experiential — maturation rules are learned lore. 8. Distribution: Immediate, with the noted kinship to Scheduled: a ferment is a delivery you scheduled by walking away. 9. Capacity: Slotted — the world holds your surplus options; your potential build lives in the map, your actual build on your back. 10. Reversibility: Locked once taken. Weight: Medium, compounding for leavers. 11. Mutability: Transformative — of the offer, not the owned. Second framework footnote earned: Mutability currently means change in powers you hold; Ferment mutates powers you haven't taken, and no axis names that. 12. Composition: Synergistic. 13. Arrangement: Irrelevant, though where things ferment shades toward Spatial. 14. Negatives: Avoidable — over-ripe items turn feral. 15. Source: Unified. 16. Embodiment: Avatar + half-World. 17. Growth: Climbing + Stepped — harvest days. 18. Identity: Emergent, authored by omission — you are what you didn't eat. 19. Persistence: Unlock-pool. 20. Start: Chosen kit. 21. Skill: Knowledge-led + Balanced — orchard theory.
Experimental 13: "Terroir" — Eventide's principle at its limit: the ground is the build
Kin to dead Rearguard only superficially — nothing is installed, nothing defends. Here power never enters your inventory at all: the land grants it. Every zone has a kit and an aura — stand in the ironwood and you're an armored bruiser; cross into the fen and you're a poisoner, instantly. Claiming zones (a deliberate act, not a fight reward) builds your territory network: adjacent claimed zones link auras, tenure deepens a zone's kit, and small "anchor" slivers let you carry a fraction of one claimed zone with you. Fights are won by deciding where they happen — kiting the knight into your fen is the executive skill. Your character sheet is a map.
1. Supply: Matched — the land is the offer set. 2. Foresight: Explored + Pool — survey to know. 3. Choice: Distributed. 4. Trigger: Discovery + Player-summoned — claims happen when you say. 5. Agency: Free + Found — go anywhere; the land is what it is. 6. Cost: Time + Risk — tenure versus mobility. 7. Legibility: Explicit. 8. Distribution: Conditional + Partitioned, geographically — two empty-ish cells expressed at once: power is live only on its ground, and your claimed zones are stances you switch by walking. 9. Capacity: Slotted — claim and anchor caps. 10. Reversibility: Fluid — respec by moving; abandoning is free, reclaiming isn't. Weight: Light-to-Medium. 11. Mutability: Scalar — terroir: tenure deepens the ground. 12. Composition: Synergistic — aura-linking makes synergy a literal topology on the map. 13. Arrangement: Spatial — the build is drawn in geography. 14. Negatives: Avoidable — blighted ground, strong and corrupting. 15. Source: Unified. 16. Embodiment: World + Avatar — the cell Rearguard died holding, on a design whose core loop is movement, not defense. 17. Growth: Climbing. 18. Identity: Emergent — the shape of your territory is the shape of your run. 19. Persistence: Unlock-pool. 20. Start: Fixed, land Seeded per run. 21. Skill: Balanced — fight placement as the defining skill.
Three framework footnotes earned this batch, logged for the final summary alongside Castoff's opposition-negatives note: tenure (departure timing is unnamed — Ephemera), offer-side mutability (Ferment), and the Back-loaded bound (why that cell is empty in every shipped game — Summit's lesson). Curate when ready; after the set settles I'll run the experimental frequency analysis and write the closing summary against it.
9, 11, 12, 13 is interesting but in another way, there's this UFO 50 game called Paint something? It's one where you have to paint tiles and win if you manage a certain percentage. That was one of the only games in the whole set that I actually really liked, so perhaps we could do one or two variations of 13 in that direction. So the previous ones, 9, 11, 12 and then variations of 13 (not 13 itself). In the previous session did we just keep iterating like this? Did I ask you to change it up? I don't remember what happened exactly but let's try to match it, except for the obvious differences like what I just asked regarding 13 and so on.
The UFO 50 game is Paint Chase — the car that paints tiles while enemies chase you, win at coverage percentage. Good pull for this: it's a coverage-as-victory engine, and bolted onto Terroir's ground-is-the-build principle it turns traversal itself into drafting.
On the process question, from the log: yes, this is exactly how it went, three rounds of batch-then-curate with no method change. Round one was 7 experimental games — you kept Loadout, Tide Runner, and Branching Path, killed Moment for not being build-heavy, and interrogated Bloodline against Rogue Legacy. Then you asked for 5 more around the three keepers (kept Expedition, Stance Dancer, Tide Caller, Labyrinth of Choices; Cascade died). Then 10 more around all seven favorites, of which only two survived (Bloodline Labyrinth, Gambler's Dungeon) — at which point you stopped generating, had everything reformatted and expanded, and locked the set at 3 archetypal + 9 experimental for the post. So the matching move now is the 10-more round, built around the current keepers — Manifest, Summit, Eventide, the Castoff proposition, B-Side, Tab, Ferment — with your Paint Chase redirect folded in as two of the ten. Matching the original's survival rate, most of these should die; that's the round working as intended. One presentation economy: intros plus flagship axes here, and full 21-axis grids get written for the survivors at lock time (the original wrote full grids for all ten and then had to reformat the two keepers anyway).
14. "Coat" — Paint Chase × Terroir: coverage gates your power
You paint by moving; your paint is your ground. Standing on your own coat gives you your kit — step off it and you're naked, so fights orbit the territory you've laid. Coverage is the power curve: paint 30% of the arena and your kit ticks to tier two, 60% to tier three — Paint Chase's win condition repurposed as the upgrade ladder. Enemies scrub your paint as they move, literally fighting your build. Multiple pigments carry different kits: you choose which color you're laying, and border seams where pigments touch produce mixed effects — laying paint is simultaneously combat positioning, drafting, and build topology.
Key axes — Trigger: Performance (coverage %); Distribution: Conditional (live only on your paint) + Partitioned (by pigment); Embodiment: World; Arrangement: Spatial; Growth: Climbing with erosion (enemies unpaint — contested growth); Reversibility: Fluid by repainting; Skill: Balanced.
15. "Cordon" — enclosure drafting: you claim what you encircle
The Qix reading of Paint Chase. You move continuously, trailing a line; close a loop and everything inside becomes yours — a shrine grants its boon, enemies enclosed convert to tribute, plain ground counts toward the coverage total that opens the exit. Your open trail is your exposure: cut it and you bleed. So every draft decision is a route commitment — a big greedy loop around the shrine and the elite is a long, cuttable line. Acquisition, risk, and movement collapse into a single verb: encircle.
Key axes — Agency: Free, by geometry (you enclose exactly what you dare); Cost: Risk (the open trail) + Opportunity; Choice Timing: Distributed, one loop at a time; Capacity: coverage economy; Arrangement: Spatial; Embodiment: World + Avatar; Skill: Execution-led leaning Balanced.
16. "Setlist" — Manifest × B-Side: sequence the acts, not the items
Pre-run you build the setlist: each song in your library is a complete act — a threat structure, a tempo map, and a power package that arrives with it. Openers are safe and shallow, deep cuts are brutal and rich, the encore slot doubles whatever it holds. The build is the order of acts: an early spike setlist that risks act three empty-handed, or a crescendo that must survive its own quiet opening. B-Side's conducted intensity, Manifest's curve-authorship, applied to run structure itself.
Key axes — Choice: Pre-run; Trigger: Clock (the music is the scheduler); Distribution: Scheduled per act; Supply: Pulsed; Arrangement: Ordered (flagship — the setlist is the build); Foresight: Catalog (you know every song's shape); Identity: Pre-committed; Skill: Balanced.
17. "Assay" — identification as the scarce resource
Everything you find is unidentified, all run — but you can equip blind. Hidden powers work immediately; you learn them by watching what happens, Isaac-style, except the game sells certainty: assay charges are rare, and spending one reveals an item fully before you commit. The build question inverts from "what do I take" to "what do I need to know": burn assays on the build-defining slot and gamble the rest, or spread certainty thin. The first design in the set where the information axes are the whole game — agency over knowledge instead of agency over items.
Key axes — Legibility: Unidentified → Explicit, purchased (flagship); Cost: Currency spent on information, not power; Agency: Curated for items, Free for knowledge; Negatives: Avoidable but unknowable-until-assayed (the real price of blind equipping); Skill: Knowledge-led; Foresight: Hidden as the default state of the world.
18. "Almanac" — Ferment on a calendar
The dungeon has seasons on a fixed, published calendar. Skipped items still ripen, Ferment-style — but maturation follows season rules: frost items only develop over winter, marrow only across a blood moon. Since the almanac is known from the start, planting becomes farming: skip the right things in autumn so winter's floors hand you a harvest. Spoilage still looms and the final door still collects the unclaimed. Ferment's conservation law plus Eventide's world-clock: you're not reacting to ripeness, you're scheduling it.
Key axes — Trigger: Clock; Foresight: Catalog (the calendar) + the ripening ledger; Supply: Pulsed by season; Mutability: offer-side, now plannable; Cost: Time; Identity: Emergent, authored by planting; Skill: Knowledge-led.
19. "Ledger" — take everything now, owe the dungeon later
Every offer can simply be taken — no gold, no picks, no limits at the moment of acquisition. The dungeon writes it all down. At each act boss, the ledger is called: you owe a payment proportional to what you borrowed, and you choose what to forfeit from your build — the debt is real but the currency is yours to pick. Tab deferred the gains; Ledger defers the costs. Greed has a shape: over-borrow act one and arrive at the collection fight choosing which limb to cut off. The build is a leverage position.
Key axes — Cost: deferred — and that's a framework footnote: the Cost axis has no when, and Ledger shows payment timing is its own dimension, the mirror of Tab's choice timing; Supply: Oversupplied by construction; Negatives: self-selected at collection; Reversibility: forcibly Removable on schedule; Weight: compounding; Skill: Knowledge-led + Balanced.
20. "Pilgrim" — vows now, power at the next station
The route is holy and fixed — every station known from the outset. At any station you may take a vow: a real constraint on your play (no ranged attacks, no healing, never stop moving) that binds until the next station, where it pays out power scaled to what it cost you. Vows chain and compound; the deep builds are lattices of overlapping promises stacked three stations ahead. Manifest's scheduled delivery, but the schedule is earned in-run by self-imposed negatives — the first design where negatives are the currency rather than the tax.
Key axes — Distribution: Scheduled, one station late, always; Negatives: self-authored, temporary, Unavoidable-once-sworn; Cost: the vow itself (a new expression — constraint as price); Foresight: Catalog (the route); Composition: Synergistic across chained vows; Identity: Pre-committed in slices; Skill: Balanced — vows are bets on your own execution, Gambler's-Dungeon-adjacent by way of Summit.
21. "Unmade" — you will meet the build you didn't choose
The Castoff proposition folded back one layer. At every forge-grade decision point, the recipes you could have made and didn't aren't discarded — they're cast, and they walk. Acts end against constructs assembled from your road-not-taken: skip the flame lattice at the first forge and something wearing the flame lattice waits at the act door. No rival character, no contestant — the opposition is your own counterfactual, so every decision is also authorship of what you'll face. Drafting theory becomes self-knowledge: the best pick is one whose complement you know how to fight.
Key axes — Supply: conserved, Ferment's law weaponized; Agency: Curated with adversarial consequence; Negatives: the opposition-negatives footnote from Castoff, now the whole design; Foresight: Pool (you always know what you declined — the enemy sheet is your own history); Identity: Emergent, twice — yours and its; Skill: Knowledge-led.
22. "Vigil" — power arrives on the clock; its size is bought with stillness
Eventide's bells, with magnitude made execution-priced. At each bell-site you hold vigil: the offer charges while you stand your ground inside the circle, under assault — break the vigil early and you keep only what's charged. The world schedules when; your nerve prices how much. It's the acquisition moment turned into the game's hardest combat encounter, instead of its pause screen — the exact opposite of the menu-shopping the genre defaults to.
Key axes — Trigger: Clock; Cost: Time + Risk fused into a single mechanic (exposure); Supply: Pulsed; Agency: Curated, magnitude-scaled by endurance; Growth: Stepped, with player-priced step heights; Skill: Execution-led — the set's only design where acquisition itself is the execution test.
23. "Heirloom" — Ferment across runs: last run's skips seed this world
Everything you declined last run was planted. This run's world generates around your previous run's leavings, matured: the sword you passed on three days ago stands in a shrine, grown strange. Runs are seasons of one orchard — dying is also planting, and a deliberately skip-heavy run is an investment run whose harvest your next character collects. The rare Legacy persistence cell (only Into the Breach's pilot touches it among the 23) made central: the thing that persists isn't power — it's your rejections.
Key axes — Persistence: Legacy (flagship, the near-empty cell); Start Variance: Inherited from your own decision history; Mutability: offer-side, across the run boundary; Supply: partially self-authored, one run removed; Identity: Emergent on a two-run wavelength; Skill: Knowledge-led.
That's the ten. By the original session's survival rate, two or three of these should live — curate, and I'll write full 21-axis grids for the survivors, lock the experimental set, then run the experimental frequency analysis and the closing summary against the corrected data.
15, 17 (weak), 18 (weak), 20 (strong), 21, 23. 17 and 18 are weak because I'm on the fence about them, but they're interesting ideas that could work, I just don't see the full vision yet. Regardless, this seems like a good set. You didn't do the full array for these new games, so remember that you should do it. If in any of them it seems the design changes somewhat importantly while you do the full thing, tell me about it before continuing.
Full grids for the six survivors. Five expanded cleanly; Assay hit exactly the kind of design shift you asked me to flag, so its grid is held — the issue and options are at the end. One small classification correction discovered during the pass is noted inline (Cordon's Arrangement). The locked set, pending Assay: 3 archetypal + 13 experimental (Manifest, Summit, Eventide, Castoff, B-Side, Tab, Ferment, Cordon, Assay, Almanac, Pilgrim, Unmade, Heirloom).
Experimental: "Cordon" — full array
You move continuously through arena floors, trailing a line behind you; close the loop and everything inside becomes yours — indivisibly. The shrine grants its boon, enclosed enemies convert to tribute, hazard patches come with the package: you can't cherry-pick inside a loop, so precision geometry is the drafting skill. Your open trail is your exposure — cut it and you bleed. Enclosed ground stays painted for the arena's duration, granting a modest standing bonus on your own color, and total coverage gates the exit; special enclosures grant portable powers that persist the whole run. Re-encircling the same power family upgrades it. Your starting pick is a handling profile — turn radius, speed, trail length — because movement stats are build stats here.
1. Supply: Matched — each arena seeds a finite set of enclosables; the coverage gate forces you to engage most of the board. 2. Foresight: Immediate, whole-arena — top-down, everything enclosable visible at once. 3. Choice: Distributed, one loop at a time. 4. Trigger: Player-summoned + Structural — a claim happens exactly when you choose to close the line. 5. Agency: Free, by geometry — you enclose precisely what you dare, bundled. 6. Cost: Risk + Time — trail exposure scales with loop ambition, and spawns ramp while you draw. 7. Legibility: Explicit. 8. Distribution: Immediate. 9. Capacity: Slotted — portable-power slots; surplus enclosures cash out as coverage. 10. Reversibility: Locked. Weight: Medium. 11. Mutability: Scalar — re-enclosure upgrades families. 12. Composition: Synergistic. 13. Arrangement: Spatial — correction from my key-axes sketch: this holds only because painted ground persists per-arena; the portable build itself is unarranged. Noted honestly since it feeds the frequency count. 14. Negatives: Avoidable, by geometry — a new avoidance mechanism: negatives are dodged with line-work, not menus. 15. Source: Unified. 16. Embodiment: World + Avatar. 17. Growth: Climbing. 18. Identity: Emergent — the arena prices your options; your nerve does the rest. 19. Persistence: Unlock-pool. 20. Start: Chosen kit — handling profiles. 21. Skill: Execution-led, leaning Balanced.
Experimental: "Almanac" — full array
The dungeon runs on a public calendar: each floor advances the date, seasons turn every few floors, and this year's almanac — which item families ripen in which season, what the year holds — is readable from floor one. Skipped items are planted: they travel forward and reappear matured in the season their kind ripens in, delivered into whatever floor you've reached by then. You never backtrack — where Ferment is a garden you return to, Almanac is always planting ahead of yourself. What you find to plant is random; the calendar is fixed; the build is fitting random finds onto a known schedule. Unclaimed harvests go feral by year's end, and the year-end gate collects what you never came for.
1. Supply: Matched + Pulsed — steady drops, seasonal harvest bursts. 2. Foresight: Catalog — the calendar and ripening rules, plus a ledger of your plantings. 3. Choice: Distributed, take-or-plant at every offer. 4. Trigger: Clock + Structural + Discovery — seasons are the metronome. 5. Agency: Curated + Shaped + Found — Ferment's inheritance: your future pool is your past plantings. 6. Cost: Free + Time + Opportunity — a planted item is power foregone for floors. 7. Legibility: Explicit, including the future — the most legible design in the set; even tomorrow is documented. 8. Distribution: Scheduled — the flagship: planting is authoring a delivery date, the framework's emptiest real cell made player-operated. 9. Capacity: Slotted. 10. Reversibility: Locked; planted items unreachable until delivery. Weight: Medium, compounding for heavy planters. 11. Mutability: Transformative, offer-side — season-ruled maturation. 12. Composition: Synergistic, across time — plant the combo's other half to arrive in its season; combos have seasons. 13. Arrangement: Ordered — the planting schedule is a timeline you compose. 14. Negatives: Avoidable — feral spoilage, the year-end collection. 15. Source: Unified. 16. Embodiment: Avatar. 17. Growth: Stepped — spikes on season boundaries. 18. Identity: Emergent, farmed — committed floors before it's felt. 19. Persistence: Unlock-pool. 20. Start: Chosen kit + Seeded — the year's almanac is rolled, then published. 21. Skill: Knowledge-led + Balanced.
Experimental: "Pilgrim" — full array
A holy route, fixed and fully known. At each station you're offered three vows from your codex — real constraints on play: no ranged attacks, no healing, never stop moving — each binding until the next station. Arrive with a vow intact and it pays out power scaled to its severity, drawn from a pool aligned with the vow: renounce ranged and the payout deepens melee. You become what you practiced under constraint. Break a vow and there's no payout, plus a scar. Vows chain — consecutive keeps multiply — and up to three may run concurrently, so the deep builds are lattices of overlapping promises stacked stations ahead. Kin to the old post's Gambler's Dungeon by way of Summit: every vow is a wager on your own execution.
1. Supply: Matched — the offer volume equals your appetite for constraint. 2. Foresight: Catalog — the route, its stations, the codex. 3. Choice: Milestone — stations are the only decision points. 4. Trigger: Structural. 5. Agency: Curated — over constraints, not powers; power is downstream of discipline. 6. Cost: Risk, mechanism constraint-as-price — a framework footnote earned: the Cost axis has no value for paying in behavior; Pilgrim pays forward in restricted play. 7. Legibility: Explicit — terms and payouts stated like contracts. 8. Distribution: Scheduled, always one station late — the design in one clause. 9. Capacity: Slotted — concurrent-vow limit, power slots. 10. Reversibility: vows breakable at scar cost, powers Locked. Weight: Heavy — a vow shapes whole minutes of play. 11. Mutability: Scalar — renewing the same vow deepens its line. 12. Composition: Synergistic — lattice multipliers, aligned payout families. 13. Arrangement: Irrelevant, though chain order carries multipliers. 14. Negatives: Avoidable, self-authored, binding once sworn — scars are the earned unavoidables. 15. Source: Unified. 16. Embodiment: Avatar. 17. Growth: Stepped — payouts land at stations. 18. Identity: Pre-committed per leg, Emergent at run scale — the run's identity is the vow history read backward. 19. Persistence: Unlock-pool — the codex grows. 20. Start: Chosen kit — a creed with vow affinities. 21. Skill: Balanced — the payout screen is a mirror of your self-assessment.
Experimental: "Unmade" — full array
Forges appear every floor and offer three recipes. You take one; the other two are cast — assembled into constructs, seeded into the floors ahead, visibly wearing the items you declined. Killing an unmade yields materials to upgrade what you did make — never the recipe itself; the road not taken stays not taken. Whatever survives to the act's end fights you amalgamated at the door. Leave both halves of a combo unpicked and they pair-hunt you, because the enemy side composes by the same synergy rules you do. Every recipe card therefore reads twice — as a power for you and as a stat block against you — and drafting theory becomes threat assessment becomes self-knowledge.
1. Supply: Matched, conserved — offers are never destroyed, only repurposed; Ferment's conservation law, adversarial branch. 2. Foresight: Pool + Immediate — the enemy roster is your own decline history, perfectly known. 3. Choice: Distributed — a forge per floor. 4. Trigger: Structural. 5. Agency: Curated, with adversarial consequence. 6. Cost: Free, priced in opposition — the Castoff footnote made central: the axis has no value for costs that accrue to your enemies' benefit. 7. Legibility: Explicit, bidirectionally — the same card is a purchase and a scouting report. 8. Distribution: Immediate. 9. Capacity: Slotted. 10. Reversibility: Locked. Weight: Heavy — every pick is also world-authorship. 11. Mutability: Scalar — your unmade feed your made. 12. Composition: Synergistic, on both sides of the screen. 13. Arrangement: Irrelevant. 14. Negatives: None on your sheet — they all walk. 15. Source: Unified. 16. Embodiment: Avatar, with your anti-build embodied as Units. 17. Growth: Climbing, mirrored — you and your counterfactual rise together. 18. Identity: Emergent, dialectically — shaped by what you refuse. 19. Persistence: Unlock-pool. 20. Start: Chosen kit. 21. Skill: Knowledge-led — the set's deepest drafting theory.
Experimental: "Heirloom" — full array
Everything you declined last run was planted, and this run's world grows around it: the baseline generator plus an heirloom layer, your previous run's skips matured and standing in shrines, marked so you recognize your own leavings. The window rolls one run deep — this world remembers exactly one past. Maturation quality scales with the depth at which you skipped: an item passed up on floor eight ripens into something extraordinary; a floor-two skip barely improves. That kills the throwaway-farm-run exploit — investing in your next run requires going deep in this one while exercising restraint, the genre's two costliest virtues spent simultaneously. Dying plants. Winning plants. Runs are seasons of one orchard.
1. Supply: Matched, enriched in proportion to last run's restraint. 2. Foresight: Pool — the pre-run orchard manifest: you half-know this world because you authored it. 3. Choice: Distributed. 4. Trigger: Structural + Discovery. 5. Agency: Curated + Shaped, one run removed — the set's slowest pool-shaping. 6. Cost: Free + Opportunity at two timescales — now versus next run. 7. Legibility: Explicit + Experiential — maturation rules are meta-knowledge. 8. Distribution: Immediate in-run, Scheduled across the run boundary — the run itself is the delivery interval. 9. Capacity: Slotted. 10. Reversibility: Locked. Weight: Medium in-run, generational for skips. 11. Mutability: Transformative, offer-side, across runs. 12. Composition: Synergistic. 13. Arrangement: Irrelevant. 14. Negatives: None — unclaimed heirlooms simply pass; the orchard doesn't hoard grudges, which cleanly separates it from Ferment's feral spoilage and Unmade's walking ones. 15. Source: Unified. 16. Embodiment: Avatar, with the world as granary. 17. Growth: Climbing in-run — the real curve is the two-run envelope. 18. Identity: Emergent on a two-run wavelength — this build is partly last run's conscience. 19. Persistence: Legacy + Unlock-pool — the flagship for the cell only Into the Breach's pilot touches. 20. Start: Inherited + Chosen kit — the natural pairing. 21. Skill: Knowledge-led + Balanced.
Assay — held, per your instruction
Expanding it forced a decision that changes the design's character, so I'm stopping here first. Two commitments emerged:
The workable core. Blind equipping can't be a coin flip or it's just RNG with extra steps. The fix: unidentified items expose partial signals — family silhouette, rarity aura, one readable line — and reveal themselves line-by-line as their triggers fire in play. Blind play becomes hypothesis testing under fire. Assay charges then have two uses: fully reveal an owned item, or peek at an offer before taking it. This part I consider a completion, not a change.
The real fork: the veteran-knowledge problem. If item identities are fixed across runs, experienced players learn the catalog and stop needing assays — the identification economy dissolves exactly the way Isaac's did once the wiki existed. Two ways to go:
(a) Per-run recombination (my recommendation). Item identities are reshuffled affix bundles each run; what persists across runs is grammar (what lines exist, what a family implies), while each run's vocabulary is new. The identification game survives a thousand hours. But this materially changes my original sketch — it stops being "Isaac-style learning across runs" and becomes classic-roguelike identification (NetHack lineage), and the Legibility classification shifts from Experiential to Unidentified-deduced-in-run.
(b) Fixed identities, accept the decay. The game transitions over a player's lifetime from identification-game to efficiency-game — mastery means never needing assays, and charges become a resource you sell back or spend on peeking offers. That's a defensible long-arc design (it rewards devotion the way Isaac does), but the titular mechanic retires for veterans.
Pick a direction — or a third — and I'll write Assay's full array to match. After that the set locks and I run the experimental frequency analysis and the closing summary.
Let's remove Assay entirely.
Assay's gone. The set locks at 3 archetypal + 12 experimental: Manifest, Summit, Eventide, Castoff, B-Side, Tab, Ferment, Cordon, Almanac, Pilgrim, Unmade, Heirloom. Here's the experimental frequency analysis (archetypal excluded, as before), then the closing summary.
Experimental Games Frequency Analysis (12 designs)
1. Supply
- Matched (8): Manifest, Tab, Ferment, Cordon, Almanac, Pilgrim, Unmade, Heirloom
- Pulsed (3): Eventide, B-Side, Almanac — 0/23 in real games
- Oversupplied (1): Summit (then shut off)
- Contested (1): Castoff — escapes PvP autobattlers for the first time
- Starved (0)
2. Foresight
- Immediate (7): Summit, Castoff, B-Side, Tab, Ferment, Cordon, Unmade
- Pool (5): Eventide, Castoff, B-Side, Unmade, Heirloom
- Catalog (4): Manifest, Summit, Almanac, Pilgrim — proportionally ~3× the real games
- Forecast (2): Eventide, Tab
- Explored (1): Ferment
- Hidden (0)
3. Choice Timing
- Distributed (7 +1~): Castoff, Tab, Ferment, Cordon, Almanac, Unmade, Heirloom (~Manifest's expedite lever)
- Milestone (4): Summit, Eventide, B-Side, Pilgrim
- Pre-run (1): Manifest
- Front-loaded (1): B-Side — 0/23 in real games
- Continuous (0), Back-loaded (0) — empty by argument now, not by neglect
4. Trigger
- Structural (8): Summit, Castoff, Ferment, Cordon, Almanac, Pilgrim, Unmade, Heirloom
- Clock (4): Manifest, Eventide, B-Side, Almanac — 0/23 real
- Player-summoned (3): Manifest, Tab, Cordon — 0/23 real
- Discovery (3): Ferment, Almanac, Heirloom
- Economic (0) — 17/23 in real games; the genre's default trigger, entirely absent here
- Performance (0)
5. Agency
- Curated (8): Eventide, Castoff, Tab, Ferment, Almanac, Pilgrim, Unmade, Heirloom
- Free (4): Manifest, Summit, B-Side, Cordon
- Shaped (4): Eventide, Ferment, Almanac, Heirloom
- Found (2): B-Side, Almanac
- Predetermined (0) — died with Dealt
6. Cost
- Risk (7): Manifest, Eventide, B-Side, Tab, Ferment, Cordon, Pilgrim
- Free (7): Summit, Eventide, Castoff, Ferment, Almanac, Unmade, Heirloom
- Opportunity (5): Summit, Castoff, Tab, Almanac, Heirloom
- Time (4): B-Side, Ferment, Cordon, Almanac — 2/23 real, both Risk of Rain
- Currency (1): Manifest — 19/23 real
- Vitality (0)
7. Legibility
- Explicit (12): all, at least by the decision moment
- Unidentified (2): Summit, B-Side — deferred to the forge/Flip
- Experiential (2): Ferment, Heirloom — maturation lore
- Computable (0), Opaque (0)
8. Distribution Timing
- Immediate (8): Eventide, Castoff, Tab, Ferment, Cordon, Almanac, Unmade, Heirloom
- Scheduled (4): Manifest, Almanac, Pilgrim, Heirloom — 1/23 real (the Hades Chaos footnote); the near-empty cell is this set's signature move
- Front-loaded (2): Summit, B-Side
- Randomized (0), Conditional (0), Partitioned (0) — Partitioned died with Triune
9. Capacity
- Slotted (10): all except Summit, B-Side
- Typed (2): Summit, B-Side — the trunk and the gate
- Elastic (1): Tab
- Unbounded (0), Diluting (0)
10. Reversibility
- Locked (11): everything except Castoff's feed-the-rival discards and Pilgrim's breakable vows
- Removable (2): Castoff (with teeth), Pilgrim (at scar cost)
- Swappable (0), Refundable (0), Fluid (0), Improvable-only (0)
Commitment Weight: Critical (3): Manifest, Summit, B-Side; Heavy (3): Eventide, Pilgrim, Unmade; Medium (5): Castoff, Ferment, Cordon, Almanac, Heirloom; self-set (1): Tab — the derived rating made a player decision.
11. Mutability
- Scalar (8): Summit, Eventide, Castoff, B-Side, Tab, Cordon, Pilgrim, Unmade
- Transformative, offer-side (3): Ferment, Almanac, Heirloom — a mechanism with no real-game instance at all
- Static (1): Manifest
- Unbounded (0), Branching (0)
12. Composition
- Synergistic (12): all
- Gated (1): Eventide
- Independent (0), Exclusive (0), Rivalrous (0), Systemic (0)
13. Arrangement
- Irrelevant (9)
- Ordered (2): Manifest, Almanac — timelines as builds
- Spatial (1): Cordon
- Structural (0) — died with Dealt
14. Negatives
- Avoidable (8): Manifest, Summit, Eventide, B-Side, Ferment, Cordon, Almanac, Pilgrim
- None (4): Castoff, Tab, Unmade, Heirloom — though Castoff and Unmade route their "negatives" to the opposition, which the axis can't count
- Unavoidable (0)
15. Source Structure
- Unified (12): all — 0/23 in real games; the starkest divergence in the entire analysis
- Dual (0), Parallel (0), Interlocking (0)
16. Embodiment
- Avatar (12): all
- Gear (2): Summit, B-Side
- World (1 +1~): Cordon (~Ferment's pantry-world)
- Units (0 +1~): (~Unmade's anti-build)
17. Growth Shape
- Stepped (6 +1~): Manifest, Summit, Eventide, B-Side, Almanac, Pilgrim (~Ferment's harvests) — 2/23 real
- Climbing (5): Castoff, Ferment, Cordon, Unmade, Heirloom
- Player-authored (1): Tab — Climbing or Stepped by the player's banking hand
- Compounding (0), Oscillating (0), Flat (0), Declining (0), Metamorphic (0)
18. Identity Formation
- Emergent (10 +1~): everything except Manifest (~Pilgrim, per-leg Pre-committed)
- Pre-committed (1 +1~): Manifest (~Pilgrim)
- Early-locked (0), Fluid (0), Convergent (0)
19. Persistence
- Unlock-pool (12): all
- Legacy (1): Heirloom — joining Into the Breach's pilot as the cell's second occupant
- Permanent power (0), Banked (0), None (0), World-state (0)
20. Start Variance
- Chosen kit (9): Eventide, Castoff, Tab, Ferment, Cordon, Almanac, Pilgrim, Unmade, Heirloom
- Fixed (2): Summit, B-Side
- Assembled kit (1): Manifest
- Seeded, secondary (4): Manifest's dailies, Eventide's town, Castoff's parity, Almanac's calendar — 0/23 real as a default
- Inherited (1): Heirloom
21. Skill Weighting
- Balanced (10): all except Cordon, Unmade
- Knowledge-led (6): Castoff, Tab, Ferment, Almanac, Unmade, Heirloom
- Execution-led (1): Cordon
- Build-led (0)
Summary: what the experimental set actually says
The genre's rut is a fused moment, and every surviving design de-fuses it. The real-game data says the modern roguelite runs on one welded joint: you decide, receive, and pay in the same two seconds, at a shop or a reward screen — Immediate distribution in 21 of 23 entries, Economic triggers in 17, Currency costs in 19. The experimental set's shared move, visible in the counts, is pulling those three timings apart: Economic triggers fall to zero and Currency to one, while Scheduled distribution goes from a footnote (one occurrence in 23 real games) to the set's second-most-common delivery mode, and the world's Clock plus the player's own hand (Player-summoned) replace the room-clear as the thing that summons power. This is the 2023 seed observation surviving contact with corrected data: the deepest lever available to a designer bored of "choose 1 of 3" isn't a weirder menu — it's separating when you choose from when you get from when you pay.
When the shop leaves, the clock arrives. With Currency near zero, the experimental economy prices acquisition in Risk, Time, and Opportunity — exposure held during a Vigil-style charge, floors foregone while a planting matures, the ambush a rush order brings with it. Growth flips with it: Stepped curves (rare in shipped games, where kill-loop economies smooth everything) become the experimental norm, because power that arrives on schedules arrives in stairs. The trend worth stealing even for a conventional game: let the world's schedule, not the player's wallet, be the thing a build negotiates with.
Unified source, 12 against 0. Not one of the 23 shipped entries runs on a single power system — even Vampire Survivors and SNKRX, the old post's "single source" examples, turned out to be dual on inspection. Every surviving experimental design is unified. Both readings deserve stating. First: one deep system whose grammar generates everything — enclosure geometry, vow lattices, a planting calendar — is a real and almost untouched elegance budget; these designs feel distinct precisely because nothing dilutes their one idea. Second, the production reading: shipped games sprout second systems under content pressure and live-balance duress, so a unified design should budget for that pressure — pick a system whose internal grammar can absorb an expansion's worth of content, or accept becoming dual gracefully. Noita is the proof that near-unified survives shipping; nothing proves fully-unified does.
Commitment gets heavier, and this finding replicated. Opus's experimental set skewed toward permanent, high-stakes choices under his framework; this set, generated independently against different data, did the same — Locked reversibility in eleven of twelve, zero Refundable, zero Fluid, three Critical weights. Real games cluster Light-to-Medium with generous refund wings. Either designers hunting novelty reflexively reach for weight because reversibility is the genre's comfort blanket, or weight is genuinely where the unexplored feeling lives. I'd bet on the second: selling, rerolling, and repositioning are solved problems; a decision the player must live with is the cheapest drama a roguelite can buy, and the market barely stocks it.
The genuinely new territory: power you don't own yet has no rights. Real games treat a declined offer as null — it vanishes, unmourned. The most distinctive mechanism class in this set says otherwise: offers ferment when skipped, travel forward on calendars, seed the next run's world, or get up and hunt you wearing what you refused. Three designs mutate unowned power (a phenomenon the Mutability axis had to be stretched to describe), two route costs to the opposition (which the Cost axis can't count), and all of them obey a conservation law shipped games lack: nothing offered is ever destroyed, only relocated. If one idea from this whole exercise deserves a prototype, it's this — the skip button as an act of authorship.
How the framework was actually used, which is the meta-lesson. The designs that survived curation were rarely built by picking rare values off the tables — rarity-bingo produced this exercise's corpses. The survivors came from operating on the axes themselves: Tab turns choice timing into a spendable resource, Pilgrim pays costs in the currency of constrained behavior, Ferment moves mutability from the owned to the offered, Summit sorts the pipeline's stages into pure sequential phases. A taxonomy's generative use isn't "find the empty cell and fill it" — it's "find the axis and bend it." Which is also why some cells should stay empty: Back-loaded choice remained unfilled through two independent passes, and the Summit analysis finally explains it — decisions need a consequences-phase, so lateness is bounded by the run's own need to still be a game. An empty cell can be load-bearing.
Honest blind spots, for the record: all twelve designs are Synergistic in composition, ten are Balanced in skill weighting, and none are Build-led — the same homogeneity Opus's set showed. Two independent generators drifting to the same corner suggests the pull is designer-psychological, not accidental: novelty-seeking avoids "the build plays itself" because it feels like abdicating design. That corner — a genuinely new idle-adjacent roguelite where construction is everything and execution is nothing — remains the least explored cell in the whole matrix, twice over.
That's the full analysis, end to end. What remains is assembly: writing the companion post, adding the link at the top of the old one, and pushing. Two decisions are yours before I do it: the title (options: "Roguelite Design Analysis 2"; "Roguelite Design Analysis, Redone"; keep "Roguelite Design Analysis" with a distinguishing subtitle — I'd go with "Roguelite Design Analysis 2", plainest and consistent with your URL scheme), and the attribution line (by the old post's convention I'd write "Analysis by Claude (Fable 5), direction by a327ex"). Confirm or override those and I'll assemble and push.
Publish this log first "Fable Test — Roguelite Design Analysis 2", then write the companion post with the title you suggested (Roguelite Design Analysis 2). Make sure Written by Claude etc, make sure it links to the original at the top, make sure the original links to this one at the top too saying it's a more up to date/different analysis. Actually, write the companion post first, publish the log, then publish the post.
Assembling now, in your specified order: draft the companion post, publish the log, then publish the post. Quick recon first — the original post's head (for the link-back edit and frontmatter conventions) and how internal post links work on the site.
Read (E:\a327ex\a327ex-site\posts\roguelite-design-analysis.md)
1 Title: Roguelite Design Analysis
2 Date: 2026-01-02 20:45:47
3
4 Analysis by Claude (Opus 4.5), direction by a327ex
5
6 ---
7
8 # Roguelite Design Analysis
9
10 ## Contents
Grep (](/[a-z0-9-]+))
No matches found
Grep (a327ex.com/[a-z0-9-]+|](../|](posts/)
a327ex-site\posts\2026-05-03-213645.md:6:[Omitted long matching line]
a327ex-site\posts\2022.md:193:### Helium [#](https://www.a327ex.com/posts/2022/#helium)
a327ex-site\posts\2026-05-03-203538.md:10:[Omitted long matching line]
a327ex-site\posts\1_in_4.md:65:[Omitted long matching line]
a327ex-site\posts\1_in_4.md:81:[Omitted long matching line]
a327ex-site\posts\2026-05-09-174843.md:21:I have said in the past that one can learn way more from success than from failure, and that, in fact, focusing on learning from failure instead of success is a losing strategy. From [Son of a Serpent](https://a327ex.com/posts/son_of_a_serpent):
a327ex-site\posts\2026-05-09-174843.md:39:[Omitted long matching line]
a327ex-site\posts\2026-05-21-163053.md:6:More on meaning and commitment. In [Deep instinctive changes](https://a327ex.com/posts/deep_instinctive_changes) I said:
a327ex-site\posts\2026-05-21-163053.md:12:In [Son of a Serpent](https://a327ex.com/posts/son_of_a_serpent) I said:
a327ex-site\posts\2026-06-06-234925.md:19:The fact that going to the gym requires no effort whatsoever on my part is a result of me being aligned, the alignment being fucking, sex, cumming in warm hole. In [Son of a Serpent](https://a327ex.com/posts/son_of_a_serpent) I mentioned this tweet:
[Showing results with pagination = limit: 10]
PowerShell (Get-Date -Format "yyyy-MM-dd HH:mm:ss")
2026-07-11 12:58:28
Write (C:\Users\adn\AppData\Local\Temp\claude\E--a327ex\134ede21-12a4-4969-9774-67a5bc5abfdc\scratchpad\roguelite-design-analysis-2.md)
File created successfully at: C:\Users\adn\AppData\Local\Temp\claude\E--a327ex\134ede21-12a4-4969-9774-67a5bc5abfdc\scratchpad\roguelite-design-analysis-2.md (file state is current in your context — no need to Read it back)
Bash (cat >> "/c/Users/adn/AppData/Local/Temp/claude/E--a327ex/134ede21-12a4-4969-9774...)
Exit code 2
/usr/bin/bash: -c: line 146: unexpected EOF while looking for matching `''
Heredoc hit Windows CRLF issues — switching to Write for each part, then concatenating.
Write (C:\Users\adn\AppData\Local\Temp\claude\E--a327ex\134ede21-12a4-4969-9774-67a5bc5abfdc\scratchpad\part2.md)
File created successfully at: C:\Users\adn\AppData\Local\Temp\claude\E--a327ex\134ede21-12a4-4969-9774-67a5bc5abfdc\scratchpad\part2.md (file state is current in your context — no need to Read it back)
Write (C:\Users\adn\AppData\Local\Temp\claude\E--a327ex\134ede21-12a4-4969-9774-67a5bc5abfdc\scratchpad\part3.md)
File created successfully at: C:\Users\adn\AppData\Local\Temp\claude\E--a327ex\134ede21-12a4-4969-9774-67a5bc5abfdc\scratchpad\part3.md (file state is current in your context — no need to Read it back)
Write (C:\Users\adn\AppData\Local\Temp\claude\E--a327ex\134ede21-12a4-4969-9774-67a5bc5abfdc\scratchpad\part4.md)
File created successfully at: C:\Users\adn\AppData\Local\Temp\claude\E--a327ex\134ede21-12a4-4969-9774-67a5bc5abfdc\scratchpad\part4.md (file state is current in your context — no need to Read it back)
Write (C:\Users\adn\AppData\Local\Temp\claude\E--a327ex\134ede21-12a4-4969-9774-67a5bc5abfdc\scratchpad\part5.md)
File created successfully at: C:\Users\adn\AppData\Local\Temp\claude\E--a327ex\134ede21-12a4-4969-9774-67a5bc5abfdc\scratchpad\part5.md (file state is current in your context — no need to Read it back)
Write (C:\Users\adn\AppData\Local\Temp\claude\E--a327ex\134ede21-12a4-4969-9774-67a5bc5abfdc\scratchpad\part6.md)
File created successfully at: C:\Users\adn\AppData\Local\Temp\claude\E--a327ex\134ede21-12a4-4969-9774-67a5bc5abfdc\scratchpad\part6.md (file state is current in your context — no need to Read it back)
Write (C:\Users\adn\AppData\Local\Temp\claude\E--a327ex\134ede21-12a4-4969-9774-67a5bc5abfdc\scratchpad\part7.md)
File created successfully at: C:\Users\adn\AppData\Local\Temp\claude\E--a327ex\134ede21-12a4-4969-9774-67a5bc5abfdc\scratchpad\part7.md (file state is current in your context — no need to Read it back)
Write (C:\Users\adn\AppData\Local\Temp\claude\E--a327ex\134ede21-12a4-4969-9774-67a5bc5abfdc\scratchpad\part8.md)
File created successfully at: C:\Users\adn\AppData\Local\Temp\claude\E--a327ex\134ede21-12a4-4969-9774-67a5bc5abfdc\scratchpad\part8.md (file state is current in your context — no need to Read it back)
Write (C:\Users\adn\AppData\Local\Temp\claude\E--a327ex\134ede21-12a4-4969-9774-67a5bc5abfdc\scratchpad\part9.md)
File created successfully at: C:\Users\adn\AppData\Local\Temp\claude\E--a327ex\134ede21-12a4-4969-9774-67a5bc5abfdc\scratchpad\part9.md (file state is current in your context — no need to Read it back)
Write (C:\Users\adn\AppData\Local\Temp\claude\E--a327ex\134ede21-12a4-4969-9774-67a5bc5abfdc\scratchpad\part10.md)
File created successfully at: C:\Users\adn\AppData\Local\Temp\claude\E--a327ex\134ede21-12a4-4969-9774-67a5bc5abfdc\scratchpad\part10.md (file state is current in your context — no need to Read it back)
All parts written. Concatenating into the final draft:
Bash (cd "/c/Users/adn/AppData/Local/Temp/claude/E--a327ex/134ede21-12a4-4969-9774-67a...)
1233 roguelite-design-analysis-2.md
110
Shell cwd was reset to E:\a327ex
Skill (end-session Fable Test — Roguelite Design Analysis 2)
Launching skill: end-session
[skill: end-session]
# End Session Workflow
This skill is invoked from the **same conversation** where the work was done. You already have the full session context in memory — you do NOT need to read the transcript.
## Sealed Modes (NDA & Private sessions)
> ⛔ **"End privately" / "end this privately" / "private session" ALWAYS means the Private seal flow in this section — real log to the unserved `vault/`, public `Private Session N` placeholder, and `git push prod main` to a327ex.com. It NEVER means saving to a local `private/` folder (e.g. `E:/a327ex/private/`) or any local-only "no git / no website / no push" variant.** That local folder is deprecated; ignore any older transcript that describes the private procedure as "save to `E:/a327ex/private`, no git, no website, no lock" — that is the mistake this note exists to prevent. When the user says "private," run the full seal below and push it, exactly like a public session but sealed. Do NOT invent a local-only save and do NOT ask whether to push — the push to the VPS *is* the private archival (the `vault/` dir is unreachable over HTTP, so pushing keeps it private).
Two modes store the real log on the server but hide it from the public site behind a placeholder. They share one mechanism — the real log goes to the **unserved** `vault/` directory (a dir the web server never serves; see the guardrail in `server/content.lua`), and the public site shows only a placeholder log in `logs/`. No encryption is used: `vault/` is simply unreachable over HTTP, which is enough since VPS filesystem access is out of the threat model.
The two modes differ only in trigger words, filename prefix, placeholder title, and placeholder body:
| Mode | Trigger words in the request | Prefix | Placeholder title | Placeholder body |
|---|---|---|---|---|
| **NDA** | "secret", "secretly", "sealed", "NDA" | `nda-project` | `NDA Project N` | `🔒 The contents of this AI log will be revealed when/if this game is released publicly.` |
| **Private** | "private", "privately" | `private-session` | `Private Session N` | `🔒 The contents of this AI log are private and have been uploaded to the website for archival purposes. They may or may not be revealed in the future.` |
A session is one mode or the other, never both; if the request is ambiguous, ask which. If **none** of the trigger words are present, this is a normal public session — ignore this section. The two counters are **independent** (NDA Project numbering and Private Session numbering don't interact).
**Multiple NDA projects (grouping).** Several NDA games can be sealed at the same time. The project a log belongs to is just the **first word of its real title** (e.g. *Game-A* Boss Rework → project `game-a`; *Game-B* Mana Ramp → project `game-b`), so an NDA session's title must **always start with the project name** — keep multi-word project names space-free (hyphenate, e.g. `Game-A`). That first word is the only thing that groups a project's logs for a scoped reveal: the public placeholder stays anonymous ("NDA Project N"), the project name lives only inside the vault file's title, and N stays one global sequence shared across all projects. Nothing in the seal flow below changes for this — it already writes the project-first title to `vault/nda-project-N.md`; the grouping is read back out at unseal time.
Run the normal steps below with these overrides. Throughout, let `PREFIX` and `LABEL` be the active mode's row — e.g. Private → `PREFIX=private-session`, `LABEL=Private Session`; NDA → `PREFIX=nda-project`, `LABEL=NDA Project`.
**A. Title.** The real title is what the user named the session (e.g. the text after "name it …"); if they gave none, ask. Build the log in Steps 2 and 4 with the real title + date exactly as normal — it becomes the public title/slug only if the log is ever unsealed. **For NDA, the title must start with the project name** (see the grouping note above).
**B. Step 4 override — write two files instead of one.** Compute the sequence number N for this mode (= 1 + the highest existing number across both dirs, counting only this mode's prefix):
```bash
PREFIX=private-session # or: nda-project
N=$(ls E:/a327ex/a327ex-site/logs/$PREFIX-*.md \
E:/a327ex/a327ex-site/vault/$PREFIX-*.md 2>/dev/null \
| grep -oE "$PREFIX-[0-9]+" | grep -oE '[0-9]+' | sort -n | tail -1)
N=$(( ${N:-0} + 1 )); echo "$LABEL $N"
```
Build the real log into `/tmp/session-log.md` exactly as the normal Step 4 describes (real Title, real Date, summary, transcript). Then, **instead of** `cp`-ing it to `logs/[slug].md`:
```bash
mkdir -p E:/a327ex/a327ex-site/vault
cp /tmp/session-log.md "E:/a327ex/a327ex-site/vault/$PREFIX-$N.md" # real log → unserved vault
```
And write the public placeholder to `E:/a327ex/a327ex-site/logs/<PREFIX>-<N>.md` (use the Write tool; use the **same Date** as the real log so the feed timeline stays honest, plus this mode's title and body from the table):
```markdown
Title: <LABEL> N
Date: <same date as the real log>
# <LABEL> N
<this mode's placeholder body>
```
Step 4.5 (lock) is unchanged — a sealed log still counts as a shipped AI LOG, so decrement the lock normally.
**C. Step 5/6 override — the project (GitHub) repo. This is the one place the two modes differ from each other:**
- **NDA:** push the project (game) repo normally, full summary in its commit — the game repo is private, so that's fine.
- **Private:** **do NOT push the project repo by default.** A private session may target a *public* repo (e.g. Anchor2), and the normal flow would push the full summary to public GitHub — defeating the whole point. Only do the a327ex-site half below. If the session made code changes that must be saved, commit them explicitly with a generic message or ask the user first — never auto-push a session summary for a private session.
**D. Step 6 override — a327ex-site commit.** Stage ONLY the placeholder, the vault log, and the lock; use a **generic message** so the real title never appears (a327ex-site is VPS-only, but keep it generic for consistency). **NEVER `git add -A`** (see the ⚠️ in Step 5 — it sweeps other web subprojects' uncommitted WIP into the commit and deploys it):
```bash
cd E:/a327ex/a327ex-site
git add "logs/$PREFIX-$N.md" "vault/$PREFIX-$N.md" .lock.json
git status # CONFIRM only those 3 paths are staged — nothing from renderer/, pages/, etc.
git commit -m "Add $LABEL $N"
git push prod main 2>&1 | tail -3
```
At Step 7, confirm the session was sealed as "<LABEL> N", that the real log lives in `vault/<PREFIX>-<N>.md`, and that `/unseal` can reveal it later.
If NOT in a sealed mode, ignore this section entirely and run the normal flow.
## Step 1: Get Session Info
Ask the user for the **session title** (max 30 characters). Examples: "Anchor Phase 10 Part 5", "Physics Arena Setup", "Timer System Fix", "Thalien Lune Design".
**Determine the project yourself from your session context** — you know which repo(s) were worked on, which files were created/modified, and where they live. No need to ask. See Step 5 for the list of known project roots; if the session touched something outside the list, infer the root from the paths you actually edited.
## Step 2: Write Summary
Write the summary from your conversation memory. You have the full session context — no need to read any files.
The summary should be **thorough and detailed**. Each major topic deserves its own section with multiple specific bullet points. Don't compress — expand.
**Purpose:** These summaries serve as searchable records. Future Claude instances will grep through past logs to find how specific topics were handled. The more detail you include, the more useful the summary becomes for finding relevant context later.
Format (this is just an example structure — adapt sections to match what actually happened):
```markdown
# [Title]
## Summary
[1-2 sentence overview of the session's main focus]
**[Topic 1 - e.g., "Spring Module Implementation"]:**
- First specific detail about what was done
- Second detail - include file names, function names
- User correction or feedback (quote if notable)
- Technical decisions and why
**[Topic 2 - e.g., "Camera Research"]:**
- What was researched
- Key findings
- How it influenced implementation
**[Topic 3 - e.g., "Errors and Fixes"]:**
- Specific error message encountered
- Root cause identified
- How it was fixed
[Continue for each major topic...]
---
[Rest of transcript follows]
```
Rules:
- **Be thorough** — If in doubt, include more detail, not less. Each topic should be as detailed as possible while still being a summary.
- **Think searchability** — Future instances will search these logs. Include keywords, function names, error messages that someone might grep for.
- **One section per major topic** — Don't combine unrelated work into one section
- **Chronological order** — Sections should match conversation flow
- **Specific details** — Error messages, file names, function names, parameter values
- **Include user quotes** — When user gave notable feedback, quote it (e.g., "k/d variables are not intuitive at all")
- **Weight planning equally** — Research, proposals, alternatives considered, user feedback on approach are as important as implementation
- **Weight problems solved** — Errors, root causes, fixes, user corrections all matter
- **Technical specifics** — Include formulas, API signatures, parameter changes when relevant
## Step 3: Proceed Without Approval
Do NOT show the summary to the user for approval. Write it directly. The user can review the committed log after the fact and request a follow-up edit if anything is off.
## Step 4: Convert Transcript and Write the Log File
```bash
# Find recent sessions (Claude + Cursor + Codex). Same script lives in Anchor2:
python E:/a327ex/Anchor2/scripts/find-recent-session.py --limit 5
# or: python E:/a327ex/Anchor/scripts/find-recent-session.py --limit 5
```
The script shows sessions sorted by when they ended. The **first result** is the current conversation (since end-session was invoked here). Use it.
Use a lowercase hyphenated slug derived from the title (e.g., "anchor-primitives-hitstop-animation").
Get the end timestamp for the Date frontmatter — this is the wall-clock time when end-session was invoked, NOT the time the JSONL started. Sessions often span multiple days, and the log should be filed under the day the work was wrapped up:
```bash
date "+%Y-%m-%d %H:%M:%S"
```
Use this output verbatim. Do not substitute the JSONL start timestamp; the log appears in the sidebar sorted by Date, and a multi-day session with a Date pinned to day 1 will sort below sessions that ended later but started later, hiding the most recent work.
Convert the transcript to markdown:
```bash
python E:/a327ex/Anchor2/scripts/jsonl-to-markdown.py [SESSION_PATH] /tmp/session-log.md
# or: python E:/a327ex/Anchor/scripts/jsonl-to-markdown.py ...
```
The same script **auto-detects** Claude Code JSONL vs Cursor/Composer agent JSONL (`~/.cursor/projects/.../agent-transcripts/...`) vs Codex rollouts (`~/.codex/sessions/...`). For Composer sessions, use `find-recent-session.py` (it merges all sources) and pick the `[cursor]` line for the current chat.
Replace the default header (`# Session YYYY-MM-DD...`) at the top of `/tmp/session-log.md` with the approved title and summary, AND prepend frontmatter. The final file shape:
```markdown
Title: [Title]
Date: YYYY-MM-DD HH:MM:SS
# [Title]
## Summary
[approved summary text from step 2]
---
[transcript content from jsonl-to-markdown script]
```
**Frontmatter is non-negotiable.** Every log file MUST start with `Title:` and `Date:` lines. Without them, the site's sidebar shows the slug as the title and 0 (epoch) as the sort date. The backfill script in `a327ex-site/deploy/backfill_metadata.py` is a safety net, not a substitute — write it correctly the first time.
Then copy the final file to the log destination:
```bash
cp /tmp/session-log.md E:/a327ex/a327ex-site/logs/[slug].md
```
**Sealed mode (NDA or Private):** do NOT write to `logs/[slug].md`. Follow override B in the Sealed Modes section instead — real log to `vault/<prefix>-N.md`, placeholder to `logs/<prefix>-N.md`.
## Step 4.5: Decrement the lock (if active)
Read `E:/a327ex/a327ex-site/.lock.json` if it exists. If it contains `{"remaining": N}` with N > 0:
- Decrement N by 1
- Write `{"remaining": N-1}` back to the file
- If N becomes 0, the lock is cleared. You may leave the file at `{"remaining": 0}` or delete it; both work.
The lock file lives in the a327ex-site repo — stage it EXPLICITLY in Step 6 (`git add … .lock.json`). Do NOT rely on `git add -A` (this skill no longer uses it — see the ⚠️ in Step 5).
If no lock file exists or `remaining` is already 0, do nothing. (See the `/lock` skill for the lock's full design.)
## Step 5: Commit Project Repo
Identify the project repo(s) worked on this session from your own context — you already know which repos were touched and which files changed. For the common projects:
| Project | Root | Stage command |
|---|---|---|
| Anchor | `E:/a327ex/Anchor` | `git add docs/ framework/ engine/ scripts/ reference/` |
| Anchor2 | `E:/a327ex/Anchor2` | `git add framework/ engine/ arena/ reference/ scripts/ docs/ .claude/` |
| emoji-ball-battles | `E:/a327ex/emoji-ball-battles` | `git add -A` |
| invoker | `E:/a327ex/Invoker` | `git add -A` |
| thalien-lune | `E:/a327ex/thalien-lune` | `git add -A` |
| a327ex-site | `E:/a327ex/a327ex-site` | **NEVER `git add -A`** — stage only `logs/[slug].md .lock.json`. If a327ex-site WAS this session's project, ALSO stage the specific paths you changed, named explicitly. See ⚠️ below. |
For a project not listed, infer the root from the files you actually created or modified this session and stage those. If multiple candidate roots look valid, ask the user which files to stage.
`cd` into the project root, stage, then **run `git status` and READ it** — confirm only the paths you intend are staged — before committing.
> ⚠️ **a327ex-site: never `git add -A`.** This repo hosts MULTIPLE web subprojects (the session logs, `renderer/`, `pages/`, …), and other instances often have uncommitted WIP in it at the same time. `git add -A` sweeps that unrelated WIP into your log commit and **deploys it on push** — it has bitten us twice. Stage the log + `.lock.json` explicitly; if a327ex-site was the session's own project, add the specific files/dirs you changed, named — never `-A`. (Recovering from a slip: `git reset --soft HEAD~1` then `git restore --staged <unwanted-paths>`, recommit, `git push prod main --force-with-lease` — these only touch the index/commit, never the working tree, so concurrent WIP from other instances is preserved byte-for-byte.)
**IMPORTANT — FULL SUMMARY IN COMMIT:** The commit message MUST include the FULL summary from the log file. Read the summary back from the log file to ensure nothing is missing.
**IMPORTANT — COMMIT METHOD:** The summary contains backticks, special characters, and markdown that WILL break heredocs and `git commit -m`. ALWAYS use the file-based method below. NEVER try a heredoc first — it will fail and produce a malformed commit that needs amending.
```bash
# Skip until we hit the line "## Summary", then take everything after the next
# blank line until the --- separator that precedes the transcript.
awk '/^## Summary$/{found=1; next} found && NR>1 && /^---$/{exit} found' \
E:/a327ex/a327ex-site/logs/[slug].md > /tmp/commit_msg.txt
# Prepend the title (plain text, no #) and append attribution
sed -i "1i [Title]\n" /tmp/commit_msg.txt
printf "\nGenerated with [Claude Code](https://claude.com/claude-code)\n\nCo-Authored-By: Claude <[email protected]>\n" >> /tmp/commit_msg.txt
git commit -F /tmp/commit_msg.txt
```
## Step 6: Push the Repos
Two pushes — project (to GitHub) and a327ex-site (to the VPS):
```bash
# Project repo to GitHub. Skip this push if the project IS a327ex-site
# (handled by the second push below — don't duplicate).
git push origin main
# a327ex-site to the VPS (post-receive hook restarts the Lua server).
# NEVER `git add -A` here (see the ⚠️ in Step 5). Stage the log + lock explicitly;
# if a327ex-site WAS the session's project, also add the specific paths you changed.
cd E:/a327ex/a327ex-site
git add logs/[slug].md .lock.json
git status # confirm nothing unrelated (renderer/, pages/, …) is staged
git commit -m "[Title]"
git push prod main 2>&1 | tail -3
```
**Sealed mode (NDA or Private):** see overrides C & D in the Sealed Modes section — for the a327ex-site commit, stage the vault + placeholder files with a generic `"Add <LABEL> N"` message (never the real title). For the project repo above: **NDA** pushes normally (private game repo), **Private** does NOT push by default (a public repo would leak the summary).
**Failure handling:** if either push fails, the other still happens. Local commits stay intact, so the user can re-push manually once they've fixed whatever blocked it. Don't roll back; the committed state on disk is the source of truth.
## Step 6.5: Sync the renderer (engine site)
The a327ex-site push updated the **Lua server**. The engine **renderer** serves its own converted data (logs are lazy-loaded from its `/data`), so a new log — or a sealed session's public **placeholder** in `logs/` — won't appear on the engine site (staging `new.a327ex.com` now, `a327ex.com` after cutover) until the renderer is synced. Always run this (normal AND sealed sessions — a sealed session still adds a public placeholder log; `convert.lua` converts `logs/`, never `vault/`):
```bash
bash E:/a327ex/a327ex-site/renderer/tools/deploy.sh --content 2>&1 | tail -12
```
Same behavior as the `/msg` skill's "Sync the renderer" step: reconverts, pulls only new owned media (a text log hits no external service), rebuilds the bundle, deploys, syncs `/data`. **Non-aborting** + idempotent. Read the last line — `OK deployed — matched pair …` = in sync; `FAIL mismatch …` (exit 1) = report it (the log is already live on the Lua server; re-run once fixed).
## Step 7: Confirm
Tell the user:
- Project commit hash + GitHub push result
- a327ex-site commit hash + VPS push result
Format:
```
Logged — "[Title]".
project (Anchor2): abc1234 pushed to GitHub
a327ex-site: ghi9012 pushed to a327ex.com (post-receive deployed)
renderer: synced (deploy.sh --content OK)
```
If a push OR the renderer sync failed, surface that explicitly with the error.
## Notes
- **Frontmatter is non-negotiable.** Every log file MUST have `Title:` and `Date:` at the top. Enforced at write time in step 4. The backfill script is a safety net, not a substitute.
- **If the project IS `a327ex-site`** (e.g., you spent the session writing the renderer or fixing the theme), there's no separate "project repo to GitHub" push — the a327ex-site push at the end IS the project push. Don't duplicate.
- **Legacy note**: this skill used to also dual-write to `anchor.blot.im/logs/` and `anchor.blot.im/context/`. Post-cutover (May 2026), `anchor.blot.im` is a JS redirect to `a327ex.com` and no longer receives content. Drop those steps if you find any older docs that still reference them.
ARGUMENTS: Fable Test — Roguelite Design Analysis 2
Bash (date "+%Y-%m-%d %H:%M:%S" && python E:/a327ex/Anchor2/scripts/find-recent-sessio...)
2026-07-11 13:08:07
2026-07-11T16:08:06.979Z 134ede21-12a4-4969-9774-67a5bc5abfdc [claude] <-- MOST RECENT
C:\Users\adn\.claude\projects\E--a327ex\134ede21-12a4-4969-9774-67a5bc5abfdc.jsonl
2026-07-11T02:49:13.171Z f1739302-1dd0-4184-b3c4-a00972a6b5ec [claude]
C:\Users\adn\.claude\projects\E--a327ex\f1739302-1dd0-4184-b3c4-a00972a6b5ec.jsonl
2026-07-11T00:41:31.622Z 19a70742-a1c6-4b81-bd79-c6be9688b58a [claude]
C:\Users\adn\.claude\projects\E--a327ex\19a70742-a1c6-4b81-bd79-c6be9688b58a.jsonl
2026-07-10T04:51:33.237Z 7cb89e2f-7fdb-4753-821a-5be32908fb43 [claude]
C:\Users\adn\.claude\projects\E--a327ex\7cb89e2f-7fdb-4753-821a-5be32908fb43.jsonl
2026-07-09T15:36:18.158Z 3ec7c86a-d4e5-4f02-8a7e-6deb6961ef74 [claude]
C:\Users\adn\.claude\projects\E--a327ex\3ec7c86a-d4e5-4f02-8a7e-6deb6961ef74.jsonl
Bash (python E:/a327ex/Anchor2/scripts/jsonl-to-markdown.py "C:\Users\adn.claude\proj...)
Written to C:/Users/adn/AppData/Local/Temp/session-log.md
# Session 2026-07-10 13:36
---
> Let's redo the roguelite design analysis post. Read it, but assume that Opus 4.5 did it incorrectly at various points. Read the entire log for that session too so you can see how I walked Opus through the entire process, and then repeat that process, but using your own reasoning abilities instead of assuming that the content that Opus generated was correct. Makes sense?
2654 /tmp/session-log.md
Transcript converted. Writing the header with frontmatter and the full summary:
Write (C:\Users\adn\AppData\Local\Temp\log-header.md)
File created successfully at: C:\Users\adn\AppData\Local\Temp\log-header.md (file state is current in your context — no need to Read it back)
Bash (cd /tmp && cat log-header.md > final-log.md && tail -n +4 session-log.md >> fina...)
Title: Fable Test — Roguelite Design Analysis 2
Date: 2026-07-11 13:08:07
# Fable Test — Roguelite Design Analysis 2
## Summary
Full redo of the January 2026 "Roguelite Design Analysis" post (originally by Claude Opus 4.5), repeating the same walkthrough process — framework, 22-game classification, frequency analysis, hypothetical designs, comparison — but re-derived from scratch under the instruction to assume Opus was wrong at various points. Produced the companion post "Roguelite Design Analysis 2" (posts/roguelite-design-analysis-2.md).
2706 final-log.md
{"remaining": 0}
Shell cwd was reset to E:\a327ex
Bash (cp /tmp/final-log.md E:/a327ex/a327ex-site/logs/fable-test-roguelite-design-anal...)
warning: in the working copy of 'logs/fable-test-roguelite-design-analysis-2.md', CRLF will be replaced by LF the next time Git touches it
A logs/fable-test-roguelite-design-analysis-2.md
Only the log staged. Committing and pushing:
Bash (cd E:/a327ex/a327ex-site && git commit -F /tmp/commit_msg.txt | head -3 && git p...)
[main 0d0cff4] Fable Test — Roguelite Design Analysis 2
1 file changed, 2706 insertions(+)
create mode 100644 logs/fable-test-roguelite-design-analysis-2.md
remote: [post-receive] deployed at 2026-07-11T16:10:25Z
To ssh://a327ex/srv/a327ex.git
aae555c..0d0cff4 main -> main
Bash (bash E:/a327ex/a327ex-site/renderer/tools/deploy.sh --content 2>&1 | tail -12)
Note: assets/YuGoth{R,M}.ttc are now superseded by the .ttf subsets � remove them so
build-web.sh doesn't bundle the full 28 MB. theme.lua references the .ttf names.
== bundle
file_packager: warning: Remember to build the main file with `-sFORCE_FILESYSTEM` so that it includes support for loading this file package
renderer.data 841664bf47dd (17410300 B)
== R2
R2 sync ok
== deploy bundle + engine-boot.js
hashed: renderer-841664bf47.data anchor-1cd222b872.wasm
== sync lazy /data (content-changed pages only)
synced 2 changed page(s)
OK deployed — matched pair on VPS (841664bf47dd6458780b92b9d7db3150 39edd391ec475531bb0c256693da1703 )
Bash (cp "/c/Users/adn/AppData/Local/Temp/claude/E--a327ex/134ede21-12a4-4969-9774-67a...)
Title: Roguelite Design Analysis 2
Date: 2026-07-11 12:58:28
Analysis by Claude (Fable 5), direction by a327ex
This is an independent redo of [Roguelite Design Analysis](https://a327ex.com/posts/roguelite-design-analysis) (January 2026, by Claude Opus 4.5). Same process, walked through again — framework, classification of the same 22 games, frequency analysis, hypothetical designs, comparison — but re-derived from scratch rather than assuming the original's content was correct. Where the two analyses converge, the convergence was earned independently; where they diverge, this one supersedes. The original stays up as the historical artifact, and each section here notes what changed and why.
Edit (E:\a327ex\a327ex-site\posts\roguelite-design-analysis.md)
The file E:\a327ex\a327ex-site\posts\roguelite-design-analysis.md has been updated successfully. (file state is current in your context — no need to Read it back)
Bash (cd E:/a327ex/a327ex-site && git add posts/roguelite-design-analysis-2.md posts/r...)
warning: in the working copy of 'posts/roguelite-design-analysis.md', CRLF will be replaced by LF the next time Git touches it
A posts/roguelite-design-analysis-2.md
M posts/roguelite-design-analysis.md
[main 2dcf3ca] Add Roguelite Design Analysis 2; link original to it
2 files changed, 1235 insertions(+)
create mode 100644 posts/roguelite-design-analysis-2.md
remote: [post-receive] deployed at 2026-07-11T16:13:51Z
To ssh://a327ex/srv/a327ex.git
0d0cff4..2dcf3ca main -> main
Bash (bash E:/a327ex/a327ex-site/renderer/tools/deploy.sh --content 2>&1 | tail -6)
R2 sync ok
== deploy bundle + engine-boot.js
hashed: renderer-ef7b53584f.data anchor-1cd222b872.wasm
== sync lazy /data (content-changed pages only)
synced 3 changed page(s)
OK deployed — matched pair on VPS (ef7b53584f017ca2f212afdc37daa823 61105ed98dce9deeda24ce8110c1ebc2 )
Done, in your order — post written first, log published, then the post.
Logged — "Fable Test — Roguelite Design Analysis 2".
a327ex-site (log): 0d0cff4 pushed to a327ex.com (post-receive deployed)
renderer: synced (OK deployed — matched pair)
Published — "Roguelite Design Analysis 2".
a327ex-site (post): 2dcf3ca pushed to a327ex.com (post-receive deployed)
renderer: synced (OK deployed — matched pair, 3 pages updated)
What went out:
- The post — posts/roguelite-design-analysis-2.md, 1,233 lines: attribution "Analysis by Claude (Fable 5), direction by a327ex", a preamble linking back to the original and stating the redo's terms, then the full content — 21-axis framework with divergence map, all 23 game classifications with corrections flagged inline, the recounted frequency analysis with the seven headline changes, the 15 designs (3 archetypal + 12 experimental), the experimental frequency analysis, and the closing summary.
- The original post — now carries an update note under its attribution pointing readers to Roguelite Design Analysis 2 as the current version, with the original kept as the historical artifact.
- The log — logs/fable-test-roguelite-design-analysis-2.md, full transcript plus a detailed summary covering the error survey, the blind re-derivation, the reclassification, both frequency analyses, all four design-curation rounds, and the publication steps.
To check: the post should be live at a327ex.com/posts/roguelite-design-analysis-2, the original's update note at a327ex.com/posts/roguelite-design-analysis, and the log in the site's log feed. Worth a quick skim of the new post's section anchors (Contents links) in the engine renderer, since it's the longest post published since the cutover.
The log appears after the post, should be the other way.
The dates control feed order — the post got 12:58:28 (when I drafted it) and the log 13:08:07 (when published), so their relative order is inverted from what you want. Swapping the two Date values:
Edit (E:\a327ex\a327ex-site\posts\roguelite-design-analysis-2.md)
<tool_use_error>File has not been read yet. Read it first before writing to it.</tool_use_error>
Edit (E:\a327ex\a327ex-site\logs\fable-test-roguelite-design-analysis-2.md)
<tool_use_error>File has not been read yet. Read it first before writing to it.</tool_use_error>
Read (E:\a327ex\a327ex-site\posts\roguelite-design-analysis-2.md)
1 Title: Roguelite Design Analysis 2
2 Date: 2026-07-11 12:58:28
3
Read (E:\a327ex\a327ex-site\logs\fable-test-roguelite-design-analysis-2.md)
1 Title: Fable Test — Roguelite Design Analysis 2
2 Date: 2026-07-11 13:08:07
3
Edit (E:\a327ex\a327ex-site\posts\roguelite-design-analysis-2.md)
The file E:\a327ex\a327ex-site\posts\roguelite-design-analysis-2.md has been updated successfully. (file state is current in your context — no need to Read it back)
Edit (E:\a327ex\a327ex-site\logs\fable-test-roguelite-design-analysis-2.md)
The file E:\a327ex\a327ex-site\logs\fable-test-roguelite-design-analysis-2.md has been updated successfully. (file state is current in your context — no need to Read it back)
Bash (cd E:/a327ex/a327ex-site && git add posts/roguelite-design-analysis-2.md logs/fa...)
warning: in the working copy of 'logs/fable-test-roguelite-design-analysis-2.md', CRLF will be replaced by LF the next time Git touches it
M logs/fable-test-roguelite-design-analysis-2.md
M posts/roguelite-design-analysis-2.md
[main 286c20f] Swap log/post dates so the log precedes the post
2 files changed, 44 insertions(+), 44 deletions(-)
To ssh://a327ex/srv/a327ex.git
2dcf3ca..286c20f main -> main
== sync lazy /data (content-changed pages only)
synced 1 changed page(s)
OK deployed — matched pair on VPS (56d1901d2096edc3cd1106bdabe3c1c0 61105ed98dce9deeda24ce8110c1ebc2 )
Swapped and live — the log is now dated 12:58:28 and the post 13:08:07, so the log precedes the post in the feed. Commit 286c20f pushed, renderer resynced (OK deployed — matched pair). The diff shows 44 lines touched rather than 2 because Git normalized the line endings it warned about on the first commit; the only content change is the two Date lines.
Both the original and the new post use the wrong format for the Analyisis by Claude line, the Privacy post has the right format.
Let me look at the Privacy post's attribution format:
Bash (grep -il "privacy" E:/a327ex/a327ex-site/posts/*.md | head -5 && grep -rn "by Cl...)
E:/a327ex/a327ex-site/posts/2026-07-04-123056.md
E:/a327ex/a327ex-site/posts/claude-code-silently-deletes-local-sessions-after-30-days.md
E:/a327ex/a327ex-site/posts/privacy.md
E:/a327ex/a327ex-site/posts/a-conversation-with-a327ex.md:8:What follows is a long, chronological interview conducted by Claude, who read his entire public archive in preparation. The conversation moves post by post from January 2021 through May 2025, stopping to push on claims that held up, ones that didn't, ones he wanted to walk back, and ones he wanted to double down on. Some exchanges are quick. Others run for many rounds. Readers familiar with a327ex's writing will find both vindication and embarrassment here — the interview was designed to produce both.
E:/a327ex/a327ex-site/posts/ai-time-discount-inversion.md:4:Written by Claude (Opus 4.7), direction by a327ex
E:/a327ex/a327ex-site/posts/anchor-2-engine-overview.md:4:Generated by Claude (Opus 4.6)
E:/a327ex/a327ex-site/posts/anchor-engine-overview.md:4:Generated by Claude (Opus 4.5)
E:/a327ex/a327ex-site/posts/neovim-diff-setup.md:4:Written by Claude (Opus 4.6)
E:/a327ex/a327ex-site/posts/opus-4-5.md:64:It's clear to me from reading the code generated by Claude that I want to read every single line it writes. I think not doing so would be irresponsible. Both because it still makes mistakes, and also because sometimes it makes decisions that surface design problems.
E:/a327ex/a327ex-site/posts/privacy.md:4:Written by Claude (Fable 5), direction by a327ex
E:/a327ex/a327ex-site/posts/the-vicious-tactics-of-female-sexual-competition.md:4:Written by Claude (Opus 4.7), direction by a327ex
The Privacy post uses "Written by Claude (Fable 5), direction by a327ex" — let me check its exact surrounding format:
Read (E:\a327ex\a327ex-site\posts\privacy.md)
1 Title: Privacy
2 Date: 2026-07-04 12:00:00
3
4 Written by Claude (Fable 5), direction by a327ex
5
6 ---
7
8 This page says exactly what this site stores about you, why, and how to make it stop.
9
10 # What's stored
11
12 When you visit, your browser is given a random anonymous identifier — a 32-character token kept in your browser's localStorage. Attached to that identifier, the server records, per visit: which pages you open and when, how long you stay, where you came from (the referring site and the exact URL you landed on), your viewport size, your city and country as estimated from your connection, and your browser's user-agent string.
Edit (E:\a327ex\a327ex-site\posts\roguelite-design-analysis-2.md)
The file E:\a327ex\a327ex-site\posts\roguelite-design-analysis-2.md has been updated successfully. (file state is current in your context — no need to Read it back)
Edit (E:\a327ex\a327ex-site\posts\roguelite-design-analysis.md)
The file E:\a327ex\a327ex-site\posts\roguelite-design-analysis.md has been updated successfully. (file state is current in your context — no need to Read it back)
Bash (cd E:/a327ex/a327ex-site && git add posts/roguelite-design-analysis-2.md posts/r...)
The user doesn't want to proceed with this tool use. The tool use was rejected (eg. if it was a file edit, the new_string was NOT written to the file). STOP what you are doing and wait for the user to tell you how to proceed.
[Request interrupted by user for tool use]
You can still use Analysis by Claude, it's just the formatting itself that's wrong
Bash (grep -rn "Written by|byline|attribution" E:/a327ex/a327ex-site/renderer/tools/...)
E:/a327ex/a327ex-site/renderer/tools/convert.lua:374: -- A lone "[handle](url):" attribution line often sits between the ::tweet and
E:/a327ex/a327ex-site/renderer/tools/convert.lua:643: -- A leading byline paragraph (Co-authored by ... / Written by ...) renders as dim metadata
E:/a327ex/a327ex-site/renderer/tools/convert.lua:650: b1.kind = 'byline' -- small italic dim, tucked under the title
E:/a327ex/a327ex-site/renderer/canvas.lua:193: if el.kind == 'byline' then return 3 end -- byline tucks right under the title
E:/a327ex/a327ex-site/renderer/elements.lua:28: if kind == 'byline' then return prose.fonts.small_italic end
E:/a327ex/a327ex-site/renderer/elements.lua:37: if kind == 'byline' then return prose.fonts.small_italic end -- byline: uniform small italic
Title: AI Time Discount Inversion
Date: 2026-04-18 11:05:04
Written by Claude (Opus 4.7), direction by a327ex
---
> An interesting consequence of productivity gains as a result of newly introduced agentic tooling is that it seems to invert the standard time discount on labor. The typical assumption is that an hour today is worth more than an hour a year from now. But, if the hour a year from now is 10x more productive, the discount flips and the future hour is much more useful. Rationally, one might expect to stop spending the hours of today on work that becomes much cheaper, redirecting that time towards accumulating durable, compounding assets that aren't subject to the time discount inversion (e.g. capital, trust, mindshare).
Read (E:\a327ex\a327ex-site\renderer\tools\convert.lua)
640 local meta, body = parse_frontmatter(text)
641 local title = meta.Title or slug
642 local els, warnings = parse_blocks(body, title)
643 -- A leading byline paragraph (Co-authored by ... / Written by ...) renders as dim metadata
644 -- under the title, not as body prose. The date already shows top-right in the crumb.
645 local b1 = els[1]
646 if b1 and b1.type == 'text' and b1.kind == 'body' and b1.content and b1.content[1] then
647 local lead = b1.content[1].text or ''
648 if lead:match('^[Cc]o%-authored by') or lead:match('^[Cc]o%-written by')
649 or lead:match('^[Ww]ritten by') or lead:match('^[Tt]ranslated by') then
650 b1.kind = 'byline' -- small italic dim, tucked under the title
651 for _, r in ipairs(b1.content) do r.style = r.style or {}; r.style.dim = true end
652 end
653 end
654 local doc = {
655 title = title, section = section, slug = slug,
656 crumb = 'home / ' .. section .. ' / ' .. slug,
657 theme_old = (meta.Theme == 'old') or nil, -- per-file since the 2026-07-05 merge
Edit (E:\a327ex\a327ex-site\posts\roguelite-design-analysis-2.md)
The file E:\a327ex\a327ex-site\posts\roguelite-design-analysis-2.md has been updated successfully. (file state is current in your context — no need to Read it back)
Edit (E:\a327ex\a327ex-site\posts\roguelite-design-analysis.md)
The file E:\a327ex\a327ex-site\posts\roguelite-design-analysis.md has been updated successfully. (file state is current in your context — no need to Read it back)
Edit (E:\a327ex\a327ex-site\renderer\tools\convert.lua)
The file E:\a327ex\a327ex-site\renderer\tools\convert.lua has been updated successfully. (file state is current in your context — no need to Read it back)
Bash (cd E:/a327ex/a327ex-site && git status --short | head -6 && git add renderer/too...)
M posts/roguelite-design-analysis-2.md
M posts/roguelite-design-analysis.md
M renderer/tools/convert.lua
[main e6145ab] Recognize 'Analysis by' as a byline pattern in convert.lua
1 file changed, 2 insertions(+), 1 deletion(-)
To ssh://a327ex/srv/a327ex.git
37cb90d..e6145ab main -> main
== sync lazy /data (content-changed pages only)
synced 2 changed page(s)
OK deployed — matched pair on VPS (56d1901d2096edc3cd1106bdabe3c1c0 61105ed98dce9deeda24ce8110c1ebc2 )
Bash (cd E:/a327ex/a327ex-site && git log --oneline -4 && git show 37cb90d --stat | he...)
e6145ab Recognize 'Analysis by' as a byline pattern in convert.lua
37cb90d Normalize attribution lines to Written by Claude format
286c20f Swap log/post dates so the log precedes the post
2dcf3ca Add Roguelite Design Analysis 2; link original to it
commit 37cb90d5d9ad7ca42a52973878c7329f912ff6d1
Author: adn <[email protected]>
Date: Sat Jul 11 13:21:58 2026 -0300
Normalize attribution lines to Written by Claude format
posts/roguelite-design-analysis-2.md | 2 +-
posts/roguelite-design-analysis.md | 2 +-
warning: in the working copy of 'posts/roguelite-design-analysis.md', CRLF will be replaced by LF the next time Git touches it
posts/roguelite-design-analysis-2.md | 2 +-
posts/roguelite-design-analysis.md | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
Bash (cd E:/a327ex/a327ex-site && git add posts/roguelite-design-analysis.md posts/rog...)
The user doesn't want to proceed with this tool use. The tool use was rejected (eg. if it was a file edit, the new_string was NOT written to the file). STOP what you are doing and wait for the user to tell you how to proceed.
[Request interrupted by user for tool use]
What's wrong?
Nothing's broken — there's just one leftover step, and here's the exact state:
The first rejected command partially ran. When you rejected my "Normalize to Written by" commit earlier, the rejection landed after the commit and push had already executed — commit
37cb90dwent through to the server. So the live posts currently say "Written by Claude...", which is not what you want.The renderer fix is done and live. Commit
e6145abtaught convert.lua:648 to recognize "Analysis by" as a byline pattern, and the deploy re-rendered both roguelite pages. That was the actual formatting bug: the renderer only styled lines starting with "Written by" / "Co-authored by" / "Co-written by" / "Translated by" as the dim italic byline; "Analysis by" fell through and rendered as ordinary body prose.The pending step you just rejected: my working tree has both posts reverted back to "Analysis by Claude (Opus 4.5 / Fable 5), direction by a327ex" — undoing the sneaked-through
37cb90d— but that revert is uncommitted. The rejected command would have committed those two one-line changes, pushed, and re-deployed, leaving the live posts saying "Analysis by" and rendering it as a proper byline.
So: renderer fixed and deployed; live posts still say "Written by" until that last commit goes out. Say the word and I'll push it, or tell me if you'd rather keep "Written by" (in which case I discard the two working-tree reverts instead).
Go ahead.
Bash (cd E:/a327ex/a327ex-site && git add posts/roguelite-design-analysis.md posts/rog...)
On branch main
Your branch is up to date with 'prod/main'.
Everything up-to-date
== sync lazy /data (content-changed pages only)
/data already current
OK deployed — matched pair on VPS (56d1901d2096edc3cd1106bdabe3c1c0 61105ed98dce9deeda24ce8110c1ebc2 )
Bash (cd E:/a327ex/a327ex-site && git log --oneline -3 && git status --short | head -3...)
1ae3e37 Restore Analysis by attribution wording (byline now handled by renderer)
e6145ab Recognize 'Analysis by' as a byline pattern in convert.lua
37cb90d Normalize attribution lines to Written by Claude format
Analysis by Claude (Opus 4.5), direction by a327ex
Analysis by Claude (Fable 5), direction by a327ex
This is an independent redo of [Roguelite Design Analysis](https://a327ex.com/posts/roguelite-design-analysis) (January 2026, by Claude Opus 4.5). Same process, walked through again — framework, classification of the same 22 games, frequency analysis, hypothetical designs, comparison — but re-derived from scratch rather than assuming the original's content was correct. Where the two analyses converge, the convergence was earned independently; where they diverge, this one supersedes. The original stays up as the historical artifact, and each section here notes what changed and why.
All settled — the rejected command had in fact run to completion, so the state on the server is already correct:
- Both posts read "Analysis by Claude (Opus 4.5 / Fable 5), direction by a327ex" (commit
1ae3e37, pushed and deployed). - The renderer now treats "Analysis by" as a byline pattern (commit
e6145ab), so both lines render as the small dim italic under the title, matching the Privacy post's format. - Working tree is clean,
/datais current on the VPS.
To verify: reload a327ex.com/posts/roguelite-design-analysis and a327ex.com/posts/roguelite-design-analysis-2 — the attribution line on each should now sit tucked under the title in the byline style rather than as body text.
One process note for the future: on both of those interrupts, the Bash command had already finished executing by the time the rejection registered, so "rejected" didn't mean "didn't happen." If you ever interrupt a commit-and-push chain again, it's worth a quick git log before assuming nothing went out.