# chunjiang 固定打磨 prompt（Gauntlet 循环，循环中不修改）

## 机制：纯 Gauntlet
只有这一条总 prompt。没有任务清单，没有「一轮一事」的外壳。
lead 自己读世界、自己拆块、自己决定这一轮动哪几块；每一轮结束由
`shared/critic.sh` 起一个**没有看过 builder 任何解释**的一次性 critic 进程，
只给它 `POEM.md` 和这一轮最多 2 张缩小后的截图，让它盲比「像不像 / 最大缺口 / 0-10 分」。
critic 判输就打回重做，判「到位」连续两轮才算赢。

**lead 不看图。** 截图仍然三机位落盘，但进 lead 会话的只有 critic 打印的那行 JSON——
图片一旦读进会话，之后每一次 API 请求都要把它重传一遍，会打满本机上行。
理由与上限见 `../AGENTS.md`「主循环工人不读图」。

## 目标
把张若虚《春江花月夜》（见 `POEM.md`）变成一个可以走进去的春夜江上世界：
读者在漫游中遇见这首诗，而不是「读到」它。

## 对照物（critic 盲比用的意象表）
| 诗中意象 | 世界中应出现的东西 |
|---|---|
| 春江潮水连海平 | 一片与天相接的江面，潮水缓缓推来 |
| 海上明月共潮生 | 一轮从水天之际升起的大月亮 |
| 滟滟随波千万里 | 月光在波上碎成一条通向你的路 |
| 江流宛转绕芳甸 | 江水绕过一片芳甸，水纹是弯的不是直的 |
| 月照花林皆似霰 | 花林在月下白得像霰（细雪），不是绿树 |
| 汀上白沙看不见 | 你脚下的白沙汀，白到几乎分不出边界 |
| 江天一色无纤尘 | 天与水同一个颜色，只有一轮孤月 |
| 谁家今夜扁舟子 | 江上一叶慢慢漂过的扁舟 |
| 何处相思明月楼 | 对岸一座楼台，只亮一扇窗 |
| 落月摇情满江树 | 月落时，满江的树在水里晃 |

## 人的形象（第一优先）
人物一律走一种简洁统一的风格：干净、比例对、不要恐怖谷。做不好宁可用剪影，
或者根本不出现人形——用扁舟、灯、楼、栏杆上的衣影这类物件表达人迹。

## 硬约束
- 零依赖、零构建：`index.html` 双击能开，GitHub Pages 静态托管即可；本世界的渲染全部手写 Canvas 2D。
- 键盘 WASD + 鼠标拖拽转视角；触控摇杆。两套都必须能走。
- 右栏时间线用 `../shared/timeline.js` 读 `log.jsonl`，`file://` 下回落到 `log.js`。
- 截图冻结在 `FROZEN_T`，同一机位在不同轮必须逐字节可复现。
- 页脚必须标注：loop 机制 / harness / 模型 / 推理强度 / 轮数与停止原因。
- 只做春夜江上的静美意象。不渲染死亡、伤害、血腥一类画面。

## 每轮的动作
1. 读 `index.html`、`POEM.md`、`log.jsonl`。
2. 自己判断这一轮最该动的块，改掉。
3. `sh shots.sh N` 拍 3 机位真实截图到 `shots/N/`。
4. `sh ../shared/critic.sh chunjiang N` —— 盲评在一次性 `claude -p` 子进程里发生，
   你只读它打印的那行 JSON（`score` / `verdict` / `critic` / `gap`）。
   **你自己一张图都不要 `Read`。**
5. 追加一行 `log.jsonl`（含 `score`），跑 `python3 ../shared/logrow.py` 一类工具重生成 `log.js`，快照到 `versions/N/`。

## 停止条件
critic 连续两轮判「到位」，或距 Claude 周限刷新不足 30 分钟。不设轮数上限。
