Dialogue.  · The word well

The word well — a persona's own secrets

The house keeps one generic word bank, and any game that draws a secret draws from it: 西瓜, 雨伞, 地铁. It is correct, it is safe, and it is nobody's. The word well is the same machinery with a different author — every persona gets its own hundred words and its own hundred pairs, per language, so a secret drawn in their room lands as of course that's theirs. This page records the design, the laws the build paid for, the first qualification run, and the verdict. Built 2026-08-05 as groundwork for the 20Q / 卧底 overhaul; nothing is wired into a game yet — that is deliberately a later session's job.

The thesis, in one line. A secret is only worth guessing when it belongs to somebody. Generic banks make every room the same room; a well makes the twenty questions about the character sitting at the table — and the price of that is a machine honest enough to say this persona only has forty rather than quietly filling the other sixty from the generic bank with their name on the label.

1 · What the well is, and what it is not

lib/wordpools.py already solved the hard security half of drawing a secret: the room draws with a CSPRNG at apply time, after the speech has published, so the transcript never holds the word and therefore cannot leak it. The avoid-list, the placeholder resolution, the two pool names — all of that is finished and the well does not touch any of it.

What the well replaces is the authorship of the bank. One hand-curated general list becomes one generated list per persona per language.

LayerOwnerChanged by the well
the draw — CSPRNG at apply time, avoid-list, placeholder resolution lib/wordpools.py · Room._draw_pool no — untouched
the entries — what is actually in the pool a hand-curated general list yes — one well per persona, per kind, per language
the game that draws20Q · 卧底 · any future kit no — out of scope for this session, by instruction

The generic bank keeps a second job in the new arrangement, and it is the more interesting one: it is the negative control. A sample of it is pasted into every generator call and every judge call with one instruction — this is what a list looks like with no character in it; anything at this register fails. The bank is also checked mechanically, so an item that literally appears in it is dropped before it ever reaches the judge.

2 · The house grammar — the mind proposes, the world salts and picks

The dice specimen settled how this house builds anything that mixes code and a model: the world is code and the voice is a mind, and the seam is engineered so neither ever does the other's job. The well is that same split applied to authorship.

① THE WORLD SALTS facet × scope × sound rolled by CSPRNG, drawn without replacement, BEFORE the call 28 × 10 × a letter quota ② THE MIND PROPOSES one persona call reads profile.md + tags.txt answers the salt it did not pick 12 items asked · fewer is allowed ③ THE WORLD PICKS shape · bank · dedup, then the JUDGE a separate call scores every candidate; the CODE applies the gate, not the model fit · concrete · fresh ( + seam · sym ) next salt — until the target is full, or the well runs dry THE NO-PADDING LAW four salts in a row returning nothing = the persona's ceiling. The run reports capped at N and stops — it never fills the gap from the generic bank.
fig 1 · one batch of the loop. Every arrow crosses the seam between code and model exactly once.

Why the salt exists at all

Ask a model twice for a hundred things from this character's world and you get nearly the same list twice, because a modal model has favourites and a persona profile does not dislodge them. So the server rolls the constraint before the call, from wheels the model cannot see the shape of:

Both wheels are drawn without replacement and reshuffled when spent, so a full well walks through most of the facet space instead of circling one corner of it.

PER_BATCH is the diversity dial, not a throughput dial. The first build asked for 20 items per salt, which fills a 100-well in five salts — and the first smoke run came back with ten surface finishes in a row (贴面 · 木纹 · 钢琴漆 · 拉丝铝 · 镀铬…), every one of them a variation on its neighbour. Twelve per salt costs more calls, which prefix caching makes nearly free, and buys roughly nine facets across a full well.

3 · Two kinds, and why the pair needs two minds

word is one secret for twenty questions: a countable, pointable thing, guessable by a stranger, tiered easy / medium / hard.

pair is two confusables for the hidden-role game — everyone gets word A, one player gets word B, everybody describes their own word, the table hunts the odd one out. A pair cannot be written by the persona call, and the reason is worth stating plainly: knowing a world and knowing what makes two words confusable are different jobs. The persona knows that a Shanghai property advisor lives among 板块 and 学区房; it has no particular skill at judging whether two words are equally describable under pressure. So the pair runs in two stages, with the persona out of the room for the second.

① THE PERSONA — seeds one thing from its world that has near-neighbours, plus the FRAME the family sits in 猪脚饭 · “a one-plate rice lunch” ② THE PAIR-SMITH — generic no persona in the room. 2–3 candidates per seed, each cutting a DIFFERENT seam — licensed to step sideways off the seed 猪脚饭 → 猪脚饭 / 烧鸭饭 ③ THE JUDGE — best per seed scores fit · concrete · fresh · seam · sym; the code keeps the single highest-scoring candidate per seed, and only one pair per word 2 or 3 proposed → at most 1 kept THE PAIR RUBRIC — all five, or the pair is dead 1 · SAME AISLE “which is it, A or B?” has to sound like a natural question. 透明唱片机盖/透明锅盖 shares an adjective, not an aisle. 2 · ONE CLEAN SEAM exactly one axis of difference, nameable in three words. Two seams and descriptions diverge at random; none and the round cannot end. 3 · SAME COMMONNESS if one half is rarer, the player holding it describes it more carefully and outs themselves in one turn. 4 · SAME GENERALITY neither half may be a subtype, a variety, a brand or a fancier word for the other. 苹果/红富士 is dead. 鞋/运动鞋 is dead. 5 · WORDS PEOPLE HAVE each half is the short ordinary name of a thing, already in every player's head before the game started.
fig 2 · the pair build. Stage ② is deliberately persona-blind — it is a craft job, not a character job.
The modifier hack is the commonest way to fail. Handed a long seed, a smith will produce a pair by swapping one word inside it — 白珐琅榨汁机/白珐琅咖啡机, 日式盆栽剪刀/日式裁缝剪刀, black leather chair / brown leather chair. The seam there is findable by reading the two words, which means the round is decided before anybody has spoken. The fix is stated as an instruction (cut the phrase back to the plain thing and pair that) and enforced mechanically by the shape filter below.

