NAMING_METHOD.md

systems/NAMING_METHOD.md

Naming & Persona Method — the standing strategy

Josh, 2026-07-04: the difficulty-ladder naming pass (Wellspring · Veiled ·

Fading · Sundered · The Forgotten One) is "the workflow and strategy that means

following our CVD and vision and canon." This note makes that method the

standard for ALL naming and persona work — difficulty tiers, NPC names/personas

(Ruling 6), site classes, ability/school names, weapon names, region labels —

not a one-off.

The loop

1. Deep-dive the canon first. Before proposing any name, read the governing

docs and extract the single axis/concept the name must sit on, with exact

quoted lines. Names are derived FROM canon (the vril-withdrawal dial, the

culture/era the character lives in, the trade/thread the site serves), never

invented over the top of it. If the canon does not support the lore a name

needs, discard the name — do not invent canon to justify it (cardinal rule).

2. Generate widely, on distinct axes. Produce several candidate sets on

genuinely different conceptual axes (e.g. the realm's fading reach vs the

veil thickening vs the memory of home dimming), not variations on one idea.

3. Adversarially filter — this is the load-bearing step. Attack every

candidate on four surfaces: (a) will a real player instantly order/parse it

and feel it as evocative, not obscure or academic — the "vibe" test; (b) is

every word genuinely canon-grounded (cite the line); (c) does it bridge the

whole span it must cover, not just one end; (d) does it avoid the known

failure modes below. Kill anything that fails; keep only survivors.

4. Test it works. State the winner as one legible through-line (the

difficulty ladder reads as one sentence of the realm receding), and confirm

it composes with the fixed points already ruled.

5. Ground and record. Land it in the owning doc with the quoted canon, mark

the ruling, and retire the superseded passes by name so they are not re-tried.

Failure modes to design against (learned from the rejected passes)

Realm Reaches / Within Reach / …" was rejected for being phrases).

player's own condition don't land (Flow/Ebb/Drought — right vision, wrong

register; the player must feel the name as *their* state, e.g. the bond with

home).

rejected as abstractions that don't order or evoke.

endpoint ("Forsaken" collided with "The Forgotten One"). Leave clear space

between adjacent names.

its span, not only the near one or only the far one.

Persona extension (Ruling 6)

For NPCs the same loop runs, plus: the name and persona are grounded in the

culture and era the chapter inhabits; puns/wordplay tie to profession or

attitude; humor is calibrated by moral standing (poke freely at thieves and

deplorables, respectfully elsewhere); and each NPC carries a real

persona/personality/strength, not a label. Same discipline: derive from the

chapter's actual cultural substrate, adversarially check it lands, never invent

culture that the canon/research does not support.

Tooling

Run this as a deep-dive + adversarial Workflow (or a focused agent with a

markdown deliverable) — the exact pattern used for the difficulty ladder and the

Thread-2 finale question. Structured-output schemas for naming passes should keep

required fields minimal (the difficulty-names agent errored on an over-strict

schema); prefer a markdown report the main session reviews and lands.

Generated by harness/site/structure_site.py — the URL path is the repo path. review root