关于 list-builder
list-builder 是用于整理创作随机化素材的技能,帮助构建具体且多样的故事列表。它涵盖调研、质量筛选、JSON 格式整理和脚本验证。
主要功能
- 01明确列表用途与目标规模
- 02通过调研扩展多样性
- 03筛除模糊或重复条目
- 04将列表整理为 JSON
- 05验证数量、重复项与多样性
- 06保存来源和用途说明
适用场景
- 01为故事提示词构建职业列表
- 02创建带有叙事张力的地点列表
- 03为熵工具准备多样化输入
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ jwynia/ agent-skills --skill list-builder安装后在 Claude Code 中输入/list-builder确认已加载。
附带文件references/dataset-quality-criteria.mdscripts/validate-list.ts
详细介绍
List Builder:Entropy 列表整理技能
你将为创意随机化构建全面、高质量的列表。这些列表会输入熵工具,为故事创作注入不可预测性。
核心原则
优质熵列表具备三个特性:
- 规模 — 足够大(50–200+ 项),让人感到真正随机
- 多样性 — 覆盖完整的可能性空间,而不只是显而易见的例子
- 具体性 — 足够具体,能激发灵感,而非含糊的类别
LLM 擅长研究、分类和质量控制。脚本擅长存储和随机选择。这项技能将两者结合起来。
数据集成熟度级别
完整标准请参阅 references/dataset-quality-criteria.md。
| 级别 | 规模 | 状态 | 使用场景 |
|---|---|---|---|
| 入门级 | 10-30 | 快速示例 | 原型设计、演示 |
| 实用级 | 30-75 | 可用但有限 | 个人项目 |
| 生产级 | 75-150 | 可供日常使用 | 客户项目、已发布的工具 |
| 全面级 | 150+ | 参考级质量 | 权威资源 |
关键指标:
- 规模: 足够大,确保真正的随机性
- 多样性: 覆盖所有相关维度(见标准文档)
- 具体性: 足够具体,能激发灵感(平均 20-60 个字符)
- 新颖度: >30% 的条目能带来意外(而非第一反应)
当前内置列表处于入门级/实用级。 这项技能旨在将它们提升至生产级。
列表质量标准
优质列表条目的特点
优质:“电梯检修员”(具体、出人意料、引发疑问) 不佳:“办公室职员”(泛泛而谈、意料之中、没有发挥空间)
优质:“午夜时分的自助仓储设施”(时间具体,暗示氛围) 不佳:“建筑物”(过于含糊,无法使用)
优质:“他们在调查完全不同的案件,却使用了相同的证据”(具体的冲突机制) 不佳:“他们碍事了”(没有机制,只有结果)
多样性维度
构建列表时,确保覆盖相关维度:
职业:
- 行业(医疗、法律、建筑、艺术、服务、科技)
- 职级(从入门级到专家)
- 可见度(面向公众与幕后工作)
- 特殊与常见
- 历史、现代与新兴
地点:
- 公共与私人
- 室内与室外
- 城市、乡村与郊区
- 时间带来的影响
- 情绪基调(诡异、平淡、神圣、过渡性)
人物特质:
- 正面、负面与中性
- 显而易见与隐藏
- 自我认知与盲点
- 稳定与情境性的
研究流程
步骤 1:定义列表
- 属于什么类别?
- 用途是什么?
- 什么样的条目有用,什么样的没用?
- 目标规模(至少 50 项,理想情况下 100 项以上)
步骤 2:用显而易见的例子打底
从脑海中立即浮现的 10-20 个条目开始。这些是“现成”的选项——任何人都会想到的条目。它们有效,但还不够。
步骤 3:研究以增加多样性
利用可用来源,扩展显而易见的内容:
Kiwix/Wikipedia:
- 分类页面(例如,“Category:Occupations”)
- 列表文章(例如,“List of unusual deaths”)
- 延伸至意想不到领域的相关文章
模式:按维度扩展
- 选取种子列表中缺少的一个维度
- 针对该维度进行专门研究
- 添加 10-20 个条目以填补空缺
步骤 4:筛选质量
移除以下条目:
- 过于含糊,无法发挥作用
- 与现有条目过于相似
- 具有文化特殊性,却缺乏趣味
- 需要过多解释
步骤 5:设置可用格式
输出为 JSON 数组,以便与 entropy.ts 配合使用:
{
"list_name": [
"Item one",
"Item two",
"Item three"
]
}
可用工具
validate-list.ts
分析列表的质量和多样性。
deno run --allow-read scripts/validate-list.ts list.json
# Check specific list in a file
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 搜索:“职业列表” → 类别页面 → 具体的特殊职业
从研究中添加:
- 电梯检验员(可进入各类建筑)
- 犯罪现场清理员(处理犯罪后的现场,而非犯罪本身)
- 道德黑客(了解系统漏洞)
- 邪教脱离辅导员(了解操控手段)
- 拟音师(凭空创造现实)
- 专利审查员(在创新公开前就能看到它们)
质量筛选
移除:
- “商人”(过于宽泛)
- “TikTok 网红”(过于跟风,容易过时)
- “炼金术士”(时代不符,除非是奇幻题材)
最终检查
- 有 80 个以上条目?✓
- 涵盖多个行业?✓
- 包含不同社会地位的职业?✓
- 有出人意料的选项?✓
与 Entropy 工具集成
使用此技能构建的列表可放入:
story-sense/data/,用于小说专属列表- 可通过
entropy.ts --file加载
命名约定:
[category]-[specificity].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使用 - 研究来源 - 条目来自何处
- 维度分析 - 涵盖了哪些多样性维度
- 使用文档 - 列表的用途
对话与文件
| 写入文件 | 保留在对话中 |
|---|---|
| 最终列表(JSON) | 对列表用途的讨论 |
| 研究来源 | 对条目的迭代 |
| 质量分析 | 实时反馈 |
| 文档 | 类别细化 |
文件命名
格式:{category}-{specificity}.json
示例:professions-unusual.json