4 · The judge, and why the code holds the gate

A separate call scores every candidate on 0–3 axes. The judge scores; it does not decide. The keep is a threshold in Python, because a threshold is a dial we can turn after the owner eyeballs a sample, and a model's own verdict is a thing that drifts. The judge is still asked for a verdict — purely so the disagreement between its verdict and the gate can be counted.

axisquestion03gate
fitis it theirs? nothing in the profile puts it in their hands a reader who knows them says of course≥ 2
concreteis it playable? an abstraction, an event, a proper name, a model number a countable, pointable thing, describable without naming it≥ 2
freshis it anyone's? it is in the house bank, or at exactly that register a persona-less host would never have written it≥ 2
seam (pairs)can the round end? no seam a describer could dance around exactly one clean, nameable axis of difference≥ 2
sym (pairs)is it fair? one half is a subtype of the other — the pair leaks the spy both halves equally common and equally describable≥ 2
tierhow hard?easy · medium · hard — the honest read for a stranger, not a quality score

Three tests the judge is given in words

5 · The free half — what never reaches the judge

Four mechanical filters run before any scoring call. They cost nothing, they never drift, and between them they catch the three classes of defect the judge was measurably soft on.

filterrulewhat it catches
shape no digits · no latin letters in a Chinese item · no capitals in an English one · ≤ 4 CJK characters or ≤ 2 English words ET66计算器, 606搁架系统 — a model number is not a secret, a stranger cannot narrow it down. Also the whole modifier hack, since 日式盆栽剪刀 is six characters long.
house bank the item, or the unordered pair, literally appears in wordpools.py the freshness floor, for free — 剪刀 and 闹钟 both turned up in the first designer run and both are already in the bank
near-variant containment — measured in characters for Chinese and in words for English a well holding both 剪刀 and 盆景剪刀 has two secrets the table cannot tell apart. The unit matters: character containment would call pancake a variant of pan.
one pair per word a word may anchor at most one accepted pair a hundred pairs built out of forty words — variety by construction, and it costs some yield, which is the honest trade

6 · The no-padding law

A persona whose world cannot fill a hundred must fail loudly at its real ceiling. We would rather learn a persona's floor than ship filler wearing their name. A well padded out of the generic bank is worse than a short well, because the short well tells you something true and the padded one tells you nothing at all while looking complete.

It is enforced in four places, and the fourth is the one that took a rewrite:

  1. The generator is told, in as many words, that a short honest batch is the correct answer and that an item a generic host would also have written is a failure rather than a filler.
  2. The judge's fresh axis is anchored on the house bank as an explicit negative control, sampled fresh into every call so the model cannot learn to dodge a fixed list.
  3. The loop stops after four consecutive barren salts and reports capped at N.
  4. A barren salt is not a persona's ceiling. "Something people wait for or queue for, from a designer's failures" comes back empty for almost anybody — that is a fact about the wheel. The first calibration treated any batch yielding fewer than two items as barren and gave up after three, which capped Dieter Rams at eight. Barren now means contributed nothing at all, and the verdict needs four different salts in a row to agree.

The audit therefore separates why a run stopped: full · dry (the ceiling — four barren salts) · batch_ceiling (the budget ran out first, which is a fact about the run, not about the persona). Conflating the last two would let a cheap run libel a rich persona.

7 · The qualification run — 2026-08-05

Three personas, chosen to be as different as the roster allows, each asked for 100 words and 100 pairs in both Chinese and English — twelve wells from one command.

Cost and shape of the run: 1,406 API calls on deepseek-v4-pro, $1.09 for all twelve wells, ~25 minutes of wall clock at twelve-way concurrency. 4,462 candidates were proposed; 645 were dropped as duplicates or near-variants, 169 for unplayable shape, 44 for being literally in the house bank, 521 had fit capped by the hedge scan, and the judge cut 2,968.

personakindlangfilledstoppedproposedcut by the judgeblocked bycost
Anthony Bourdainwordzh97/100dry — the ceiling760313 (41%)fit 245 · concrete 33 · fresh 271$0.108
Anthony Bourdainworden28/100dry — the ceiling196111 (57%)fit 70 · concrete 18 · fresh 86$0.033
Anthony Bourdainpairzh76/100batch ceiling582440 (76%)fit 309 · concrete 12 · fresh 349 · seam 76 · sym 100$0.169
Anthony Bourdainpairen84/100batch ceiling630453 (72%)fit 273 · concrete 14 · fresh 337 · seam 81 · sym 118$0.163
Dieter Ramswordzh26/100dry — the ceiling235101 (43%)fit 78 · concrete 41 · fresh 84$0.033
Dieter Ramsworden13/100dry — the ceiling8437 (44%)fit 21 · concrete 3 · fresh 35$0.011
Dieter Ramspairzh51/100batch ceiling352254 (72%)fit 220 · fresh 210 · seam 40 · sym 37$0.121
Dieter Ramspairen49/100batch ceiling559449 (80%)fit 380 · concrete 12 · fresh 356 · seam 72 · sym 80$0.147
小胖 (Xiao Pang)wordzh7/100dry — the ceiling8646 (54%)fit 20 · concrete 27 · fresh 31$0.014
小胖 (Xiao Pang)worden10/100dry — the ceiling6742 (63%)fit 36 · concrete 6 · fresh 32$0.012
小胖 (Xiao Pang)pairzh49/100batch ceiling513413 (80%)fit 354 · concrete 31 · fresh 358 · seam 28 · sym 59$0.159
小胖 (Xiao Pang)pairen27/100batch ceiling398309 (78%)fit 294 · concrete 8 · fresh 286 · seam 30 · sym 28$0.118
total$1.09
Not one well reached 100 — and the first reading of that table was wrong. Every word well above stopped dry (four barren salts) while every pair well ran out of batch_ceiling (the 90-batch budget). That is not one measurement, it is two different measurements printed in the same column, and the second pass below shows what it cost.

