slaguru666andClaude Opus 5 c1e467c91b Prose wins over the field; the play sheet carries avoid; the guard is testable
Still unreleased, but module.json is at 0.6.5 now.

initiativeWarning checked the field before the prose, so a hand-edited file
carrying both printed the warning twice — the exact fault the migration was
meant to end. Prose is checked first now and always wins.

The play sheet was the only surface that did not render `avoid`, so three
legacy rosters whose warning lived there — church, forest and temple at
nightmare — lost it entirely: the helper suppressed its fallback on finding
prose the play sheet never showed. It renders `avoid` now, which it should
have anyway; it is how the table gets past a fight without having one, which
is table-facing by definition. All five surfaces now render both prose
fields, so "the prose already says it" means the same thing everywhere.

Replayed all 64 rosters in their pre-field form through every surface: 26
need a warning, 130 of 130 checks say it exactly once. The current packs
give the same result.

commit() no longer mutates st before the write — it passes an incremented
copy, so a failed write really does leave the state as it was, which is what
the retry warning promises.

The single-flight guard moved into stage.mjs as singleFlight() and has four
tests: overlapping calls never run together, the second is refused rather
than queued, the guard clears afterwards, and a throw does not wedge it. It
closes the window within one client only; two GM browsers still race, and
that needs a world-level lock rather than a module variable.

41 core tests, 60 adapter tests.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-06 00:46:43 +01:00
2026-08-05 12:55:33 +01:00

DELVE

An authoring system and Foundry VTT module for the VANITY tabletop RPG. Press one button and it generates a whole dungeon — fiction, areas, maps, encounters, hoards and a journal you can read cold — then drops it into your world.

Install (Foundry)

Add-on Modules → Install Module → Manifest URL:

https://github.com/slaguru666/vanity-delve/releases/latest/download/module.json

Requires the VANITY system, 0.10.4 or later — that is the release the Forge seams landed in, and without them a delve emits nine stray chat cards and three stray folders.

  • ⛏ raise a dungeon
  • 🗑 remove one you don't want — it deletes exactly what it made and nothing else
  • ⏩ stage a delve you finished at the desk

Also a CLI

core/ is pure JavaScript with no Foundry dependencies, so a delve can be generated, rerolled and finished outside the VTT:

node core/cli.mjs --new --seed=my-delve --file=my.json
node core/cli.mjs --file=my.json --worksheet    # everything, with prompts for what only you can write
node core/cli.mjs --file=my.json --reroll=3:situation
node core/cli.mjs --file=my.json --play         # the tight, table-facing sheet

What it does and does not do

It generates the fiction, the order and the pressure. It does not write your read-aloud text or your climax, and it says so — those are prompts, not output. It gets you to a strong first draft in a minute instead of an evening, then gets out of the way.

DESIGN.md has the whole design history, including four rounds of adversarial review and two paper playtests that failed before anything worked.

Layout

core/ the generator — pure JS, 39 tests
foundry-module/ the Foundry module, with core/ vendored
paper/ a hand-written delve and both playtest logs
spike/ the harness that measured VANITY's Forge outside Foundry
samples/ generated output

Licence

MIT — see LICENSE.

S
Description
No description provided
Readme MIT
456 KiB
Languages
JavaScript 98.2%
Handlebars 1.3%
CSS 0.5%