T4 monster tuning so martial leaders land in the 60-75% band (underdark
59/80, feywild 65/84 at L10/L12, n=50); casters trail (class-side gap that
monster tuning provably can't compress -- Pass 1 showed casters pinned at 0%
while martials moved). T5 deferred (walls everyone at its L12 floor; needs an
L15-16 corpus).
- dnd_bestiary.go: underdark elite/boss HP+AC up + caster-lethal proc cuts
(mind_flayer/drow_mage/roper); feywild HP+AC up.
- bestiary_srd.go: feywild multiattack profiles (fomorian/night_hag/green_hag)
+ Thornmother 2->3 lashes -- HP/AC alone didn't move feywild's low-damage
roster; multiattack is what pulls facerolling martials into band.
- zone_graph_feywild_crossing.go: free fork1's marsh edge. fork1 was the only
fork in the game with every exit skill-locked (CHA+Perception, no LockNone)
and deterministic no-retry rolls -- a prod SOFT-LOCK stranding ~60% of
players (low CHA+WIS). Kept grove's CHA bargain as a bonus route.
- expedition_sim.go: firstUnlockedForkChoice -- sim fork policy picks the
first unlocked option instead of blind 'go 1' (which looped forever on
locked forks); halts fork_all_locked if none.
- tests: graph-wide TestZoneGraphs_NoSoftLockedFork + fork1 free-path guard.
Writeup: sim_results/d8f_findings.md
Both T4 zones follow the D1-a/b/c pattern: extend the graph so the
longest entry→boss walk lands in band, keep the zone's authored
topology intact.
underdark (T4): 10 → 46 nodes, longest 30 (band 28-34)
feywild_crossing (T4): 9 → 53 nodes, longest 30 (band 28-34)
Topology preserved per zone:
- Underdark: 4-region authoring intact (every node carries a valid
RegionID); 3-way fork1 (drow R2 / illithid R3 / deep_chasm R1)
with LockNone / LockPerception / LockStatCheck CON; deep_chasm
intentionally stays R1; all three arms converge at the R4
throne_approach merge. Adds the missing Trap anchor (Collapsed
Arch) in the R1 preamble.
- Feywild Crossing: woven forks intact — hag_circle still has two
incoming edges (one per first-stage path), time_eddy stays
grove-exclusive, illusion_garden stays marsh-exclusive, fork1
remains CHA-vs-Perception with no LockNone option. Adds the
missing Trap anchor (Cursed Thicket) and a fae_court MERGE so
the three second-stage endings converge into one final boss
approach instead of triplicating it.
MinRooms/MaxRooms re-pitched 8-10 → 28-34 so the dice fallback also
lands in band for any future graphless variant.
T5 zones (dragons_lair, abyss_portal) deferred to D1-e — those
need a RegionID backfill on top of the length extension since their
regionsByZone entries are not currently honored by their graphs.
T4 zone, sixth authored graph. Shape: woven forks — two first-stage
forks each lead to a second-stage fork; hag_circle is shared between
both first-stage paths while time_eddy (grove-only) and
illusion_garden (marsh-only, secret) are exclusive to one side.
Captures the Feywild theme of "the path you walked is not the path
you arrived on."
First authored zone with LockStatCheck CHA, completing the stat
roster (CHA joins STR/DEX/INT/WIS in shipping zones). Also the first
zone where fork1 has no LockNone option — both first-stage edges are
locked (CHA DC 14 vs. Perception DC 14), forcing the player to commit
to whichever check they're stronger at.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>