The second pass — the same wells with a wider stopping rule

Bourdain returning 97 words in Chinese and 28 in English, from one profile under one rubric, is not a fact about his life. So the six word wells were re-run with --dry-streak 10 instead of 4 — one dial, nothing else changed:

wellpass 1 · streak 4pass 2 · streak 10growth pass 2 stoppedcut rate
Bourdain · word · en2880 2.9×batch ceiling — still producing 57% → 45%
Bourdain · word · zh9774 0.8×batch ceiling — still producing 41% → 48%
Rams · word · en1349 3.8×batch ceiling — still producing 44% → 41%
Rams · word · zh2654 2.1×batch ceiling — still producing 43% → 40%
小胖 · word · en1015 1.5×dry at batch 27 — exhausted 63% → 60%
小胖 · word · zh714 2.0×dry at batch 28 — exhausted 54% → 32%
Four wells out of six were the stopping rule. The fifth and sixth are the finding. Bourdain's and Rams' wells all four ran the full 90 batches and were still producing when the budget stopped them. 小胖's went dry at batch 27 and 28 — a third of the distance, under a rule two and a half times more patient than the one that produced his 7. A world that ends and a loop that gives up look identical until you move the dial.
And the counts are noisy in both directions. Bourdain's Chinese well went 97 → 74 between passes at essentially the same budget — a 25% swing with nothing changed but which salts the CSPRNG happened to draw. So a survivor count is not a quantity to compare across runs at all. What is stable across both passes is the pair of things this page now rests on: whether a well ends dry or ends broke, and the share of proposals each axis kills.

The score distributions

Coral bars are at or above the gate. The mass sits below it in every case, which is what a working judge looks like — and the shape of the tail is the interesting part: it is long and thin for words (a few outstanding items, a wide field of near-misses) and fatter for pairs, where a candidate that survives the seam and symmetry tests tends to survive everything.

Anthony Bourdain 547 scored 0 2 3 4 5 6 7 8 9 Dieter Rams 176 scored 2 3 4 5 6 7 8 9 小胖 (Xiao Pang) 105 scored 2 3 4 5 6 7 8 9 total score out of 9 — coral = at or above the gate
fig 3 · every word candidate the judge scored, by total out of 9. The gate needs 2+ on each of three axes, so 6 is the floor and most 6s still fail on one axis.
Anthony Bourdain 1111 scored 3 4 5 6 7 8 9 10 11 12 13 14 15 Dieter Rams 841 scored 3 4 5 6 7 8 9 10 11 12 13 14 15 小胖 (Xiao Pang) 826 scored 0 2 3 4 5 6 7 8 9 10 11 12 13 14 15 total score out of 15 — coral = at or above the gate
fig 4 · every pair candidate scored, by total out of 15. Five axes, gate 2+ on each — 10 is the floor.

Anthony Bourdain — Chinese: 97 words · 76 pairs

wordtierscorewhy it is theirs
蚝壳easy9/9As a chef who worked in French brasseries and handled countless oysters, Bourdain discarded mountains of oyster shells.
海胆easy9/9Pleasure over purity, the scariest thing offered. He eats sea urchin in Japan, Sicily, wherever — often on camera, often with a cigarette in the off-hand.
骨头easy8/9At Les Halles he butchered whole animals and used every part; a bone is the evidence of that nose-to-tail ethos.
血蛎easy8/9On a family trip he ate a raw oyster off an oysterman—blood oysters are a specific, visceral version that evokes that first shocking taste.
沙爹串medium8/9Street skewers he'd eat by the dozen in Vietnam and other parts of Asia, where queuing at a popular stall is a ritual.
账单medium8/9He paid countless meal tabs for strangers or struggling line cooks—a gesture of his quiet generosity.
扁瓶medium8/9He kept a hip flask in his jacket, especially during the drug years, for immediate relief or sharing with cooks.
绞肉机medium8/9He worked in kitchens where grinding meat in-house was the norm; Les Halles used old-school butchery.
臭豆腐medium8/9The definition of a strong-smelling food he'd seek out and eat without hesitation, true to his creed of trying everything.
琴弦medium8/9His father’s classical-music world left him with guitar strings from his own punk phase, a link to his restless youth.
单子medium8/9He lived by the dupe — the ticket machine spitting orders — and wrote about the pressure of a board full of checks.
斗场medium7/9His jiu-jitsu life revolves around the mats; he competed in tournament arenas and trained on the fighting floor.
醉蟹medium7/9The kind of risky, funky, nose-to-tail dish he'd seek out in Shanghai or a Chinatown back alley, chasing that dangerous thrill.
防弹衣medium7/9Wore body armor while filming in conflict zones like Beirut and Libya.
刀鞘medium7/9The battered leather knife sheath that protected the tools of a career line cook.
血肠medium7/9A dish he'd eat without hesitation — 'he eats the scariest thing offered, on principle,' and offal is his joy.
牛血汤medium7/9He eats the scariest thing offered, on principle; Vietnam street food includes blood soup, and he’d sit on a plastic stool and try it.
牛杂medium6/9At Les Halles he used every part of the animal, offal is referenced in 'The Nasty Bits'.
芹根hard9/9Celery root—ugly, humble, transformed into a classic French rémoulade; exactly the nose-to-tail, no-waste cooking of his kitchen.
莱斯霍hard9/9Brasserie Les Halles, where he was executive chef before Kitchen Confidential, the restaurant that made him content.
seedthe chosen pairthe seamscoretier
柔术带柔术带 / 空手道带sport: jiujitsu vs karate15/15hard
蟹壳蟹壳 / 虾壳crab vs shrimp shell15/15medium
切肉锯切肉锯 / 斩骨刀sawing vs chopping15/15medium
排风扇排风扇 / 抽油烟机wall fan vs range hood15/15medium
打荷台打荷台 / 炒炉prep station vs cooking stove15/15medium
酒精炉酒精炉 / 卡式炉alcohol vs gas canister15/15medium
鱼露瓶鱼露瓶 / 酱油瓶condiment type: fish sauce vs soy sauce15/15medium
火车票火车票 / 汽车票train vs bus ticket15/15medium
暗疤伤疤 / 胎记acquired vs innate mark14/15medium
臭豆腐臭豆腐 / 腐乳fried vs fermented tofu14/15hard
搪瓷缸搪瓷缸 / 保温壶open cup vs. insulated13/15medium
鸡粥鸡粥 / 鱼片粥chicken vs fish12/15medium
小塑料椅塑料凳 / 木凳plastic vs wood12/15medium
破抹布抹布 / 钢丝球cloth vs. metal scrubber12/15medium
砂锅砂锅 / 土锅Chinese clay pot vs Japanese donabe11/15medium

