feat(content): give the specimen a never-gated core secret
The purge left `gate: never` — the rung no disposition unlocks — demonstrated nowhere. Duncarrow's Crell chain had taught it; specimen.md only taught `warm`. Adds secret.specimen-drowned-clerk (secrecy 4, gate: never), so the specimen now shows an ascending 2 -> 4 chain and a reason `never` exists: the NPC holds it, but saying it aloud would hang him. Mirrored in the skill's worked example, which now states the rule — if any rung *should* buy the secret, gate it at `trusted` instead. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -98,8 +98,9 @@ contradict, and it carries the authoring rules that keep the war in tone
|
|||||||
- **Bible entries:** see `references/schema.md` for the full field-by-field
|
- **Bible entries:** see `references/schema.md` for the full field-by-field
|
||||||
contract, the id/namespace/type rules, the secrecy scale, and the knowledge-gate
|
contract, the id/namespace/type rules, the secrecy scale, and the knowledge-gate
|
||||||
model. Match the **structure** of `content/lore/specimen.md` (the synthetic
|
model. Match the **structure** of `content/lore/specimen.md` (the synthetic
|
||||||
disposition-gate specimen — a guarded-then-warm NPC with one earned reveal) and
|
disposition-gate specimen — a guarded-then-warm NPC with one reveal earned at
|
||||||
the **voice** of the canon bodies in `content/lore/cosmology.md`.
|
`warm` and a `never`-gated core no disposition unlocks) and the **voice** of the
|
||||||
|
canon bodies in `content/lore/cosmology.md`.
|
||||||
- **Hand-authored JSON:** mirror the shape of the existing file in that folder
|
- **Hand-authored JSON:** mirror the shape of the existing file in that folder
|
||||||
(`references/schema.md` documents each). Keep ids stable and lowercase-snake.
|
(`references/schema.md` documents each). Keep ids stable and lowercase-snake.
|
||||||
|
|
||||||
|
|||||||
@@ -139,7 +139,8 @@ build failure.
|
|||||||
|
|
||||||
## Worked example
|
## Worked example
|
||||||
|
|
||||||
A guarded fisherman who warms up and, if trusted, names who really owns the boats.
|
A guarded fisherman who warms up and names the coin — and who holds one thing no
|
||||||
|
disposition ever buys.
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
id: person.specimen-teague
|
id: person.specimen-teague
|
||||||
@@ -163,12 +164,26 @@ body: >
|
|||||||
charter is buying the wharf's silence, a little at a time.
|
charter is buying the wharf's silence, a little at a time.
|
||||||
```
|
```
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
id: secret.specimen-drowned-clerk
|
||||||
|
type: secret
|
||||||
|
status: canon
|
||||||
|
secrecy: 4
|
||||||
|
related: [place.specimen-wharf, person.specimen-teague, fact.specimen-foreign-coin]
|
||||||
|
body: >
|
||||||
|
The charter clerk who came asking after the coin went into the river in the
|
||||||
|
spring. Teague held his legs. He has not been out on the water since and tells
|
||||||
|
anyone who asks that it is his knees.
|
||||||
|
```
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
id: npc.specimen-teague
|
id: npc.specimen-teague
|
||||||
type: person
|
type: person
|
||||||
status: canon
|
status: canon
|
||||||
start_disposition: cold
|
start_disposition: cold
|
||||||
related: [person.specimen-teague, fact.specimen-foreign-coin]
|
related:
|
||||||
|
[person.specimen-teague, fact.specimen-foreign-coin,
|
||||||
|
secret.specimen-drowned-clerk]
|
||||||
body: >
|
body: >
|
||||||
Same man as person.specimen-teague; his interactive layer. Curt with strangers, not
|
Same man as person.specimen-teague; his interactive layer. Curt with strangers, not
|
||||||
from malice but from a lifetime of watching talkers end up face-down in the
|
from malice but from a lifetime of watching talkers end up face-down in the
|
||||||
@@ -177,14 +192,22 @@ body: >
|
|||||||
|
|
||||||
knows:
|
knows:
|
||||||
- {fact: fact.specimen-foreign-coin, gate: warm}
|
- {fact: fact.specimen-foreign-coin, gate: warm}
|
||||||
|
- {fact: secret.specimen-drowned-clerk, gate: never}
|
||||||
|
|
||||||
disposition_notes: >
|
disposition_notes: >
|
||||||
Starts cold. Buying his catch, not his story, is what moves him. At warm he
|
Starts cold. Buying his catch, not his story, is what moves him. At warm he
|
||||||
names the coin; he never speculates aloud about who mints it.
|
names the coin; he never speculates aloud about who mints it. The clerk is the
|
||||||
|
one thing no rung buys — saying it aloud would hang him, and he knows it. He
|
||||||
|
reasons around it, steers off it, and takes it to the ground.
|
||||||
```
|
```
|
||||||
|
|
||||||
Note: `person.specimen-teague` (secrecy 0, public) and `npc.specimen-teague` (the layer,
|
Note: `person.specimen-teague` (secrecy 0, public) and `npc.specimen-teague` (the layer,
|
||||||
persona server-only) are two entries. The fact is secrecy 2, gated at `warm`.
|
persona server-only) are two entries. The chain ascends 2 → 4: the coin is gated at
|
||||||
|
`warm` and the player earns it; the clerk is gated `never` and no disposition unlocks
|
||||||
|
it. **That is what `never` is for.** Teague holds it — the Improviser may reason with
|
||||||
|
it, and the player may infer it from what he *will* say — but he cannot be talked into
|
||||||
|
saying it, because saying it would hang him. A `never` gate needs a reason like that:
|
||||||
|
if any rung *should* buy the secret, gate it at `trusted` instead.
|
||||||
|
|
||||||
## Hand-authored JSON
|
## Hand-authored JSON
|
||||||
|
|
||||||
|
|||||||
@@ -1,11 +1,12 @@
|
|||||||
# SPECIMEN — format example, NOT game canon
|
# SPECIMEN — format example, NOT game canon
|
||||||
|
|
||||||
> A synthetic disposition-gate specimen: the shape a guarded-then-warm NPC and a
|
> A synthetic disposition-gate specimen: the shape a guarded-then-warm NPC takes
|
||||||
> single earned personal reveal take in the bible. Authored `status: candidate`,
|
> in the bible, with an ascending knowledge chain — one reveal the player earns at
|
||||||
> so the build VALIDATES it (`--check` resolves its gate against the ladder) but
|
> `warm`, and a `never`-gated core the NPC knows and no disposition ever unlocks.
|
||||||
> emits NOTHING to `content/world` or `content/server`. This is a teaching
|
> Authored `status: candidate`, so the build VALIDATES it (`--check` resolves its
|
||||||
> example for the world-building skill, not part of the Margreave. Do not wire
|
> gates against the ladder) but emits NOTHING to `content/world` or
|
||||||
> real content to these ids.
|
> `content/server`. This is a teaching example for the world-building skill, not
|
||||||
|
> part of the Margreave. Do not wire real content to these ids.
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
id: place.specimen-wharf
|
id: place.specimen-wharf
|
||||||
@@ -40,13 +41,27 @@ body: >
|
|||||||
wharf's silence, a little at a time.
|
wharf's silence, a little at a time.
|
||||||
```
|
```
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
id: secret.specimen-drowned-clerk
|
||||||
|
type: secret
|
||||||
|
status: candidate
|
||||||
|
secrecy: 4
|
||||||
|
related: [place.specimen-wharf, person.specimen-teague, fact.specimen-foreign-coin]
|
||||||
|
body: >
|
||||||
|
The charter clerk who came asking after the coin went into the river in the
|
||||||
|
spring. Teague held his legs. He has not been out on the water since and tells
|
||||||
|
anyone who asks that it is his knees.
|
||||||
|
```
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
id: npc.specimen-teague
|
id: npc.specimen-teague
|
||||||
type: person
|
type: person
|
||||||
status: candidate
|
status: candidate
|
||||||
secrecy: 0
|
secrecy: 0
|
||||||
start_disposition: cold
|
start_disposition: cold
|
||||||
related: [person.specimen-teague, fact.specimen-foreign-coin]
|
related:
|
||||||
|
[person.specimen-teague, fact.specimen-foreign-coin,
|
||||||
|
secret.specimen-drowned-clerk]
|
||||||
body: >
|
body: >
|
||||||
Same man as person.specimen-teague; his interactive layer. Curt with strangers,
|
Same man as person.specimen-teague; his interactive layer. Curt with strangers,
|
||||||
not from malice but from a lifetime of watching talkers end up face-down in the
|
not from malice but from a lifetime of watching talkers end up face-down in the
|
||||||
@@ -55,8 +70,11 @@ body: >
|
|||||||
|
|
||||||
knows:
|
knows:
|
||||||
- {fact: fact.specimen-foreign-coin, gate: warm}
|
- {fact: fact.specimen-foreign-coin, gate: warm}
|
||||||
|
- {fact: secret.specimen-drowned-clerk, gate: never}
|
||||||
|
|
||||||
disposition_notes: >
|
disposition_notes: >
|
||||||
Starts cold. Buying his catch, not his story, is what moves him. At warm he
|
Starts cold. Buying his catch, not his story, is what moves him. At warm he
|
||||||
names the coin; he never speculates aloud about who mints it.
|
names the coin; he never speculates aloud about who mints it. The clerk is the
|
||||||
|
one thing no rung buys — saying it aloud would hang him, and he knows it. He
|
||||||
|
reasons around it, steers off it, and takes it to the ground.
|
||||||
```
|
```
|
||||||
|
|||||||
Reference in New Issue
Block a user