89 lines
3.8 KiB
TypeScript
89 lines
3.8 KiB
TypeScript
/**
|
||
* 剧本评审包生成:把评审简报 + 完整性快照 + 三份母文档合成一个文件,
|
||
* 供上传给 ChatGPT / 其他 AI 做外部评审。
|
||
*
|
||
* 运行:pnpm script:review
|
||
* 输出:docs/script/review-bundle.md(生成物,内容更新后重跑本脚本刷新)
|
||
*/
|
||
import { readFileSync, writeFileSync } from 'node:fs';
|
||
import { join, dirname } from 'node:path';
|
||
import { fileURLToPath } from 'node:url';
|
||
|
||
const ROOT = join(dirname(fileURLToPath(import.meta.url)), '..');
|
||
|
||
function readDoc(rel: string): string {
|
||
return readFileSync(join(ROOT, rel), 'utf-8');
|
||
}
|
||
|
||
const today = new Date().toISOString().slice(0, 10);
|
||
|
||
const HEADER = `# 《苍梧疑冢》剧本评审包
|
||
|
||
> 生成时间:${today}(由 pnpm script:review 从仓库母文档自动合成)
|
||
> 本文档供外部 AI 评审使用,包含:评审简报 → 当前完整性快照 → 三份母文档全文。
|
||
|
||
---
|
||
|
||
## 一、这是什么
|
||
|
||
一款互动叙事("影游")交友产品的第一季剧本。核心机制:用户以"时空档案馆采集员"身份
|
||
玩考古探险剧情,**剧情中的选择和语音讲述被用来实测人格**(7 维度:依恋类型、冲突处理
|
||
风格、价值观、情绪稳定性、风险偏好、文化底蕴、择偶偏好),后续用于伴侣匹配。
|
||
因此剧本同时承担两个职责:① 作为互动小说要好看;② 作为心理测量工具要有效。
|
||
|
||
## 二、请评审什么(按优先级)
|
||
|
||
1. **无正确答案铁律**:每个选择点的选项之间,是否存在社会赞许性上的"最优解"?
|
||
如果有玩家能轻易看出"选这个显得我更好"的选项,请逐条指出。
|
||
2. **分支完整性**:是否存在死路(选了某选项后剧情断裂)、逻辑矛盾
|
||
(前后文信息冲突)、变量引用错误(某旗标从未被设置却被读取)。
|
||
3. **测量有效性**:各选择点声称承载的人格维度,其选项差异是否真的能区分该维度?
|
||
有没有选项名义上测 A 维度、实际上更测 B 维度的错位?
|
||
4. **叙事质量**:节奏、NPC 声口一致性、悬念铺设;指出任何出戏、拖沓或工具化的段落。
|
||
5. **合规**:主角方必须始终是记录/保护者(不是盗墓);指出任何可能被理解为
|
||
鼓励破坏文物、盗掘的表述。
|
||
6. **可玩性 > 测量的优先级冲突**:指出任何"为了测量牺牲剧情自然度"的明显痕迹。
|
||
|
||
请逐章给出:严重问题(必须改)/ 建议改进 / 亮点(值得保留)。
|
||
|
||
## 三、当前完整性快照(${today})
|
||
|
||
- **Act 1(第 1-3 章)**:剧本完成并已灌装进引擎数据(18 个选择点、4 个语音讲述点、
|
||
全部预写场景变体),本包内含全文。
|
||
- **自适应支线**(Jev 置信度低时动态插入的 5 条支线 × 2 变体):剧本完成,本包内含全文;
|
||
引擎的条件插入逻辑未实现。
|
||
- **Act 2(第 4-6 章)/ Act 3(第 7-9 章)**:只有弧线大纲(见故事框架第 2 节),
|
||
剧本未写。
|
||
- **已知留白**:解谜点的"三档提示"机制只有设计没有完整实现剧本;C2-06 的二级选项
|
||
未建模(剧本已注明叙事化处理)。
|
||
|
||
---
|
||
---
|
||
|
||
# 母文档 1:故事框架(设定、NPC、弧线、选择点地图、测量规则)
|
||
|
||
${readDoc('docs/story-framework.md')}
|
||
|
||
---
|
||
---
|
||
|
||
# 母文档 2:Act 1 正式剧本(第 1-3 章全文)
|
||
|
||
${readDoc('docs/script/act1.md')}
|
||
|
||
---
|
||
---
|
||
|
||
# 母文档 3:自适应支线剧本
|
||
|
||
${readDoc('docs/script/adaptive-branches.md')}
|
||
`;
|
||
|
||
const outPath = join(ROOT, 'docs/script/review-bundle.md');
|
||
writeFileSync(outPath, HEADER, 'utf-8');
|
||
|
||
const lines = HEADER.split('\n').length;
|
||
const chars = HEADER.length;
|
||
console.log(`✓ 评审包已生成:${outPath}`);
|
||
console.log(`✓ 规模:${lines} 行 / ${chars} 字符(约 ${Math.round(chars / 1.8)} tokens 量级,注意评审模型的上下文上限)`);
|