Anthony Bourdain — English: 28 words · 84 pairs

wordtierscorewhy it is theirs
oystereasy9/9As a child in France, he ate an oyster straight from the sea, the defining food epiphany of his life.
rickshaweasy9/9He rode one through the streets of Hanoi in Vietnam, the country that stole his heart, and ate off a plastic stool at a street food stall.
scootereasy9/9He describes Vietnam's streets filled with 'scooters, fish sauce, a plastic stool' — the primary way he moves through his favorite country.
fish sauceeasy8/9Vietnam stole his heart; the scent of two-stroke engines and fish sauce is his spirit-home sense-memory.
porkeasy8/9His narration piles up 'sodium-loaded pork fat,' and the brasserie's short ribs and oxtail sit alongside his declared love for every part of the animal — pork is the workhorse of that world.
postcardeasy7/9He's the man who wanted to 'leave something good behind,' and the profile's lyrical travel-as-change refrain, paired with a daughter at home, makes a token of a place he's been profoundly his.
onion soupmedium9/9Les Halles, his brasserie home, was famous for its onion soup gratinée; he served it fiercely, and it represented traditional, ego-free cooking at the end of his kitchen career.
sarongmedium9/9he wore one in the Provincetown kitchen where he first idolized the 'pirate-like' cooks
beltmedium9/9In his fifties, he obsessed over Brazilian jiu-jitsu and earned a blue belt, his proudest achievement after fatherhood.
vindaloomedium9/9In an episode of Parts Unknown, he ate a fiery Goan vindaloo at the 'Vincent van Gogh Bar' and struggled with the heat, turning a meal into a memorable, painful moment.
methadonemedium9/9In his Reddit AMA, when asked what food he'd never taste again, he answered 'Methadone'—a nodding reference to his past addiction.
brasseriemedium8/9He was executive chef at Brasserie Les Halles, a loud, butter-soaked, old-school French brasserie, where he was finally content.
headbandmedium8/9The Provincetown line cooks who were 'like gods' wore headbands; that pirate look made him want to be a chef.
skiffmedium8/9A childhood memory of a flat oyster in France happened off 'Monsieur Saint-Jour's boat' in Arcachon Bay — a small skiff is how the oysterman worked.
icebreakermedium8/9Parts Unknown took him to the ends of the earth, including Antarctica — the icebreaking ship itself is his way in.
turkey carcassmedium7/9In Kitchen Confidential, he describes saving a Thanksgiving turkey carcass to make stock, and the Les Halles cookbook relies on leftover bones.
pintailhard9/9A rare treat from his Provincetown days: the cooks 'roasted a couple of fat pintail in the duck press'—a pirate feast.
undertakerhard9/9In Kitchen Confidential, he wrote the infamous chapter about the 'undertaker' or mortuary fridge where cooks hide mistakes; a dark inside joke of restaurant life.
patchhard9/9The jiu-jitsu obsession, the blue belt, the tournament gold — in that culture, patches on a gi are markers of lineage, affiliation, and earned rank, all of which he wore proudly.
oxtailhard7/9The New Yorker essay that launched his career ends with him admiring a heap of oxtail; a staple of the brasserie kitchen.
seedthe chosen pairthe seamscoretier
uniuni / ikurasea urchin vs salmon roe15/15hard
hotel televisiontelevision / minibarwatch vs consume15/15medium
french knifefrench knife / boning knifegeneral purpose vs specific task15/15medium
metal spatulametal spatula / rubber spatularigid vs flexible15/15medium
snailsnail / oysterland shell vs sea shell15/15medium
tejatetejate / horchatamaize cacao vs. rice cinnamon drink14/15medium
gizzardgizzard / livertexture and function14/15medium
trottertrotter / hockfoot vs lower leg14/15medium
plastic stoolplastic stool / wooden stoolplastic vs wooden14/15medium
bodegabodega / convenience storecorner shop vs chain13/15medium
pass-through warmerheat lamp / steam tableradiant vs water heat13/15medium
bloodblood sausage / liverwurstblood vs liver13/15medium
unsent letterunsent letter / lost letternever sent vs sent but lost12/15medium
oarfishoarfish / anglerfishelongated vs globular body11/15medium
pickle brinepickle brine / olive oilbrine vs oil11/15medium

