Files
writing-agent/docs/play-presentation-shells.md
2026-08-14 14:25:31 +08:00

123 lines
5.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 游玩呈现壳 · 可微调前端模板
> **阶段**P1 = 定类与契约;**P2** = 程序/样式适配与灌数。
> 上游:游玩管线 `auditor → gm → narrator`。
> 创作挂钩:`设计.正文组成` / `设计.监控栏`;终稿 tag 通常 `输出.用户展示`。
> **创作定位:基于固定壳做适配微调,不是从零设计前端。**
> 预览:`/shells.html`
## 1. 创作怎么做(权威口径)
```text
固定壳(本仓库预置,七种)
→ 创作期:选一个 shell_id
→ 只改允许的微调轴字段、显示名、开关、tone_chrome…
→ 禁止改分区骨架、禁止发明第八种布局
游玩期往壳的区域里灌数present.v1 / 投影 / settlement
```
「正文组成」= **壳适配单**,不是 UI 创意稿。
用户看见的差异应来自**同壳不同绑定**,而不是每局一套新布局。
## 2. 信息层级与长文容量
所有壳共用同一优先级——**改壳只是改谁占主面积**
| 优先级 | 区域 | 视觉待遇 |
|--------|------|----------|
| **P0** | `body` | 阅读主轴;**随字数撑高**(单轮按 600~3000 字设计),由页面/消息区滚动 |
| **P1** | 建议行动 | 要决策时醒目;`choice_dock`**sticky 贴底** |
| **P2** | `monitor` | 芯片密排,高度固定矮 |
| **P3** | `header` / `footer` / `aside` | 辅助;双栏 **aside sticky**,长文仍可对照 |
**不要**把正文塞进固定高度小框再内部硬滚(除非外层消息流另有约束)。
选壳时问:用户 80% 时间是在「读长场面」还是「做选择」还是「对线索」?
## 3. 七种常用壳
| id | 中文 | 主面积给谁 | 主场景 |
|----|------|------------|--------|
| `prose` | 纯散文 | 正文 ≈ 全屏 | 只要沉浸、不要 HUD |
| `chat_monitor` | 对话 + 监控 | 正文(聊天气泡区) | 网恋 / 日常 / 轻 AIRP |
| `spotlight` | 场面主视 | 正文极大(追光) | 电影感一幕、少机制 |
| `turn_panel` | 回合面板 | 中栏场面 + 侧栏交互 | 资源/检定/跑团 |
| `split_board` | 双栏看板 | 左正文 · 右线索 | 调查、推理 |
| `choice_dock` | 选择坞 | 正文 + **底部大行动坞** | 选项驱动 / AVG 关口 |
| `chapter_reader` | 章节阅读 | 阅读柱 + 窄进度侧栏 | 长文 / 爽文 |
旧规格未写 `shell_id` → 运行时视为 `prose`
### 3.1 各壳固定槽位
| 区域 id | prose | chat_monitor | spotlight | turn_panel | split_board | choice_dock | chapter_reader |
|---------|-------|--------------|-----------|------------|-------------|-------------|----------------|
| `monitor` | — | 顶栏芯片 | 顶栏芯片 | 顶栏 | — | 可选顶栏 | — |
| `header` | — | — | — | 回合号 | 场景抬头 | — | **章题** |
| `body` | **主** | **主聊** | **主舞台** | **场面** | **主读** | **局面** | **章正文** |
| `footer` | 可选弱 | 可选 | 可选 | 检定摘要 | 可选 | 可选 | 作者注 |
| `aside` | — | — | — | 交互物 | **线索栏** | — | **进度** |
| `hidden` | 变量段 | 变量段 | 变量段 | 变量段 | 变量段 | 变量段 | 变量段 |
### 3.2 微调轴
| 轴 | 说明 |
|----|------|
| `monitor_fields` | 监控栏字段子集 |
| `block_labels` | 可见块显示名(如 body→「短信」 |
| `show_suggested_actions` | 是否渲染建议行动;`turn_panel` / `choice_dock` 默认开 |
| `tone_chrome` | `default` / `messenger` / `book` / `terminal` |
| `empty_states` | 空态文案 |
**禁止**创作期输出完整 CSS**禁止**自造 `shell_id`(要新壳改仓库模板)。
## 4. 与创作产物的映射
```text
设计.正文组成
正文.呈现壳.shell_id → 七选一
正文.呈现壳.微调 → 只填允许轴
正文.可见块[] → 挂到壳已有区域
设计.监控栏 → monitor 字段表
运行.本轮.裁决 → body 事实suggested_actions → 行动区
输出.用户展示 → present.v1 或纯 Markdown→ body
```
## 5. 游玩灌数契约
```json
{
"schema": "present.v1",
"shell": "spotlight",
"blocks": {
"monitor": { "地点": "天桥下", "张力": "紧" },
"body": "……用户可读正文……"
},
"meta": { "suggested_actions": ["先开口", "递伞"] }
}
```
- `monitor` 宜为 **短键值对象**(程序渲染成芯片),不要长文。
- `prose`:只需 `body` 字符串或 Markdown。
## 6. 创作期只做适配
1. **选壳**按「主面积给谁」§2七选一。
2. **微调**字段、显示名、行动开关、tone、空态。
3. **不要**:重画分区、发明区域 id、写 CSS。
## 7. P2 适配清单
| 序 | 项 | 状态 |
|----|----|------|
| 1 | `web/` 壳渲染器 + 层级样式 | **已接** `present-shells.js` + `styles.css` |
| 1b | 壳预览页 | **已接** `/shells.html` |
| 2 | 正文组成微调进 SessionView | **已接** |
| 3 | present.v1 解析 | **已接** `present-packet.ts` |
| 4 | narrator 按壳输出 | **已接** |
| 5 | 正文组成产出壳适配单 | **已接** |
---
修订2026-08-13 · 七壳;明确信息层级与主面积。