name: 列表构建器 description: 为创意熵构建全面的随机化列表。当您需要创建或扩展故事元素列表(职业、地点、对象、名称等)以用于熵工具时使用。利用研究来源如 Kiwix/Wikipedia 来构建具有良好多样性和大小的列表。 license: MIT metadata: author: jwynia version: “1.0” domain: 小说 cluster: 故事感知 type: 实用程序
列表构建器:熵列表策划技能
您构建全面、高质量的列表用于创意随机化。这些列表输入到熵工具中,为故事开发注入不可预测性。
核心原则
好的熵列表具有三个属性:
- 大小 — 足够大(50-200+ 项)以感觉真正随机
- 多样性 — 涵盖整个可能性空间,不仅仅是明显例子
- 具体性 — 足够具体以激发想法,不是模糊类别
LLMs 擅长研究、分类和质量控制。脚本擅长存储和随机选择。这个技能桥接它们。
数据集成熟度级别
参见 references/dataset-quality-criteria.md 获取完整标准。
| 级别 | 大小 | 状态 | 使用案例 |
|---|---|---|---|
| 入门 | 10-30 | 快速示例 | 原型设计、演示 |
| 功能 | 30-75 | 可用但有限 | 个人项目 |
| 生产 | 75-150 | 准备定期使用 | 客户工作、发布工具 |
| 全面 | 150+ | 参考质量 | 权威资源 |
关键指标:
- 大小: 足够大以产生真正随机性
- 多样性: 覆盖所有相关维度(见标准文档)
- 具体性: 足够具体以激发想法(平均 20-60 字符)
- 新鲜度: >30% 项令人惊喜(不是第一想法)
当前内置列表是入门/功能级别。 这个技能存在以将它们构建到生产级别。
列表质量标准
什么构成一个好的列表项
好: “电梯检查员”(具体、意外、引发问题) 坏: “办公室工作人员”(通用、预期、无钩子)
好: “午夜的自助存储设施”(具体时间、隐含氛围) 坏: “建筑”(太模糊无法使用)
好: “他们正在解决一个完全不同的案件,使用相同证据”(具体碰撞机制) **坏:“他们碍事”(无机制,仅效果)
多样性维度
当构建列表时,确保覆盖相关维度:
职业:
- 行业(医疗、法律、建筑、艺术、服务、科技)
- 状态级别(入门级到专家)
- 可见性(面向公众 vs. 幕后)
- 不寻常 vs. 常见
- 历史 vs. 现代 vs. 新兴
地点:
- 公共 vs. 私人
- 室内 vs. 室外
- 城市 vs. 乡村 vs. 郊区
- 时间含义
- 情感价(creepy、mundane、sacred、liminal)
角色特质:
- 积极 vs. 消极 vs. 中性
- 可见 vs. 隐藏
- 自我意识 vs. 盲点
- 稳定 vs. 情境
研究过程
步骤 1: 定义列表
- 什么类别的物品?
- 它将用于什么?
- 什么使项有用 vs. 无用?
- 目标大小(最小 50,理想 100+)
步骤 2: 用明显例子播种
从 10-20 项立即想到的项开始。这些是“可用”选项——任何人都会想到的那些。它们有效但不充分。
步骤 3: 研究多样性
使用可用来源扩展到明显之外:
Kiwix/Wikipedia:
- 类别页面(例如,“Category:Occupations”)
- 列表文章(例如,“List of unusual deaths”)
- 相关文章分支到意外领域
模式:维度扩展
- 选择一个种子列表缺乏的维度
- 专门在该维度研究
- 添加 10-20 项填充缺口
步骤 4: 过滤质量
移除项:
- 太模糊无法使用
- 与现有项太相似
- 文化特定而不有趣
- 需要太多解释
步骤 5: 格式化使用
输出为 JSON 数组以用于 entropy.ts:
{
"list_name": [
"项一",
"项二",
"项三"
]
}
可用工具
validate-list.ts
分析列表的质量和多样性。
deno run --allow-read scripts/validate-list.ts list.json
# 检查文件中的特定列表
deno run --allow-read scripts/validate-list.ts data.json professions
报告:
- 总计数
- 重复检查
- 平均项长度(太短 = 模糊,太长 = 笨重)
- 多样性评估(如果指定维度)
merge-lists.ts
合并多个列表来源,去重,并格式化。
deno run --allow-read scripts/merge-lists.ts source1.json source2.json --output combined.json
研究提示
当需要研究特定类别时,使用提示如:
对于职业: “找到 20 个在[行业]中大多数人不知道存在的职业。专注于涉及有趣访问、专业知识或不寻常工作条件的工作。”
对于地点: “找到 20 个具体地点(不是类别),重要对话可能发生的地方。专注于具有内置张力、时间压力或意外亲密感的地方。”
对于角色缺陷: “找到 20 个人们对自己持有的具体错误信念,这些不是明显的反派特质。专注于感觉保护但实际上限制的信念。”
示例:构建职业列表
起始种子(明显)
- 医生、律师、教师、警察、消防员…
维度缺口分析
- 缺失:小众技术工作
- 缺失:具有不寻常访问的服务工作
- 缺失:涉及秘密的工作
- 缺失:大多数人不知道存在的工作
研究扩展
Kiwix 搜索:“List of occupations” → 类别页面 → 具体不寻常工作
从研究添加:
- 电梯检查员(访问建筑)
- 犯罪现场清洁工(后果,非犯罪)
- 道德黑客(知道漏洞)
- cult deprogrammer(理解操控)
- foley 艺术家(从无创造现实)
- 专利审查员(在公众之前看到创新)
质量过滤
移除:
- “商人”(太模糊)
- “TikTok 影响者”(太趋势,会过时)
- “炼金术士”(错误时代除非幻想)
最终检查
- 80+ 项? ✓
- 多个行业? ✓
- 混合状态级别? ✓
- 意外选项? ✓
与熵工具集成
使用此技能构建的列表进入:
story-sense/data/用于小说特定列表- 可以通过
entropy.ts --file加载
命名约定:
[类别]-[具体性].json- 示例:
professions-unusual.json,locations-liminal.json,objects-evidence.json
您做什么
- 澄清需要什么列表以及如何使用
- 用明显例子播种
- 研究扩展多样性
- 过滤质量
- 格式化为 JSON
- 用工具验证
- 记录列表的预期使用
您不做什么
- 生成随机项(那是熵脚本做的)
- 创建没有研究的列表(导致仅明显项)
- 包括需要大量解释的项
- 优先数量超过质量(100 好项 > 500 普通项)
输出持久性
此技能将主要输出写入文件,以便工作跨会话持久。
输出发现
在执行任何其他工作之前:
- 检查项目中的
context/output-config.md - 如果找到,查找此技能的条目
- 如果未找到或没有此技能的条目,首先询问用户:
- “我应该在哪里保存此列表构建器会话的输出?”
- 建议:
data/或story-sense/data/用于熵列表
- 存储用户的偏好:
- 在
context/output-config.md中如果上下文网络存在 - 否则在项目根目录的
.list-builder-output.md中
- 在
主要输出
对于此技能,持久化:
- 列表本身 - JSON 格式用于 entropy.ts 使用
- 研究来源 - 项来自哪里
- 维度分析 - 覆盖了哪些多样性维度
- 使用文档 - 列表用于什么
对话 vs. 文件
| 写入文件 | 保留在对话 |
|---|---|
| 最终列表(JSON) | 讨论列表目的 |
| 研究来源 | 迭代项 |
| 质量分析 | 实时反馈 |
| 文档 | 类别细化 |
文件命名
模式:{category}-{specificity}.json
示例:professions-unusual.json