Dieter Rams — Chinese: 26 words · 51 pairs

wordtierscorewhy it is theirs
书架easy8/9Creator of the 606 Universal Shelving System for Vitsœ, still in his Kronberg home.
素描本easy8/9He hand-sketches at a large drawing table; the sketchbook is his primary design record rather than a computer.
画板easy8/9He hand-sketched at a large drawing table throughout his career; a drawing board was his primary tool.
园艺剪medium9/9Tends bonsai and garden with small scissors, reflecting his design philosophy of careful subtraction.
削笔屑medium9/9He still hand-sketches at a large drawing table with pencils; pencil shavings are the daily discard of his design process.
盆景medium9/9In Kronberg he tends bonsai with small scissors, in a terraced garden homage to Japanese gardens — gardening is his quiet parallel to design.
唱片机medium9/9The SK4 was a radio-phonograph; the transparent lid design moment is highlighted in his memories.
枯枝medium9/9He tends his Kronberg garden and bonsai himself, trimming dead branches as an act of design — removing what doesn't belong, quietly, with small scissors.
电话medium9/9Received an iPhone from Jony Ive with a calculator homage; his ambivalence about phones embodies the tension between quiet tools and constant connectivity.
旧灯泡medium9/9A man who believes design should be *long-lasting* but has lived in the same white house since 1971 will inevitably replace a light bulb, discarding a utilitarian object that failed its brief.
保时捷medium8/9Owns and drives a Porsche 911 (993), kept for its honest engineering, a rare personal indulgence.
音箱medium8/9Braun audio equipment like the L-series speakers fills his home and Kronberg workspace with jazz.
钟表medium8/9Braun's wall clocks and alarm clocks under his tenure are celebrated for their clear, minimal design.
剃须刀medium8/9Braun's electric shavers, particularly by the design department he led, became icons of functional aesthetics.
刨子medium8/9Grandfather was a master carpenter; Rams did a carpentry apprenticeship and traces his principles to the workbench.
废草稿medium8/9He designs by repeated subtraction on paper, throwing away sketches that don't achieve *weniger, aber besser* — the crumpled sheet is a failed design.
音响medium7/9Braun audio systems like the SK series are his most recognizable work, combining radio and record player in minimalist form.
破抹布medium7/9He turns a product over to inspect the underside, the seams, its honesty; wiping down a dusty prototype or household object with a cloth that eventually wears out.
烟灰缸hard8/9Designed the Braun cylindrical ashtray; mentioned in design histories as an example of his systematic approach.
打火机hard7/9Braun designed cylindrical table lighters in the 1960s, iconic items collected by design enthusiasts.
seedthe chosen pairthe seamscoretier
陶瓷灯座陶瓷灯座 / 塑料灯座ceramic vs plastic15/15medium
展墙展墙 / 隔断purpose: display vs divide15/15medium
排烟管排烟管 / 进气管flow direction: exhaust vs intake15/15medium
琴油琴油 / 表油instrument type: string vs time15/15medium
木模型粘土模型 / 泡沫模型material: clay vs foam15/15hard
皮带皮带 / 转盘belt vs platter14/15hard
工作凳工作凳 / 吧台椅workshop vs bar seating14/15medium
音箱音箱 / 耳机speaker vs headphones14/15medium
木工钳木工钳 / 台钳handheld vs. bench-mounted14/15medium
调速器调速器 / 唱头speed control vs cartridge14/15hard
收音头收音头 / 解码器tuner vs DAC14/15hard
软尺软尺 / 直尺curved vs straight measurement13/15easy
墙灯壁灯 / 落地灯wall vs. floor placement12/15medium
衣帽架鞋架 / 衣架shoes vs clothes12/15medium
台秤台秤 / 温度计measures weight vs measures temperature12/15medium

Dieter Rams — English: 13 words · 49 pairs

wordtierscorewhy it is theirs
fountain peneasy8/9He still hand-sketches at a large drawing table, preferring physical tools over computers.
carpenter's squaremedium9/9He apprenticed in carpentry and credits his grandfather's workshop with teaching him that quality lives in the joint — the square is a basic bench tool.
bonsaimedium9/9He tends them in his Kronberg garden; the documentary shows him trimming one, and he compares the patience to design.
pruning shearsmedium9/9He tends bonsai in his garden and has compared gardening to design work, requiring patience and removal of the unnecessary.
armchairmedium8/9His 620 Chair Programme for Vitsœ created a modular seating system still in his home.
juicermedium8/9The MPZ 2 Citromatic juicer, still working in his kitchen, is the one Jony Ive grew up with.
workbenchmedium8/9As a boy in Wiesbaden he spent time with his grandfather, a master carpenter, learning that quality lives in the joint and the finish.
phonographmedium8/9The SK 4 phonograph with a clear lid was one of his first major designs at Braun in 1956.
turntablemedium8/9He and Hans Gugelot put the SK 4 phonograph in a clear-lidded case — the 'Snow White's Coffin' — his first major Braun product.
shelving unitmedium8/9The 606 Universal Shelving System he designed for Vitsœ in 1960 is central to his furniture work and still in his home.
drawing tablemedium8/9He hand-sketches, never took to the computer; a large drawing table is where his design work happens.
kettlemedium7/9He designed kettles at Braun; a kettle in his kitchen is a purposeful, simple object that earns its place by boiling water quietly.
footstoolmedium7/9His 620 Chair Programme includes modular elements; a footstool extends a chair without fuss, embodying longevity and adaptability.
seedthe chosen pairthe seamscoretier
phonographgramophone / turntableacoustic vs electric playback15/15medium
garden truggarden trug / garden basketshallow wooden vs deep woven14/15medium
record playerrecord player / cd playeranalog record vs digital disc14/15medium
desk lampdesk lamp / floor lampon desk vs on floor14/15medium
shelfshelf / draweropen surface vs enclosed compartment13/15easy
oilstonesoilstones / waterstonesuse oil vs use water13/15medium
lint rollerlint roller / clothes brushsticky vs bristles13/15medium
bonuschisel / planepush tool vs pull tool13/15medium
claw hammerclaw hammer / ball-peen hammerclaw back vs ball back13/15medium
intercomintercom / doorbelltwo-way talk vs one-way alert13/15medium
letter openerletter opener / scissorsfixed blade vs two blades13/15medium
alarm clockalarm clock / wristwatchbedside vs wrist-worn12/15medium
veneerveneer / laminatereal wood layer vs synthetic layer12/15medium
calculatorpocket calculator / desk calculatorhandheld vs desktop11/15easy
potentiometervolume knob / dimmer switchaudio vs lighting control11/15medium

