具体用可观察行为替代空泛形容词
分层常驻核心与按需资料各归其位
可测试通过多场景对话检查稳定性
作品主框架
详细介绍
展示人物、世界与玩法
内置 CSS
负责界面与状态栏样式
前后置
拼接并强调关键规则
提示词
承载长期核心设定
世界书
按条件加载扩展内容
作用区分:详细介绍与内置 CSS 主要负责玩家看到的展示层;前后置、提示词与被触发的世界书共同影响模型回复。
内容骨架
IDENTITY① 身份锚点
姓名、身份、时代、与用户的初始关系。回答“他是谁、此刻在哪里”。
MOTIVE② 核心驱动
目标、欲望、恐惧、底线与矛盾。回答“他为什么这样做”。
BEHAVIOR③ 行为模式
平静、受压、亲近、冲突时分别如何反应;写动作倾向,不只贴标签。
VOICE④ 语言风格
句长、用词、称呼、语气、禁用表达与潜台词,决定“听起来像不像”。
CONTEXT⑤ 背景关系
关键经历、阵营、人物关系和当前冲突;只保留能影响当下选择的事实。
SCENE⑥ 开场与示例
用首条消息建立地点、事件与可回应钩子;示例对话负责展示而非解释。
写法转换:“他很温柔”信息量很低;“争执时先复述对方的诉求,再压低声音提出一个折中方案”才是可演绎的行为。
最小可用结构
character-outline.txt
[基本身份]
姓名:
身份 / 职能:
时代与地点:
与 {{user}} 的初始关系:
[核心驱动]
表层目标:
深层需求:
最害怕发生的事:
不会跨越的底线:
内在矛盾:
[行为与语言]
日常状态:
压力状态:
亲近状态:
冲突处理:
语言节奏 / 常用称呼 / 避免用语:
[场景]
当前事件:
开场钩子:
示例对话:
信息取舍顺序
决定核心欲望
设置现实阻力
落实行为反应
统一语言特征
补充必要资料
三条核心设计思维
FENCE围栏,而不是轨道
硬定会导致世界崩坏的边界;只要结果逻辑成立,就给模型留下自由发挥空间。不要预写每一步剧情。
ENGINE给引擎,不给脚本
写角色如何做决定:目标、价值排序、恐惧和矛盾。决策引擎能覆盖未知场景,固定脚本只能处理一种情况。
ALTERNATIVE约束配替代方案
每条“不允许做什么”后面补充“可以怎么做”,让规则既能防止偏离,也能为生成提供可行动方向。
MVP先做最小可用版本
先完成第一印象、目标、价值排序、禁忌、语言风格与示例台词,跑几轮后按实际偏差增补。
世界与角色必须咬合
| 检查项 | 需要回答的问题 | 处理方式 |
| 规则兼容 | 角色行为是否违反世界中的硬规则? | 逐条检查行为模式与能力上限 |
| 知识边界 | 角色知道哪些公开、半公开或秘密信息? | 列出“知道但不说”和“自己也不知道” |
| 自然压力 | 哪些世界规则会持续逼迫角色作出选择? | 让冲突从设定自然产生,不额外强塞剧情 |
新手常见的六个坑
- 百科全书式堆砌,关键规则被细节淹没
- 只有历史故事,没有可执行的判定规则
- 角色卡只是“活泼、勇敢”等属性标签
- 角色永远正确,没有恐惧、代价与失败
- 只写禁止事项,不提供可行替代方案
- 把关键规则缺失误当成有意留白
PRE TEXT前置词:强调规则
放需要稳定生效的叙事原则、角色边界、视角要求与行为规范。内容应清晰、可执行,避免与角色正文互相矛盾。
POST TEXT后置词:核心内容
放最重要、希望模型在生成前再次注意的内容,作用类似“破甲”。适合强调本轮必须遵守的输出方式与核心要求。
实际拼接关系:前置词 + 用户本轮输入 + 后置词。提示词则作为长期底层设定,与角色卡和当前触发的世界书共同参与生成。
| 位置 | 适合内容 | 使用提醒 |
| 提示词 | 身份定位、回复规范、世界观、长期玩法与输出格式 | 属于固定核心;越长越需要明确层级 |
| 前置词 | 格式稳定、防止代写用户、当前阶段前需要强调的规则 | 会随用户输入一起发送,避免重复堆叠 |
| 后置词 | 希望生成前最后读取的核心提醒与本轮输出要求 | 优先放最关键内容,不与前置或主提示互相冲突 |
前置提示词模板
prefix-prompt.txt
你将以 {{char}} 的身份参与沉浸式叙事。
始终遵循:
1. 依据角色的目标、认知边界和当前关系作出反应。
2. 通过语言、动作、停顿和选择表现性格,不用旁白直接宣布性格标签。
3. 不替 {{user}} 决定思想、台词或关键行动。
4. 保持场景的时间、地点、人物状态与因果连续。
5. 当资料未定义时,优先作出与既有设定相容的小幅推断,避免凭空加入重大事实。
后置词文本
提示词的两种常用格式
提示词通常使用 Markdown(MD)或 XML。主要结构包括:思维链、回复规范、世界观、输出格式。MD 易读易改,XML 边界更明确,适合层级较深的长提示词。
思维链折叠栏结构
thinking-chain-fold.html
<ThinkingChainSpec>
【结构】外层`<div hidden>`包裹`<details class="think-fold">`折叠栏,内层再用`<div hidden>`包裹XML
【模板】`<div hidden><details class="think-fold"><summary>🧠 思考过程(点击展开)</summary><div hidden><ReplyStandard><ThinkingChain><Description>禁空行,换行用<br>这种结构</Description></ThinkingChain></ReplyStandard></div></details></div>`
</ThinkingChainSpec>
参考案例(MD)
prompt-example.md
# PromptSpec
## ThinkingChainSpec
- 生成前检查:人物动机、场景连续性、信息边界、当前任务。
- 按指定折叠结构组织思考区,不在正文解释规则。
## ReplyStandard
- 使用中文输出。
- 保持角色语言、动作与当前关系一致。
- 不替用户决定未表达的思想、台词或关键行动。
- 直接延续当前场景,避免总结式收尾。
## WorldView
- 故事发生在灰港旧城区。
- 公开事实与角色私密知识必须区分。
- 未定义内容只能作与既有设定相容的小幅推断。
## OutputFormat
1. 折叠思考区
2. 正文
3. 可供用户回应的自然结尾
参考案例(XML)
prompt-example.xml
<PromptSpec>
<ThinkingChainSpec>
<Structure>检查人物动机、场景连续性、信息边界与当前任务</Structure>
<Template><![CDATA[
<div hidden><details class="think-fold"><summary>🧠 思考过程(点击展开)</summary><div hidden><ReplyStandard><ThinkingChain><Description>禁空行,换行用<br>这种结构</Description></ThinkingChain></ReplyStandard></div></details></div>
]]></Template>
</ThinkingChainSpec>
<ReplyStandard>
<Language>中文</Language>
<Continuity>保持角色、关系、时间与地点连续</Continuity>
<UserAgency>不代替用户决定关键行动</UserAgency>
</ReplyStandard>
<WorldView>
<Setting>灰港旧城区</Setting>
<KnowledgeBoundary>区分公开事实与角色私密知识</KnowledgeBoundary>
</WorldView>
<OutputFormat>折叠思考区 → 正文 → 自然回应空间</OutputFormat>
</PromptSpec>
✓ 有效提示词
- 要求能被直接观察和检查
- 一个条目解决一类问题
- 说明优先级或冲突处理方式
- 给出正向目标和必要边界
× 常见问题
- 堆叠“必须、绝对、永远”却不说明行为
- 同一规则在三处重复
- 风格词互相矛盾
- 把本轮格式写成永久人格
一个条目的四个部件
KEYS触发词
正式名、简称、别称、常见拼写。不要加入过于宽泛、每轮都会出现的词。
CONTENT条目正文
定义对象、与当前剧情有关的特征、角色应知道的范围及可能影响。
PRIORITY优先级
越接近核心设定,越应稳定;装饰性资料应让位于角色人格和当前场景。
SCOPE触发范围
区分常驻、关键词触发与仅特定角色可知,减少无关信息进入上下文。
触发后发生了什么
收到用户消息
扫描指定深度
检查用户与 AI 文本
命中关键词或正则
注入条目后生成回复
条目不是独立回答,而是临时进入模型上下文的参考资料。可用触发日志确认“扫描了什么、命中了哪一条、注入到哪里”。
从完整文档拆成世界书
不要把几万字设定整体塞进主提示词。将地点、势力、系统、事件和 NPC 拆成能够独立理解的条目,只加载当前场景真正需要的信息。
ALWAYS ON建议常驻
元信息、最重要的硬规则、信息分层原则、角色不可替换的核心人格。
ON DEMAND建议按需触发
具体地点、势力历史、详细系统说明、支线事件、非当前场景的 NPC 档案。
拆分标准:每条应是一个自包含的信息单元。条目过长时继续拆分,例如把一个能力系统拆为“基本规则、等级对照、边界案例”。触发词覆盖常见别称,但不要使用“你、我、的”等高频词制造事实上的常驻。
先在编辑器配置参数(内容框外)
下列项目填写在世界书条目的界面字段中,由平台负责触发与注入;不要把它们复制进世界书内容框。
| 界面参数 | 示例值 |
| 条目名称 | 灰港钟塔 |
| 触发词 | 灰港钟塔、钟塔、旧钟楼 |
| 触发模式 | 或 |
| 触发区域 | 用户 |
| 影响范围 | 提示词 |
| 插入顺序 | 1200 |
| 扫描深度 | 2 |
| 触发概率 | 100 |
世界书管理界面:触发区域、触发模式、映射区域和条目开关都属于内容框外的参数。
触发结果测试:命中关键词后,AI 在回复中使用对应条目的场景资料。
内容框参考案例(MD)
worldbook-content.md
# 灰港钟塔
## 公开信息
灰港钟塔位于旧城区北端,午夜后停止报时。
塔底是仍在使用的邮局,西侧铁门仅守塔人持钥匙。
三年前的火灾封闭了顶层;官方记录称无人伤亡。
## 信息边界
本地居民知道公开历史;只有守塔人知道西侧密道。
## 剧情用途
约见地点;进入顶层需要钥匙或另寻通道。
内容框参考案例(XML)
worldbook-content.xml
<WorldBookContent>
<Name>灰港钟塔</Name>
<PublicFact>灰港钟塔位于旧城区北端,午夜后停止报时。</PublicFact>
<PublicFact>塔底是仍在使用的邮局;三年前的火灾封闭了顶层。</PublicFact>
<InformationBoundary>本地居民知道公开历史;只有守塔人知道西侧密道。</InformationBoundary>
<StoryUse>约见地点;进入顶层需要钥匙或另寻通道。</StoryUse>
</WorldBookContent>
参数与正则
以下内容综合《AI风月做卡指南 · 新手向 · 世界书篇》与《正则使用方法-基于4月更新【莫名其】》整理。两篇对应的界面版本不同,因此数字字段要结合当前导出文件核对。
| JSON 字段 | 作用 | 常用值 / 写法 |
| key | 关键词或正则内容 | 或:_or_词1@wb@词2;与:_and_词1@wb@词2;正则:直接填写表达式 |
| value | 触发后注入的正文 | 字符串,可使用 MD 或 XML 组织 |
| group | 条目分组标签 | 字符串 |
| match_type | 匹配模式 | 新版本常见:2=关键词,3=正则;关键词的与 / 或由 key 前缀控制。旧导出可能使用 1 / 2 / 3 表示与 / 或 / 正则 |
| key_region | 扫描哪些消息 | 新版本常见:系统=1、用户=2、AI=4、用户+AI=6;旧导出映射可能不同 |
| value_region | 内容注入位置 | 提示词=1,前置词=2,后置词=4 |
| sort | 多条同时触发时的插入顺序 | 0–9999,数字越小越靠前 |
| depth | 向前扫描多少条消息 | 0–20;越大越容易持续触发,也越可能误触发 |
| probability | 匹配后的实际触发概率 | 1–100,100 表示确定触发 |
| enable | 条目开关 | true / false |
key_region:按版本辨认
| 当前教程中的区域 | 常见值 | 用途 |
| 系统 | 1 | 部分新版界面已弱化或弃用该选项,不宜依赖 |
| 用户 | 2 | 扫描玩家输入,NPC、地点与场景条目最常用 |
| AI | 4 | 扫描 AI 输出,通常在下一轮继续命中相关条目 |
| 用户 + AI | 6 | 同时扫描双方文本,适合需要跨轮延续的场景资料 |
不要死记旧位掩码:2026 年 4 月资料曾使用另一套对应关系;新教程与当前界面已出现变化。最稳妥的做法是在界面选择一次区域、导出 JSON,再以导出结果作为本版本的准绳。
常用正则速查
regex-cheatsheet.txt
| 或:苏晚晴|晚晴|苏姐
[] 任意一个字符:[一二三四五六1-6][层楼F]
. 任意一个字符:苏.晴
* 前一项重复 0 次或多次:苏.*晴
+ 前一项重复 1 次或多次:.+
? 前一项可有可无:苏晚?晴
() 分组:(进化|突变)(树|分支|路线)
\ 转义特殊字符:\? 表示匹配问号本身
{0,4} 限制间隔长度:(去|到|前往).{0,4}(酒馆|市集|城门)
推荐参数
| 条目类型 | 触发区域 | 扫描深度 | 概率 | 建议 |
| 核心规则 | 提示词常驻 | — | 100 | 真正需要每轮生效的内容优先放提示词,不依赖伪触发 |
| NPC 档案 | 用户 | 2–3 | 100 | 用姓名、别称、房间号等精准触发 |
| 地点环境 | 用户 | 1–2 | 100 | 加入“去、到、进入”等动作条件可减少误触发 |
| 场景规则 | 用户 | 1 | 100 | 只扫描最近消息,离开场景后及时退出 |
| 随机事件 | 用户 | 1 | 15–40 | 可用 .+ 匹配非空输入,再由概率控制出现频率 |
兼容说明:旧版条目可能只有 key / value / group / key_region / value_region 五个字段;缺失字段的默认行为应以当前平台实测为准。中文没有天然词边界,短词容易误触发,优先使用更长名称或添加前后条件。单条正文保持聚焦,约 200–800 字通常更易维护。
写作规则
- 每条围绕一个人物、地点、组织或概念
- 先写稳定事实,再写可变化状态
- 标明谁知道、谁不知道,控制信息边界
- 把剧情钩子写成可能性,不强制结果
- 交叉引用相关条目,不复制整段内容
- 测试别称、简称和自然对话中的触发效果
判断是否该进世界书:删除这段资料后,角色的核心人格仍成立,但涉及某个地点、组织或物品时会缺少知识——这通常就是世界书内容。
通用消息卡模板
以下片段可作为角色介绍、状态栏或开场信息面板的起点。类名统一使用 cc- 前缀,颜色集中在变量中修改。
card-component.html
<section class="cc-card">
<div class="cc-kicker">CASE FILE · 017</div>
<h2 class="cc-title">角色名称</h2>
<p class="cc-desc">一句话说明角色此刻的身份与处境。</p>
<div class="cc-grid">
<div><small>地点</small><strong>灰港钟塔</strong></div>
<div><small>时间</small><strong>午夜 00:17</strong></div>
</div>
<blockquote class="cc-quote">“钟声停了,但楼上有人。”</blockquote>
</section>
<style>
.cc-card {
--cc-bg: #17231f;
--cc-panel: #21322b;
--cc-text: #f1f4f1;
--cc-muted: #aab8b0;
--cc-accent: #e87550;
width: min(100%, 680px);
margin: 1rem auto;
padding: clamp(1.25rem, 4vw, 2rem);
color: var(--cc-text);
background: linear-gradient(145deg, var(--cc-panel), var(--cc-bg));
border: 1px solid rgba(255,255,255,.1);
border-radius: 20px;
box-shadow: 0 18px 45px rgba(0,0,0,.2);
font-family: system-ui, sans-serif;
}
.cc-kicker { color: var(--cc-accent); font-size: .72rem; font-weight: 800; letter-spacing: .16em; }
.cc-title { margin: .3rem 0; font-size: clamp(1.6rem, 5vw, 2.6rem); line-height: 1.1; }
.cc-desc { margin: 0; color: var(--cc-muted); line-height: 1.7; }
.cc-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: .75rem; margin: 1.25rem 0; }
.cc-grid div { padding: .8rem; background: rgba(255,255,255,.06); border-radius: 12px; }
.cc-grid small, .cc-grid strong { display: block; }
.cc-grid small { margin-bottom: .2rem; color: var(--cc-muted); }
.cc-quote { margin: 0; padding: .8rem 1rem; border-left: 3px solid var(--cc-accent); background: rgba(0,0,0,.12); }
@media (max-width: 480px) { .cc-grid { grid-template-columns: 1fr; } }
</style>
兼容性要点
建议采用
- 类名前缀,避免覆盖宿主样式
- 系统字体栈,不依赖网络字体
max-width 与弹性单位- 移动端媒体查询与足够对比度
谨慎采用
- 无前缀的
div / p / span 全局规则 - 固定高度和大量绝对定位
- 远程图片、字体或脚本依赖
- 只靠颜色表达状态
注意:部分聊天前端会过滤 <style>、脚本或特定 HTML 标签。发布前应在目标平台测试;不支持时使用行内样式或平台提供的主题机制。
详细介绍 UI 应包含什么
HERO首屏识别
作品名、一句话卖点、类型标签与主视觉气氛,让用户快速判断题材。
INTRO核心介绍
角色身份、当前处境、关系起点与体验目标,只展示玩家需要知道的内容。
WORLD世界与玩法
用短卡片说明舞台、冲突、可探索内容、玩法机制和状态栏含义。
GUIDE使用说明
推荐开局方式、输入示例、兼容提醒与内容说明,避免剧透隐藏设定。
完整 UI 创作指令母版
将下面整段交给能生成 HTML/CSS 的模型,再把作品资料填进占位符。若平台只接收片段,把“完整 HTML 文件”改成“可嵌入的 HTML 片段”。
detailed-intro-ui-brief.txt
# 任务
根据“输入资料”设计一份用于角色卡【详细介绍】区域的响应式 HTML UI。
这是面向用户的作品展示页,不是角色扮演提示词。请整理信息层级并完成视觉设计,但不得擅自添加资料中不存在的角色经历、关系或玩法。
# 输入资料
- 作品名称:【】
- 一句话卖点:【】
- 题材与氛围:【】
- 角色公开介绍:【】
- 世界观公开介绍:【】
- 用户与角色的初始关系:【】
- 主要玩法 / 可探索内容:【】
- 推荐开局方式:【】
- 内容说明与注意事项:【】
- 希望使用的主色 / 辅色:【】
- 可使用的图片地址:【无则留空】
# 页面模块
1. 首屏:作品名、一句话卖点、类型标签和主要行动按钮视觉。
2. 核心介绍:用短段落呈现角色身份、处境与关系起点。
3. 特点卡片:3—6 项核心看点,每项包含短标题与一句说明。
4. 世界与玩法:说明舞台、主要冲突、互动方式和可见机制。
5. 开局指南:给出 3 条可直接参考的用户输入,但不替用户决定背景。
6. 内容说明:展示必要的题材、兼容或使用提醒。
7. 页尾:一句收束文案;不得加入虚假的作者、版本或外链。
# 视觉方向
- 风格关键词:【例如:旧报纸 / 科幻终端 / 东方典雅 / 清爽档案】
- 主色:【】;强调色:【】;背景色:【】。
- 信息层级清楚,标题、正文、辅助信息有明显差别。
- 装饰服务于主题,不用无意义的大面积动效或高强度发光。
- 桌面端有完整构图,手机端自动改为单列且保持阅读顺序。
# 兼容要求
- 输出一个完整 HTML 文件;CSS 写入同一文件的 <style> 中。
- 不加载外部框架、字体、脚本、图标库或必须联网的资源。
- 所有自定义类名统一使用 ci- 前缀,避免污染宿主页面。
- 不写针对 body、div、p、h1 等标签的无范围全局样式。
- 根容器使用 .ci-detail;全部样式限制在该容器内。
- 不使用固定高度承载正文;长文字、表格和代码不得横向撑破容器。
- 使用 clamp()、min()、max-width、grid / flex 与移动端媒体查询。
- 正文对比度清晰;不能只靠颜色表达含义;键盘焦点可见。
- 即使 style 被过滤,HTML 的标题、段落与列表仍能按正确顺序阅读。
- 除非输入资料明确要求交互,否则不要使用 JavaScript。
# 内容约束
- 只展示玩家在开始前应知道的公开信息,不泄露隐藏设定与剧情答案。
- 保留输入资料的原意;可以压缩和重排,不篡改专名、数值和明确规则。
- 避免“精美、沉浸、史诗”等空泛自夸,用具体内容说明看点。
- 中文标点、层级和段落完整,不使用占位假文。
# 输出格式
只输出可直接保存或粘贴的完整 HTML 代码,不附加解释、Markdown 代码围栏或第二套方案。
# 验收标准
- 作品名、卖点、角色、世界、玩法、开局方式均可快速找到。
- 视觉风格与输入主题一致,组件间距和文字层级统一。
- 在 320px 宽度下无页面级横向滚动,在宽屏下不过度拉长文本行。
- 删除 CSS 后仍是结构完整、顺序合理的纯文本介绍。
- 页面没有外部依赖、控制台报错、空链接和未替换占位符。
资料填充模板
detailed-intro-content.md
# 作品名称
【填写名称】
## 一句话卖点
【用一句话说明角色、矛盾与体验】
## 角色公开介绍
- 身份:【】
- 第一印象:【】
- 与用户的关系起点:【】
- 当前处境:【】
## 世界观公开介绍
- 舞台:【】
- 玩家需要知道的规则:【】
- 主要冲突:【】
## 玩法与看点
1. 【】
2. 【】
3. 【】
## 推荐开局输入
- 【】
- 【】
- 【】
## 内容说明
【只填写确有必要的题材与使用提醒】
## 视觉偏好
- 风格关键词:【】
- 主色 / 强调色:【】
- 图片:【无 / URL】
可嵌入的 UI 内容骨架
detailed-intro-skeleton.html
<section class="ci-detail" aria-labelledby="ci-title">
<header class="ci-hero">
<p class="ci-kicker">类型 · 氛围</p>
<h1 id="ci-title" class="ci-title">作品名称</h1>
<p class="ci-lead">一句话卖点。</p>
</header>
<main class="ci-body">
<section class="ci-section">
<h2>故事从这里开始</h2>
<p>角色、关系与当前处境的公开介绍。</p>
</section>
<section class="ci-section">
<h2>你可以体验</h2>
<ul class="ci-grid">
<li><strong>看点一</strong><span>一句具体说明。</span></li>
<li><strong>看点二</strong><span>一句具体说明。</span></li>
</ul>
</section>
<section class="ci-section">
<h2>开局建议</h2>
<ol><li>一条可直接参考的输入。</li></ol>
</section>
</main>
</section>
UI 发布前自检
- 详细介绍只含公开信息,没有泄露隐藏设定
- 标题、摘要、角色、世界与玩法层级清楚
- 所有类名均有统一前缀,不覆盖宿主页面
- 移除样式后,内容顺序仍完整可读
- 没有远程字体、框架或脚本依赖
- CSS 在手机与窄容器中不溢出
- 图片缺失时不会留下空白大区或破图
- 颜色对比、字号与点击区域足够清楚
- 复制到目标平台后完成一次真实预览
边界说明:“详细介绍基本指南”只负责展示层的生成要求。人物动机与世界设定的创作方法归入第 08 章;用于影响模型回复的内容应放在提示词、前后置词或世界书中。
本指南采用:侧边栏(Sidebar)+卡片切换。桌面端使用吸附侧栏选择主章节,窄屏改为顶部横向导航;每次只显示一个章节卡片,并同步当前项与 URL 状态。“详细介绍”再通过折叠次级导航切换五张子卡片。
先判断导航承担什么任务
看信息规模少量并列入口用普通或悬浮导航;大量分组入口用下拉、巨型菜单或侧边栏。
看内容关系层级路径用面包屑;同页长内容用锚点导航;移动端空间紧张时用抽屉或全屏遮罩。
看滚动行为需要始终可达用吸顶;首屏视觉重要时用滚动收缩;后台工具优先可折叠侧栏。
九种导航栏指令与对应案例
点击类型即可把标准格式录入右侧面板,并加载对应的可交互案例。案例均为独立单文件 HTML,可在新窗口打开后复制或二次修改。
交给 AI 的录入格式
把“页面资料”和下面三行一起放入详细介绍 UI 指令中。导航类型必须从本章九类中选一;若没有明确偏好,让 AI 根据内容规模选择并说明理由。
detailed-intro-navigation.txt
结构类型:导航栏类型
内容类型:【悬浮吸顶 / 侧边栏 / 面包屑 / 二级下拉 / 巨型菜单 / 汉堡抽屉 / 全屏遮罩 / 锚点导航 / 滚动收缩】
指令:【填写对应案例中的完整指令】
选择要求:
1. 根据页面内容数量、层级关系、滚动长度和主要设备选取一种导航类型。
2. 导航中的每个入口必须对应真实区块或真实切换内容,不生成空链接。
3. 点击后同步激活态、aria-current 与 URL 锚点;菜单类导航支持点外和 Esc 关闭。
4. 手机端保证点击区域、文字可读性与内容顺序,不允许导航遮住标题。
5. 若使用 Scrollspy,滚动高亮和点击高亮必须一致。
- 导航类型与内容规模匹配,不只追求视觉效果
- 每个导航入口都有真实目标或切换内容
- 点击、键盘、滚动三种状态表现一致
- 当前项有文字或形状变化,不只依赖颜色
- 下拉、抽屉和遮罩支持 Esc 与点外关闭
- 窄屏不溢出、不遮挡内容且点击区域足够
- URL 锚点可恢复当前章节或当前视图
- 移除 JavaScript 后仍保留基础阅读路径
统一结构类型:细化对齐类型。描述问题时先指出要对齐的对象,再说明参照关系和间距数值;不要只说“看起来歪了”或“调整一下”。
- 结构类型:
- 细化对齐类型
- 内容类型:
- Baseline
- 指令:
按文字基线对齐,不是按外框。
- 结构类型:
- 细化对齐类型
- 内容类型:
- object-fit
- 指令:
改成填满容器 cover,别居中。
- 结构类型:
- 细化对齐类型
- 内容类型:
- Align
- 指令:
说清:垂直居中 / 左对齐 / 右对齐。
- 结构类型:
- 细化对齐类型
- 内容类型:
- Margin
- 指令:
查残留的 margin,彻底去掉。
- 结构类型:
- 细化对齐类型
- 内容类型:
- Padding-top
- 指令:
留出导航栏的高度。
- 结构类型:
- 细化对齐类型
- 内容类型:
- Center + Left
- 指令:
整体水平居中,内部文字保持左对齐。
- 结构类型:
- 细化对齐类型
- 内容类型:
- Inset
- 指令:
四周间距保持一致,比如都留 10px。
七项指令汇总
detailed-intro-structure-types.txt
1.
结构类型:细化对齐类型
内容类型:Baseline
指令:按文字基线对齐,不是按外框。
2.
结构类型:细化对齐类型
内容类型:object-fit
指令:改成填满容器 cover,别居中。
3.
结构类型:细化对齐类型
内容类型:Align
指令:说清:垂直居中 / 左对齐 / 右对齐。
4.
结构类型:细化对齐类型
内容类型:Margin
指令:查残留的 margin,彻底去掉。
5.
结构类型:细化对齐类型
内容类型:Padding-top
指令:留出导航栏的高度。
6.
结构类型:细化对齐类型
内容类型:Center + Left
指令:整体水平居中,内部文字保持左对齐。
7.
结构类型:细化对齐类型
内容类型:Inset
指令:四周间距保持一致,比如都留 10px。
统一结构类型:结构美化类型。选择一种与当前内容状态匹配的美化方式,并把内容类型和完整指令一起交给 AI;美化不能破坏信息层级与可读性。
- 结构类型:
- 结构美化类型
- 内容类型:
- Whitespace
- 指令:
页面保留充足留白,别塞满;元素之间多留空,越克制越高级。
案例 · 充足留白把重点留在画面中央减少装饰,让标题和行动入口自然呼吸。
- 结构类型:
- 结构美化类型
- 内容类型:
- Grid
- 指令:
所有元素按一张隐形网格对齐,保持间距一致、左右对齐,让页面立刻不显得塑料。
- 结构类型:
- 结构美化类型
- 内容类型:
- Card + Micro
- 指令:
把信息装进圆角卡片;鼠标悬停时卡片轻轻浮起并变色,保持干净精致。
案例 · 悬停卡片角色档案悬停或聚焦,卡片轻轻浮起。
- 结构类型:
- 结构美化类型
- 内容类型:
- Masonry
- 指令:
图片采用 Masonry 瀑布流高低错落排列,像内容社区首页那样自然耐看。
- 结构类型:
- 结构美化类型
- 内容类型:
- Liquid Glass
- 指令:
使用半透明液态玻璃效果并加入背景折射,呈现流动的高级感。
- 结构类型:
- 结构美化类型
- 内容类型:
- Skeleton
- 指令:
内容加载完成前先显示灰色骨架占位,避免用户面对空白干等。
- 结构类型:
- 结构美化类型
- 内容类型:
- Empty State
- 指令:
列表为空时显示小图、简短说明和一个引导动作,别只留空白板。
案例 · 空列表+还没有内容创建第一项,之后的内容会显示在这里。
基础文字格式
| 用途 | 写法 | 说明 |
| 一级至六级标题 | # 标题 至 ###### 标题 | 井号后保留一个空格;井号越多,层级越低 |
| 粗体 | **重点** | 强调字段、规则或结论 |
| 斜体 | *补充* | 适合语气、旁注或轻度强调 |
| 粗斜体 | ***非常重要*** | 谨慎使用,避免页面到处都是重点 |
| 删除线 | ~~旧内容~~ | 标注弃用或对比内容 |
| 分隔线 | --- | 区分两个较大的内容区 |
段落、列表与引用
PARAGRAPH段落与换行
两个段落之间保留一个空行。某些解析器需要在行末加入两个空格才能强制换行。
LIST无序与有序列表
- 项目 用于并列特征;1. 步骤 用于有先后次序的流程。子级列表需要缩进。
TASK任务列表
- [x] 表示完成,- [ ] 表示未完成,适合发布前自检。
QUOTE引用
使用 > 内容。可放角色短句、补充说明或一句话卖点。
代码、表格与转义
| 功能 | 写法 | 适用内容 |
| 行内代码 | 一对反引号包裹 | 变量、字段名、短指令 |
| 代码块 | 三个反引号包裹 | 完整提示词、配置、状态栏模板 |
| 表格 | 竖线分列,第二行用短横线 | 属性、参数、阶段和关系对照 |
| 转义 | \*、\#、\~ | 显示 Markdown 特殊符号本身 |
markdown-complete-example.md
# 角色名称
> 一句话介绍角色的身份、气质与当前处境。
## 核心信息
- **身份**:
- **目标**:
- **矛盾**:
- **语言特征**:
## 当前状态
| 项目 | 内容 |
|---|---|
| 时间 | 午夜 00:17 |
| 地点 | 灰港钟塔 |
| 关系 | 初次见面 |
- [x] 已完成角色骨架
- [ ] 补充世界书条目
- [ ] 进行压力测试
<details>
<summary>📋 点击展开状态栏</summary>
这里放可折叠内容。
</details>
使用顺序:先用 Markdown 确保纯文字层级清晰,再转换为 HTML/CSS。即使目标平台过滤样式,核心内容仍应完整可读。
创作界面地图
| 区域 | 主要作用 | 是否影响回复 |
| 名称 / 简介 | 探索页和封面上的识别信息 | 通常不影响 |
| 详细介绍 | 向玩家展示人物、世界、玩法与使用说明;可用 Markdown 或 HTML | 通常不影响 |
| 封面 / 背景 | 作品封面、头像和聊天氛围 | 不影响 |
| 提示词 | 身份、长期规则、世界观、互动机制与输出规范 | 影响 |
| 前置 / 后置词 | 拼接在用户消息前后,强调格式、边界与本轮要求 | 影响 |
| 世界书 | 通过关键词或正则按需加载扩展设定 | 触发后影响 |
| 对话开场白 | 给玩家快捷起点,也是模型学习叙事风格的第一条示范 | 作为首轮输入影响 |
| 默认模型 / 参数 | 控制默认生成模型及随机性、重复度、长度等 | 影响,支持程度因模型而异 |
| 调试与预览 | 预览介绍、测试对话、查看实际拼接与触发日志 | 用于诊断 |
创作界面图片示例
封面效果:封面负责作品识别与第一印象,本身通常不参与模型回复。
背景图效果:选择不妨碍正文阅读的图片,并在浅色与深色文字下检查对比度。
调试界面:一边运行对话,一边检查实际提示词、世界书命中和最终拼接结果。
新手最小启动路径
参考《AI风月做卡指南 · 新手向 · 入门篇》,第一次不必填满所有模块。先做出能保存、能打开、能正常对话的最小版本,再每次只改一个变量。
填写名称
写最小提示词
保存并打开
发送第一条消息
一次只微调一处
第一步:先填作品名称。其余高级字段可以等最小版本正常运行后再补。
第二步:把最小提示词放入提示词编辑区,保存后立即进行第一轮测试。
| 测试表现 | 单次优先修改 |
| 回复没有角色感 | 补一条可观察的语言习惯或行为特征 |
| 角色不知道当前任务 | 补充明确的身份、地点和此刻目标 |
| 开局不知道怎么接 | 重写开场白,留下一个可回应、调查或拒绝的钩子 |
| 改完反而更不稳定 | 撤回本次改动,避免同时调整提示词、参数和世界书 |
详细介绍的制作路径
整理自然语言
转为 Markdown
检查信息层级
转换 HTML/CSS
双端预览测试
常见生成参数
| 参数 | 控制内容 | 调整风险 |
| Temperature | 输出随机性与发散程度 | 过高可能偏离设定,过低可能僵硬重复 |
| Top P | 参与采样的概率范围 | 与温度共同作用,不宜同时大幅调整 |
| 存在惩罚 | 引入新词或新主题的倾向 | 过高可能频繁转移话题 |
| 频率惩罚 | 减少重复词语和表达 | 过高可能让常用称呼和必要术语消失 |
| 最大输出 / 标记 | 单次回复允许生成的长度 | 名称与实际含义会随平台和模型变化 |
调试顺序
- 先预览详细介绍,检查手机和电脑端布局
- 用至少一个开场白启动测试对话
- 查看提示日志,确认前后置词实际拼接位置
- 触发世界书关键词,确认只注入预期条目
- 检查同一内容是否被多个映射区域重复注入
- 保存后再进入正常预览,完成一轮真实流程测试
版本提醒:创作界面、模型列表和参数支持会持续变化。教程中的固定数值只能作为当时作者的使用经验,发布前以当前界面和实际测试结果为准。
世界观七层
| 层级 | 需要定义 | 关键问题 |
| 元信息 | 文档用途、RP 形式、优先级 | 规则冲突时听谁的? |
| 空间 | 地点、相对位置、特殊规则、关联势力 | 场景发生在哪里? |
| 规则 | 来源、门槛、上限、禁止、代价、边界案例 | 遇到不确定结果时如何判定? |
| 信息 | 公开、半公开、秘密及知情条件 | 谁能知道什么? |
| 势力与社会 | 目标、资源、结构、关系、阶层 | 不同群体为什么合作或冲突? |
| 历史 | 仍在影响当下的关键事件 | 哪些旧事会改变今天的选择? |
| 日常常识 | 交通、货币、饮食、职业、礼仪 | 普通人怎样生活? |
角色卡六层
IDENTITY身份层
第一印象、标志性外貌、身份与气质。回答“别人首先看到什么”。
PSYCHOLOGY心理层
目标、驱动、恐惧、价值排序、禁忌与内在冲突。回答“如何做决定”。
BEHAVIOR行为层
触发、行动、代价、压力反应与微习惯。回答“遇到事情怎样反应”。
RELATION关系层
对不同人物的表面态度、潜台词与说话变化。
VOICE语言层
情感温度、句式、用词、称呼、禁用表达与示例台词。
CONTROL元控制层
知识边界、用户自主权、能力上限和不可突破的扮演红线。
决策引擎模板
decision-engine.yaml
psychology:
goal: "角色想获得的具体结果"
drive: "目标背后的深层原因"
fears:
situation: "最害怕发生的外部情境"
loss: "最无法承受的失去"
values: "A > B > C > D"
taboos:
- "绝不跨越的边界"
- "带有例外条件的边界"
internal_conflict: "想要A,但获得A会失去B"
behavior:
calm: "平静状态下的反应"
conflict: "发生冲突时的反应"
pressure: "高压状态下的应激模式"
close: "建立信任后的变化"
cost: "作出重要选择时需要承担的代价"
咬合检查
- 角色能力没有突破世界硬规则
- 角色只使用其身份能够获得的信息
- 世界规则会自然制造角色的两难选择
- 价值排序与禁忌不存在相互矛盾
- 行为规则覆盖合作、冲突、压力和亲近场景
- 删除装饰性资料后,核心决策仍然成立
本章结合《AI风月做卡指南 · 新手向 · 进阶篇》中的玩法、关系进度和状态栏思路,整理为可独立复用的机制结构。
玩法机制需要的六项定义
确定机制目标
设置范围初值
划分阶段
定义变化条件
绑定行为变化
第六项:回写位置。明确数值何时更新、显示在哪里、短期记忆保留多少条,以及阶段跨越是否需要具体事件依据。
gameplay-and-status.md
## 玩法:关系进度
- 范围:0—100;初始值:10
- 0—29:陌生——保持距离,只交流公开信息
- 30—59:熟悉——愿意主动分享日常并提供帮助
- 60—79:信任——会谈及个人顾虑,主动提出共同计划
- 80—100:亲密——愿意承担更高代价,关系称呼随之变化
- 更新规则:根据本轮行动小幅变化;阶段跨越必须有事件依据
- 行为联动:进度变化要体现在称呼、语气、主动性与信息开放程度
## 回复结尾
<details>
<summary>📋 状态栏</summary>
【当前情况】时间 / 地点 / 正在发生的事
【关系进度】当前数值 / 100 · 当前阶段
【角色状态】表情 / 心情 / 身体状态
【短期记忆】最近 2—3 件会影响后续选择的事件
</details>
状态栏实际效果:当前地点、行为、状态与记忆区集中显示,方便跨轮追踪。
组合后的回复:正文、折叠状态栏与推荐选项各自承担不同信息。
MECHANIC玩法机制
定义数值、阶段、变化条件和回退规则。选择单向成长还是可升可降,应服务目标体验。
STATUS状态栏
展示时间、地点、当前事件、角色状态与短期记忆。只记录会影响后续的信息。
BEHAVIOR行为联动
阶段变化同步影响称呼、语气、主动性、知识开放和可选择的行动。
MEMORY简易记忆
保留最近两三件关键事件,每件一句话;旧内容及时压缩或退出。
验收清单
- 回复结尾能稳定输出可折叠状态栏
- 数值变化有明确事件依据,不会无故跳档
- 阶段跨越后,称呼和行为确实发生变化
- 短期记忆只保存会影响后续的事件
- 状态栏不会复述整段正文或无限增长
- 玩法规则不会覆盖角色原有动机与边界
以下内容依据《AI风月做卡指南 · 新手向 · 正则基础篇》归类整理。字段名与作用域数值可能随版本变化,导入前应和当前界面核对。
三层处理链
AI 输出固定标签
正则查找标签
替换或包裹内容
CSS 命中新类名
预览并检查降级
pipeline-example.txt
AI 输出:<details>...</details>
正则替换:<details> → <details class="cw-panel">
内置 CSS:#customized-answer-content .cw-panel { ... }
一条替换规则的四项输入
| 输入 | 作用 | 检查重点 |
| 标题 | 给规则命名,便于排序与排错 | 使用“对象 + 动作”,例如“details 添加类名” |
| 匹配内容 | 查找普通文本或正则表达式 | 特殊符号是否转义,是否需要跨行匹配 |
| 替换内容 | 写回新标签、类名或外层容器 | $1 代表第一个捕获组,不能漏掉原内容 |
| 作用范围 | 决定扫描 AI 输出、用户输入或其他区域 | 用于样式化回复时通常选择 AI 输出;数字编码以当前版本为准 |
三条可导入的基础规则
示例统一使用 cw- 前缀。前两条给折叠栏加类名;第三条用捕获组保留完整的建议问题标签,再包进可单独设计的容器。
regex-replaces.json
[
{
"scope": 10,
"title": "details 添加类名",
"is_enable": true,
"match_regex": "<details>",
"replace_text": "<details class=\"cw-panel\">"
},
{
"scope": 10,
"title": "summary 添加类名",
"is_enable": true,
"match_regex": "<summary>",
"replace_text": "<summary class=\"cw-summary\">"
},
{
"scope": 10,
"title": "建议问题增加容器",
"is_enable": true,
"match_regex": "(<suggested_questions>[\\s\\S]*?</suggested_questions>)",
"replace_text": "<div class=\"cw-suggest\">$1</div>"
}
]
关于 $1:圆括号把匹配到的整段内容保存为第一组;替换文本中的 $1 会把它原样放回。如果只写外层 div 而漏写 $1,原内容会被删除。
与规则配套的内置 CSS
builtin-skin.css
#customized-answer-content .cw-panel {
--cw-bg: #17231f;
--cw-panel: #21342c;
--cw-text: #eef4ef;
--cw-muted: #adc0b6;
--cw-accent: #ef7b57;
margin: .9rem 0;
color: var(--cw-text);
background: linear-gradient(145deg, var(--cw-panel), var(--cw-bg));
border: 1px solid rgba(255, 255, 255, .12);
border-radius: 14px;
overflow: clip;
}
#customized-answer-content .cw-summary {
padding: .85rem 1rem;
color: var(--cw-text);
font-weight: 700;
cursor: pointer;
}
#customized-answer-content .cw-panel[open] .cw-summary {
color: var(--cw-accent);
border-bottom: 1px solid rgba(255, 255, 255, .1);
}
#customized-answer-content .cw-panel > :not(summary) {
margin-inline: 1rem;
}
#customized-answer-content .cw-suggest {
margin-top: .8rem;
padding: .85rem 1rem;
color: var(--cw-muted);
background: rgba(23, 35, 31, .08);
border-left: 3px solid var(--cw-accent);
border-radius: 10px;
overflow-wrap: anywhere;
}
换装后的结果:折叠状态栏和推荐选项通过不同类名获得各自的边框、底色与间距。
排错顺序
| 现象 | 先检查 | 再检查 |
| 完全没有变化 | 规则是否启用、作用范围是否为 AI 输出 | 模型输出是否与匹配文本完全一致 |
| 标签消失或内容被删 | 替换文本是否保留 $1 | 捕获括号是否覆盖了完整内容 |
| 类名出现但没有样式 | CSS 前缀与替换后的类名是否一致 | 宿主根选择器是否正确、样式是否被过滤 |
| 只匹配第一行 | 是否需要 [\s\S]*? 跨行匹配 | 起止标签是否稳定且唯一 |
| 误伤普通正文 | 匹配条件是否过宽 | 增加专属标签或更具体的前后文 |
- 先确认原始输出稳定,再编写替换规则
- 每次只启用一条新规则进行测试
- 类名前缀与 CSS 选择器完全一致
- 替换后 HTML 标签成对且嵌套合法
- 禁用 CSS 后,正文仍然完整可读
- 在手机宽度和长内容下检查溢出