feat: add the-ballad-of-chalk campaign

Cloud Empress campaign for 弗莱格, a sellsword obsessed with chalk.
Ships the brief, PC sheet, state files, a starting location, and the
session 0001 log. The opening hook and hidden truth live in gm/.
This commit is contained in:
2026-09-13 17:12:49 +08:00
parent 52e08d25e4
commit 9048437942
17 changed files with 378 additions and 0 deletions
@@ -0,0 +1,24 @@
# GM only
Truth the PC has not learned: hidden motives, unrevealed identities, off-screen
events, and what is really going on.
**Not player-facing.** The player may read anything else in the campaign, so a
secret must never be written outside `gm/`. Nothing here may appear in a session
log or in chat until the PC observes it or is told.
Keep `../state/knowledge.md` as the PC's counterpart: what they know, believe,
and suspect. When the two disagree, `knowledge.md` is what the PC currently
thinks — narrate from it, not from here.
## Retconning
You may change a fact here after the fact, but only in the layer the PC has not
perceived. The test is perception: if every session-log entry and everything in
`state/knowledge.md` still reads exactly as before, the retcon is invisible and
allowed. What the PC saw, heard, or was told stays fixed; the cause behind it
may change.
Use it to repair a plot that cannot otherwise be made to work. Do not use it
liberally, and never to dodge a consequence the fiction already earned. Record
each one in `retcons.md`.
+26
View File
@@ -0,0 +1,26 @@
# 幕后真相(GM only)
**不可出现在会话日志或对话中**,直到弗莱格亲眼看见或被人告知。
## 泥巴孩子
- 神谕:`Q: 孩子的村庄是被巨蝉毁灭的吗? d6=3 → No, but…`
村庄**不是**毁于巨蝉。真实原因**尚未确立**——留给神谕在合适时机决定。
- 同一次神谕的转折:`某个同行者一直在撒谎,你此刻才看见破绽。`
有人在撒谎,而破绽此刻已经在场。
- 已确定的破绽:孩子浑身是**湿泥**,但这一带是盐碱荒原,最近的水源是灰喉井,
方向也对不上。孩子自称从荒地深处走来——说不通。
- 「我是村庄唯一的幸存者」这句话可能为假。
- 撒谎者未必要是孩子本人;也可能是弗莱格随后遇到的某个同行者。但破绽现在就在场。
## 白垩
- 弗莱格对白垩的执念是他自己的事,**不是**世界秘密。
- 他的父母是否真的需要「被证明」、他们现在何处、是否还活着——**尚未确立**。
用 `journal oracle` 决定,不要凭空编。
## 待定(用神谕或火花表确立,别硬编)
- 村庄真正的遭遇。
- 孩子是否知道真相,以及她在隐瞒什么。
- 白垩坡这个地名是否真实存在。
@@ -0,0 +1,12 @@
# Retcons
A log of facts changed after the fact. Each entry records what changed and why,
so the change is not quietly contradicted later.
A retcon is only allowed in the layer the PC has not perceived: every session
log entry and every line of `../state/knowledge.md` must still read exactly as
before. See `README.md`.
| Session | What changed | Why |
|---------|--------------|-----|
| | | |