小胖 — Chinese: 7 words · 49 pairs

wordtierscorewhy it is theirs
电瓶车medium9/9He ranks flats by their distance to the metro: 自行车地铁房, 电瓶车地铁房 — the e-bike is the second rung.
半阳台medium9/9He deliberately chose a half-balcony due to his acrophobia, as described in Specific memories #1.
日照模拟medium8/9He runs a sunlight-simulation mini-program and steers callers into it during consults.
看房团medium8/9He runs a small bus-tour 看房团, about six properties a day, designed for efficient viewing.
静安府hard9/9When asked 'if it were you,' he commits to buying 静安府 or 仁恒, showing it's a specific complex he admires.
殡仪馆hard8/9Live on air he once paused to look up whether a flat was near a former 殡仪馆, then confirmed it.
槽钢层hard8/9He bought his own flat on a槽钢层 without knowing it, and his architect later explained it to him.
seedthe chosen pairthe seamscoretier
户型图户型图 / 楼层图unit layout vs floor plan15/15medium
业主卡门禁卡 / 电梯卡door vs elevator15/15medium
认购书认购书 / 合同purchase offer vs formal contract15/15medium
半阳台半阳台 / 全阳台enclosure: half vs full15/15medium
售楼处售楼处 / 样板间sales office vs model unit15/15medium
高压线高压线 / 变电站overhead wires vs ground facility14/15medium
渡轮渡轮 / 桥梁vehicle vs fixed structure14/15medium
自行车地铁房地铁房 / 学区房transit vs school14/15hard
联动价联动价 / 评估价price nature: regulatory vs appraisal13/15medium
草坪夜灯草坪灯 / 壁灯ground vs wall mounted13/15medium
甲醛甲醛 / 氡气smell vs no smell13/15medium
公摊率公摊率 / 得房率shared area vs usable area ratio12/15hard
工装马甲工装马甲 / 摄影马甲tools vs camera gear11/15medium
契税印花税 / 契税transaction type taxed10/15hard
公积金公积金 / 养老金housing fund vs pension10/15medium

小胖 — English: 10 words · 27 pairs

wordtierscorewhy it is theirs
buseasy8/9He runs a small 看房团 (property-viewing bus tour) that takes clients to see about six 盘 a day.
half balconymedium9/9He deliberately chose the half-balcony for his own flat because of his acrophobia, and later learned it was on a trough steel layer (槽钢层) — he tells this story against himself in the transcripts.
loftmedium9/9A viewer once called him out for buying a loft in Songjiang New Town, the very product he warns others against; he admits he did it, and it remains a tension in his advice.
electric bikemedium9/9He coined the term '电瓶车地铁房' for a flat a notch beyond walking distance from the metro — an electric bike becomes the necessary tool for the commute he measures so precisely.
phone tripodmedium8/9He's a 小红书 live streamer; a tripod holds his phone during hours of consultations.
glass balconymedium8/9He deliberately chose a flat with a half-balcony because his fear of heights made a full glass balcony unsettling — a defining personal story he tells against himself.
file foldermedium8/9Mid-consult, he pulled up a file live — '我来帮你找一找文件…3-04的' — proving a worn paper folder is a tool he reaches for.
gavelmedium7/9He says he refuses to be the bad guy who tells a landlord to cut, joking that he'd be chased away by the owner like a judge.
lotus roothard8/9He once ran an ad department with a 创意大师 and compares his own craft to slicing lotus root — you lift it a little and charge a lot (一个藕的创意).
slot floorhard8/9A 槽钢层 (trough steel layer) — he unknowingly bought one on purpose with his half-balcony, and now a 建筑设计师 friend taught him to spot it; he uses the term in his talks.
seedthe chosen pairthe seamscoretier
glass balconyopen balcony / enclosed balconyopen vs enclosed15/15medium
mini programmini program / mobile appwithin platform vs standalone15/15medium
live streamlive stream / recorded videolive vs recorded15/15medium
moonlightmoonlight / sunlightnight vs day14/15medium
window sillwindow sill / bay windownarrow ledge vs wide seat14/15medium
presale permitpresale permit / occupancy permitbefore vs after construction13/15hard
attic ladderloft stairs / telescopic ladderfixed vs portable13/15hard
price listprice list / spec sheetcost vs technical details13/15hard
public accumulation fundpension fund / housing fundretirement vs housing purpose13/15hard
purchase contractpurchase contract / lease agreementbuy vs rent13/15medium
bus tourbus tour / walking tourvehicle vs on foot13/15medium
slot floorslab floor / slot floorsolid vs with ribs12/15hard
slot jointexpansion joint / control jointmovement vs crack control12/15hard
occupancy permittitle deed / tax receiptownership vs payment11/15medium
rusted balconycracked lintel / spalled concretebeam crack vs surface flaking10/15hard

8 · What the run found

Finding 1 · The first measurement was measuring its own stopping rule

This is the finding that reorganised every other one, and it arrived by accident: the 97-vs-28 gap in Bourdain's two word wells was too large to be a fact about a person, so the stopping rule went on trial. It lost. Raise --dry-streak from 4 to 10 and Rams' English well goes 13 → 49 and Bourdain's 28 → 80, both still climbing when the batch budget cut them off, both at a lower cut rate than before. Pass 2 cost $0.49 and was worth more than the $1.09 that preceded it.

The law, and it generalises past this file: a stopping rule that samples a low-yield process measures its own variance before it measures anything real. These wells yield one or two survivors a batch; four zeros in a row arrive by chance long before a world runs out. Bourdain's Chinese well proposed 760 candidates before drying and his English well only 196 — the English run did not find less, it was stopped sooner.

The consequence for everything else on this page: every "capped at N" is a floor, and a soft one. The quality of what survived is measured; no ceiling here is. Two things were already built for this and both earned their keep — stop_reason separates a dry stop from a budget stop, and --dry-streak is now the dial. Neither is calibrated yet.

Finding 2 · The pair well looked twice as deep as the word well. It was an artifact — but the design observation underneath survives

Pass 1 read: words averaged 30, pairs averaged 56, and the obvious story was that pairs are structurally easier to fill. That comparison was rigged and I did not notice — every word well was stopped by the streak while every pair well ran the full 90-batch budget. At equal budget the gap closes to nothing:

Rams · English — 49 words, 49 pairs. Bourdain · English — 80 words, 84 pairs.

What survives is not a number but a mechanism, and it is still worth carrying into the overhaul. The two judges ask different questions about freshness:

the word judge asks would a persona-less host have written this WORD? · the pair judge asks would a persona-less host have built a pair in this AISLE?

收音机 alone fails — every generic bank has "radio". 收音机/录音机 passes, because a man who spent a career designing radios owns that aisle and the second half is supposed to be ordinary. The pair form lets the persona supply the context while the words stay common, and common words are what a party game needs. An oyster in Bourdain's room is a good secret even though anyone might have picked "oyster" — what makes it his is that the questioning will be about him. Whether re-anchoring word freshness on the aisle actually helps is now an open experiment rather than a conclusion, because the evidence that suggested it turned out to be the stopping rule.

Finding 3 · The personas do hit different walls — but read the rate, never the total

Absolute survivor counts are contaminated twice over — by Finding 1 and by plain sampling noise. The share of proposals killed on each axis is a rate over hundreds of candidates, so it is the one thing worth reading. The table below is pass-2 data (700–800 proposals per well rather than pass 1's 84–236), because a finding built on the thinner half of the evidence is how this page went wrong the first time.

persona · langproposalscut: not a thing cut: genericcut: not theirswhat the rate says
Bourdain · zh8265% 42%35% a documented sensory life converts almost directly into secrets; nothing here is a wall
Bourdain · en7818% 36%33%
Rams · zh7347% 35%33% his objects are too famous to be fresh — the shaver, the calculator, the chair he actually made are what a generic bank already holds, so a third of every batch dies there. He still never ran out.
Rams · en71510% 33%31%
小胖 · zh23617% 22%16% the highest not-a-thing rate in the run — 公摊 · 税费 · 拆迁 · 老公房 are all real and none is a thing you can point at. But 2–3× the others, not the 8× pass 1 reported, so this is a tilt rather than the whole story.
小胖 · en1742% 48%53% asked in English the model stops reaching for abstractions and starts inventing objects — and more than half of what it reaches for has no support in his corpus. A supplied-corpus persona is where the evidence rule earns its cost.

Note how much the small-sample rates moved: 小胖's not-a-thing rate read 31% on 86 pass-1 proposals and 17% on 236 pass-2 ones. A rate is only stable once the denominator is.

What is left, after both corrections, is not a rate at all — it is persistence. Bourdain and Rams ran 90 batches still producing, in both languages. 小胖 ran 27 and 28 and stopped. His word well is the only one in the study that has been shown to have a bottom, and meanwhile his pair well reached 49 and was still budget-limited when it stopped. That within-persona gap — 14 words against 49 pairs — is the real evidence for the seating rule, and it is the opposite in kind to the across-the-board claim withdrawn in Finding 2.

The seating rule, and pass 2 promoted it from a guess to a result. Twenty questions needs a pointable world; the hidden-role game only needs a describable one. Given a stopping rule two and a half times more patient, all four Bourdain and Rams wells ran the full 90 batches still producing — 小胖's went dry at batch 27 and 28, in both languages. Not a smaller number: a third of the persistence. That is the one floor that survived the correction which destroyed every other ceiling on this page. And his pair wells are among the best in the run (认购书/合同 · 联动价/评估价 · 联排/叠墅 · 公摊率/得房率). An advisory persona belongs in the hidden-role game and nowhere near twenty questions.

Finding 4 · The judge's rejects are the evidence that it works

Cut rates of 41–80% are only defensible if the cuts are right, so the wells ship with them (--report --cuts N). They read correctly. From Rams' English run:

cutscoresthe judge's reason
pencilfit 1 · con 3 · fresh 0generic; any designer sketches, not distinctly Rams
briefcasefit 1 · con 3 · fresh 1proposer speculates "would have carried"; no documented briefcase
beetlefit 1 · con 3 · fresh 1universal garden encounter, not distinctly his
shelffit 2 · con 1 · fresh 1too broad; the 606 is specific but "shelf" alone is generic
二极管 / 三极管seam 1 · sym 0subtype seam; leaks the odd player out
游标卡尺 / 千分尺seam 2 · sym 0a micrometer is a subtype of caliper; symmetry fails
削皮器 / 擦丝器fit 1 · fresh 1 · seam 1generic kitchen tools, no Rams-specific aisle

The judge disagreed with the code's gate 227 times across the run and the code won every one of them, which is the whole reason the threshold lives in Python.

Finding 5 · Three defects the run exposed and this build has not yet fixed

  1. Invented and transliterated words survive. Bourdain's Chinese well contains 奇布 (a mangling of 旗袍), 福轿 and 莱斯霍 — a transliteration of Les Halles, which is a proper name wearing Chinese characters. All three scored 9/9. The shape filter cannot see them (no digits, no latin, short enough) and the judge did not apply its own proper-name rule. Xiao Pang's 静安府 is the same defect: a housing complex is a place with a name, not a secret. The fix belongs in the judge's concrete anchor — if the word is a transliteration of a foreign name, or a coinage no dictionary holds, it is not a word players share.
  2. The modifier hack survives at short lengths. The rule caught 日式盆栽剪刀/日式裁缝剪刀 (the shape filter kills anything that long), but 铜铰链/铁铰链 scored 13/15 and 磨刀石/磨刀棒 11/15. Both are one noun with a material swapped in front. The hard part is that 收音机/录音机 has the same surface shape and is a good pair — the difference is that each half of that one is a word in its own right. The examples in the judge's prompt are all long; they need short ones.
  3. A place can fail the table test by mistake. Rams' garden was cut with "a place, not a thing" at fit 3 · concrete 0 — but the rubric explicitly admits places you can walk into, and 图书馆 and 动物园 are sitting in the house bank right now. One clause in the concrete anchor needs to be louder.

All three are fixed as of the commit that carries this page, and none of them was fixed in the build that produced the numbers above — changing the rubric mid-measurement would have voided it. The judge's concrete anchor now carries an explicit a place is a thing clause and an it must be a word players already share clause; the modifier-hack rule now names short examples and states the real test (is each half a word in its own right? — 收音机/录音机 yes, 铜铰链/铁铰链 no); the generator is told never to transliterate or coin. None of the three fixes is measured — that is the next run's job.

9 · The verdict

Qualified on quality. The target is untested. What survives the gate is good, and the rejects prove the judge is judging rather than approving — that part held up under a re-run and is the part worth trusting. The ceiling claim did not hold up at all: pass 1's caps were its own stopping rule, and one dial turned 13 into 49. Nothing here says 100 is out of reach; the first pass simply never got far enough to ask. The right next move is a calibration run, not a change to the gate.

The dials, in order of leverage

  1. Calibrate the stopping rule first, before believing any other number. Everything downstream — how deep a persona goes, whether words or pairs fill faster, whether an advisory seat is unfit for 20Q — was distorted by it once already. Replace the streak with a plateau test (stop when the last K batches added under X% of target) so the rule scales with yield instead of sampling it.
  2. Feed the well the corpus/. It currently reads profile.md + tags.txt and nothing else — about 30k characters. Bourdain has a whole corpus directory of his own sentences sitting unused, and not-theirs did a quarter to a half of all the cutting; 小胖's English well cut 54% of proposals that way. This is the largest untapped evidence source and it costs only prompt budget, which prefix caching has already made cheap.
  3. Then re-ask the freshness question for words — anchored on the aisle rather than the bare word, the way the pair judge already does. Worth running as a clean A/B now that the evidence which suggested it has been withdrawn.
  4. Let the target be per persona. The machine already ships what survives; the change is in how a short well is read — provided the stopping rule has been calibrated first, or a short well means nothing at all.
  5. Seat by well, not by taste. Generate before choosing a game for a persona — and read stop_reason, not the count. A seat that goes dry under a patient stopping rule has told you something true about its world; a seat that hits batch_ceiling has told you only that you stopped paying.

What the 20Q overhaul inherits

  1. A number a stopping rule produced is a number about the stopping rule until you have re-run it with that rule moved. Twice on this page a confident finding was really an artifact of when the loop gave up — including the one this page originally called its most useful result. Any generate-until-exhausted loop needs its termination condition varied before its output means anything.
  2. The draw does not change. wordpools.py keeps the CSPRNG, the apply-time draw and the avoid-list; a well is a bigger, better-authored pool behind the same door.
  3. Every well carries its own audit — salts used, cut rate, blocking axis, stop reason, cost, and the rejects. The rejects are what let the rubric be argued with, and the blocking axis is what caught two wrong diagnoses; without them the only way to tune the gate is to guess.
  4. The persona proposes; the world salts and picks. Where a model has favourites, roll the constraint in code before the call — and roll one constraint, because a conjunction of three starves the answer.
  5. A thing a game can use is not the same as a thing a persona owns. The table test, the shape filter and the hedge scan all exist because the first drafts confused the two, and every one of them is cheaper in code than in a prompt.
  6. Wire nothing yet. The wells in rooms-dev/_wordwell/ are a measurement taken with a mis-set dial and three since-fixed defects — not a shipping artefact.
Dialogue · the word well · built and tested 2026-08-05 · module lib/wordwell.py (standalone CLI; wells land in rooms-dev/_wordwell/) · siblings: the dice specimen · the game device · the sim loop