{"id":"629da584-9da6-450f-bc8c-689eb11adc26","entityType":"agent","slug":"clawhub-worldwonderer-story-short-write","name":"story-short-write：短篇网文写作","canonicalUrl":"https://www.xpersona.co/agent/clawhub-worldwonderer-story-short-write","canonicalPath":"/agent/clawhub-worldwonderer-story-short-write","generatedAt":"2026-10-10T00:17:04.302Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-10-09T11:42:45.006Z","emptyReason":null},"description":"短篇网文写作。辅助短篇小说创作，从构思到成稿，聚焦情绪拉扯与节奏把控。触发方式：/story-short-write、/写短篇、「帮我写一篇短篇」「写个盐言故事」。 Skill: story-short-write：短篇网文写作 Owner: worldwonderer Summary: 短篇网文写作。辅助短篇小说创作，从构思到成稿，聚焦情绪拉扯与节奏把控。触发方式：/story-short-write、/写短篇、「帮我写一篇短篇」「写个盐言故事」。 Tags: latest:1.1.21 Version history: v1.1.21 | 2026-10-03T05:42:03.901Z | user Authorized ZenStory cold-start distribution; immutable source and preserved notices. v1.1.20 | 2026-09-27T08:13:15.237Z | user Synced from CI (v0.8.3) v1.1.19 | 2026-09-26T12:20:34.531Z | user Syn","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 2.8K downloads reported by the source. Last updated 10/9/2026.","installCommand":"clawhub skill install s1748rsha25rh871z39a8xdg9n85tqyh:story-short-write","sourceUrl":"https://clawhub.ai/worldwonderer/story-short-write","homepage":"https://clawhub.ai/worldwonderer/skills/story-short-write","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/worldwonderer/story-short-write","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/worldwonderer/skills/story-short-write","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":69,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"短篇网文写作。辅助短篇小说创作，从构思到成稿，聚焦情绪拉扯与节奏把控。触发方式：/story-short-write、/写短篇、「帮我写一篇短篇」「写个盐言故事」。 Skill: story-short-write：短篇网文写作 Owner: worldwonderer Summary: 短篇网文写作。辅助短篇小说创作"},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-09T11:42:45.006Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-09T11:42:45.006Z","emptyReason":null},"stars":null,"forks":null,"downloads":2759,"packageName":null,"latestVersion":"1.1.21","tractionLabel":"2.8K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-09T11:42:44.779Z","emptyReason":null},"lastUpdatedAt":"2026-10-09T11:42:45.006Z","lastCrawledAt":"2026-10-09T11:42:44.779Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-10T11:42:44.779Z","lastVerifiedAt":null,"highlights":[{"version":"1.1.21","createdAt":"2026-10-03T05:42:03.901Z","changelog":"Authorized ZenStory cold-start distribution; immutable source and preserved notices.","fileCount":50,"zipByteSize":289578},{"version":"1.1.20","createdAt":"2026-09-27T08:13:15.237Z","changelog":"Synced from CI (v0.8.3)","fileCount":49,"zipByteSize":288907},{"version":"1.1.19","createdAt":"2026-09-26T12:20:34.531Z","changelog":"Synced from CI (v0.8.1)","fileCount":46,"zipByteSize":288751},{"version":"1.1.18","createdAt":"2026-09-26T03:09:09.030Z","changelog":"Synced from CI (v0.8.0)","fileCount":46,"zipByteSize":286586},{"version":"1.1.17","createdAt":"2026-08-13T14:30:02.329Z","changelog":"Synced from CI (v0.7.6)","fileCount":35,"zipByteSize":223288},{"version":"1.1.16","createdAt":"2026-08-07T02:12:59.726Z","changelog":"Synced from CI (v0.7.4)","fileCount":34,"zipByteSize":219076},{"version":"1.1.15","createdAt":"2026-08-06T03:03:52.815Z","changelog":"Synced from CI (v0.7.3)","fileCount":34,"zipByteSize":218854},{"version":"1.1.14","createdAt":"2026-07-28T14:53:07.360Z","changelog":"Synced from CI (v0.7.2)","fileCount":34,"zipByteSize":217082}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s1748rsha25rh871z39a8xdg9n85tqyh:story-short-write","setupComplexity":"low","setupSteps":["Setup complexity is classified as HIGH. You must provision dedicated cloud infrastructure or an isolated VM. Do not run this directly on your local workstation.","Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-worldwonderer-story-short-write/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-worldwonderer-story-short-write/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-worldwonderer-story-short-write/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-worldwonderer-story-short-write/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-worldwonderer-story-short-write/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-worldwonderer-story-short-write/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-10T00:17:04.296Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-worldwonderer-story-short-write/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-worldwonderer-story-short-write/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-worldwonderer-story-short-write/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-worldwonderer-story-short-write/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"high","updatedAt":"2026-10-09T11:42:45.006Z","emptyReason":null},"readme":"Skill: story-short-write：短篇网文写作\n\nOwner: worldwonderer\n\nSummary: 短篇网文写作。辅助短篇小说创作，从构思到成稿，聚焦情绪拉扯与节奏把控。触发方式：/story-short-write、/写短篇、「帮我写一篇短篇」「写个盐言故事」。\n\nTags: latest:1.1.21\n\nVersion history:\n\nv1.1.21 | 2026-10-03T05:42:03.901Z | user\n\nAuthorized ZenStory cold-start distribution; immutable source and preserved notices.\n\nv1.1.20 | 2026-09-27T08:13:15.237Z | user\n\nSynced from CI (v0.8.3)\n\nv1.1.19 | 2026-09-26T12:20:34.531Z | user\n\nSynced from CI (v0.8.1)\n\nv1.1.18 | 2026-09-26T03:09:09.030Z | user\n\nSynced from CI (v0.8.0)\n\nv1.1.17 | 2026-08-13T14:30:02.329Z | user\n\nSynced from CI (v0.7.6)\n\nv1.1.16 | 2026-08-07T02:12:59.726Z | user\n\nSynced from CI (v0.7.4)\n\nv1.1.15 | 2026-08-06T03:03:52.815Z | user\n\nSynced from CI (v0.7.3)\n\nv1.1.14 | 2026-07-28T14:53:07.360Z | user\n\nSynced from CI (v0.7.2)\n\nv1.1.13 | 2026-07-24T16:21:38.105Z | user\n\nSynced from CI (v0.7.1)\n\nv1.1.12 | 2026-07-16T16:38:59.570Z | user\n\nSynced from CI (v0.7.0)\n\nv1.1.11 | 2026-07-10T14:23:48.516Z | user\n\nSynced from CI (v0.6.22)\n\nv1.1.10 | 2026-06-29T02:20:01.145Z | user\n\nSynced from CI (v0.6.21)\n\nv1.1.9 | 2026-06-27T13:58:41.130Z | user\n\nSynced from CI (v0.6.19)\n\nv1.1.8 | 2026-06-24T16:24:23.032Z | user\n\nSynced from CI (v0.6.18)\n\nv1.1.7 | 2026-06-19T04:33:44.403Z | user\n\nSynced from CI (v0.6.17)\n\nv1.1.6 | 2026-06-14T01:19:10.148Z | user\n\nSynced from CI (v0.6.16)\n\nv1.1.5 | 2026-06-07T06:51:30.109Z | user\n\nSynced from CI (v0.6.15)\n\nv1.1.4 | 2026-06-03T16:21:11.827Z | user\n\nSynced from CI (v0.6.14)\n\nv1.1.3 | 2026-05-30T06:34:42.974Z | user\n\nSynced from CI (v0.6.13)\n\nv1.1.2 | 2026-05-30T02:28:06.067Z | user\n\n输出契约接入 + 按主题索引 + 跨书召回 + 桥段标签\n\nv1.1.1 | 2026-05-27T16:25:50.464Z | user\n\nv0.6.10 — story-long-analyze 管道修正（情节点下限 10、Stage 0.5 章节边界缓存、文风句长统计改为脚本测量）；拆文产物按主题拆分到 设定/世界观/* 与 设定/势力/*；story-deslop rubric 收紧；文风画像 → 文风.md 命名统一；Stage 6 模板空白修正。\n\nv1.1.0 | 2026-05-12T15:38:26.280Z | user\n\nv0.6.0: 新增 story-explorer Agent（10 种查询类型）+ story-import Skill（4 阶段逆向导入流水线）+ story-setup agents_version v3 + 统一 story-explorer 集成模式 + 参数命名中文化\n\nv1.0.1 | 2026-05-01T15:55:36.617Z | user\n\nv0.3.0: 流程衔接表中文化+术语通俗化\n\nv1.0.0 | 2026-04-30T15:46:10.699Z | user\n\nInitial release\n\nArchive index:\n\nArchive v1.1.21: 50 files, 289578 bytes\n\nFiles: LICENSE (1081b), references/agent-calls.md (2297b), references/author-memory-maintenance.md (8766b), references/author-memory.md (11531b), references/banned-words.md (10424b), references/benchmark-recall.md (3808b), references/cross-book-recall.md (5039b), references/dialogue-mastery.md (11764b), references/emotional-methods.md (7925b), references/genre-styles/世情打脸.md (16485b), references/genre-styles/双男主.md (12646b), references/genre-styles/复仇打脸.md (14846b), references/genre-styles/宅斗宫斗.md (15840b), references/genre-styles/总裁豪门.md (17383b), references/genre-styles/悬疑.md (13711b), references/genre-styles/民俗怪谈.md (13204b), references/genre-styles/沙雕脑洞.md (14716b), references/genre-styles/甜宠.md (11894b), references/genre-styles/追妻火葬场.md (15930b), references/genre-writing-formulas.md (20590b), references/genre-writing-techniques.md (23162b), references/hooks-chapter.md (8632b), references/hooks-paragraph.md (6848b), references/output-contract.md (6615b), references/reference-index.md (2438b), references/scene-craft.md (3099b), references/short-craft.md (11235b), references/short-deslop.md (8543b), references/short-format.md (8923b), references/short-prose-quality.md (10837b), references/short-reversal.md (16673b), references/short-suspense.md (15939b), references/style-resolution.md (4016b), references/submission-craft.md (4860b), references/villain-and-reveal.md (5975b), references/workflow-design.md (5878b), references/workflow-draft.md (11731b), references/workflow-revision.md (6409b), references/writing-workflow.md (4848b), scripts/author_memory_commit.py (79758b), scripts/check-ai-patterns.js (75274b), scripts/check-degeneration.js (15104b), scripts/check-delivery-contract.js (9055b), scripts/check-outline-copy.js (13356b), scripts/check-phase2-contract.js (16497b), scripts/normalize-punctuation.js (13480b), scripts/style-whitelist.js (1168b), skill-card.md (1904b), SKILL.md (11135b), _meta.json (137b)\n\nFile v1.1.21:SKILL.md\n\n---\nname: story-short-write\nversion: 1.0.0\ndescription: \"短篇网文写作。辅助短篇小说创作，从构思到成稿，聚焦情绪拉扯与节奏把控。触发方式：/story-short-write、/写短篇、「帮我写一篇短篇」「写个盐言故事」。\"\nmetadata: {\"openclaw\":{\"source\":\"https://github.com/zenstory-ai/oh-story-claudecode\"}}\n---\n# story-short-write：短篇网文写作\n\n你是短篇网文写作执行器。从构思到成稿，完成一篇完整的短篇小说。\n\n**执行规则：短篇以情绪为目标，所有内容为情绪服务。**\n\n## 写前必读（强制，先读后写）\n\n短篇按作者时刻加载：每个时刻只读自己的文件，后一时刻只靠落盘文件接上前一时刻。创建或修改故事文件前，先判断当前时刻并完整读取它的必读项（分块直到 EOF；`rg` 检索或局部摘读不算读完）。**只读本 SKILL.md 不算完成门禁。**\n\n| 时刻 | 作者确认什么 | 读什么 | 落盘 |\n|---|---|---|---|\n| 定情绪（Phase 1） | 读者读完的感觉、题材方向 | 本文件 | 进构思时写入 `设定.md` |\n| 构思（Phase 2） | 故事核、人物、反转、付费点 | ① `references/workflow-design.md` + `references/writing-workflow.md`、`references/submission-craft.md`、`references/short-craft.md`、`references/short-reversal.md` ② 核心 10 题材读一个精确的 `references/genre-styles/{题材}.md`，冷门题材读 `references/genre-writing-formulas.md` ③ 有反派或真相揭露设计时读 `references/villain-and-reveal.md`，不适用时在设计校验区写明原因 | `设定.md`、`小节大纲.md` |\n| 写正文（Phase 3–4） | 成稿 | Phase 3 写正文前完整读取 `references/workflow-draft.md`，按其「写前加载」读写作手法；Phase 4 精修前完整读取 `references/workflow-revision.md` | `正文.md` |\n\n构思必读项在第一次写入 `设定.md` / `小节大纲.md` 前读完。任一必需路径不存在、不可读或题材尚未解析到唯一 reference 时，立即停止，报告准确路径/待定项，**不得创建或修改故事产物**。不要把“已读 references”的回执写进故事文件；选出的题材招式、反转计算等应用证据写进正常设计字段。每个时刻按当前任务完整回读，不得用早先读过代替。\n\n**交接只靠落盘**：作者在对话里定下的字数、平台、人称、偏好、红线和否掉的方案，构思交付前写进 `设定.md`；写正文只读两份设计文件与本时刻的写作手法，不重读构思方法论，也不回翻对话。\n**换上下文**：构思读得最多。构思汇报末尾建议作者新开一个对话说「写正文」；作者要在本对话接着写也照做。新对话里两份设计文件已通过构思完成门禁时，直接进入写正文。\n\n---\n\n> Agent 只查当前端 canonical 目录（Claude `.claude/agents`、OpenCode `.opencode/agents`、Codex `.codex/agents` TOML、Antigravity `.agents/agents`），不跨端误判。Claude 用 `subagent_type`，OpenCode 用 `subagent` 的 `agent`，Codex 用 `agent_type`，Antigravity 用 `invoke_subagent` + `TypeName`。主会话自己写正文、去味是常态，不报；作者明确要交给写作助手而能力/文件缺失、unknown agent 或 ZCode 3.3.4 时，由主会话接手并一句白话告诉作者（如「写作助手用不了，由我直接写」），`Fallback: project custom agents unavailable -> solo` 原文只写进汇报最后一行「技术备注：」。\n>\n> Spawn 版本提示（不阻断 spawn）：先读取项目根 `.story-deployed` 的 `agents_version`。与本版 `agents_version: 34` 不一致时（标记缺失、字段缺失/非整数、小于或大于 34）**照常按文件存在性检查并 spawn**，同时用一句白话提示作者「写作助手是旧版，运行 /story-setup 后新开对话」，`Notice: agents bundle 版本不匹配（项目 {N}，本版 34）` 原文写进技术备注行；大于 34 时额外提示先更新 oh-story-claudecode，不要用本地旧版 setup 降级覆盖。只有 agent 文件缺失、或运行时不暴露 custom agent 时才降级 solo/direct，`Fallback: ... -> solo` 同样只进技术备注行。\n\n**文风裁决**：正文写作、改写或审稿前先读 [references/style-resolution.md](references/style-resolution.md)，加载本书文风并形成 `style_resolution`；无作者记忆也执行。当前请求、本书文风和 active 偏好按维度覆盖通用 references；同一裁决交给后续执行者。\n\n## 执行规则\n\n1. **先定情绪，再定故事**。动笔前必须确定目标情绪（意难平/反转震撼/爽感释放/治愈温暖/细思极恐/共鸣感动），所有内容为这个情绪服务。\n2. **一个核心支点撑一篇**。反转型围绕一次主揭示蓄力；无反转型围绕报应兑现或甜度递进积累期待。不多线、不铺世界观。\n3. **每句话必须有用**。不推动剧情、不铺垫反转、不推高情绪的句子 → 删。\n4. **开头 3 句定生死，结尾定传播**。开头必须包含钩子，结尾必须有余韵。\n5. **默认第一人称**。短篇网文（盐言/七猫短篇等）绝大多数用第一人称，代入感最强。当前请求、本篇文风或题材需要第三人称时按其执行，不因默认值改回「我」。\n\n---\n\n## 核心方法\n\n除了上面的执行规则，构思和写作时遵循：\n\n- **定方向就换风格**：题材一旦确定，腔调、开篇、钩子、情绪烈度、金句、招式、收尾全部切到该题材包（追妻含时代变体与小三/死人文学分支）；冷门题材用公式结构骨架兜底，腔调按 `short-craft.md`\n- **复用作者习惯**：有作者记忆时，正文前用 `scripts/author_memory_commit.py query --workspace {工作区} --book-root {项目目录} --kind prose_style --kind story_design [--genre {题材}] [--workflow 短篇]` 获取 active 条目（≤2KB），传给正文/改写 agent 作为自然倾向，不逐条展示或最大化命中，不牺牲连贯、节奏和字数；硬门禁、当前请求和本篇设定优先。长期声明在收尾用 `record` 写入并回传回执，细则见 [references/author-memory.md](references/author-memory.md)。\n\n---\n\n## 写作流程\n\n### Phase 1：确定目标情绪\n\n从项目根及上一级往下 3 层找到 `短篇扫榜结论.md`（多份取最新）时先读其「选题匹配」，排第一的方向带着目标情绪当候选问作者；过了复扫日期就提醒可能过期。\n\n问用户：**「你想让读者读完什么感觉？有没有想写的题材方向或灵感？」**\n\n用户已说清读者读完的感觉 → 直接进入 Phase 2；只给了题材或梗、没说情绪 → 从下表带一个推荐情绪问一句，作者点头再进。\n\n如果用户只有模糊想法 → 帮用户做情绪选择：\n\n| 情绪类型 | 适合场景 | 难度 | 市场热度 | 常配题材包 |\n|----------|----------|------|----------|------------|\n| 意难平 | 虐恋、遗憾、错过 | 中 | 🔥🔥🔥 | 追妻火葬场 / 甜宠（先虐后甜） |\n| 反转震撼 | 悬疑、身份错位 | 高 | 🔥🔥🔥 | 悬疑 / 沙雕脑洞（反套路） |\n| 爽感释放 | 打脸、逆袭 | 低 | 🔥🔥 | 世情打脸 / 复仇打脸 / 总裁豪门 / 宅斗宫斗（古代上位） |\n| 治愈温暖 | 成长、亲情、友情 | 中 | 🔥🔥 | 甜宠 / 双男主（救赎线） |\n| 细思极恐 | 悬疑、心理 | 高 | 🔥 | 悬疑 / 民俗怪谈 |\n| 共鸣感动 | 现实、职场、婚姻 | 中 | 🔥🔥🔥 | 世情打脸（共鸣模式） / 追妻火葬场（小三文学） |\n\n---\n\n### Phase 2：构思核心框架\n\n#### 对标上下文加载\n\n存在本篇 `对标/`、项目根 `拆文库/` 或用户提供参考小说时，先完整读取 [references/benchmark-recall.md](references/benchmark-recall.md)，执行对标发现、排除本书续写基线、题材匹配与召回。无外部对标时仍按原题材包执行。\n\n#### 构思、设计与验收\n\n完整步骤见 [references/workflow-design.md](references/workflow-design.md)。按首屏「写前必读」读完后执行；两份设计文件通过其中的 Phase 2 完成门禁，才可进入 Phase 3。\n\n---\n\n### Phase 3：逐场景写作\n\n进入正文写作前，完整读取 [references/workflow-draft.md](references/workflow-draft.md)，执行交付参数锁定、写前验收与逐场景写作；只做构思或精修时不加载。\n\n**小节完整性流程**：\n1. **写作时**：每节围绕一个主问题推进；让风险、信息、关系、资源、决定、行动或读者理解至少发生一项可见变化。相关情节点可以由同一动作链或对话同时兑现，不为拆成多个“子事件”重复铺陈。\n2. **写完后**：对照 `小节大纲.md` 检查批准内容是否落地、因果与下一步是否读得懂、感知/反应是否提供新信息、伏笔/物件是否按计划出现。\n3. **发现缺口时**：只补回原计划中漏掉的动作、证据、选择或后果；若本节已经完成职责，即使很短也不加任务卡点、对话、回忆或环境来凑长度。\n4. **发现冗余时**：删除不改变风险、信息、关系、资源、决定、行动或可信度的阻碍、复述与旁人反应；不把“有冲突”本身当成保留理由。\n\n### Phase 3 完成门槛（进入 Phase 4 前必须通过）\n\n- [ ] 总字数进入锁定的用户范围；未指定时进入 8000-20000 默认范围\n- [ ] 每节完成其批准情节点或状态变化；没有为拉齐长度补冲突、对话、回忆或旁人反应\n- [ ] 节数 = 小节大纲规划节数（不得合并/省略）\n- [ ] 身体细节按叙事功能判断，不设次数上限；不对“手、眼、心”等单字计数改稿\n- [ ] 「像/好像/仿佛/如同」不成片堆叠；超过 10 处需逐处复核功能，不机械全删\n- [ ] `node scripts/check-ai-patterns.js --check --fail-on=blocking 正文.md` 无 blocking 命中；其余提示先通读，确属问题再改\n- [ ] `node scripts/check-degeneration.js --check 正文.md` 无 blocking 退化命中（复读/截断/工程词泄漏）\n\n**不通过 → 回退补足，不得进入精修。**\n\n---\n\n### Phase 4：精修打磨\n\n精修或质量自检前，完整读取 [references/workflow-revision.md](references/workflow-revision.md)，按其职责分工去味、查一致性、做最终扫描与交付验收；只做构思时不加载。\n\n---\n\n## 流程衔接\n\n**流水线：** 短篇\n**位置：** 写作（第 3/3 步）\n\n有参考小说想对标 → `/story-short-analyze`（存入 `拆文库/{书名}/`）；写完去 AI 味 → `/story-deslop`；想自检 → Phase 4 流程 + `references/short-prose-quality.md`；要市场方向 → `/story-short-scan`；设定太大适合长篇 → `/story-long-write`。\n\n---\n\n## 参考资料\n\n阶段必读项按首屏「写前必读」执行；其他资料按 [参考索引](references/reference-index.md) 的加载条件选用。\n\n## 语言\n\n- 跟随用户的语言回复，用户用什么语言就用什么语言回复\n- 中文回复遵循《中文文案排版指北》\n\nFile v1.1.21:_meta.json\n\n{\n  \"ownerId\": \"kn7e14qz6v4n71xmjegh68jtts80dp5r\",\n  \"slug\": \"story-short-write\",\n  \"version\": \"1.1.21\",\n  \"publishedAt\": 1791006123901\n}\n\nFile v1.1.21:references/agent-calls.md\n\n# agent-calls.md：短篇派写手的调用方式\n\n只在要 spawn narrative-writer 时读；主会话自己写正文、自己去味时不读。何时派由 workflow-draft.md / workflow-revision.md 决定，这里只放 prompt 与必须附带的内容。Antigravity 用 `invoke_subagent` + 同名 `TypeName`。\n\n## 写正文\n\nspawn `Agent(subagent_type: \"narrative-writer\", prompt: ...)`，只传项目目录、输出文件、目标情绪、题材风格包、小节大纲、角色、主/副对标召回摘要、本书文风全文路径与 style_resolution、作者偏好 query 中的文风/故事设计项、格式硬约束和写作硬约束，并传入检查分工：本批只做内容覆盖与格式自检，完整语义去味由 Phase 4 负责，最终文件扫描由主会话负责。\n\n不把本 skill 整段规则塞进 prompt；细节以 `short-format.md`、题材包、`short-craft.md` 与 `scene-craft.md` 为准。收回后按 workflow-draft.md 的格式规范重排再写入 `正文.md`。\n\n## 精修去味\n\nspawn `Agent(subagent_type: \"narrative-writer\", prompt: \"项目目录：{dir}\\n任务描述：去AI味+格式检查\\n检查分工：你负责本次语义去味及原定自检；最终文件扫描由主会话执行，不在子代理内重复\\n检查范围：{正文文件}\\nstyle_resolution：{与写作一致的本次文风裁决，含全文路径}\\n作者偏好：{query 命中的 prose_style/story_design 项}\\n篇幅：短篇\\n卖点保留：第一人称审判句、火葬场预告、心死式章尾留，只删中立作者讲解与空洞升华\\nAI味等级：{轻度/中度/重度；未分级按轻度}\\n删除优先：每条 AI 味项先判能否删除——删后不丢伏笔/钩子/角色/情节/必要信息的直接删，会丢才润色（删除受比例上限与本次字数范围下沿约束，跌破改降AI重写）\\n必须检查：检查是否连续使用头皮发紧/眼皮一跳/心口一沉/胃里翻涌等精致戏剧反应，能写普通动作/普通感觉就写普通动作/普通感觉；已有手机/聊天记录/公告/账单/病历/证据截图等信息，保留为角色看到或处理的场内载体，不改成叙述者解释；任务卡点只在角色本来有要办的事且能加重情绪/证据/关系/反转时使用，不为自然感补流程\")`\n\nFile v1.1.21:references/author-memory-maintenance.md\n\n# 作者记忆维护\n\n[author-memory.md](author-memory.md) 的少见时刻补充：记一条、确认、替换、忘掉和优先级仍按那份协议，本文件只在下列情况读——作者说「整理作者记忆」，或回执 `warnings`／查询 `omitted_ids` 提示超编；写入因 `作者画像.md` 写满失败；书根就是工作区，或工具报 `state.book`、单书布局错误；要做存量迁移 `migrate`、多事件原子 `commit`、派生视图 `check`；冲突候选要落定；碰到升级前留下的旧条目。\n\n作者记忆借鉴“原始证据 → 候选 → 已确认画像 → 变更记录”的记忆管道，但把决定权留给作者。\n\n## 文件\n\n```text\n{工作区}/.story/作者记忆/          # 项目级 store：global / genre / workflow 条目，编号 AP\n├── _author-memory-state.json  # 唯一结构化权威\n├── 作者画像.md               # 仅 active，供作者查看与管理\n├── 待确认.md                 # pending / conflict，不参与约束\n└── 变更记录.md               # 最近 100 次、最新在前的事务记录\n{书}/.story/作者记忆/            # 书级 store：只存这本书的 book 条目，编号 BP，同样四个文件\n```\n\n三个 Markdown 文件都从 state 确定性生成，禁止手改；完整历史保留在 state，变更记录只展示最近 100 次。`作者画像.md` 是人类管理视图，普通写作 agent 不整份注入，而是调用 `query` 取得本次相关的紧凑上下文。\n\n## 任务映射表\n\n各 skill 入口的 `query` 命令按此表选 kind；写入时的预算提醒也按这四类任务组合估算。\n\n| 任务 | query kinds | 注入位置 |\n|---|---|---|\n| 正文初稿 / 续写 | `prose_style` + `story_design` | 主会话与实际正文 agent |\n| 去 AI 味 / 改写 | `prose_style` | 主会话与实际改写 agent |\n| 设定 / 大纲 | `story_design` + `workflow` + `interaction` | 主会话，不传正文 agent |\n| 审稿 | `delivery` + `interaction` + 必要的 `prose_style` | 主会话，不降低 rubric |\n\n审稿匹配项只用于交付格式、协作方式和“作者有意采用的表达选择”说明；问题严重度和 PASS/FAIL 仍由 rubric 决定。\n\n## 注入预算与容量\n\n- **写入不因注入预算失败**：`record` / `commit` 照常成功、给回执；工具按上表四类任务组合估算最坏查询情形（全局条目＋各 scope 维度最重的单一切片，切片按大小写无关归并、轻重按写作时真正读到的字段算，与真实查询同一把尺），装不进 2048 字节的组合在返回的 `warnings` 里点名将被略过的条目及其断言首句。\n- 写入落盘后另一级 store 读不出来（书目录不存在、`--book` 与书级记录不符等）也照常给回执，`warnings` 注明本次提醒没算上它。写书级条目时「本书＋全局」按实际条目精确计算；写项目级条目时只看得到项目级 store，顺手传 `--book-root` 就把当前这本书也算进提醒。\n- 查询按 **重要度 → 本书例外 → 最近更新** 排序装填（同一范围的条目必在同一 store，「最近」按该 store 的修订号比，不跨 store 比较），先丢的恒是重要度较低的条目——`importance` 决定超编时谁留在 prompt 里。装不下的条目跳过而不中断（一条长的不挡后面的短条），漏下的 ID 按同一优先级报进 `omitted_ids`（最多列 20 条，`omitted` 是真实总数）。\n- 注入预算之外还有一道硬上限：`作者画像.md` 超过 12288 字节时写入会直接失败并要求先整理。active 条目攒到几十上百条才会碰到（远在注入预算之后），碰到就走「整理作者记忆」；`forget` 这类减量操作在满编时照常可用。\n\n## 整理作者记忆\n\n作者说「整理作者记忆」，或回执 `warnings`／查询 `omitted_ids` 提示超编、写入因画像写满失败时：读项目级与当前书的 `作者画像.md`（每条都标了范围、重要度、把握和确认次数，重要度就是超编时的去留依据），提出合并同义条（`replace` 多合一）、退役过时条（`forget`）、给错标成 `high` 的条目下调重要度、把超长断言压缩成一句话的提案；项目级画像里还有「本书：」条目时，「对该书运行 `migrate --book-root`」列为默认提案项。清单用原话逐条列给作者确认（编号只放括号里），确认后按 store 各汇成一份 `commit` 事务提交（一份事务只写一个 store）。合并时保住每条的否定词、限定词和适用范围——合不动就退役其中一条，不要靠删限定词把两条凑成一条。整理只由作者发起或确认，不自动执行。\n\n## 冲突候选\n\n冲突候选（`conflict`）不能绕过旧规则直接 `decide=activate`。作者选新说法：用 `replace`，`old_ids` 同时列旧 active 条目和这条冲突候选，新条目直接 active、两条旧的标 `superseded`；作者留旧规则：对候选 `decide=reject`。旧条目被 `replace` / `forget` 撤下后，它不再是任何候选的冲突对象，冲突对象清空的候选退回 `pending`。\n\n## 单书布局\n\n书根就是工作区（`--book-root` 与 `--workspace` 同一目录）时，书级 store 改住 `{工作区}/.story/作者记忆/书级/`，与项目级各自一份 state；首次建立的书名优先取项目级存量本书条目里唯一的书名，再取目录名。旧版曾把书级 state 写在项目级位置，此后项目级读写都报 `state.book`；带 `--book-root {工作区}` 运行任一命令（含 `query`）会先把它原样移进 `书级/`，不改内容。这个目录其实是某个工作区里的一本书时（上一层叫 `长篇/` 或 `短篇/`，或某个祖先有 `.active-book` 或项目级 state），工具直接报错、不动任何文件，按报错改传 `--workspace`。\n\n## 存量迁移\n\n不做双读：升级前写进项目级 store 的 book 条目不再参与查询与预算估算，也不再接受新的 book 写入；它们仍在 `作者画像.md` 里可见、可 `decide` / `forget`。对每本书运行一次 `migrate --book-root {书目录}` 即可整批搬回来：断言、证据、确认次数、重要度原样保留，换成 `BP` 编号，原 `AP` 条目标 `superseded` 并注明去向；与全局条目的冲突关系在迁移后不再成立，这类候选退回 `pending`。书级每个源条目一笔事务，重跑只补没做完的一半。「整理作者记忆」看到项目级画像里还有「本书：」条目时，把迁移列为默认提案项。\n\n## 旧条目\n\n- 升级前写下的长断言不受 120 字节新建上限约束：原样重申它会**强化**原条目（确认次数 +1），不会因超长被拒；只有真正新建条目才校验 120 字节。\n- 存量 state 里推断类旧来源的条目照常可读、可确认、可退役；新写入仍只接受 `explicit_user`、`accepted_suggestion`、`manual`。\n\n## 其他命令\n\n先依次尝试 `python3`、`python`、`py -3` 找到 Python 3，再从当前 skill 根运行本地副本（`record` / `query` 见 author-memory.md）：\n\n```text\n{PYTHON} {当前 skill 根}/scripts/author_memory_commit.py init    --workspace {工作区} [--book-root {书目录}]\n{PYTHON} {当前 skill 根}/scripts/author_memory_commit.py commit  --workspace {工作区} [--book-root {书目录}] --input {工作区}/.story/work/作者记忆-事务.json\n{PYTHON} {当前 skill 根}/scripts/author_memory_commit.py migrate --workspace {工作区} --book-root {书目录}\n{PYTHON} {当前 skill 根}/scripts/author_memory_commit.py check   --workspace {工作区} [--book-root {书目录}]\n```\n\n- `commit`：高级批量入口，只在需要把多个动作绑定成一次原子提交时用（如整理作者记忆）。顶层传 `schema_version`、唯一 `transaction_id`、当前 `expected_state_revision` 和含 1–32 项的 `operations`（每项与单事件的 `operation` 同形）。一份事务只写一个 store；先在内存完成 schema、引用、容量和所有视图校验，操作按数组顺序应用，任一步失败则整份事务零写入，最后原子替换 state。过期修订会在任何写入前失败。事务文件在成功前必须保留，成功后删除；显式记忆请求按 author-memory.md「回执怎么告诉作者」转告。\n- `migrate`：把项目级 store 里某本书的存量 book 条目整批搬进 `--book-root` 的书级 store，幂等，中途失败直接重跑；返回 `migrated`（源→新编号），没有存量时为空。\n- `check`：从 state 重建并逐字核验所有派生视图；传 `--book-root` 时两级一起核验。\n- `init`：显式初始化 store；平常不需要，首次 `record` 会随事务创建。\n\nFile v1.1.21:references/author-memory.md\n\n# 作者记忆协议\n\n作者记忆保存跨会话复用的创作偏好，不保存小说世界里的事实，决定权留给作者。本文件管最常见的时刻：作者说出一条偏好，或要确认、替换、忘掉某条。少见情况读 [author-memory-maintenance.md](author-memory-maintenance.md)：整理作者记忆与超编、画像写满、单书布局与 `state.book` 报错、存量迁移、多事件 `commit`、`check`、冲突候选落定、升级前的旧条目。\n\n## 边界与优先级\n\n加载优先级从高到低：\n\n1. 安全、用户授权范围、明确的平台交付要求、字数与文件协议；句长、视角、修辞和标点偏好不属于不可覆盖的硬门禁；\n2. 用户在当前请求中的明确要求；\n3. 当前书的 `设定/文风.md`、题材定位、细纲和其他项目设定；\n4. 作者记忆中的本书偏好；\n5. 作者记忆中的题材、流程和全局偏好；\n6. 对标素材、通用方法和默认值。\n\n按表达维度取最窄适用要求：低优先级只补缺项，不与高优先级要求并列执行。通用 references 自称“必须/禁用”不改变此顺序；审稿不因作者有意采用的表达本身扣分，真实可读性与因果问题仍照常评价。\n\n作者记忆不能把本书事实写进 `.story/作者记忆/`，不能覆盖当前请求，不能降低审稿 rubric，也不能让去 AI 味改动剧情意图。小说事实继续由各书的 `追踪/` 和 `设定/` 管理。\n\n## 存放与路由\n\n两级 store，记忆随书走：`{工作区}/.story/作者记忆/` 存 global / genre / workflow 条目（编号 `AP`），`{书}/.story/作者记忆/` 只存本书的 book 条目（编号 `BP`）。每级各有 `作者画像.md`（生效条目）和 `待确认.md`（候选，不参与约束），都从 state 生成，禁止手改；不存在时写作、审稿、去味照常继续，首次 `record` 自动创建。\n\n- `--workspace` 必须显式传，指创作工作区根——承载多本书、`.active-book`、`长篇/`、`短篇/` 或 `拆文库/` 的那一层；已有记忆时，是项目级 state（不带 `book` 字段）所在的最近祖先。`长篇/`、`短篇/` 下的书目录永远不当 `--workspace`，也不要把用户主目录当默认工作区。\n- `--book-root` 是当前书的项目目录（`.active-book` 指向、或含 `设定/`、`正文/` 的那一层，如 `{工作区}/长篇/{书名}/`）；书名默认取书级 state 记的名字，首次取目录名，`--book` 可覆盖。书根就是工作区时读维护文件「单书布局」。\n- ID 前缀就是 store：`decide` / `forget` 看 `item_id`（`AP` 项目级，`BP` 书级），`remember` / `replace` 看 `scope.level`（`book` 书级，其余项目级）。书级操作必须传 `--book-root`，没传直接报错，不会退而写进项目级。\n- `replace` 与 `conflicts_with` 不能跨 store：本书例外按优先级覆盖全局规则，不算冲突，直接 `remember` 为 book 条目；要把全局规则改成本书规则，拆成 `forget` ＋ `remember` 两个事件。\n\n## 查询\n\n各 skill 入口已写好本任务的 `query` 命令（长篇正文由组装脚本代查）；没写命令的长篇设定、大纲等任务查 `story_design` + `workflow` + `interaction`，结果只给主会话、不传正文 agent。四类任务的映射表见维护文件。state 存在才查（两级都不存在时返回空结果、零写入）；结果合并项目级与 `--book-root` 所指书级（不传就拿不到本书条目），`--kind` 必传，输出不超过 2048 字节。\n\n普通创作只做一次本地 `query`，完整画像、证据、候选和 journal 不进 prompt。查询项是低优先级倾向，不是逐条打卡清单：自然吸收，不复述画像、不刻意提高词面命中率，不为命中牺牲连贯、节奏、字数或本书既定笔调。**`omitted_ids` 非空＝记忆超编**，不是「没有更多了」：转告作者并建议「整理作者记忆」，不得改读完整画像规避预算。待确认项不进 prompt，也不为确认它们中断任务；只在作者主动查看、候选积累到适合回顾的节点，或新偏好与 active 条目冲突时集中呈现。\n\n## 记不记、记成什么\n\n不装记录全部用户消息的 prompt hook，不在作者没开口时观察他，只记作者明确表达的偏好。是否属于长期习惯由 agent 判断，拿不准就只执行不记录；作者可明说“记住：……”，以回执验收。\n\n| 输入证据 | 处理 |\n|---|---|\n| “以后都这样”“我一直习惯……”等直接、稳定、范围清楚的原话 | `active`，`source=explicit_user` |\n| 用户明确接受助手提出的长期做法 | `active`，`source=accepted_suggestion` |\n| 作者原话像长期偏好但范围或稳定性含糊 | `pending`，取当前最窄合理范围；待确认只来自作者自己的话 |\n| 同类修改反复出现、从成稿或操作轨迹看出的模式 | 不记录、不推断；作者没开口的偏好不进记忆 |\n| “这一章别……”“这次给我……”等一次性要求 | 只执行，不记录 |\n| 角色、时间线、伏笔、世界观、当前剧情走向 | 写项目设定/追踪，不写作者记忆 |\n| 助手自己生成的文字、默认模板、工具告警、rubric 结论 | 不自我学习 |\n\n保留否定词、限定词和适用范围：`quote` 写原话，`assertion` 只做不改变语义的紧凑归纳，**新建条目限一句话（≤120 字节，约 40 个字）**，写不下就压缩措辞、不切限定词；背景写进 `reason`（不进 prompt），不另开字段。\n\n**一条偏好就是一条记录，例外和限定不许拆出去单列。** 「以后少用破折号，对话里也别用，除非表示打断」整条写成「破折号少用、对话里也不用，只在表示打断时保留」：超编时条目逐条被丢，拆开就可能只丢掉例外，把作者说过的限定变成绝对禁令。只有原话塞了**几条互不依赖**的偏好（如「多用短句」＋「章末留钩子」）才拆。\n\n范围：“本书 / 这个角色 / 这次连载” → `book`；“都市文 / 这类题材” → `genre`；交稿、检查、确认节奏等操作习惯 → `workflow`；“以后 / 一贯 / 我习惯”且无更窄限定 → `global`；含糊但可能稳定 → 最窄合理范围并置 `pending`。\n\n类型：`prose_style`、`story_design`、`workflow`、`delivery`、`interaction`。置信度与重要度均为 `low | medium | high`；超编时先丢重要度低的，按偏好的实际分量填，不要一律 `high`。`source` 只接受 `explicit_user`、`accepted_suggestion`、`manual`，工具拒绝推断类来源。\n\n## 确认、替换、忘掉与冲突\n\n- 同一类型、范围、归纳文本再出现，脚本强化原条目（累加证据与确认次数），不重复建条。\n- 新偏好与同一 store 的 active 条目矛盾：以 `conflict` 记候选，`conflicts_with` 列冲突 ID，本轮仍按当前要求执行；本书例外与全局规则不算冲突。冲突候选不能直接 activate，落定见维护文件「冲突候选」。\n- pending 用 `decide=activate|reject`。同一范围的规则改版用 `replace`，新条目启用、旧条目标 `superseded`；只有作者明确撤销或改变旧规则范围才跨范围替换。\n- 作者说“忘掉 / 这不再是我的习惯”用 `forget`，保留历史证据但不再加载。active 条目的语义不可原地偷改，语义变化必须 replace，历史才可审计。\n\n## 回执怎么告诉作者\n\n回复就两行纯文本，不加代码块或引用格式：第一行用一句人话说记住了什么、管哪本书或哪类场合，如「记住了：《{书名}》的对话一律用「」，以后写这本书都照这个来；想改随时说。」；第二行是机器回执作凭证，如「技术备注：Author Memory Receipt: r1 · BP001」。\n\n- 确认、替换、忘掉同理：「好，这条生效了：……」「换成了：……，原来的「……」不再用」「忘掉了：……」。只进待确认时说「这条先记在待确认里，你说\"确认\"才生效」；有冲突时用原话说明跟哪条旧习惯冲突。\n- `warnings` / `omitted_ids` 不原样贴：说「你的习惯攒得有点多，写正文时这几条可能顾不上：「……」」，并建议说「整理作者记忆」。不提字节、prompt、kind、scope；编号只能跟着原话出现。\n\n## 运行工具\n\n依次尝试 `python3`、`python`、`py -3` 找到 Python 3，从当前 skill 根运行本地副本：\n\n```text\n{PYTHON} {当前 skill 根}/scripts/author_memory_commit.py record --workspace {工作区} [--book-root {书目录}] --input {工作区}/.story/work/作者记忆-事件.json\n{PYTHON} {当前 skill 根}/scripts/author_memory_commit.py query  --workspace {工作区} --book-root {书目录} --kind {类型}（必传，可重复） [--genre {题材}] [--workflow {流程}]\n```\n\n- 子命令都可加 `--book {书名}`；写某本书时一律带 `--book-root`。事件 JSON 写在 `{工作区}/.story/work/`（不写系统 `/tmp`），成功后删掉；book 条目的 `scope.value` 填书名（书级 store 已记的名字，首次取目录名）。\n- 明确的“记住 / 确认 / 替换 / 忘掉”都走单事件 `record`：自动读该 store 当前修订、首次自动初始化，不手工读修订号或拼多操作事务。同一 `event_id` 同内容幂等返回原回执，内容不同则失败；返回的 `store` / `book` 说明写到了哪一级。\n- 成功才有 `Author Memory Receipt: rN · APxxx`，没有回执不得声称“已经记住”。**写入不因注入预算失败**：`warnings` 只是提醒（另一级 store 读不出来也在这里注明），按上节转告；有回执就是已记住，不要换 `event_id` 重试。\n\n## 事件格式\n\n新增或强化（`record` 输入；book 范围传 `--book-root`）：\n\n```json\n{\n  \"schema_version\": 1,\n  \"event_id\": \"conversation-2026-08-25-message-42\",\n  \"operation\": {\n    \"action\": \"remember\",\n    \"preference\": {\n      \"kind\": \"prose_style\",\n      \"scope\": {\"level\": \"global\", \"value\": null},\n      \"assertion\": \"对话尽量短，用动作承接情绪，不用大段解释\",\n      \"quote\": \"以后对话都短一点，情绪放动作里，别让角色长篇解释。\",\n      \"source_ref\": \"conversation:2026-08-25\",\n      \"source\": \"explicit_user\",\n      \"confidence\": \"high\",\n      \"importance\": \"high\",\n      \"status\": \"active\",\n      \"reason\": \"用户以“以后”明确声明长期偏好\",\n      \"conflicts_with\": []\n    }\n  }\n}\n```\n\n待确认用 `\"status\": \"pending\"`；冲突候选用 `conflict` 并填同一 store 的 active ID。确认、替换、忘掉时，把下列对象换进新事件的 `operation`（`BP` 编号传 `--book-root`）；`replace.preference` 字段同上但不传 `status`、`conflicts_with`，新条目直接 active：\n\n```json\n{\"action\":\"decide\",\"item_id\":\"AP002\",\"decision\":\"activate\",\"quote\":\"对，这就是我的长期习惯。\",\"reason\":\"作者明确确认\"}\n{\"action\":\"replace\",\"old_ids\":[\"AP001\"],\"preference\":{\"kind\":\"prose_style\",\"scope\":{\"level\":\"global\",\"value\":null},\"assertion\":\"以后对话允许更长的试探，但避免解释设定\",\"quote\":\"……\",\"source_ref\":\"conversation:2026-08-25\",\"source\":\"explicit_user\",\"confidence\":\"high\",\"importance\":\"high\",\"reason\":\"作者明确替换原有全局规则，不是新增本书例外\"}}\n{\"action\":\"forget\",\"item_id\":\"AP003\",\"quote\":\"忘掉这个偏好。\",\"reason\":\"作者明确撤回\"}\n```\n\nFile v1.1.21:references/banned-words.md\n\n# AI味禁用词与句式表\n\n> 表达默认值服从 [style-resolution.md](style-resolution.md)；文件结构与事实约束不豁免。\n\n<!-- 同名副本×6 字节同步，改动后跑 scripts/check-shared-files.sh -->\n\n## 默认优先检查的句式（先对照本书文风）\n\n写网文最毒的 AI 句式，作者一旦养成就会反复出现。以下是优先检查的句式：\n\n| 毒级 | 句式 | 错误例 | 修法 |\n|------|------|--------|------|\n| ★★★★★ | \"不是A，（而）是B\" / \"不是A，不是B，（而）是C\"（\"而\"可省略，省掉也算命中）| \"他不是冷漠，而是绝望\" | 直接写 B 或用更自然的表达 |\n| ★★★☆☆ | 跨段「不是A。/也不是B。/只是C。」 | 「不是嚎啕大哭。/也不是扯着嗓子喊不舍。/只是一个人走远了……」 | 语义复核；重复提纲或拖慢画面时压成 C，有辩解/悬念排除功能可保留 |\n| ★★★★ | \"，带着……\" 万能状语 | \"他笑了一下，带着一丝不易察觉的嘲讽\" | 删掉状语留主句，或换具体动作 |\n| ★★★★ | 无情绪声线：\"声音不大，却带着……\" / \"语气毫无波澜\" / \"平静无波\" / \"声音平直/平平/听不出情绪\" | \"她声音不大，却带着不容置疑的力量\" | 直接写台词内容、声音特征或动作 |\n| ★★★★ | \"他/她知道……\" | \"他知道这一切都来不及了\" | 用行为展示认知 |\n| ★★★ | \"仿佛/犹如/宛若……一般\" | \"仿佛能穿透一切一般\" | 删掉或白描 |\n| ★★★ | \"眼中闪过一丝……\" / \"嘴角勾起一抹……\" | \"眼中闪过一丝悲伤\" | 删掉；写他当场说的话或做出的决定 |\n| ★★★ | \"心中涌起一股……\" / \"心头一震\" | \"心中涌起一股暖流\" | 写它改变了什么：选择、台词、物件或后果 |\n| ★★★ | 抽象命运/开端收束：\"命运……棋局/獠牙\" / \"这一刻终于明白\" / \"反击才刚刚开始\" | \"命运终于露出獠牙；属于他的反击才刚刚开始\" | 回到角色当下可见的文件、动作、对话或物理后果 |\n| ★★ | 章末预告 \"他不知道的是……\" | \"他不知道的是，更大的风暴即将来临\" | 用具体钩子物件/事件收束，避免空泛预告 |\n\n> ★★★★★ 命中一处就要改；轻/中/重分档只按去 AI 味诊断的密度指标定。\n\n`check-ai-patterns.js` 的 `formulaic-parallelism` 还会提示「至于X不X，怎么X」和同动词「不V A，不V B」。这两类可能是功能性口语，因此只做 advisory；Gate B 必须连同台词读语境复核，若只是复述细纲/前文就压成一次判断，不能因 hook 豁免台词而跳过。\n\n**标点**：正文（含叙述和对话）禁用破折号 `——`/`—`、双连字符 `--` 和省略号停顿，改用句号、逗号、短句或动作断句；不设置对话破折号例外。盐言「」引号不在此列。\n\n---\n\n## 一级禁用词（出现即替换）\n\n> 什么词进一级：只收真人语料里几乎不出现、AI 特有的词。真人高频使用的自然副词和虚词不进一级，走二级密度控制。\n\n### 情态类\n仿佛、犹如、宛若、如同、一丝、一抹、些许、几分、隐约、毫无征兆、几不可闻、微不可察\n\n### 动作类\n深吸一口气、不禁\n\n### 表情类\n眼中闪过、嘴角勾起、眉头微皱、眉眼低垂、瞳孔微缩、瞳孔收缩、瞳孔一缩、指节泛白、眼神锐利、目光锐利\n\n### 心理类\n心中一动、心头一震、心下了然、心中暗道、心底泛起、不由得、心中一凛\n\n### 判断类\n不容置疑、不容置喙、不易察觉、显而易见、毫无疑问、不可否认、前所未有\n\n### 形容类\n坚定、闪烁着光芒、狡黠、深邃、凛冽、冰冷\n\n### 过渡类\n不由自主、情不自禁、自然而然、话锋一转\n\n## 二级禁用词（高频出现时替换）\n\n### 语境敏感词（仅高频或偷懒时处理）\n突然、陡然、骤然、猛然、好像、似乎、瞬间、猛地、死死地（角色口语、真实突发、时间压缩、视角不确定时可保留；用同义变体轮换规避重复不算豁免，按同一个词计密度）\n\n### 弱化副词（密度控制）\n缓缓、微微、轻轻、淡淡（每千字合计 ≤3；这四个词同时计入 `cliche-density-tic` 的套词密度统计；孤立自然使用可保留，成串出现或每个动作都垫一个时才替换）\n\n### 书面腔 → 口语化\n\n| 书面腔 | 口语化替换 |\n|--------|-----------|\n| 瓦解 | 消失 / 散了 / 没了 |\n| 无名火 | 烦躁 |\n| 往我心上捅刀子 | 心烦意乱 |\n\n### 总结句式\n- \"他/她终于明白...\"\n- \"他/她这才意识到...\"\n- \"这一刻，他/她终于明白/意识到...\"\n- \"从这一刻开始...\"\n- \"属于X的反击/复仇/故事，才刚刚开始\"\n- \"命运/宿命 + 齿轮/棋局/獠牙/改写/安排\"\n- \"此刻，他/她...\"\n- \"一切...都...\"\n- \"原来...\"\n\n### 排比句式\n- 连续3句以上相同结构的排比\n- \"有的...有的...有的...\"\n- \"一边...一边...一边...\"\n\n### 升华句式\n- \"这一刻...\"\n- \"他知道...\"\n- \"她明白...\"\n- \"这就是...\"\n\n## 禁用句式模板\n\n| 句式 | 示例 | 问题 |\n|------|------|------|\n| \"不是A，而是B\" | \"他不是冷漠，而是绝望\" | 最毒；直接写 B |\n| \"...，带着...\" | \"他说，带着一丝无奈\" | 万能状语 |\n| \"声音不大，却带着……\" | \"她声音不大，却带着不容置疑的力量\" | AI 最爱声音描写 |\n| \"仿佛能...一般\" | \"仿佛能穿透一切一般\" | 文言腔 |\n| 对话标签密度过高/公式化标签 | \"好的，他说道\" | 普通\"说\"可保留；高频或公式化时处理 |\n| \"他/她感到...\" | \"她感到一丝失落\" | 告诉而非展示 |\n| \"他/她意识到...\" | \"他意识到事情不对\" | 直接告知 |\n| \"眼中闪过一丝XX\" | \"眼中闪过一丝悲伤\" | 模板化 |\n| \"嘴角勾起一抹XX\" | \"嘴角勾起一抹冷笑\" | 模板化 |\n| \"心中涌起一股XX\" | \"心中涌起一股暖流\" | 模板化 |\n| \"取而代之的是\" | \"笑容消失，取而代之的是冰冷\" | AI 过渡模板；直接写新状态 |\n| \"淬了/淬着X\" | \"眼里淬了毒\" | AI 通感套路；写动作或台词 |\n| \"显得（有些）X\" | \"他显得有些兴奋\" | 告诉而非展示 |\n| \"心底/心里某个地方+软\" | \"心里某个地方软得一塌糊涂\" | 言情套句；写动作 |\n| \"（浑身）散发着一股X气息/气场\" | \"浑身散发着一股生人勿近的气息\" | 万能气场描写；写旁人的反应 |\n| \"命运/宿命 + 齿轮/棋局/獠牙/改写/安排\" | \"命运终于露出獠牙\" / \"早已布好的棋局\" | 抽象作者总结；改成角色当下撞见的文件、动作、对话、物理后果 |\n| \"这一刻终于明白/从这一刻开始/才刚刚开始\" | \"这一刻，他终于明白\" / \"反击才刚刚开始\" | AI 收束腔；删总结，用动作或未解决问题收尾 |\n\n## 比喻分类（默认复核，不默认全删）\n\n带\"像/如/仿佛/犹如/宛若\"的比喻不是一律 AI。真正高风险的是：成片堆叠、套用万能文学比喻、用精致比喻替代剧情推进，或在段尾替读者总结意义。本表用于识别需要复核的比喻类型：\n\n| 比喻类别 | 例 | 处理 |\n|---------|----|------|\n| 生活/角色化 | \"像一头被抛弃的野狗\" | 若贴角色视角、能传递信息或情绪，可保留 |\n| 物品/现象类 | \"像一把刀\" \"脸色惨白得像这漫天的雪\" | 普通功能性比喻可留；模板化或重复时改白描 |\n| 状态类（陈词滥调） | \"梨花带雨\" \"如沐春风\" | 优先删或改成具体动作/表情 |\n| 抽象类 | \"像命运的齿轮\" \"像上辈子的尘埃\" | 高风险，优先落回动作、物件、声音、后果 |\n| 假设类 | \"力道大得像是要把骨头捏碎\" | 若是角色身体感知可留；夸张堆叠时改事实后果 |\n\n处理原则：先看功能，再看密度。保留最能传递信息或情绪的一两个，其余改为直接描述、动词、名词、作用、结果或事实；不要把删掉的比喻替换成另一批新比喻。例 \"脸色惨白得像这漫天的雪\" 若只是套话 → \"脸色惨白\"；若雪景正在压迫角色，可保留或改成角色当下看到的具体画面。\n\n> `metaphor-density-tic` 是 advisory：提示通读复核，不是 blocking；生活化、角色化、单个有功能的比喻可以保留。\n\n## 替换策略速查\n\n| 原文类型 | 替换方法 | 示例 |\n|----------|----------|------|\n| 抽象情绪词 | 先看上下文是否已成立；再选选择、台词、物件、后果或一句直写 | “紧张”若不影响下一步可直写或删；若导致签名作废，就写作废的结果 |\n| \"感到XX\" | 删除“感到”后按场景决定是否还要情绪句 | “他感到愤怒”可写“他火了”，也可直接写他撤回报价；不要默认换成攥拳 |\n| 形容词堆砌 | 白描手法 | \"美丽动人的笑容\" → \"她笑了\" |\n| 书面表达 | 口语化 | \"不容置疑\" → \"就是\" |\n| 解释性描写 | 留白 | \"他因为害怕而...\" → \"他退后一步\" |\n| 连续排比 | 保留最强一条 | 3 句排比留 1 句 |\n| 总结升华句 | 直接删除 | \"这一刻，她终于明白了...\" → 删 |\n| \"不是A，而是B\" | 直接写 B 或更自然的表达 | \"他不是冷漠，而是绝望\" → 直接写 B |\n| 多余修饰（形容词/定语/量词/指示代词） | 删 | \"白色的药片\" → \"药片\"；\"手里那截链子\" → \"链子\"；\"飞驰的汽车\" → \"车\" |\n\n**替换不复用**：右列是方向示例，不是标准答案。同一禁用词在一章内多次命中时，各处给不同的具体化写法；同一个替换写法反复出现（每次都「垂下眼」、每个动作都补「了一下」），替换产物本身就成为新的模板指纹。\n\n**套词密度优先处理**：`check-ai-patterns.js` 报 `cliche-density-tic` 时，说明禁用词不是零星误用，而是聚成了模板腔。处理顺序不是同义词替换，而是先删抽象总结，再把情绪/判断落到角色当下可见的动作、物件、对话和具体后果。\n\n**套式反应逐处删除测试**：`stock-reaction-tic` 报警时，不代表禁止身体描写。逐处问：删掉后信息、选择、关系、物件或动作结果是否受损？无损就删，不把“指尖轻叩”换成“目光微沉”。伤势、动作失败、人物习惯或情节后果明确时可以保留。\n\nFile v1.1.21:references/benchmark-recall.md\n\n# 短篇对标发现与召回\n\n#### 对标上下文加载\n\n> **拆文库/对标关系**：`拆文库/` = analyze skill 的原始产出（数据源），位于项目根目录。`对标/` = 当前短篇的引用视图，位于 `{短篇标题}/对标/`。短篇写作优先读取 `{短篇标题}/对标/{书名}/`，不存在则读取项目根 `拆文库/{书名}/`。\n\n**对标发现（先于下方反应式加载）**：项目根 `拆文库/` 有拆过的短篇时，先按题材主动推荐一本对标，不要被动等用户开口。\n\n1. `ls 拆文库/` 列书目；先从当前项目目录名和 `设定.md`「基本信息」识别本篇标题，排除同名或来源指向当前 `正文.md` 的 `拆文库/{当前书}/`。story-import 生成的本书拆文分析属于续写基线，不是对标候选。排除后为空 → 跳过（无对标按题材包写，见 Phase 1 情绪→题材包表）。\n2. 逐本读 `拆文库/{书}/_meta.json` 的 `genre_detected`，与本篇题材比对，标 同题材 / 弱相关。\n3. 有候选 → 用 AskUserQuestion 推荐（列候选书 +「不用，按题材包写」）。选定后记入本篇 `设定.md`「对标摘要」区作主对标，并按上方「拆文库/对标关系」规则把 `拆文库/{书}/` 同步到 `{短篇标题}/对标/{书}/`。\n\n如果工作目录下存在 `对标/` 或项目根存在 `拆文库/`，或用户提到参考小说：\n\n1. 先按上方「对标发现」第 1 条的同一口径识别本篇，另排除历史误建的 `对标/{当前书}/`；排除后没有外部对标时按题材包写，不进入下面几步。\n2. 按上述顺序查找 `拆文报告.md`、`情节节点.md`、`写作手法.md`、`_meta.json`\n3. **读 `_meta.json.genre_detected`，按下表加载对应题材风格包**（analyze 识别的题材 → write 的 genre-styles 包），正文腔调/招式随之切换：\n\n   | analyze 的 `genre_detected` | 加载 `genre-styles/` 包 |\n   |---|---|\n   | 追妻（现代 / 古代 / 民国） | `追妻火葬场.md`（按「时代变体」节切换身份词与招式） |\n   | 小三 / 死人文学 | `追妻火葬场.md`（「流派分支」节） |\n   | 世情 / 打脸爽文 / 家庭伦理 | `世情打脸.md` |\n   | 重生复仇 | `复仇打脸.md` |\n   | 豪门 / 总裁（豪门联姻虐恋） | `总裁豪门.md` |\n   | 宫斗宅斗 / 宫斗 / 宅斗 / 古言重生 | `宅斗宫斗.md` |\n   | 民俗 / 怪谈 / 灵异 | `民俗怪谈.md` |\n   | 悬疑 / 推理 / 惊悚 | `悬疑.md` |\n   | 甜宠 / 先虐后甜 / 先婚后爱 | `甜宠.md` |\n   | 双男主 | `双男主.md` |\n   | 沙雕 / 脑洞 / 弹幕 / 系统 | `沙雕脑洞.md` |\n   | 仙侠 / 通用 | 无专属包 → `short-craft.md` 底座 + `genre-writing-formulas.md` 兜底 |\n\n4. 读取核心发现：结构段落、情绪曲线、反转位置、铺垫方式、句式节奏、可借鉴技法。**把拆文报告里的具体招式对到题材包招式库**：拆文给「这一篇怎么做的」，题材包给「这一类通用怎么做」，两者合用——拆文是当前对标书的实证，题材包是该题材的通法\n5. 写入本篇 `设定.md` 的“对标摘要”区，写作时每个场景从中召回 1-2 个相关技法\n6. 如只找到原文、未找到拆文报告，提示用户先运行 `/story-short-analyze`；如用户要求继续，也可只按原文做弱参考\n\n> **拆文产出怎么用**：`_meta.json` 可选，缺了不挡写作，有就按 `structure_counts.reversal_type` 选反转骨架；`情节节点.md` 看每个节点的字数位置、功能和触发事件，给新故事排节奏；`写作手法.md` 与 `原文/` 只学写法（对话调子、节奏、画面感），不抄具体情节。\n\n> **多对标书时**：参 `references/cross-book-recall.md`，副对标 anchor 入「对标摘要」区\n\nFile v1.1.21:references/cross-book-recall.md\n\n---\nname: cross-book-recall\ndescription: 多对标跨书召回\n---\n\n# 跨书召回\n\n## 触发\n先按当前项目目录名、`.active-book` 与本书设定识别当前作品，排除同名或来源指向当前正文的 `拆文库/{当前书}/` 与历史误建的 `对标/{当前书}/`；它们是本书导入分析，不是跨书样本。排除后，项目根 `拆文库/` 或项目 `对标/` ≥2 本才启用。主对标书取 `设定/题材定位.md`「主对标书」字段，缺失则从排除后的候选中取字典序第一本（优先 `对标/`，否则 `拆文库/`），并在 `gaps.main_benchmark_unspecified: true` 中提示用户补。\n\n> **数量规则**：主对标书最多 1 本，用于文风和最终正文输入；副对标 / 参考对标**不限制登记数量**。执行时按题材相关性、引用强度和阶段预算逐本召回；超过预算时裁剪条目，不删除书目。\n\n## 三道防线\n1. 副对标 `文风.md` 不读，避免多本文风互相污染\n2. 角色/剧情/设定模块可从所有副对标召回，但必须按「同题材 > 弱相关 > 参考」排序，并受每本/总量预算约束\n3. narrative-writer 正文 prompt 只吃主对标文风/原文锚点 + 预算筛选后的 `副对标召回摘要`；不读取、不传入副对标 `文风.md` 或副书原文\n\n## 跨题材判断\n从项目 `设定/题材定位.md`「对标书列表」字段读每本副对标的「题材类型」与「引用强度」（未登记的书按「参考」处理，并输出 `gaps.benchmark_registry_missing: true`）：\n- 同题材 + 引用强度=辅：全阶段可召回，按每本上限取条目\n- 同题材 + 引用强度=参考：只取最相关条目，默认不超过每本上限的一半\n- 弱相关：仅设定/大纲，每本 ≤1 条\n- 不相关：跳过\n\n排序规则：先按相关性（同题材 > 弱相关），再按引用强度（辅 > 参考），再按用户在 `对标书列表` 中的顺序；若缺少 `对标书列表` 或其中未登记某本书，则剩余副书按目录名/书名 Unicode 字典序稳定排序，并输出 `gaps.benchmark_registry_missing: true` 提示补全清单。副书数量不限；如果总条数超过阶段预算，裁条目不裁书目记录。\n\n## 阶段消费\n表中数字为**每本副对标召回上限**；同时设置阶段总预算，防止副书很多时挤爆上下文。`—` 行表示该文体无此阶段，整行忽略。\n\n| 阶段 | 长篇产出 | 短篇产出 | 同题材每本上限 | 弱相关每本上限 | 阶段总预算 |\n|------|---------|---------|----------------|----------------|------------|\n| 设定 | `拆文报告.md` | `拆文报告.md` + `情节节点.md` | ≤2 | ≤1 | ≤8 |\n| 大纲 | `章节/*_摘要.md` + `剧情/*.md` | `情节节点.md` + `写作手法.md` | ≤3 | ≤1 | ≤10 |\n| 模块 | `角色/` + `剧情/` + `设定/` | — | ≤2 | 0 | ≤8 |\n| 正文 | `文风.md` + 原文 | `写作手法.md` + 原文 | 0 | 0 | 0 |\n\n> **大纲阶段按剧情单元检索**：检索键为剧情单元「类型」（第一键，必填枚举）/「桥段标签、套路框架位置」（第二键）；同题材内同类命中条目优先进入预算。仅限大纲阶段按剧情单元检索时生效，不改其余阶段排序与预算数字。同类零命中时回退主对标来源条并输出非阻塞 `gaps.similar_plot_not_found: true`，流程继续。\n\n## 输出要求\n\n跨书召回输出必须包含：\n\n```markdown\n## 副对标召回摘要\n| 书名 | 引用强度 | 相关性 | 召回阶段 | 召回条数 | 使用方式 |\n|---|---|---|---|---|---|\n| {书名} | 辅/参考 | 同题材/弱相关 | 设定/大纲/模块 | {n} | {用于补充某类结构，不进入文风/原文锚点} |\n```\n\n若副书很多，只输出被本阶段实际召回的条目；未召回的副书不代表被删除，只是本阶段预算未命中。正文阶段可传入本表作为结构/情绪/设定参考，但必须保留“副书不进文风、不进原文锚点”的边界。\n\n## 拆文字段 → 写作参考\n读 `_meta.json.structure_counts` 时，按此表回查当前 skill 已登记的对应写作 reference。短篇优先走 genre-styles 题材包与 short-craft，长篇优先走长篇同类理论文件；未在当前 skill `参考资料` 表登记的文件不要跨 skill 加载。\n\n| 拆文字段 | 含义 | 写作参考 |\n|---------|------|---------|\n| `beats` | 结构段（开端/发展/高潮/结局） | 当前 skill 的题材结构文件；短篇优先 genre-styles 题材包 / `genre-writing-formulas.md` |\n| `hooks` | 钩子数 | `hooks-chapter.md` / `short-suspense.md`；短篇开头密度补 short-craft |\n| `setup_clues` | 反转铺垫线索 | `short-reversal.md` |\n| `character_archetypes` | 反差人物 | 当前 skill 的人物/题材风格文件；短篇优先 genre-styles 题材包 / genre-writing-techniques |\n| `reusable_structures` | 可复用手法 | `genre-writing-formulas.md`；短篇可补 short-craft |\n| `reversal_type` | 反转类型（7 枚举） | `short-reversal.md` 对应骨架 |\n\nFile v1.1.21:references/dialogue-mastery.md\n\n# 对话设计操作手册\n\n> 写对话场景时加载。先看决策路由选对话模式，再用操作指令控制质量。\n\n---\n\n## 决策路由\n\n| 你的对话场景是 | 用这种模式 | 操作 |\n|-------------|---------|------|\n| 主角碾压/打脸 | 压制模式 | 对方长篇大论 → 主角一字回应 |\n| 主角亮底牌/反转 | 反转模式 | 对方嚣张 → 主角一句话事实 → 对方沉默 |\n| 关系破裂/心死 | 心死模式 | 对话越回越短：从辩解 → 沉默 → \"随意\" |\n| 日常互动/立人设 | 日常模式 | 让其他人物参与冲突，不要主角一个人独白 |\n| 群众震惊/弹幕 | 弹幕模式 | 递进：普通人震惊 → 专业人士分析 → 特殊身份者反应 |\n| 信息展示/世界观 | 信息嵌入 | 用角色语气包裹信息，不是机械陈述设定 |\n| 情绪拉扯/虐心 | 情绪推动 | 上行下行交替，像拉锯拉升期待 |\n\n### 对话模式选择补充\n\n| 对话类型 | 常见问题 | 修正操作 |\n|----------|---------|---------|\n| 问答式（通篇一问一答像审讯） | 改为一方主动说，另一方给反应；反应可用动作/表情/心理 |\n| 冲突式（太礼貌不够劲） | 递进五级：委婉拒绝→友好人道→命令否定→PUA式→直接侮辱 |\n| 日常对话（容易变成没功能的水） | 功能是立人设；能让人参与的冲突别让主角独白 |\n| 多人对话（混乱/没营养） | 写前规划每个角色功能：信息提供者/情绪放大器/冲突制造者 |\n\n---\n\n## 对话核心规则\n\n每句对话必须承载以下至少一项，否则删除：\n\n1. **推进剧情**：透露新信息、推动事件发展\n2. **增加期待感**：暗示即将发生的事、制造悬念\n3. **展示人设**：通过语言风格传递角色性格\n\n且在情绪场景里，每句还要**回应上一句对方的情绪状态**（承接/偏转/升级/退缩）——对话是两个人的情绪在碰，不是轮流播报信息。只推进剧情、句间无情绪承接 = 机械对话。\n\n### 绝对禁止\n\n| 禁止 | 理由 |\n|------|------|\n| 配角无脑夸主角 | 假 |\n| 互相解释读者已知信息 | 水字数 |\n| 大段说明文式对话 | 闷 |\n| 所有角色说话方式一样 | 模糊 |\n| 对话说服人物 | 现实中没人被几句话说服，用突发状况代替 |\n| 情绪写完方向变了 | 需回退到情绪拆分 |\n| 捧哏工具人、鹦鹉复读对方原话 | 配角只剩接话功能 |\n| 高位者长篇自证、说话不分场合 | 身份和处境塌了 |\n| 情绪水肿咆哮、生死场景嘴碎 | 越吵越不紧张 |\n| 悬念正攒着就被台词说破 | 期待提前泄掉 |\n\n---\n\n## 权力博弈对话\n\n### 规则\n\n对话长度 = 权力地位。掌控者话短且冷静，被动者话多且情绪化。\n\n### 压制模式\n\n结构：对方长篇大论（3-5 行）→ 主角一字回应。\n\n```\n\"你以为你是什么东西？我告诉你，这个家轮不到你说话！你嫁进来的那天起就该明白自己的位置。\"\n\"滚。\"\n```\n\n### 反转模式\n\n结构：对方嚣张（2-3 行）→ 主角亮底牌（1 行事实）→ 对方沉默。\n\n```\n\"你有什么资格管？这是我家的钱，我想怎么花怎么花。\"\n\"你妈的存折，密码是我的生日。\"\n```\n\n### 心死模式\n\n结构：对话越回越短，从辩解到沉默到「随意」。\n\n```\n\"你听我解释，那天不是你想的那样。\"\n\"嗯。\"\n\"真的，我可以证明。\"\n\"随意。\"\n```\n\n### 操作指令\n\n- 掌控者/主角亮底牌时：对话 ≤ 10 字，不加动作描写\n- 被压制方：对话 ≥ 20 字，可加动作描写（攥拳/咬唇/站起来）\n- 两人对话时：短句方 = 权力上位，长句方 = 权力下位\n\n---\n\n## 潜台词与议程\n\n### 潜台词规则\n\n- 角色真实动机绝对不能浅显地写在台词里\n- 现实中人说话都给自己找借口，角色也一样\n- 每句对白同时设计：角色的动机（可能角色自己都没意识到）和角色的借口\n\n### 对话议程\n\n- 每个角色进入对话时有自己的议程：想从这场对话中得到什么\n- 两个角色的议程碰撞才是张力来源\n- 双方议程一致（同立场）= 复述，失去意义\n\n### 语气由三要素决定\n\n关系 × 场合 × 目的 = 语气\n\n| 场合 | 特点 | 适合内容 |\n|------|------|----------|\n| 私人（单对单） | 深入、感情流露透彻 | 内心剖白、密谋、表白 |\n| 公众 | 需考虑体面，措辞收敛 | 需要冲击力时可打破（如当众翻脸） |\n| 熟人（朋友/同门） | 深度介于两者之间 | 轻松互动和信息交换 |\n\n私密的话在公众场合说才有冲击力。对话中不能完全表达的内容，通过动作、神态、环境补充。\n\n---\n\n## 情绪推动对话\n\n### 强情绪对话\n\n- 命令式+否定式最能激发读者情绪：\"我说的还不够清楚吗？\"\n- 最强话术：打着为你好的幌子，句句不离关心，但句句都是嫌弃、指责、厌恶\n- 直接否定比含蓄暗示更伤人\n\n### 情绪连续性\n\n角色情绪是连续的、循序渐进的。从生气到高兴：生气 → 不那么生气 → 不生气 → 高兴，每次转变需对应事件触发。不能跳步。\n\n### 情绪与行动的因果检查\n\n1. 遇到事件（失衡状态）\n2. 情绪反应（可以直写，也可以体现在语言、选择或有功能的动作中）\n3. 内心思考（只写影响理解的判断；鲁莽可以直接体现在行动里）\n4. 采取行动（基于前三步结果回应）\n\n用于检查转变是否成立，不要求逐步写满；上下文已清楚的反应或思考无需补写。\n\n### 对话不平淡三思路\n\n- 对话本身带来/强化某个核心驱动力（期待、爽感、悬念）\n- 信息交流因某原因受阻碍，阻碍可能导致驱动力到来\n- 发展突然脱离读者预期（但必须合理、符合人设）\n- 把长篇对话塞在期待点和爽点之间：读者为了看爽点愿意忍受中间对话\n\n---\n\n## 信息展示与世界观引出\n\n- 大量信息通过对话展示会显得啰嗦，部分信息转化为情节、心理描写、旁白、环境、动作\n- 用角色的语气和立场包裹信息，不是机械陈述设定\n- 设定用到哪个稍微带出来就行，不需完完全全讲明白前因后果\n- **角色不当\"科普嘴\"**：设定/原理/前因后果不能靠任何角色（尤其信息型/AI 配角）整段讲解——Gate G 同样适用于角色台词。按角色当下的目的和对话阻力取舍信息，用到哪带哪点，不固定拼接身体反应。\n\n### 信息拉扯示例（以\"主角新书起飞了\"为例）\n\n| 角色 | 台词 | 功能 |\n|------|------|------|\n| 甲 | 听说成绩…… | 悬念拉期待 |\n| 乙 | 肯定没人看！ | 下行 + 拉期待 |\n| 甲 | 听说成绩很不错 | 上行 + 拉期待 |\n| 乙 | 首订一万三？ | 展露核心信息 + 达成爽点 |\n\n上行和下行交替，情绪像拉锯不断拉升期待。\n\n---\n\n## 人物语言差异化\n\n每个角色要有自己的说话方式。对话时经常卡住不知道角色会说什么 → 人设模糊，去总结类似人设的说话方式。\n\n| 差异化维度 | 操作 |\n|------------|------|\n| 口癖和惯用语 | 给每个主要角色一个标志性用词 |\n| 说话节奏 | 长篇大论 vs 短句连击 |\n| 信息偏好 | 技术型带专业术语，江湖人带切口 |\n| 立场固定 | 某角色永远从某个角度发言（悲观派/乐观派/务实派） |\n| 身份影响措辞 | 老者/少年/贵族/市井，身份不同则措辞、自称、敬谦词不同 |\n| 性格影响语气 | 智谋型话里有话；鲁莽型想到什么说什么；冷静型措辞精确，偶尔情感外露反而有冲击 |\n| 进度影响态度 | 初见/熟悉/对立/亲密，关系阶段不同则语气与信息量不同 |\n\n---\n\n## 弹幕/群众对话\n\n三大核心作用：剧情推进（透露主角不知道的信息）、增加期待感（悬念、猜测）、情绪渲染（群众震惊/激动/愤怒传染读者）。锦上添花，不代替主线。\n\n### 设计过的弹幕 vs 没设计的\n\n- 没设计：只有\"卧槽好厉害\"，单调、浪费\n- 设计过：普通人震惊 → 专业人士分析 → 特殊身份者反应 → 情感升华\n\n### 操作要点\n\n- 不同人格化语气，不能每条都一个味\n- 短小精悍，每条不超过一句话核心信息\n- 善用递进：从最初震惊到逐渐认识全貌\n- 可出现\"反转\"角色：看似路人一句话改变所有人认知\n- 不用每章都写，关键爽点/燃点/泪点前后集中使用\n\n---\n\n## 节奏控制\n\n### 大量对话保持节奏\n\n- 不要删掉表现人物性格的语气助词来\"精简\"\n- 对话段落间穿插动作描写、环境变化、心理活动调节节奏\n- 紧张段落对话短促，舒缓段落可以长一些\n- 关键信息放对话开头或结尾，中间用于拉扯情绪\n\n### 动作和表情处理\n\n- 刻意给每句对话配表情/动作会让行文机械\n- 动作和表情在关键转折处使用效果最好，不需要每句都配\n- 语气平淡场景（喝茶、散步）用微小动作和沉默体现氛围\n\n### 对话的呼吸感\n\n- 连续多轮对话后需要\"换气\"，插入环境描写或角色心理\n- 适当停顿（动作描写、换行、短句）比连续输出更有张力\n- \"你确定？\"比长篇解释更有压迫感\n\n---\n\n## 篇幅控制\n\n### 对话过多时\n\n- 读者已知信息的对话用叙事一句话概括：\"爱丽丝向安娜讲述了来城里的原因，安娜听后直皱眉头\"\n- 能用突发状况替代的对话段落直接替换\n- 语气词删掉后干巴巴 = 对话本身缺乏信息量，需重写\n\n### 对话过少时\n\n- 能用其他人物对话讲出来的东西，不要让主角旁白平铺直叙\n- 引入配角参与冲突和对话，但新人物必须安排主线戏份\n\n---\n\n## 以梗填充对话\n\n### 梗式 vs 普通\n\n- 普通：\"兄弟别灰心，你一步步走到今天我是看着你过来的，这点挫折对于你来说算什么事儿？振作起来！\"\n- 梗式：\"兄弟别灰心，我相信你总有人头落地，落地人头，头落地上……卧槽那句话怎么说的来着？兄弟你懂我意思是吧……\"\n- 梗式用\"说不出来但意思到了\"的状态制造趣味\n\n### 操作\n\n- 在对话中融入梗或骚话，有效提升整体趣味性\n- 特别是主角或重要配角的突出对话，适合用梗强化记忆点\n- 可用某个梗作为高潮点，整段剧情围绕达成这个梗来设计\n- **场合例外（声线让位）**：高压/生死/悲痛/严肃 beat 里，搞笑担当与轻快配角的玩笑、口头梗、插科打诨一律收敛——声线让位于当前情绪基调，用短、冷、带情绪重量的反应替代；梗只在安全或喘息 beat 放。自检：这句玩笑放进当前基调会不会让读者出戏？会就删/改\n\n---\n\n## 质量检查\n\n### 三大自查项（中一条以上需改进）\n\n- [ ] 是否存在大量信息都必须用对话来展示\n- [ ] 对话是否是问答式的一问一答\n- [ ] 是否习惯依赖对话来推动剧情或人物变化\n\n### 核心指令检查\n\n- [ ] 权力博弈：掌控者对话 <= 10 字 / 被压制方 >= 20 字，是否有明确的压制/反转/心死模式\n- [ ] 潜台词与议程：每个角色进入对话时有自己的议程，真实动机不在台词中\n- [ ] 人物差异化：遮住角色名后能否区分是谁在说话（7维差异化）\n- [ ] 弹幕递进：普通 → 专业 → 特殊身份，是否有层次感\n- [ ] 对话推动剧情：每段对话结束时，剧情是否往前推了一步\n- [ ] 篇幅控制：单次对话不超过全节 40%，信息密度是否足够\n\n### 检验对话质量\n\n- 对话自然度检查：逐句检查对话是否像自然口语交流，而非书面化的问答稿\n- 对话结尾能否预示接下来的节奏变化\n\nFile v1.1.21:references/emotional-methods.md\n\n# 情感设计方法：三板斧 + 拉扯节奏 + 失败模式\n\n> 设计情感桥段时加载。先看决策路由选策略，再用三板斧设计具体段落。\n\n---\n\n## 决策路由\n\n| 你的情感设计场景是 | 用这个策略 | 跳转到 |\n|---------------|-----------|----------|\n| 建立角色羁绊（让读者相信关系） | 羁绊铺设（第一斧） | 三板斧 §1 |\n| 制造情感撕裂（反差/错位/背叛） | 情感撕裂（第二斧） | 三板斧 §2 |\n| 写结尾余韵（安静细节击穿读者） | 余韵钝痛（第三斧） | 三板斧 §3 |\n| 规划整体情感节奏曲线 | 拉扯节奏设计 | 拉扯节奏 |\n| 不同题材的情感策略选择 | 题材策略差异 | 按题材 |\n| 检查情感设计是否有效 | 失败模式排查 + 快速自查 | 底部清单 |\n\n---\n\n## 情感虐心三板斧\n\n### 第一斧：羁绊铺设（前 1/3）\n\n**目标**：用具体物件/数字/细节建立关系质感，让读者相信这段关系是真实的。\n\n**方法**：\n- 用具体数字建立时间感：「相恋八年」「昏迷五年」「七年光景」\n- 用具体物件承载感情：金锁（姐姐的生日礼物）、账本数字（还债记录）、木头小马（父王磨的）\n- 用重复动作建立习惯：每天一碗粥、每两周来看一次、每年冬天冻得睡不着\n\n**案例**：\n- 《迟来二十年》：用二十年的账本数字（八万块）建立母女关系的重量\n- 《我在佛前求你》：昏迷五年、求神拜佛的细节、从初中开始的暗恋\n- 《皇弟欺负幼子》：七年质子生涯的具体苦难（跪雪地、挨巴掌、吃馊饭）\n\n**核心**：羁绊越具体，后面的撕裂越痛。不要用「他们很相爱」这种抽象描述。\n\n---\n\n### 第二斧：情感撕裂（中后段）\n\n**目标**：制造反差，让读者以为恨对了 → 发现恨错了（或反过来）。\n\n**方法**：\n- **反差法**：先展示温暖一面，再用残酷真相击碎\n- **错位法**：角色 A 以为在保护角色 B，实际上在伤害\n- **延迟真相法**：关键信息在读者最不期待的时候揭示\n\n**案例**：\n- 《姐夫捎路要奶粉钱》：妈妈表面软弱可怜，实际一直操控姐姐索取钱财 → 金锁是假的（金包铜）→ 反差撕裂\n- 《皇弟欺负幼子》：王氏表面温柔（送手炉、煎汤药）→ 实际下药逼疯先皇后 → 用诛心话逼死\n- 《重生弟弟》：弟弟深爱女友 → 女友是诈骗犯 → 怀孕是假的 → 被骗到电诈园区\n\n**核心**：撕裂的力度取决于铺垫的厚度。没有好的羁绊铺设，撕裂就是无根之木。\n\n---\n\n### 第三斧：余韵钝痛（结尾）\n\n**目标**：不用大哭大闹，用安静细节击穿读者防线。\n\n**方法**：\n- 用日常动作承载巨大情感：继续喂粥、把衣服叠好、不回头\n- 用物件细节制造余韵：坏掉的金锁、木头小马、沾血的戒指\n- 用「不」制造留白：不解释、不回头、不流泪\n\n**案例**：\n- 《皇弟欺负幼子》：「他拿着那匹被我磨得很光滑的木头小马……他握着正好。」\n- 《姐夫捎路要奶粉钱》：「我的手机清净了不少。那些困扰我很久的麻烦，在一瞬间变得很小很小。」\n- 《准儿媳打分》：「办了收养手续后，她第一次踏进这个陌生的家……我知道，这一次我没选错。」\n\n**核心**：最好的余韵不靠大哭，靠「看完之后很久都忘不掉」。\n\n---\n\n## 情感拉扯节奏设计\n\n### 基本节奏曲线\n\n```\n温暖 → 残忍 → 善意 → 真相 → 原谅 → 来不及 → 释然 → 细节暴击\n```\n\n不是所有故事都走完整曲线。按题材选择子集：\n\n| 题材 | 典型节奏 | 核心拉扯 |\n|------|----------|----------|\n| 世情/爽文 | 欺压 → 忍耐 → 爆发 → 打脸 | 情绪反弹快、打脸密度高 |\n| 情感/虐心 | 甜蜜 → 破碎 → 挽回 → 错过 | 慢铺垫、后劲大 |\n| 古言/复仇 | 隐忍 → 布局 → 揭穿 → 报应 | 设定简洁、暴力美学 |\n| 悬疑/推理 | 平静 → 不安 → 真相 → 震惊 | 信息差制造不安 |\n| 年代/亲情 | 误解 → 冲突 → 真相 → 和解 | 代际冲突、时代质感 |\n\n### 拉扯原则\n\n1. **情绪不能一路虐到底或一路爽到底**（连续多个小节没有情绪立场、期待或压力变化时，查是否停滞）\n2. **每次转向都要有触发事件**（不能无理由地改变情绪）\n3. **最后一次转向决定结尾余韵的基调**\n4. **爽文允许快速反弹，虐文需要更长铺垫**\n\n---\n\n## 按题材的情感策略差异\n\n### 世情/爽文\n\n- 情绪反弹速度：快（受辱后先取证或布局，再落打脸，不拖到读者已经忘记）\n- 打脸节奏：沿反派嚣张度递增持续兑现，不按固定节距补打脸\n- 反派嚣张度：递增（第一次小嚣张，最后一次大嚣张）\n- 结尾基调：痛快、解气\n- 案例：《准儿媳打分》— 打分制反制、铁盒零分、断绝关系\n\n### 情感/虐心\n\n- 羁绊细节密度：高（前 1/3 必须建立深厚羁绊）\n- 反差设计：先暖后冷，先甜后苦\n- 余韵技法：安静结尾 + 物件细节\n- 结尾基调：意难平、释然\n- 案例：《姐夫捎路要奶粉钱》— 金锁真相 → 假爱 → 独立\n\n### 古言/复仇\n\n- 设定简洁原则：人物关系清晰，不搞复杂世界观\n- 暴力美学写法：打脸要直接，不拖泥带水\n- 底牌时机：最后 1/4 揭示最大底牌\n- 结尾基调：大快人心、因果报应\n- 案例：《皇弟欺负幼子》— 一声令下打二十棍 → 查出真相 → 废后\n\n### 悬疑/推理\n\n- 信息差布局：读者知道角色不知道，或反过来\n- 排除法结构：逐步排除可能性，最后只剩真相\n- 动机揭示节奏：先揭示做了什么，再揭示为什么做\n- 结尾基调：细思极恐、原来如此\n- 案例：《重生弟弟》— 重生设定 + 诈骗犯身份 + 电诈园区\n\n### 年代/亲情\n\n- 代际冲突处理：不站队，展示双方的苦\n- 时代细节质感：用时代特有的物件/习俗建立质感\n- 和解节奏：不急和解，先让双方充分受伤\n- 结尾基调：温暖中带着遗憾\n- 案例：《姐夫捎路要奶粉钱》— 亲子关系 → 金锁真相 → 断裂\n\n---\n\n## 常见失败模式\n\n| 失败模式 | 识别方法 | 修正方向 |\n|----------|----------|----------|\n| **太平** | 连续 5+ 节没有情绪转折 | 插入意外事件或新信息 |\n| **太赶** | 重大转折只用了 1 节铺垫 | 给转折至少 3 节铺垫 |\n| **假虐** | 读者不心疼，只是看着难受 | 检查羁绊铺设是否具体 |\n| **割裂** | 前半部分和后半部分像两篇不同的故事 | 用伏笔/物件/主题贯穿 |\n| **烂尾** | 反转后还在补交代、新开事件 | 篇幅按小节大纲分配；反转后只写兑现与余韵 |\n| **人设崩** | 角色在关键时刻的行为不符合前面的人设 | 回顾人设，确保行为逻辑一致 |\n\n---\n\n## 快速自查\n\n设计情感时，用这个清单：\n\n- [ ] 前 1/3 有具体羁绊细节（不是抽象描述）？\n- [ ] 中段有反差/撕裂（读者以为 A → 实际是 B）？\n- [ ] 结尾有安静细节（不是大段抒情）？\n- [ ] 情绪立场/期待/压力持续有变化，没有连续多个小节原地打转？\n- [ ] 反派行为符合其人设逻辑？\n- [ ] 不存在上述 6 种失败模式？\n\n---\n\n## 三板斧与 SKILL.md 五段结构映射\n\n| 三板斧 | 对应 SKILL.md 五段 | 说明 |\n|--------|-------------------|------|\n| 第一斧：羁绊铺设（前 1/3） | 铺垫段（第二段，占 30-40%） | 用物件/数字/习惯建立关系质感 |\n| 第二斧：情感撕裂（中后段） | 升级段（第三段）+ 反转段（第四段） | 反差/错位/延迟真相制造撕裂 |\n| 第三斧：余韵钝痛（结尾） | 结尾段（第五段，占 5-10%） | 安静细节收尾，不写大段抒情 |\n\nFile v1.1.21:references/genre-styles/世情打脸.md\n\n# 题材风格包：世情打脸 / 家庭伦理因果报应\n\n> 番茄 / 七猫 / 黑岩通俗短篇。先读 `short-craft.md` 通用底座，本包在其上覆盖该题材专属调性。\n> 一句话定位：**现实生活里的恶人作恶与因果报应。婆媳、极品亲戚、吸血父母、白眼狼儿女、出轨枕边人、职场恶人欺压老实人，草根第一人称，恶是日常小事（一双鞋、一张车票、一句规矩），铺垫拉满后当众打脸、报应落地。** 读者要的是「我家那点糟心事被写出来了」的代入 +「恶人当众被戳穿、账一笔笔算清」的解气。\n>\n> 与「复仇打脸」的分工：复仇打脸卖极端作践 + 身份底牌碾压 + 反杀执行（私密照、断肢、摄政王、判官）；本包卖**日常之恶的累积与当众清算**，恶小而密、靠细节不靠大事件，打脸靠证据、账本、法律、舆论落地，主角是老实人草根而非隐藏大佬。与「追妻火葬场」的分工：追妻恶人是爱人、卖被珍视感剥夺；本包恶人是亲人 / 姻亲 / 同事，卖付出被吸血、好心被践踏。\n\n---\n\n## 叙述腔调\n\n第一人称「我」，身份即日常角色：儿媳、女儿、女婿、丈夫、嫂子、下属。**中老年「我」是本题材特有声部**（婆婆、丈母娘、奶奶、老母亲第一人称），其他题材几乎不用，本题材大量用，自带「一辈子付出被辜负」的重量。\n\n过日子的口吻：记账式精确（金额、年限、物价、次数全给具体数字），冷幽默自嘲多于嚎啕（「我差点气笑了」「就是觉得你们不去说相声，真是屈才了」）。三段式声线：忍（陪笑、咽下去）、看清（荒唐感、心寒）、算账（平静、一笔一笔清）。\n\n主角必须是先忍后爆的老实人：前期真心付出有实据（帮还赌债、带娃三年、月月转账），爆发才有分量。\n\n---\n\n## 开篇范式\n\n正文第 1 章前放**结果倒序的黄金简介**（150-300 字）：日常之恶现场 + 帮凶站队 + 主角的反常反应或决裂动作预告。恶要具体到物件和金额，不写抽象的「他们对我不好」。\n\n| 开篇式 | 真实范例 |\n|--------|----------|\n| 日常小事即刀 | 《苹果皮断心亦死》我爸林建国住院这天，我特意推了千万的合同赶来陪床。他看着我手里断断续续的果皮，突然冷哼了一声：“其实你挺虚伪的。” |\n| 规矩习俗当众打劫 | 《婆婆用彩礼抵改口费》结婚那天，我跪在地上给婆婆敬茶。她手上的彩礼红包放在我手里一秒后又拿走了。 |\n| 荒诞要求清单化 | 《妻子极端节俭，只为给男朋友买房》为了削减水费，家里三口人的洗衣做饭上厕所，一天只能用一升，多了就要挨打。 |\n| 隔门 / 刷手机撞破真相 | 《儿子为博流量造谣我抛夫弃子》屏幕上一个叫“孝心小哥”的账号，头像是我儿子。（配文说我卷钱跟野男人跑了，而他三分钟前刚从我这拿走三万块） |\n| 恶人自虐表演 + 帮凶动手 | 《请绿茶婆婆吃巴掌》婆婆忽然“扑通”一声朝我跪下，紧紧抱住我的大腿，声泪俱下。说着“啪啪”扇起自己耳光。丈夫愤然甩了我一巴掌。 |\n| 决裂动作前置吊回看 | 《婆婆让十八个亲戚住我婚房》当晚，我把准备好的离婚协议大门把手上，拖着行李箱离开。次日清晨，我被丈夫的电话吵醒。 |\n\n---\n\n## 钩子母题与密度\n\n让恶行按「小事试探、得寸进尺、踩到底线」持续递进；若连续多个叙事单元既没有新恶行、证据、应对也没有清算落点，再检查是否停滞。**恶必须小而具体：钱数、物件、一句话，不用绑架灭门。**\n\n- **规矩 / 习俗 / 孝道武器化**（头号母题）：改口费、见面礼、跪着吃饭、坐月子规矩、断亲费，把打劫包装成传统。《假借习俗名义骗我钱的男友》100万寓意着我妈可以长命百岁。这是村里的习俗，你不会看不起农村人吧。\n- **「一家人」道德绑架三件套**：孝道、面子、一家人。恶人话术永远理直气壮带糖衣，帮凶跟着和稀泥。《因为亲戚，头等舱变硬座》行了，先忍忍吧，他们就是嘴毒了点，人还是好的。\n- **偏心对照组**：同一件东西两种待遇，一格画面写尽不公。《妻子极端节俭》儿子穿姜敏小时候的旧布鞋，鞋底磨穿；情人的女儿在童装店「除了这几件，其他我都要」。\n- **生活账本堆叠**：手术费五万、菜钱三万二、尾款8999、车费两百，金额本身就是钩子，也是后面清算的弹药。\n- **日常渠道撞破真相**：门缝、朋友圈、抖音直播、监控、小号。《送女儿女婿入狱》第二天我刷抖音时听到了女儿连线律师：我要怎么做才能让我老公平安的全身而退。\n- **恶人先告状 + 网暴反转**：恶人先把主角挂上网卖惨，舆论一边倒骂主角，主角甩证据后全网倒戈。几乎每篇标配，天然两段反转。\n- **长辈血包觉醒**：中老年「我」被儿女吸血（拿走存款、造谣、算计遗产），觉醒后改遗嘱、报警、断亲。《孙子感冒后》我找了个大师，说是家里老人越健康长寿就越吸小辈的气运！\n\n---\n\n## 情绪烈度与模式（烈度 7-8）\n\n比追妻 / 复仇低半档：不靠极刑靠憋屈，恶行单件都「不至于闹翻」，堆到临界一次爆。**主情绪是心寒和荒唐感，不是悲恸。**\n\n- 心寒时刻用「轻」写：疼是小的、钝的，杀伤力在于看清。《苹果皮断心亦死》苹果砸在胳膊上，不怎么疼，就是有点蒙。我看着那脏兮兮的苹果，又看看自己还在渗血的手指，忽然就觉得没什么意思。\n- 荒唐感代替嚎啕：被气笑、想笑、觉得陌生。《儿子为博流量》我看着眼前这个儿子，忽然觉得陌生。\n- 身份句定格：一句话给自己在这个家的位置盖章，独立成段。《苹果皮断心亦死》原来当姐姐是我的原罪。／《苹果皮断心亦死》你们爱的不是我，是哪个随叫随到的血包和不用密码的银行卡。\n- 直给情绪词仍可用（心彻底凉透、心沉到谷底），但频率低于追妻；需要展开时偏向冷静盘算，不逐句配反应。\n- 憋屈的物理感：《妻子极端节俭》我端着手里仅剩的半碗水，怔愣在原地。\n\n---\n\n## 对话风格与真实金句\n\n对白重点是把规矩话术、帮凶立场、证据和关系翻转落到场内；不设全文占比。四类高频台词：\n\n**① 恶人理直气壮的日常之恶（钩子本体，恶话必须裹着为你好 / 规矩 / 一家人的糖衣）**\n- 《婆婆让十八个亲戚住我婚房》你懂事点，今晚就在过道将就下。／听妈的，别那么矫情。\n- 《苹果皮断心亦死》你推了工作来守着，不就是想让我们觉得亏欠你，好分我那套老房子吗？\n- 《因为亲戚，头等舱变硬座》你爸妈坐五个小时的飞机肯定难熬，还不如五十小时的硬座打打牌就过去了。\n- 《儿子为博流量》妈，效果好就行。您看那条视频现在多少播放量了，一百多万了。\n- 《嫂子的表哥要A我的加班费》我等了你一晚上，也算陪你加班了，你不应该分我一半你的加班费吗？\n\n**② 帮凶和稀泥（本题材特有声部：家里人劝忍，比恶人本人更诛心）**\n- 《因为亲戚，头等舱变硬座》行了婷婷，咱们忍着点，怎么说也是你妈妈的亲人。\n- 《苹果皮断心亦死》小知啊，你爸就是刀子嘴豆腐心，他也是担心你。\n- 《送女儿女婿入狱》她也不为我想想，传出去我多没面子啊？（女儿护女婿）\n\n**③ 主角冷账句（打脸金句，报数字、指规则，不骂街）**\n- 《婆婆让十八个亲戚住我婚房》谁吃的谁结账，谁弄坏的谁赔偿。这钱，我不付。\n- 《给女上司叫了辆运猪车》这车落地价八百万，保养一次三万。你那两百块，连洗个轮毂都不够。\n- 《苹果皮断心亦死》刚才那五万手术费，就当是我还清你们的生养之恩。\n- 《儿子为博流量》那是你爸的救命钱，你没资格动。\n- 《因为亲戚，头等舱变硬座》外婆，他们是手断了还是腿瘸了，还要朝我们乞讨？\n\n**④ 恶人内讧互咬（清算后必有，比主角骂十句都解气）**\n- 《婆婆用彩礼抵改口费》都怪你！说那么多这些话干嘛？就差一点点就成功了！\n- 《苹果皮断心亦死》正因为你是我老子，我才得留着好身体给你送终啊！\n\n外人正义声可少量点缀（隔壁床大叔、律师、网友评论），替读者说出「这不对」。\n\n---\n\n## 招式库\n\n| 招式 | 怎么用 | 真实例 |\n|------|--------|--------|\n| 生活细节当刀 | 用一件小物写透恶意：一双鞋、一个护膝、半碗水 | 《婆婆用彩礼抵改口费》那护膝，只是他昨晚怕我一时生气不结婚的作秀体贴 |\n| 贯穿物件意义翻转 | 同一物件首尾三现，从被践踏到闭环 | 《苹果皮断心亦死》开篇削苹果被骂虚伪，他病床上想起那断掉的每一寸果皮，结尾我在骨灰盒前削完一个完整苹果 |\n| 规矩反打 | 恶人立的规矩原样还回去 | 《儿媳坐月子》儿媳逼婆婆吃一千份冰激凌，婆婆顺势不再做饭：你天天都可以吃自己想吃的 |\n| 记账式清算 | 当众逐笔报账：欠条、转账、误工费 | 《因为亲戚，头等舱变硬座》大舅，舅妈去年做手术，你说没钱管我妈借了五万，这是欠条，是不是该还了？ |\n| 录音监控先手 | 冲突前就开录，撕破脸时甩铁证 | 《婆婆用彩礼抵改口费》我冷笑一声，摘掉了自己胸口前的针孔摄像器；《因为亲戚》我将从火车开始就一直录音 |\n| 顺水推舟看自爆 | 不劝阻、递台阶，让恶人自选毁灭 | 《身为律师，奶奶要我判偷她鸡的邻居死刑》这一次，我将不会再劝阻奶奶，放手让她做她想做的事 |\n| 法律程序落地 | 报警、起诉、离婚协议、遗嘱、断亲、放弃继承，一步到位不吵架 | 《儿子为博流量》一个小时前，在医院，我就报警了；《苹果皮》一份《放弃遗产继承声明书》被我轻轻放在床头 |\n| 网暴双反转 | 恶人先挂网卖惨，主角甩监控 / 流水，全网倒戈 | 《请绿茶婆婆吃巴掌》我将念念被烫伤当天的监控，还有整个事情的经过、派出所的立案通知、调查结果和一些相关证据，整理发送到了婆婆之前支持率最高的网络平台。顷刻之间，原本纷纷声讨我的网友倒戈相向 |\n| 经济断供 | 掐断钱袋子：存定期、改遗嘱、停投资、转走主卡 | 《送女儿女婿入狱》我心下一酸，立马将现金存成定期。还立下遗嘱，死后财产全捐给公益事业 |\n| 恶人内讧狗咬狗 | 利益断了，恶人阵营当众互撕 | 《给女上司叫了辆运猪车》两人在众目睽睽之下，扭打在一起。互扇耳光，在猪粪味中翻滚 |\n| 荒诞对等回敬 | 用恶人的逻辑造一个对称的难堪 | 《给女上司叫了辆运猪车》既然喜欢免费的，那就让她一次坐个够（两百块车费叫来运猪车） |\n| 报应清单收尾 | 「听说体」逐个交代下场，具体到职业住处 | 《婆婆让十八个亲戚住我婚房》听说，他因为背上巨债，又丢了工作，整个人都废了，只能靠打零工度日；听说，王秀娟因为房子被法拍，无家可归，只能跟着儿子挤在狭小的出租屋里，整日以泪洗面 |\n\n---\n\n## 节奏骨架\n\n```\n黄金简介（日常之恶现场 + 帮凶站队 + 决裂预告）\n→ 第1章慢放恶行，补满对话与物件细节，帮凶合围\n→ 心寒定格（身份句 / 荒唐感），不吵，开始蓄证\n→ 恶行加码（要钱升级 / 挂网卖惨 / 道德绑架亲友团）\n→ 摊牌清算（账本 / 录音 / 法律文书当众落地）\n→ 舆论倒戈 + 恶人内讧\n→ 报应清单 + 主角平淡新生活\n```\n\n打脸不必集中在一场：可把怼一句、算一笔等小反制分散在升级链里，大清算放到因果和证据汇合处。恶行现场和摊牌现场详写慢放，蓄证过程按新信息价值取舍；不为逐节配额另造恶行或反制。\n\n---\n\n## 收尾范式\n\n- 报应清单：「听说体」逐个交代恶人下场，落到具体生计（送外卖、房被法拍、捡废品、进去了），不写主角施暴。\n- 阶层对照定格：一个画面写两种人生，不说教。《婆婆让十八个亲戚住我婚房》我只是平静地看着他，然后，端起面前的咖啡，朝他所在的方向，遥遥地、优雅地举了举杯。\n- 物件闭环：贯穿物件最后一次出现，完成告别。《苹果皮断心亦死》我把那个削好了的苹果，端正地放在骨灰盒前。这是我最后一次，为他削苹果。\n- 不恨式放下：《苹果皮断心亦死》我不爱你了，也不恨你了。\n- 平淡新生活：开小店、带爸妈定居、猫和阳光，日子本身就是打脸。《因为亲戚》没了吸血兄妹的打扰，妈妈肉眼可见的年轻。\n\n---\n\n## 该题材专属调校（与通用去 AI 规则的偏差）\n\n这些在别的语境是 AI 味，在本题材是卖点，**别误删**：\n\n- **金额物价逐项精确**（两百块车费、8999 尾款、三十元一双袜子、五万手术费）：保留，这是真实感和清算爽感的底座，不是流水账。\n- **恶人台词的理直气壮加糖衣**（为你好 / 规矩 / 一家人）：保留，越顺理成章越诛心；别改写成脸谱化叫骂，恶人自认有理才像身边人。\n- **帮凶和稀泥声部**（「忍忍吧」「都是一家人」）：保留，憋屈感一半来自帮凶；别删成主角单挑恶人。\n- **中老年「我」的回忆插叙**（拉扯儿子长大、捡垃圾供学的往事）：保留，是付出与辜负的对照弹药；控制在每次三五句。\n- **「听说体」报应清单收尾**：保留，是本题材标配的因果闭环，不是烂尾。\n- **主角冷幽默自嘲**（「我差点气笑了」「真是屈才了」）：保留，是心寒的本题材表达式。\n\n仍要避免的真·AI 味：映入眼帘、心中暗道、沉声道、嘴角微扬、目光如炬、论文体连词（不难看出 / 由此可见）、空泛无落点的情绪总结句（一丝悲伤涌上心头）。另外两条本题材易犯：恶人恶得没有生活逻辑（上来就喊打喊杀，没有糖衣）；清算靠主角开骂而不是靠证据和规则落地。\n\n> 标点：本题材范例为示意保留了原貌（含个别 `……`）；落到正文按 `short-craft.md` 第 8 节执行，不出 `……` / `——`，停顿、哽咽、被打断一律用短句 / 句号 / 动作 beat / 换行实现。\n\n---\n\n## 配套结构公式（按篇幅选）\n\n- **草根实证清算型（8-12 节，婆媳 / 亲戚 / 职场欺压）**：1-2 节日常之恶现场 + 帮凶合围 → 3 节心寒定格、开始蓄证（录音 / 记账 / 备份）→ 4-6 节恶行加码、恶人挂网卖惨 → 7-9 节摊牌：证据 + 法律文书当众落地、舆论倒戈 → 恶人内讧 → 报应清单 + 新生活。100% 第一人称；恶要小而密，清算走规则不走对骂。\n- **长辈觉醒断亲型（婆婆 / 丈母娘 / 老母亲「我」）**：儿女 / 儿媳的孝顺人设开场 → 日常渠道撞破真面目（短视频账号 / 直播连线 / 存折余额）→ 不动声色反制：存定期、改遗嘱、报警 → 儿女下跪打感情牌被拒 → 撕户口页 / 过户给真心人。回忆插叙撑付出与辜负的对照。\n- **顺水推舟自爆型（重生 / 先知变体）**：先交代上一世忍让的下场（被打死、被灭口）→ 回到恶行起点 → 这一次不劝阻不兜底，递台阶看恶人自选毁灭 → 恶人作到刑事级别，法律收网。主角全程干净，报应全是恶人自找。\n- **隐形底牌变体（首富老婆 / 千金体验生活）**：恶仍是日常之恶（蹭车、A 钱、职场 PUA），主角藏着碾压级身价 → 恶人踩到物件价格上翻车（八百万买菜车、二十八万手机）→ 数字揭晓即打脸。与复仇打脸的区别：底牌只用来定价，不用来杀伐。\n\nFile v1.1.21:references/genre-styles/双男主.md\n\n# 题材风格包：双男主 / 宿命羁绊\n\n> 知乎盐选特色大类。先读 `short-craft.md` 通用底座，本包在其上覆盖该题材专属调性。\n> 一句话定位：**核心张力不是男女三角，而是两个男人之间的羁绊与撕扯，靠宿敌 / 知己 / 救赎 / 亏欠四条线放电；情感浓度拉满，但落在兄弟情、宿命感、占有欲的层面。** 读者要的是「一冷一热的温差对撞」+「嘴上势不两立、底下命都交出去」的错位快感。\n\n---\n\n## 叙述腔调\n\n第一人称主导，但和追妻的单向受害者不同：双男主的「我」经常是**关系里主动、强势或占有的那一方**（把弟弟养在身边的哥、把对方当狗玩的重生者、冷淡履约的契约丈夫），另一方的滚烫与卑微靠对话和动作反衬出来。\n\n腔调建在**口是心非**上：想的和说的相反，嘴上刻薄、心里在意。刻薄内心吐槽（「沈洲不用异能——可能是脑子有病」）和冷叙述（「对于他的死，我也没有什么感觉」）都高频。开口常带同性羁绊的称呼锚点：「我哥」「继弟」「死对头」「宿敌」「暗卫十七」。\n\n允许**双视角 / 暗恋视差插叙**：在「我」的叙述里，穿一段另一方隐秘的付出（偷偷记的本子、透支换来的巧合、未送出的信），读者比「我」先知道对方爱得多深。这是本题材主引擎，不是上帝腔。\n\n---\n\n## 开篇范式\n\n同样先放**结果倒序的黄金简介**（150-300 字），但剧透的不是背叛全貌，而是**两人错位的关系底牌**：谁在暗恋、谁欠了谁、谁会毁掉谁、火葬场追悔预告。正文第 1 章把这层错位慢放。\n\n| 开篇式 | 真实范例 |\n|--------|----------|\n| 死讯倒叙 + 不解 | 《阴天快乐》谢疏玉死在我和他结婚后的第三年。自杀。 |\n| 互殴定敌 + 埋暗流 | 《死对头暗恋我》我和沈洲是死对头，末世前针锋相对，纠缠不清。 |\n| 占有宣言（哥 / 继弟） | 《我与我哥》我讨厌我哥。讨厌他用身子去换不干净的钱。 |\n| 契约枷锁开场 | 《落网》沈则，三年后你想走，我放你走。可三年后我才知道，他从来没打算放我走。 |\n| 重生 / 穿书预知死局 | 《双生劫》胎穿成将军府独子，我知道那个与我没有血缘关系的兄长，未来会因我一句话屠尽皇城。 |\n| 沙雕反差钩 | 《疯子皇帝和老实暗卫》皇帝招暗卫，五十银两，包吃包住。可我领到的装备是透明薄衣和水晶胸链。 |\n| 亏欠倒叙 + 确诊反击 | 《废弃玩物》谢寒舟是四九城里最不可攀的高岭之花。而我是他养在身边的继弟。可我却在确诊的那天，当着他的面，带了个野男人回家。 |\n\n---\n\n## 钩子母题与密度\n\n密度高，但升级线不是「背叛升级」，而是**两人关系的锁扣一层层收紧**：从对峙到被迫共处，从共处到互相亏欠，从亏欠到谁也走不了。若连续多个叙事单元都没有温差、视差、选择或关系后果，再检查是否停滞；不为逐节达标硬塞一次放电或揭穿。\n\n- **暗恋视差**（头号母题，共现「暗恋」576 次仅次于「甜宠」）：表面恨 / 斗 / 淡漠，底下一方偷偷爱着。视差揭穿的那一刻是最大爽点。\n- **契约 / 欠债 / 联姻强绑**：助手协议、欠条、联姻、暗卫合约，把两个本该分开的人硬拴在一起，制造无法逃离的共处。\n- **救赎与被救赎**：一方在深渊里（脏钱、自毁、疯魔、末世透支），另一方伸手拉 / 被拉。共现「救赎」326、「治愈」310。\n- **亏欠反转（追夫火葬场变体）**：一方把另一方当工具 / 漠视 / 背叛，被弃者决绝离场（去父留子、带资产、嫁人），漠视者卑微追悔。\n- **宿命预知**：重生 / 穿书知道对方未来会自杀 / 黑化 / 毁掉自己，主角逆天改命。共现「重生」68、「穿书」113。\n- **身份反差硬碰**：高岭之花×舔狗继弟、皇帝×老实暗卫、将军×狼崽兄长、双 A / 双强互不相让。\n- **信物 / 记录承重**：偷记的本子、未送出的信、唯一的合照、淡去的标记，把没说出口的感情具象成物件。\n\n---\n\n## 情绪烈度与模式（烈度 8）\n\n不是追妻那种一味直给宣泄，而是**双轨温差**：一条线冷、嘴硬、克制、口是心非；另一条线滚烫、卑微、偏执、豁出去。两条温差对撞放电，是本题材的情绪引擎。BE 罕见（仅 56），主流走 HE / 救赎（HE 共现 1054），别写死写绝。\n\n- **冷轨**：直写「没有感觉 / 不在意 / 只觉得烦」，越平越反衬后面的痛。《阴天快乐》对于他的死，我也没有什么感觉。\n- **热轨**：卑微、偏执、追悔的滚烫台词，独立成段砸。《喵的，栽你手上了》哥，我错了，你别不要我。\n- **别扭轨**：傲娇的口是心非，想的和说的相反，嘴上越刻薄越藏着在意（如《死对头暗恋我》里对沈洲每次的挑衅）。\n- **反差痛**：把冷叙述和一个滚烫细节并置，越平的口吻托越重的内容。《阴天快乐》我像对待一件再正常不过的工作一样去处理这件事情。冷静地给他挑遗照，选墓地。\n\n真实范例：\n\n- 《死对头暗恋我》也不知道，沈洲每一次嘴里的巧合，都是他异能透支换来的结果。\n- 《双生劫》他昏迷中死死攥着我手腕呢喃：再…再骂响些…\n- 《与君朝》他留给我的，只有无数张未送出的信。每一封信，都写满了他从未对我说出口的感情。\n\n---\n\n## 对话风格与真实金句\n\n占比高，独立成段。三类台词撑全篇：\n\n**① 嘴硬 / 攻击性对手台词（表面势不两立）**\n- 好看吗？死变态！\n- 他说有你就信啊。我还不知道他，一天天娘们唧唧没个男人样，被人碰一下就哭。\n- 蠢货！练枪要扎马步！\n\n**② 卑微 / 偏执的滚烫（舔狗 / 病娇 / 追悔）**\n- 哥，我错了，你别不要我。孩子是谁的？我给孩子当爹好不好？\n- 我爱你，离不开你。\n- 宝宝，留在我身边，你要多少钱都可以，你想让我穿什么都可以，你想踩哪儿都行。\n- 再…再骂响些…\n\n**③ 契约 / 立场台词（宿命枷锁）**\n- 沈则，三年后你想走，我放你走。\n- 可以，但是你要写欠条。\n- 你要多少钱都可以，随你开价，我都给你。\n\n冲突不靠谩骂，靠**温差落差**标记权力与心动的易主：前期一方长篇挑衅、另一方冷淡两不搭理；后期冷的那个破防、硬的那个卑微。谁先服软，谁就露了心。\n\n---\n\n## 招式库\n\n| 招式 | 怎么用 | 真实例 |\n|------|--------|--------|\n| 暗恋视差揭穿 | 叙述里插一段对方隐秘的付出，读者先于「我」看到爱之深 | 《死对头暗恋我》本子上写着：谢琰不喜欢的事（可能） / 67.讨厌我？（划掉）（划掉）（划掉） |\n| 契约锁死关系 | 助手 / 欠条 / 联姻 / 暗卫合约，把两人强绑进无法逃离的共处 | 《落网》沈则，三年后你想走，我放你走。可三年后我才知道，他从来没打算放我走 |\n| 温差对撞放电 | 一冷一热、口是心非，冷的越平热的越滚烫 | 《死对头暗恋我》沈洲却跟听不见一样，毫不反驳，只是红着眼眶看着我 |\n| 救赎拉拽 | 把对方（或被对方）从脏污 / 自毁 / 疯魔里拉出来 | 《我与我哥》等我把他身上黏人的污垢洗干净，他就将永远属于我 |\n| 亏欠追悔（火葬场） | 一方漠视 / 背叛，被弃者决绝离场，前者卑微追回 | 《喵的，栽你手上了》我去父留子甩了他，在海岛养胎时。 |\n| 宿命预知逆写 | 重生 / 穿书知道对方会自杀 / 黑化 / 毁掉自己，逆天改命 | 《双生劫》书里的林苏，是林延疯魔路上的第一块垫脚石。 |\n| 身份反差硬碰 | 高岭×舔狗、皇帝×暗卫、将军×狼崽，落差本身就是钩 | 《疯子皇帝和老实暗卫》他身为皇帝，cos 猫娘，看着我媚眼如丝：十七，不要猫，要我 |\n| 骨科 / 继亲禁忌 | 哥 / 继弟称呼承重，禁忌感加压 | 《兄控炮灰重生后》傅绒不乖，哥哥把你关起来好不好？ |\n| 脑洞承重羁绊 | ABO 标记 / 双性 / 生子，把感情具象成发情、标记、孩子 | 《守寡第五年》爱人去世的第五年，他留下的标记淡了 |\n| 信物翻意义 | 信 / 诗 / 本子 / 合照 反复出现、意义反转，落到和解 | 《所幸我们总会相逢》那是我和季寻唯一的合照 |\n| 反差喜剧钩 | 两个「受害者」阴差阳错凑一对，误会当笑点 | 《你老婆背着你在外面做 1》首先声明我不是挑事的人——但你知道吗，你老婆背着你在外面做 1。 |\n\n---\n\n## 节奏骨架\n\n```\n黄金简介（结果倒序 + 暗恋 / 亏欠 / 宿命的关系底牌剧透）\n→ 第1章互殴 / 契约 / 占有场景慢放，立敌意 + 埋暗流\n→ 关系锁扣收紧（被迫共处 / 契约 / 宿命枷锁）\n→ 温差一次次放电（嘴硬 vs 滚烫，错位加压）\n→ 视差 / 隐情揭穿（本子 / 透支 / 未送出的信曝光）\n→ 危机或亏欠爆点（送死 / 背叛 / 漠视 / 黑化）\n→ 双向奔赴 或 追悔火葬场\n→ HE 收束（宿命和解 / 救赎闭环）\n```\n\n让新错位和新揭穿沿关系链持续兑现；章尾可落在错位、局部确认、关系变化或明确的下一步，不要求每章同一种钩。温差放电、视差揭穿、危机爆点处详写慢放，共处日常按关系变化价值取舍。\n\n---\n\n## 收尾范式\n\n- **双向奔赴**：嘴硬的一方终于承认，冷轨破防，温差归零。\n- **救赎闭环**：把对方（或被对方）从深渊拉出，从「两不相欠」走到「两相依」。\n- **追悔火葬场（亏欠子类）**：漠视者卑微追回，被弃者冷拒或有条件回头。\n- **宿命反写（重生 / 穿书）**：改掉前世的死局，这次不走了 / 你不许死。\n- 主流是 HE，别学追妻那样纯虐离场；就算前面虐到底，也要给和解或圆回。\n\n情节概述：《所幸我们总会相逢》季寻不告而别的第三年，一张唯一的合照牵出重逢。／ 《与君朝》重生逆写萧翊熬死的结局，把人囚在身边补回没说出口的感情。\n\n---\n\n## 该题材专属调校（与通用去 AI 规则的偏差）\n\n这些在别的语境像 AI 味或用力过猛，在本题材是卖点，**别误删**：\n\n- **双视角 / 暗恋视差插叙**：在「我」的叙述里剧透另一方的隐秘付出，保留。这是共鸣主引擎，不是上帝腔。只删「泄了底又不吊读」的随手全知。\n- **口是心非的傲娇内心独白**：想的和说的相反，保留，别抹平成前后一致。\n- **卑微 / 偏执 / 追悔的滚烫台词**：舔狗、病娇、火葬场的告白，保留，别当「用力过猛」删。\n- **契约 / 宿命的前瞻剧透**：有意识地向前吊「三年后 / 后来他后悔了 / 未来他会毁掉我」，保留。\n\n仍要避免的真 AI 味：映入眼帘、心中暗道、沉声道、嘴角微扬、目光如炬、论文体连词（不难看出 / 由此可见）、空泛无落点的情绪总结句（一丝悲伤涌上心头）。语料里也偶有「映入眼帘」这类混入，别照抄。\n\n> 标点：本题材范例为示意保留了原貌；落到正文按 `short-craft.md` 第 8 节执行（不出 `……` / `——`，停顿用短句 / 动作 / 换行）。\n\n---\n\n## 配套结构公式（按篇幅选）\n\n- **宿敌暗恋 / 双向奔赴型（8-11 章）**：1-2 章互殴立敌 + 埋暗流 → 3-4 章被迫共处 / 契约绑定 → 5-6 章视差揭穿（一方隐秘曝光） → 7-8 章危机送命 / 破防表白 → 双向奔赴 HE。视角可单可双；温差是引擎，冷的那个越晚破防越好。\n- **救赎 / 现代情感型**：一方在深渊（脏钱 / 契约 / 自毁 / 末世透支） → 另一方拉拽 → 前世 / 契约枷锁把人锁死 → 打破枷锁走到两相依。冷叙述打底，反差细节扎心。\n- **亏欠追夫火葬场型**：一方漠视 / 背叛（继弟 / 伴侣被当工具） → 确诊 / 怀孕 / 心死 → 决绝离场（去父留子 / 带资产 / 嫁人） → 漠视者卑微追回 → 冷拒或有条件回头。刀口精准，别谩骂。\n- **古代权谋双强型**：帝王将相 / 兄弟养成，重生或穿书预知死局 → 逆写宿命 → 囚 / 救 / 亲 → 江山与人都要。权谋线和感情线互为筹码。\n\nArchive v1.1.20: 49 files, 288907 bytes\n\nFiles: references/agent-calls.md (2297b), references/author-memory-maintenance.md (8766b), references/author-memory.md (11531b), references/banned-words.md (10424b), references/benchmark-recall.md (3808b), references/cross-book-recall.md (5039b), references/dialogue-mastery.md (11764b), references/emotional-methods.md (7925b), references/genre-styles/世情打脸.md (16485b), references/genre-styles/双男主.md (12646b), references/genre-styles/复仇打脸.md (14846b), references/genre-styles/宅斗宫斗.md (15840b), references/genre-styles/总裁豪门.md (17383b), references/genre-styles/悬疑.md (13711b), references/genre-styles/民俗怪谈.md (13204b), references/genre-styles/沙雕脑洞.md (14716b), references/genre-styles/甜宠.md (11894b), references/genre-styles/追妻火葬场.md (15930b), references/genre-writing-formulas.md (20590b), references/genre-writing-techniques.md (23162b), references/hooks-chapter.md (8632b), references/hooks-paragraph.md (6848b), references/output-contract.md (6615b), references/reference-index.md (2438b), references/scene-craft.md (3099b), references/short-craft.md (11235b), references/short-deslop.md (8543b), references/short-format.md (8923b), references/short-prose-quality.md (10837b), references/short-reversal.md (16673b), references/short-suspense.md (15939b), references/style-resolution.md (4016b), references/submission-craft.md (4860b), references/villain-and-reveal.md (5975b), references/workflow-design.md (5878b), references/workflow-draft.md (11731b), references/workflow-revision.md (6409b), references/writing-workflow.md (4848b), scripts/author_memory_commit.py (79758b), scripts/check-ai-patterns.js (75274b), scripts/check-degeneration.js (15104b), scripts/check-delivery-contract.js (9055b), scripts/check-outline-copy.js (13356b), scripts/check-phase2-contract.js (16497b), scripts/normalize-punctuation.js (13480b), scripts/style-whitelist.js (1168b), skill-card.md (2141b), SKILL.md (11135b), _meta.json (137b)\n\nFile v1.1.20:SKILL.md\n\n---\nname: story-short-write\nversion: 1.0.0\ndescription: \"短篇网文写作。辅助短篇小说创作，从构思到成稿，聚焦情绪拉扯与节奏把控。触发方式：/story-short-write、/写短篇、「帮我写一篇短篇」「写个盐言故事」。\"\nmetadata: {\"openclaw\":{\"source\":\"https://github.com/zenstory-ai/oh-story-claudecode\"}}\n---\n# story-short-write：短篇网文写作\n\n你是短篇网文写作执行器。从构思到成稿，完成一篇完整的短篇小说。\n\n**执行规则：短篇以情绪为目标，所有内容为情绪服务。**\n\n## 写前必读（强制，先读后写）\n\n短篇按作者时刻加载：每个时刻只读自己的文件，后一时刻只靠落盘文件接上前一时刻。创建或修改故事文件前，先判断当前时刻并完整读取它的必读项（分块直到 EOF；`rg` 检索或局部摘读不算读完）。**只读本 SKILL.md 不算完成门禁。**\n\n| 时刻 | 作者确认什么 | 读什么 | 落盘 |\n|---|---|---|---|\n| 定情绪（Phase 1） | 读者读完的感觉、题材方向 | 本文件 | 进构思时写入 `设定.md` |\n| 构思（Phase 2） | 故事核、人物、反转、付费点 | ① `references/workflow-design.md` + `references/writing-workflow.md`、`references/submission-craft.md`、`references/short-craft.md`、`references/short-reversal.md` ② 核心 10 题材读一个精确的 `references/genre-styles/{题材}.md`，冷门题材读 `references/genre-writing-formulas.md` ③ 有反派或真相揭露设计时读 `references/villain-and-reveal.md`，不适用时在设计校验区写明原因 | `设定.md`、`小节大纲.md` |\n| 写正文（Phase 3–4） | 成稿 | Phase 3 写正文前完整读取 `references/workflow-draft.md`，按其「写前加载」读写作手法；Phase 4 精修前完整读取 `references/workflow-revision.md` | `正文.md` |\n\n构思必读项在第一次写入 `设定.md` / `小节大纲.md` 前读完。任一必需路径不存在、不可读或题材尚未解析到唯一 reference 时，立即停止，报告准确路径/待定项，**不得创建或修改故事产物**。不要把“已读 references”的回执写进故事文件；选出的题材招式、反转计算等应用证据写进正常设计字段。每个时刻按当前任务完整回读，不得用早先读过代替。\n\n**交接只靠落盘**：作者在对话里定下的字数、平台、人称、偏好、红线和否掉的方案，构思交付前写进 `设定.md`；写正文只读两份设计文件与本时刻的写作手法，不重读构思方法论，也不回翻对话。\n**换上下文**：构思读得最多。构思汇报末尾建议作者新开一个对话说「写正文」；作者要在本对话接着写也照做。新对话里两份设计文件已通过构思完成门禁时，直接进入写正文。\n\n---\n\n> Agent 只查当前端 canonical 目录（Claude `.claude/agents`、OpenCode `.opencode/agents`、Codex `.codex/agents` TOML、Antigravity `.agents/agents`），不跨端误判。Claude 用 `subagent_type`，OpenCode 用 `subagent` 的 `agent`，Codex 用 `agent_type`，Antigravity 用 `invoke_subagent` + `TypeName`。主会话自己写正文、去味是常态，不报；作者明确要交给写作助手而能力/文件缺失、unknown agent 或 ZCode 3.3.4 时，由主会话接手并一句白话告诉作者（如「写作助手用不了，由我直接写」），`Fallback: project custom agents unavailable -> solo` 原文只写进汇报最后一行「技术备注：」。\n>\n> Spawn 版本提示（不阻断 spawn）：先读取项目根 `.story-deployed` 的 `agents_version`。与本版 `agents_version: 34` 不一致时（标记缺失、字段缺失/非整数、小于或大于 34）**照常按文件存在性检查并 spawn**，同时用一句白话提示作者「写作助手是旧版，运行 /story-setup 后新开对话」，`Notice: agents bundle 版本不匹配（项目 {N}，本版 34）` 原文写进技术备注行；大于 34 时额外提示先更新 oh-story-claudecode，不要用本地旧版 setup 降级覆盖。只有 agent 文件缺失、或运行时不暴露 custom agent 时才降级 solo/direct，`Fallback: ... -> solo` 同样只进技术备注行。\n\n**文风裁决**：正文写作、改写或审稿前先读 [references/style-resolution.md](references/style-resolution.md)，加载本书文风并形成 `style_resolution`；无作者记忆也执行。当前请求、本书文风和 active 偏好按维度覆盖通用 references；同一裁决交给后续执行者。\n\n## 执行规则\n\n1. **先定情绪，再定故事**。动笔前必须确定目标情绪（意难平/反转震撼/爽感释放/治愈温暖/细思极恐/共鸣感动），所有内容为这个情绪服务。\n2. **一个核心支点撑一篇**。反转型围绕一次主揭示蓄力；无反转型围绕报应兑现或甜度递进积累期待。不多线、不铺世界观。\n3. **每句话必须有用**。不推动剧情、不铺垫反转、不推高情绪的句子 → 删。\n4. **开头 3 句定生死，结尾定传播**。开头必须包含钩子，结尾必须有余韵。\n5. **默认第一人称**。短篇网文（盐言/七猫短篇等）绝大多数用第一人称，代入感最强。当前请求、本篇文风或题材需要第三人称时按其执行，不因默认值改回「我」。\n\n---\n\n## 核心方法\n\n除了上面的执行规则，构思和写作时遵循：\n\n- **定方向就换风格**：题材一旦确定，腔调、开篇、钩子、情绪烈度、金句、招式、收尾全部切到该题材包（追妻含时代变体与小三/死人文学分支）；冷门题材用公式结构骨架兜底，腔调按 `short-craft.md`\n- **复用作者习惯**：有作者记忆时，正文前用 `scripts/author_memory_commit.py query --workspace {工作区} --book-root {项目目录} --kind prose_style --kind story_design [--genre {题材}] [--workflow 短篇]` 获取 active 条目（≤2KB），传给正文/改写 agent 作为自然倾向，不逐条展示或最大化命中，不牺牲连贯、节奏和字数；硬门禁、当前请求和本篇设定优先。长期声明在收尾用 `record` 写入并回传回执，细则见 [references/author-memory.md](references/author-memory.md)。\n\n---\n\n## 写作流程\n\n### Phase 1：确定目标情绪\n\n从项目根及上一级往下 3 层找到 `短篇扫榜结论.md`（多份取最新）时先读其「选题匹配」，排第一的方向带着目标情绪当候选问作者；过了复扫日期就提醒可能过期。\n\n问用户：**「你想让读者读完什么感觉？有没有想写的题材方向或灵感？」**\n\n用户已说清读者读完的感觉 → 直接进入 Phase 2；只给了题材或梗、没说情绪 → 从下表带一个推荐情绪问一句，作者点头再进。\n\n如果用户只有模糊想法 → 帮用户做情绪选择：\n\n| 情绪类型 | 适合场景 | 难度 | 市场热度 | 常配题材包 |\n|----------|----------|------|----------|------------|\n| 意难平 | 虐恋、遗憾、错过 | 中 | 🔥🔥🔥 | 追妻火葬场 / 甜宠（先虐后甜） |\n| 反转震撼 | 悬疑、身份错位 | 高 | 🔥🔥🔥 | 悬疑 / 沙雕脑洞（反套路） |\n| 爽感释放 | 打脸、逆袭 | 低 | 🔥🔥 | 世情打脸 / 复仇打脸 / 总裁豪门 / 宅斗宫斗（古代上位） |\n| 治愈温暖 | 成长、亲情、友情 | 中 | 🔥🔥 | 甜宠 / 双男主（救赎线） |\n| 细思极恐 | 悬疑、心理 | 高 | 🔥 | 悬疑 / 民俗怪谈 |\n| 共鸣感动 | 现实、职场、婚姻 | 中 | 🔥🔥🔥 | 世情打脸（共鸣模式） / 追妻火葬场（小三文学） |\n\n---\n\n### Phase 2：构思核心框架\n\n#### 对标上下文加载\n\n存在本篇 `对标/`、项目根 `拆文库/` 或用户提供参考小说时，先完整读取 [references/benchmark-recall.md](references/benchmark-recall.md)，执行对标发现、排除本书续写基线、题材匹配与召回。无外部对标时仍按原题材包执行。\n\n#### 构思、设计与验收\n\n完整步骤见 [references/workflow-design.md](references/workflow-design.md)。按首屏「写前必读」读完后执行；两份设计文件通过其中的 Phase 2 完成门禁，才可进入 Phase 3。\n\n---\n\n### Phase 3：逐场景写作\n\n进入正文写作前，完整读取 [references/workflow-draft.md](references/workflow-draft.md)，执行交付参数锁定、写前验收与逐场景写作；只做构思或精修时不加载。\n\n**小节完整性流程**：\n1. **写作时**：每节围绕一个主问题推进；让风险、信息、关系、资源、决定、行动或读者理解至少发生一项可见变化。相关情节点可以由同一动作链或对话同时兑现，不为拆成多个“子事件”重复铺陈。\n2. **写完后**：对照 `小节大纲.md` 检查批准内容是否落地、因果与下一步是否读得懂、感知/反应是否提供新信息、伏笔/物件是否按计划出现。\n3. **发现缺口时**：只补回原计划中漏掉的动作、证据、选择或后果；若本节已经完成职责，即使很短也不加任务卡点、对话、回忆或环境来凑长度。\n4. **发现冗余时**：删除不改变风险、信息、关系、资源、决定、行动或可信度的阻碍、复述与旁人反应；不把“有冲突”本身当成保留理由。\n\n### Phase 3 完成门槛（进入 Phase 4 前必须通过）\n\n- [ ] 总字数进入锁定的用户范围；未指定时进入 8000-20000 默认范围\n- [ ] 每节完成其批准情节点或状态变化；没有为拉齐长度补冲突、对话、回忆或旁人反应\n- [ ] 节数 = 小节大纲规划节数（不得合并/省略）\n- [ ] 身体细节按叙事功能判断，不设次数上限；不对“手、眼、心”等单字计数改稿\n- [ ] 「像/好像/仿佛/如同」不成片堆叠；超过 10 处需逐处复核功能，不机械全删\n- [ ] `node scripts/check-ai-patterns.js --check --fail-on=blocking 正文.md` 无 blocking 命中；其余提示先通读，确属问题再改\n- [ ] `node scripts/check-degeneration.js --check 正文.md` 无 blocking 退化命中（复读/截断/工程词泄漏）\n\n**不通过 → 回退补足，不得进入精修。**\n\n---\n\n### Phase 4：精修打磨\n\n精修或质量自检前，完整读取 [references/workflow-revision.md](references/workflow-revision.md)，按其职责分工去味、查一致性、做最终扫描与交付验收；只做构思时不加载。\n\n---\n\n## 流程衔接\n\n**流水线：** 短篇\n**位置：** 写作（第 3/3 步）\n\n有参考小说想对标 → `/story-short-analyze`（存入 `拆文库/{书名}/`）；写完去 AI 味 → `/story-deslop`；想自检 → Phase 4 流程 + `references/short-prose-quality.md`；要市场方向 → `/story-short-scan`；设定太大适合长篇 → `/story-long-write`。\n\n---\n\n## 参考资料\n\n阶段必读项按首屏「写前必读」执行；其他资料按 [参考索引](references/reference-index.md) 的加载条件选用。\n\n## 语言\n\n- 跟随用户的语言回复，用户用什么语言就用什么语言回复\n- 中文回复遵循《中文文案排版指北》\n\nFile v1.1.20:_meta.json\n\n{\n  \"ownerId\": \"kn7e14qz6v4n71xmjegh68jtts80dp5r\",\n  \"slug\": \"story-short-write\",\n  \"version\": \"1.1.20\",\n  \"publishedAt\": 1790496795237\n}\n\nFile v1.1.20:references/agent-calls.md\n\n# agent-calls.md：短篇派写手的调用方式\n\n只在要 spawn narrative-writer 时读；主会话自己写正文、自己去味时不读。何时派由 workflow-draft.md / workflow-revision.md 决定，这里只放 prompt 与必须附带的内容。Antigravity 用 `invoke_subagent` + 同名 `TypeName`。\n\n## 写正文\n\nspawn `Agent(subagent_type: \"narrative-writer\", prompt: ...)`，只传项目目录、输出文件、目标情绪、题材风格包、小节大纲、角色、主/副对标召回摘要、本书文风全文路径与 style_resolution、作者偏好 query 中的文风/故事设计项、格式硬约束和写作硬约束，并传入检查分工：本批只做内容覆盖与格式自检，完整语义去味由 Phase 4 负责，最终文件扫描由主会话负责。\n\n不把本 skill 整段规则塞进 prompt；细节以 `short-format.md`、题材包、`short-craft.md` 与 `scene-craft.md` 为准。收回后按 workflow-draft.md 的格式规范重排再写入 `正文.md`。\n\n## 精修去味\n\nspawn `Agent(subagent_type: \"narrative-writer\", prompt: \"项目目录：{dir}\\n任务描述：去AI味+格式检查\\n检查分工：你负责本次语义去味及原定自检；最终文件扫描由主会话执行，不在子代理内重复\\n检查范围：{正文文件}\\nstyle_resolution：{与写作一致的本次文风裁决，含全文路径}\\n作者偏好：{query 命中的 prose_style/story_design 项}\\n篇幅：短篇\\n卖点保留：第一人称审判句、火葬场预告、心死式章尾留，只删中立作者讲解与空洞升华\\nAI味等级：{轻度/中度/重度；未分级按轻度}\\n删除优先：每条 AI 味项先判能否删除——删后不丢伏笔/钩子/角色/情节/必要信息的直接删，会丢才润色（删除受比例上限与本次字数范围下沿约束，跌破改降AI重写）\\n必须检查：检查是否连续使用头皮发紧/眼皮一跳/心口一沉/胃里翻涌等精致戏剧反应，能写普通动作/普通感觉就写普通动作/普通感觉；已有手机/聊天记录/公告/账单/病历/证据截图等信息，保留为角色看到或处理的场内载体，不改成叙述者解释；任务卡点只在角色本来有要办的事且能加重情绪/证据/关系/反转时使用，不为自然感补流程\")`\n\nFile v1.1.20:references/author-memory-maintenance.md\n\n# 作者记忆维护\n\n[author-memory.md](author-memory.md) 的少见时刻补充：记一条、确认、替换、忘掉和优先级仍按那份协议，本文件只在下列情况读——作者说「整理作者记忆」，或回执 `warnings`／查询 `omitted_ids` 提示超编；写入因 `作者画像.md` 写满失败；书根就是工作区，或工具报 `state.book`、单书布局错误；要做存量迁移 `migrate`、多事件原子 `commit`、派生视图 `check`；冲突候选要落定；碰到升级前留下的旧条目。\n\n作者记忆借鉴“原始证据 → 候选 → 已确认画像 → 变更记录”的记忆管道，但把决定权留给作者。\n\n## 文件\n\n```text\n{工作区}/.story/作者记忆/          # 项目级 store：global / genre / workflow 条目，编号 AP\n├── _author-memory-state.json  # 唯一结构化权威\n├── 作者画像.md               # 仅 active，供作者查看与管理\n├── 待确认.md                 # pending / conflict，不参与约束\n└── 变更记录.md               # 最近 100 次、最新在前的事务记录\n{书}/.story/作者记忆/            # 书级 store：只存这本书的 book 条目，编号 BP，同样四个文件\n```\n\n三个 Markdown 文件都从 state 确定性生成，禁止手改；完整历史保留在 state，变更记录只展示最近 100 次。`作者画像.md` 是人类管理视图，普通写作 agent 不整份注入，而是调用 `query` 取得本次相关的紧凑上下文。\n\n## 任务映射表\n\n各 skill 入口的 `query` 命令按此表选 kind；写入时的预算提醒也按这四类任务组合估算。\n\n| 任务 | query kinds | 注入位置 |\n|---|---|---|\n| 正文初稿 / 续写 | `prose_style` + `story_design` | 主会话与实际正文 agent |\n| 去 AI 味 / 改写 | `prose_style` | 主会话与实际改写 agent |\n| 设定 / 大纲 | `story_design` + `workflow` + `interaction` | 主会话，不传正文 agent |\n| 审稿 | `delivery` + `interaction` + 必要的 `prose_style` | 主会话，不降低 rubric |\n\n审稿匹配项只用于交付格式、协作方式和“作者有意采用的表达选择”说明；问题严重度和 PASS/FAIL 仍由 rubric 决定。\n\n## 注入预算与容量\n\n- **写入不因注入预算失败**：`record` / `commit` 照常成功、给回执；工具按上表四类任务组合估算最坏查询情形（全局条目＋各 scope 维度最重的单一切片，切片按大小写无关归并、轻重按写作时真正读到的字段算，与真实查询同一把尺），装不进 2048 字节的组合在返回的 `warnings` 里点名将被略过的条目及其断言首句。\n- 写入落盘后另一级 store 读不出来（书目录不存在、`--book` 与书级记录不符等）也照常给回执，`warnings` 注明本次提醒没算上它。写书级条目时「本书＋全局」按实际条目精确计算；写项目级条目时只看得到项目级 store，顺手传 `--book-root` 就把当前这本书也算进提醒。\n- 查询按 **重要度 → 本书例外 → 最近更新** 排序装填（同一范围的条目必在同一 store，「最近」按该 store 的修订号比，不跨 store 比较），先丢的恒是重要度较低的条目——`importance` 决定超编时谁留在 prompt 里。装不下的条目跳过而不中断（一条长的不挡后面的短条），漏下的 ID 按同一优先级报进 `omitted_ids`（最多列 20 条，`omitted` 是真实总数）。\n- 注入预算之外还有一道硬上限：`作者画像.md` 超过 12288 字节时写入会直接失败并要求先整理。active 条目攒到几十上百条才会碰到（远在注入预算之后），碰到就走「整理作者记忆」；`forget` 这类减量操作在满编时照常可用。\n\n## 整理作者记忆\n\n作者说「整理作者记忆」，或回执 `warnings`／查询 `omitted_ids` 提示超编、写入因画像写满失败时：读项目级与当前书的 `作者画像.md`（每条都标了范围、重要度、把握和确认次数，重要度就是超编时的去留依据），提出合并同义条（`replace` 多合一）、退役过时条（`forget`）、给错标成 `high` 的条目下调重要度、把超长断言压缩成一句话的提案；项目级画像里还有「本书：」条目时，「对该书运行 `migrate --book-root`」列为默认提案项。清单用原话逐条列给作者确认（编号只放括号里），确认后按 store 各汇成一份 `commit` 事务提交（一份事务只写一个 store）。合并时保住每条的否定词、限定词和适用范围——合不动就退役其中一条，不要靠删限定词把两条凑成一条。整理只由作者发起或确认，不自动执行。\n\n## 冲突候选\n\n冲突候选（`conflict`）不能绕过旧规则直接 `decide=activate`。作者选新说法：用 `replace`，`old_ids` 同时列旧 active 条目和这条冲突候选，新条目直接 active、两条旧的标 `superseded`；作者留旧规则：对候选 `decide=reject`。旧条目被 `replace` / `forget` 撤下后，它不再是任何候选的冲突对象，冲突对象清空的候选退回 `pending`。\n\n## 单书布局\n\n书根就是工作区（`--book-root` 与 `--workspace` 同一目录）时，书级 store 改住 `{工作区}/.story/作者记忆/书级/`，与项目级各自一份 state；首次建立的书名优先取项目级存量本书条目里唯一的书名，再取目录名。旧版曾把书级 state 写在项目级位置，此后项目级读写都报 `state.book`；带 `--book-root {工作区}` 运行任一命令（含 `query`）会先把它原样移进 `书级/`，不改内容。这个目录其实是某个工作区里的一本书时（上一层叫 `长篇/` 或 `短篇/`，或某个祖先有 `.active-book` 或项目级 state），工具直接报错、不动任何文件，按报错改传 `--workspace`。\n\n## 存量迁移\n\n不做双读：升级前写进项目级 store 的 book 条目不再参与查询与预算估算，也不再接受新的 book 写入；它们仍在 `作者画像.md` 里可见、可 `decide` / `forget`。对每本书运行一次 `migrate --book-root {书目录}` 即可整批搬回来：断言、证据、确认次数、重要度原样保留，换成 `BP` 编号，原 `AP` 条目标 `superseded` 并注明去向；与全局条目的冲突关系在迁移后不再成立，这类候选退回 `pending`。书级每个源条目一笔事务，重跑只补没做完的一半。「整理作者记忆」看到项目级画像里还有「本书：」条目时，把迁移列为默认提案项。\n\n## 旧条目\n\n- 升级前写下的长断言不受 120 字节新建上限约束：原样重申它会**强化**原条目（确认次数 +1），不会因超长被拒；只有真正新建条目才校验 120 字节。\n- 存量 state 里推断类旧来源的条目照常可读、可确认、可退役；新写入仍只接受 `explicit_user`、`accepted_suggestion`、`manual`。\n\n## 其他命令\n\n先依次尝试 `python3`、`python`、`py -3` 找到 Python 3，再从当前 skill 根运行本地副本（`record` / `query` 见 author-memory.md）：\n\n```text\n{PYTHON} {当前 skill 根}/scripts/author_memory_commit.py init    --workspace {工作区} [--book-root {书目录}]\n{PYTHON} {当前 skill 根}/scripts/author_memory_commit.py commit  --workspace {工作区} [--book-root {书目录}] --input {工作区}/.story/work/作者记忆-事务.json\n{PYTHON} {当前 skill 根}/scripts/author_memory_commit.py migrate --workspace {工作区} --book-root {书目录}\n{PYTHON} {当前 skill 根}/scripts/author_memory_commit.py check   --workspace {工作区} [--book-root {书目录}]\n```\n\n- `commit`：高级批量入口，只在需要把多个动作绑定成一次原子提交时用（如整理作者记忆）。顶层传 `schema_version`、唯一 `transaction_id`、当前 `expected_state_revision` 和含 1–32 项的 `operations`（每项与单事件的 `operation` 同形）。一份事务只写一个 store；先在内存完成 schema、引用、容量和所有视图校验，操作按数组顺序应用，任一步失败则整份事务零写入，最后原子替换 state。过期修订会在任何写入前失败。事务文件在成功前必须保留，成功后删除；显式记忆请求按 author-memory.md「回执怎么告诉作者」转告。\n- `migrate`：把项目级 store 里某本书的存量 book 条目整批搬进 `--book-root` 的书级 store，幂等，中途失败直接重跑；返回 `migrated`（源→新编号），没有存量时为空。\n- `check`：从 state 重建并逐字核验所有派生视图；传 `--book-root` 时两级一起核验。\n- `init`：显式初始化 store；平常不需要，首次 `record` 会随事务创建。\n\nFile v1.1.20:references/author-memory.md\n\n# 作者记忆协议\n\n作者记忆保存跨会话复用的创作偏好，不保存小说世界里的事实，决定权留给作者。本文件管最常见的时刻：作者说出一条偏好，或要确认、替换、忘掉某条。少见情况读 [author-memory-maintenance.md](author-memory-maintenance.md)：整理作者记忆与超编、画像写满、单书布局与 `state.book` 报错、存量迁移、多事件 `commit`、`check`、冲突候选落定、升级前的旧条目。\n\n## 边界与优先级\n\n加载优先级从高到低：\n\n1. 安全、用户授权范围、明确的平台交付要求、字数与文件协议；句长、视角、修辞和标点偏好不属于不可覆盖的硬门禁；\n2. 用户在当前请求中的明确要求；\n3. 当前书的 `设定/文风.md`、题材定位、细纲和其他项目设定；\n4. 作者记忆中的本书偏好；\n5. 作者记忆中的题材、流程和全局偏好；\n6. 对标素材、通用方法和默认值。\n\n按表达维度取最窄适用要求：低优先级只补缺项，不与高优先级要求并列执行。通用 references 自称“必须/禁用”不改变此顺序；审稿不因作者有意采用的表达本身扣分，真实可读性与因果问题仍照常评价。\n\n作者记忆不能把本书事实写进 `.story/作者记忆/`，不能覆盖当前请求，不能降低审稿 rubric，也不能让去 AI 味改动剧情意图。小说事实继续由各书的 `追踪/` 和 `设定/` 管理。\n\n## 存放与路由\n\n两级 store，记忆随书走：`{工作区}/.story/作者记忆/` 存 global / genre / workflow 条目（编号 `AP`），`{书}/.story/作者记忆/` 只存本书的 book 条目（编号 `BP`）。每级各有 `作者画像.md`（生效条目）和 `待确认.md`（候选，不参与约束），都从 state 生成，禁止手改；不存在时写作、审稿、去味照常继续，首次 `record` 自动创建。\n\n- `--workspace` 必须显式传，指创作工作区根——承载多本书、`.active-book`、`长篇/`、`短篇/` 或 `拆文库/` 的那一层；已有记忆时，是项目级 state（不带 `book` 字段）所在的最近祖先。`长篇/`、`短篇/` 下的书目录永远不当 `--workspace`，也不要把用户主目录当默认工作区。\n- `--book-root` 是当前书的项目目录（`.active-book` 指向、或含 `设定/`、`正文/` 的那一层，如 `{工作区}/长篇/{书名}/`）；书名默认取书级 state 记的名字，首次取目录名，`--book` 可覆盖。书根就是工作区时读维护文件「单书布局」。\n- ID 前缀就是 store：`decide` / `forget` 看 `item_id`（`AP` 项目级，`BP` 书级），`remember` / `replace` 看 `scope.level`（`book` 书级，其余项目级）。书级操作必须传 `--book-root`，没传直接报错，不会退而写进项目级。\n- `replace` 与 `conflicts_with` 不能跨 store：本书例外按优先级覆盖全局规则，不算冲突，直接 `remember` 为 book 条目；要把全局规则改成本书规则，拆成 `forget` ＋ `remember` 两个事件。\n\n## 查询\n\n各 skill 入口已写好本任务的 `query` 命令（长篇正文由组装脚本代查）；没写命令的长篇设定、大纲等任务查 `story_design` + `workflow` + `interaction`，结果只给主会话、不传正文 agent。四类任务的映射表见维护文件。state 存在才查（两级都不存在时返回空结果、零写入）；结果合并项目级与 `--book-root` 所指书级（不传就拿不到本书条目），`--kind` 必传，输出不超过 2048 字节。\n\n普通创作只做一次本地 `query`，完整画像、证据、候选和 journal 不进 prompt。查询项是低优先级倾向，不是逐条打卡清单：自然吸收，不复述画像、不刻意提高词面命中率，不为命中牺牲连贯、节奏、字数或本书既定笔调。**`omitted_ids` 非空＝记忆超编**，不是「没有更多了」：转告作者并建议「整理作者记忆」，不得改读完整画像规避预算。待确认项不进 prompt，也不为确认它们中断任务；只在作者主动查看、候选积累到适合回顾的节点，或新偏好与 active 条目冲突时集中呈现。\n\n## 记不记、记成什么\n\n不装记录全部用户消息的 prompt hook，不在作者没开口时观察他，只记作者明确表达的偏好。是否属于长期习惯由 agent 判断，拿不准就只执行不记录；作者可明说“记住：……”，以回执验收。\n\n| 输入证据 | 处理 |\n|---|---|\n| “以后都这样”“我一直习惯……”等直接、稳定、范围清楚的原话 | `active`，`source=explicit_user` |\n| 用户明确接受助手提出的长期做法 | `active`，`source=accepted_suggestion` |\n| 作者原话像长期偏好但范围或稳定性含糊 | `pending`，取当前最窄合理范围；待确认只来自作者自己的话 |\n| 同类修改反复出现、从成稿或操作轨迹看出的模式 | 不记录、不推断；作者没开口的偏好不进记忆 |\n| “这一章别……”“这次给我……”等一次性要求 | 只执行，不记录 |\n| 角色、时间线、伏笔、世界观、当前剧情走向 | 写项目设定/追踪，不写作者记忆 |\n| 助手自己生成的文字、默认模板、工具告警、rubric 结论 | 不自我学习 |\n\n保留否定词、限定词和适用范围：`quote` 写原话，`assertion` 只做不改变语义的紧凑归纳，**新建条目限一句话（≤120 字节，约 40 个字）**，写不下就压缩措辞、不切限定词；背景写进 `reason`（不进 prompt），不另开字段。\n\n**一条偏好就是一条记录，例外和限定不许拆出去单列。** 「以后少用破折号，对话里也别用，除非表示打断」整条写成「破折号少用、对话里也不用，只在表示打断时保留」：超编时条目逐条被丢，拆开就可能只丢掉例外，把作者说过的限定变成绝对禁令。只有原话塞了**几条互不依赖**的偏好（如「多用短句」＋「章末留钩子」）才拆。\n\n范围：“本书 / 这个角色 / 这次连载” → `book`；“都市文 / 这类题材” → `genre`；交稿、检查、确认节奏等操作习惯 → `workflow`；“以后 / 一贯 / 我习惯”且无更窄限定 → `global`；含糊但可能稳定 → 最窄合理范围并置 `pending`。\n\n类型：`prose_style`、`story_design`、`workflow`、`delivery`、`interaction`。置信度与重要度均为 `low | medium | high`；超编时先丢重要度低的，按偏好的实际分量填，不要一律 `high`。`source` 只接受 `explicit_user`、`accepted_suggestion`、`manual`，工具拒绝推断类来源。\n\n## 确认、替换、忘掉与冲突\n\n- 同一类型、范围、归纳文本再出现，脚本强化原条目（累加证据与确认次数），不重复建条。\n- 新偏好与同一 store 的 active 条目矛盾：以 `conflict` 记候选，`conflicts_with` 列冲突 ID，本轮仍按当前要求执行；本书例外与全局规则不算冲突。冲突候选不能直接 activate，落定见维护文件「冲突候选」。\n- pending 用 `decide=activate|reject`。同一范围的规则改版用 `replace`，新条目启用、旧条目标 `superseded`；只有作者明确撤销或改变旧规则范围才跨范围替换。\n- 作者说“忘掉 / 这不再是我的习惯”用 `forget`，保留历史证据但不再加载。active 条目的语义不可原地偷改，语义变化必须 replace，历史才可审计。\n\n## 回执怎么告诉作者\n\n回复就两行纯文本，不加代码块或引用格式：第一行用一句人话说记住了什么、管哪本书或哪类场合，如「记住了：《{书名}》的对话一律用「」，以后写这本书都照这个来；想改随时说。」；第二行是机器回执作凭证，如「技术备注：Author Memory Receipt: r1 · BP001」。\n\n- 确认、替换、忘掉同理：「好，这条生效了：……」「换成了：……，原来的「……」不再用」「忘掉了：……」。只进待确认时说「这条先记在待确认里，你说\"确认\"才生效」；有冲突时用原话说明跟哪条旧习惯冲突。\n- `warnings` / `omitted_ids` 不原样贴：说「你的习惯攒得有点多，写正文时这几条可能顾不上：「……」」，并建议说「整理作者记忆」。不提字节、prompt、kind、scope；编号只能跟着原话出现。\n\n## 运行工具\n\n依次尝试 `python3`、`python`、`py -3` 找到 Python 3，从当前 skill 根运行本地副本：\n\n```text\n{PYTHON} {当前 skill 根}/scripts/author_memory_commit.py record --workspace {工作区} [--book-root {书目录}] --input {工作区}/.story/work/作者记忆-事件.json\n{PYTHON} {当前 skill 根}/scripts/author_memory_commit.py query  --workspace {工作区} --book-root {书目录} --kind {类型}（必传，可重复） [--genre {题材}] [--workflow {流程}]\n```\n\n- 子命令都可加 `--book {书名}`；写某本书时一律带 `--book-root`。事件 JSON 写在 `{工作区}/.story/work/`（不写系统 `/tmp`），成功后删掉；book 条目的 `scope.value` 填书名（书级 store 已记的名字，首次取目录名）。\n- 明确的“记住 / 确认 / 替换 / 忘掉”都走单事件 `record`：自动读该 store 当前修订、首次自动初始化，不手工读修订号或拼多操作事务。同一 `event_id` 同内容幂等返回原回执，内容不同则失败；返回的 `store` / `book` 说明写到了哪一级。\n- 成功才有 `Author Memory Receipt: rN · APxxx`，没有回执不得声称“已经记住”。**写入不因注入预算失败**：`warnings` 只是提醒（另一级 store 读不出来也在这里注明），按上节转告；有回执就是已记住，不要换 `event_id` 重试。\n\n## 事件格式\n\n新增或强化（`record` 输入；book 范围传 `--book-root`）：\n\n```json\n{\n  \"schema_version\": 1,\n  \"event_id\": \"conversation-2026-08-25-message-42\",\n  \"operation\": {\n    \"action\": \"remember\",\n    \"preference\": {\n      \"kind\": \"prose_style\",\n      \"scope\": {\"level\": \"global\", \"value\": null},\n      \"assertion\": \"对话尽量短，用动作承接情绪，不用大段解释\",\n      \"quote\": \"以后对话都短一点，情绪放动作里，别让角色长篇解释。\",\n      \"source_ref\": \"conversation:2026-08-25\",\n      \"source\": \"explicit_user\",\n      \"confidence\": \"high\",\n      \"importance\": \"high\",\n      \"status\": \"active\",\n      \"reason\": \"用户以“以后”明确声明长期偏好\",\n      \"conflicts_with\": []\n    }\n  }\n}\n```\n\n待确认用 `\"status\": \"pending\"`；冲突候选用 `conflict` 并填同一 store 的 active ID。确认、替换、忘掉时，把下列对象换进新事件的 `operation`（`BP` 编号传 `--book-root`）；`replace.preference` 字段同上但不传 `status`、`conflicts_with`，新条目直接 active：\n\n```json\n{\"action\":\"decide\",\"item_id\":\"AP002\",\"decision\":\"activate\",\"quote\":\"对，这就是我的长期习惯。\",\"reason\":\"作者明确确认\"}\n{\"action\":\"replace\",\"old_ids\":[\"AP001\"],\"preference\":{\"kind\":\"prose_style\",\"scope\":{\"level\":\"global\",\"value\":null},\"assertion\":\"以后对话允许更长的试探，但避免解释设定\",\"quote\":\"……\",\"source_ref\":\"conversation:2026-08-25\",\"source\":\"explicit_user\",\"confidence\":\"high\",\"importance\":\"high\",\"reason\":\"作者明确替换原有全局规则，不是新增本书例外\"}}\n{\"action\":\"forget\",\"item_id\":\"AP003\",\"quote\":\"忘掉这个偏好。\",\"reason\":\"作者明确撤回\"}\n```\n\nFile v1.1.20:references/banned-words.md\n\n# AI味禁用词与句式表\n\n> 表达默认值服从 [style-resolution.md](style-resolution.md)；文件结构与事实约束不豁免。\n\n<!-- 同名副本×6 字节同步，改动后跑 scripts/check-shared-files.sh -->\n\n## 默认优先检查的句式（先对照本书文风）\n\n写网文最毒的 AI 句式，作者一旦养成就会反复出现。以下是优先检查的句式：\n\n| 毒级 | 句式 | 错误例 | 修法 |\n|------|------|--------|------|\n| ★★★★★ | \"不是A，（而）是B\" / \"不是A，不是B，（而）是C\"（\"而\"可省略，省掉也算命中）| \"他不是冷漠，而是绝望\" | 直接写 B 或用更自然的表达 |\n| ★★★☆☆ | 跨段「不是A。/也不是B。/只是C。」 | 「不是嚎啕大哭。/也不是扯着嗓子喊不舍。/只是一个人走远了……」 | 语义复核；重复提纲或拖慢画面时压成 C，有辩解/悬念排除功能可保留 |\n| ★★★★ | \"，带着……\" 万能状语 | \"他笑了一下，带着一丝不易察觉的嘲讽\" | 删掉状语留主句，或换具体动作 |\n| ★★★★ | 无情绪声线：\"声音不大，却带着……\" / \"语气毫无波澜\" / \"平静无波\" / \"声音平直/平平/听不出情绪\" | \"她声音不大，却带着不容置疑的力量\" | 直接写台词内容、声音特征或动作 |\n| ★★★★ | \"他/她知道……\" | \"他知道这一切都来不及了\" | 用行为展示认知 |\n| ★★★ | \"仿佛/犹如/宛若……一般\" | \"仿佛能穿透一切一般\" | 删掉或白描 |\n| ★★★ | \"眼中闪过一丝……\" / \"嘴角勾起一抹……\" | \"眼中闪过一丝悲伤\" | 删掉；写他当场说的话或做出的决定 |\n| ★★★ | \"心中涌起一股……\" / \"心头一震\" | \"心中涌起一股暖流\" | 写它改变了什么：选择、台词、物件或后果 |\n| ★★★ | 抽象命运/开端收束：\"命运……棋局/獠牙\" / \"这一刻终于明白\" / \"反击才刚刚开始\" | \"命运终于露出獠牙；属于他的反击才刚刚开始\" | 回到角色当下可见的文件、动作、对话或物理后果 |\n| ★★ | 章末预告 \"他不知道的是……\" | \"他不知道的是，更大的风暴即将来临\" | 用具体钩子物件/事件收束，避免空泛预告 |\n\n> ★★★★★ 命中一处就要改；轻/中/重分档只按去 AI 味诊断的密度指标定。\n\n`check-ai-patterns.js` 的 `formulaic-parallelism` 还会提示「至于X不X，怎么X」和同动词「不V A，不V B」。这两类可能是功能性口语，因此只做 advisory；Gate B 必须连同台词读语境复核，若只是复述细纲/前文就压成一次判断，不能因 hook 豁免台词而跳过。\n\n**标点**：正文（含叙述和对话）禁用破折号 `——`/`—`、双连字符 `--` 和省略号停顿，改用句号、逗号、短句或动作断句；不设置对话破折号例外。盐言「」引号不在此列。\n\n---\n\n## 一级禁用词（出现即替换）\n\n> 什么词进一级：只收真人语料里几乎不出现、AI 特有的词。真人高频使用的自然副词和虚词不进一级，走二级密度控制。\n\n### 情态类\n仿佛、犹如、宛若、如同、一丝、一抹、些许、几分、隐约、毫无征兆、几不可闻、微不可察\n\n### 动作类\n深吸一口气、不禁\n\n### 表情类\n眼中闪过、嘴角勾起、眉头微皱、眉眼低垂、瞳孔微缩、瞳孔收缩、瞳孔一缩、指节泛白、眼神锐利、目光锐利\n\n### 心理类\n心中一动、心头一震、心下了然、心中暗道、心底泛起、不由得、心中一凛\n\n### 判断类\n不容置疑、不容置喙、不易察觉、显而易见、毫无疑问、不可否认、前所未有\n\n### 形容类\n坚定、闪烁着光芒、狡黠、深邃、凛冽、冰冷\n\n### 过渡类\n不由自主、情不自禁、自然而然、话锋一转\n\n## 二级禁用词（高频出现时替换）\n\n### 语境敏感词（仅高频或偷懒时处理）\n突然、陡然、骤然、猛然、好像、似乎、瞬间、猛地、死死地（角色口语、真实突发、时间压缩、视角不确定时可保留；用同义变体轮换规避重复不算豁免，按同一个词计密度）\n\n### 弱化副词（密度控制）\n缓缓、微微、轻轻、淡淡（每千字合计 ≤3；这四个词同时计入 `cliche-density-tic` 的套词密度统计；孤立自然使用可保留，成串出现或每个动作都垫一个时才替换）\n\n### 书面腔 → 口语化\n\n| 书面腔 | 口语化替换 |\n|--------|-----------|\n| 瓦解 | 消失 / 散了 / 没了 |\n| 无名火 | 烦躁 |\n| 往我心上捅刀子 | 心烦意乱 |\n\n### 总结句式\n- \"他/她终于明白...\"\n- \"他/她这才意识到...\"\n- \"这一刻，他/她终于明白/意识到...\"\n- \"从这一刻开始...\"\n- \"属于X的反击/复仇/故事，才刚刚开始\"\n- \"命运/宿命 + 齿轮/棋局/獠牙/改写/安排\"\n- \"此刻，他/她...\"\n- \"一切...都...\"\n- \"原来...\"\n\n### 排比句式\n- 连续3句以上相同结构的排比\n- \"有的...有的...有的...\"\n- \"一边...一边...一边...\"\n\n### 升华句式\n- \"这一刻...\"\n- \"他知道...\"\n- \"她明白...\"\n- \"这就是...\"\n\n## 禁用句式模板\n\n| 句式 | 示例 | 问题 |\n|------|------|------|\n| \"不是A，而是B\" | \"他不是冷漠，而是绝望\" | 最毒；直接写 B |\n| \"...，带着...\" | \"他说，带着一丝无奈\" | 万能状语 |\n| \"声音不大，却带着……\" | \"她声音不大，却带着不容置疑的力量\" | AI 最爱声音描写 |\n| \"仿佛能...一般\" | \"仿佛能穿透一切一般\" | 文言腔 |\n| 对话标签密度过高/公式化标签 | \"好的，他说道\" | 普通\"说\"可保留；高频或公式化时处理 |\n| \"他/她感到...\" | \"她感到一丝失落\" | 告诉而非展示 |\n| \"他/她意识到...\" | \"他意识到事情不对\" | 直接告知 |\n| \"眼中闪过一丝XX\" | \"眼中闪过一丝悲伤\" | 模板化 |\n| \"嘴角勾起一抹XX\" | \"嘴角勾起一抹冷笑\" | 模板化 |\n| \"心中涌起一股XX\" | \"心中涌起一股暖流\" | 模板化 |\n| \"取而代之的是\" | \"笑容消失，取而代之的是冰冷\" | AI 过渡模板；直接写新状态 |\n| \"淬了/淬着X\" | \"眼里淬了毒\" | AI 通感套路；写动作或台词 |\n| \"显得（有些）X\" | \"他显得有些兴奋\" | 告诉而非展示 |\n| \"心底/心里某个地方+软\" | \"心里某个地方软得一塌糊涂\" | 言情套句；写动作 |\n| \"（浑身）散发着一股X气息/气场\" | \"浑身散发着一股生人勿近的气息\" | 万能气场描写；写旁人的反应 |\n| \"命运/宿命 + 齿轮/棋局/獠牙/改写/安排\" | \"命运终于露出獠牙\" / \"早已布好的棋局\" | 抽象作者总结；改成角色当下撞见的文件、动作、对话、物理后果 |\n| \"这一刻终于明白/从这一刻开始/才刚刚开始\" | \"这一刻，他终于明白\" / \"反击才刚刚开始\" | AI 收束腔；删总结，用动作或未解决问题收尾 |\n\n## 比喻分类（默认复核，不默认全删）\n\n带\"像/如/仿佛/犹如/宛若\"的比喻不是一律 AI。真正高风险的是：成片堆叠、套用万能文学比喻、用精致比喻替代剧情推进，或在段尾替读者总结意义。本表用于识别需要复核的比喻类型：\n\n| 比喻类别 | 例 | 处理 |\n|---------|----|------|\n| 生活/角色化 | \"像一头被抛弃的野狗\" | 若贴角色视角、能传递信息或情绪，可保留 |\n| 物品/现象类 | \"像一把刀\" \"脸色惨白得像这漫天的雪\" | 普通功能性比喻可留；模板化或重复时改白描 |\n| 状态类（陈词滥调） | \"梨花带雨\" \"如沐春风\" | 优先删或改成具体动作/表情 |\n| 抽象类 | \"像命运的齿轮\" \"像上辈子的尘埃\" | 高风险，优先落回动作、物件、声音、后果 |\n| 假设类 | \"力道大得像是要把骨头捏碎\" | 若是角色身体感知可留；夸张堆叠时改事实后果 |\n\n处理原则：先看功能，再看密度。保留最能传递信息或情绪的一两个，其余改为直接描述、动词、名词、作用、结果或事实；不要把删掉的比喻替换成另一批新比喻。例 \"脸色惨白得像这漫天的雪\" 若只是套话 → \"脸色惨白\"；若雪景正在压迫角色，可保留或改成角色当下看到的具体画面。\n\n> `metaphor-density-tic` 是 advisory：提示通读复核，不是 blocking；生活化、角色化、单个有功能的比喻可以保留。\n\n## 替换策略速查\n\n| 原文类型 | 替换方法 | 示例 |\n|----------|----------|------|\n| 抽象情绪词 | 先看上下文是否已成立；再选选择、台词、物件、后果或一句直写 | “紧张”若不影响下一步可直写或删；若导致签名作废，就写作废的结果 |\n| \"感到XX\" | 删除“感到”后按场景决定是否还要情绪句 | “他感到愤怒”可写“他火了”，也可直接写他撤回报价；不要默认换成攥拳 |\n| 形容词堆砌 | 白描手法 | \"美丽动人的笑容\" → \"她笑了\" |\n| 书面表达 | 口语化 | \"不容置疑\" → \"就是\" |\n| 解释性描写 | 留白 | \"他因为害怕而...\" → \"他退后一步\" |\n| 连续排比 | 保留最强一条 | 3 句排比留 1 句 |\n| 总结升华句 | 直接删除 | \"这一刻，她终于明白了...\" → 删 |\n| \"不是A，而是B\" | 直接写 B 或更自然的表达 | \"他不是冷漠，而是绝望\" → 直接写 B |\n| 多余修饰（形容词/定语/量词/指示代词） | 删 | \"白色的药片\" → \"药片\"；\"手里那截链子\" → \"链子\"；\"飞驰的汽车\" → \"车\" |\n\n**替换不复用**：右列是方向示例，不是标准答案。同一禁用词在一章内多次命中时，各处给不同的具体化写法；同一个替换写法反复出现（每次都「垂下眼」、每个动作都补「了一下」），替换产物本身就成为新的模板指纹。\n\n**套词密度优先处理**：`check-ai-patterns.js` 报 `cliche-density-tic` 时，说明禁用词不是零星误用，而是聚成了模板腔。处理顺序不是同义词替换，而是先删抽象总结，再把情绪/判断落到角色当下可见的动作、物件、对话和具体后果。\n\n**套式反应逐处删除测试**：`stock-reaction-tic` 报警时，不代表禁止身体描写。逐处问：删掉后信息、选择、关系、物件或动作结果是否受损？无损就删，不把“指尖轻叩”换成“目光微沉”。伤势、动作失败、人物习惯或情节后果明确时可以保留。\n\nFile v1.1.20:references/benchmark-recall.md\n\n# 短篇对标发现与召回\n\n#### 对标上下文加载\n\n> **拆文库/对标关系**：`拆文库/` = analyze skill 的原始产出（数据源），位于项目根目录。`对标/` = 当前短篇的引用视图，位于 `{短篇标题}/对标/`。短篇写作优先读取 `{短篇标题}/对标/{书名}/`，不存在则读取项目根 `拆文库/{书名}/`。\n\n**对标发现（先于下方反应式加载）**：项目根 `拆文库/` 有拆过的短篇时，先按题材主动推荐一本对标，不要被动等用户开口。\n\n1. `ls 拆文库/` 列书目；先从当前项目目录名和 `设定.md`「基本信息」识别本篇标题，排除同名或来源指向当前 `正文.md` 的 `拆文库/{当前书}/`。story-import 生成的本书拆文分析属于续写基线，不是对标候选。排除后为空 → 跳过（无对标按题材包写，见 Phase 1 情绪→题材包表）。\n2. 逐本读 `拆文库/{书}/_meta.json` 的 `genre_detected`，与本篇题材比对，标 同题材 / 弱相关。\n3. 有候选 → 用 AskUserQuestion 推荐（列候选书 +「不用，按题材包写」）。选定后记入本篇 `设定.md`「对标摘要」区作主对标，并按上方「拆文库/对标关系」规则把 `拆文库/{书}/` 同步到 `{短篇标题}/对标/{书}/`。\n\n如果工作目录下存在 `对标/` 或项目根存在 `拆文库/`，或用户提到参考小说：\n\n1. 先按上方「对标发现」第 1 条的同一口径识别本篇，另排除历史误建的 `对标/{当前书}/`；排除后没有外部对标时按题材包写，不进入下面几步。\n2. 按上述顺序查找 `拆文报告.md`、`情节节点.md`、`写作手法.md`、`_meta.json`\n3. **读 `_meta.json.genre_detected`，按下表加载对应题材风格包**（analyze 识别的题材 → write 的 genre-styles 包），正文腔调/招式随之切换：\n\n   | analyze 的 `genre_detected` | 加载 `genre-styles/` 包 |\n   |---|---|\n   | 追妻（现代 / 古代 / 民国） | `追妻火葬场.md`（按「时代变体」节切换身份词与招式） |\n   | 小三 / 死人文学 | `追妻火葬场.md`（「流派分支」节） |\n   | 世情 / 打脸爽文 / 家庭伦理 | `世情打脸.md` |\n   | 重生复仇 | `复仇打脸.md` |\n   | 豪门 / 总裁（豪门联姻虐恋） | `总裁豪门.md` |\n   | 宫斗宅斗 / 宫斗 / 宅斗 / 古言重生 | `宅斗宫斗.md` |\n   | 民俗 / 怪谈 / 灵异 | `民俗怪谈.md` |\n   | 悬疑 / 推理 / 惊悚 | `悬疑.md` |\n   | 甜宠 / 先虐后甜 / 先婚后爱 | `甜宠.md` |\n   | 双男主 | `双男主.md` |\n   | 沙雕 / 脑洞 / 弹幕 / 系统 | `沙雕脑洞.md` |\n   | 仙侠 / 通用 | 无专属包 → `short-craft.md` 底座 + `genre-writing-formulas.md` 兜底 |\n\n4. 读取核心发现：结构段落、情绪曲线、反转位置、铺垫方式、句式节奏、可借鉴技法。**把拆文报告里的具体招式对到题材包招式库**：拆文给「这一篇怎么做的」，题材包给「这一类通用怎么做」，两者合用——拆文是当前对标书的实证，题材包是该题材的通法\n5. 写入本篇 `设定.md` 的“对标摘要”区，写作时每个场景从中召回 1-2 个相关技法\n6. 如只找到原文、未找到拆文报告，提示用户先运行 `/story-short-analyze`；如用户要求继续，也可只按原文做弱参考\n\n> **拆文产出怎么用**：`_meta.json` 可选，缺了不挡写作，有就按 `structure_counts.reversal_type` 选反转骨架；`情节节点.md` 看每个节点的字数位置、功能和触发事件，给新故事排节奏；`写作手法.md` 与 `原文/` 只学写法（对话调子、节奏、画面感），不抄具体情节。\n\n> **多对标书时**：参 `references/cross-book-recall.md`，副对标 anchor 入「对标摘要」区\n\nFile v1.1.20:references/cross-book-recall.md\n\n---\nname: cross-book-recall\ndescription: 多对标跨书召回\n---\n\n# 跨书召回\n\n## 触发\n先按当前项目目录名、`.active-book` 与本书设定识别当前作品，排除同名或来源指向当前正文的 `拆文库/{当前书}/` 与历史误建的 `对标/{当前书}/`；它们是本书导入分析，不是跨书样本。排除后，项目根 `拆文库/` 或项目 `对标/` ≥2 本才启用。主对标书取 `设定/题材定位.md`「主对标书」字段，缺失则从排除后的候选中取字典序第一本（优先 `对标/`，否则 `拆文库/`），并在 `gaps.main_benchmark_unspecified: true` 中提示用户补。\n\n> **数量规则**：主对标书最多 1 本，用于文风和最终正文输入；副对标 / 参考对标**不限制登记数量**。执行时按题材相关性、引用强度和阶段预算逐本召回；超过预算时裁剪条目，不删除书目。\n\n## 三道防线\n1. 副对标 `文风.md` 不读，避免多本文风互相污染\n2. 角色/剧情/设定模块可从所有副对标召回，但必须按「同题材 > 弱相关 > 参考」排序，并受每本/总量预算约束\n3. narrative-writer 正文 prompt 只吃主对标文风/原文锚点 + 预算筛选后的 `副对标召回摘要`；不读取、不传入副对标 `文风.md` 或副书原文\n\n## 跨题材判断\n从项目 `设定/题材定位.md`「对标书列表」字段读每本副对标的「题材类型」与「引用强度」（未登记的书按「参考」处理，并输出 `gaps.benchmark_registry_missing: true`）：\n- 同题材 + 引用强度=辅：全阶段可召回，按每本上限取条目\n- 同题材 + 引用强度=参考：只取最相关条目，默认不超过每本上限的一半\n- 弱相关：仅设定/大纲，每本 ≤1 条\n- 不相关：跳过\n\n排序规则：先按相关性（同题材 > 弱相关），再按引用强度（辅 > 参考），再按用户在 `对标书列表` 中的顺序；若缺少 `对标书列表` 或其中未登记某本书，则剩余副书按目录名/书名 Unicode 字典序稳定排序，并输出 `gaps.benchmark_registry_missing: true` 提示补全清单。副书数量不限；如果总条数超过阶段预算，裁条目不裁书目记录。\n\n## 阶段消费\n表中数字为**每本副对标召回上限**；同时设置阶段总预算，防止副书很多时挤爆上下文。`—` 行表示该文体无此阶段，整行忽略。\n\n| 阶段 | 长篇产出 | 短篇产出 | 同题材每本上限 | 弱相关每本上限 | 阶段总预算 |\n|------|---------|---------|----------------|----------------|------------|\n| 设定 | `拆文报告.md` | `拆文报告.md` + `情节节点.md` | ≤2 | ≤1 | ≤8 |\n| 大纲 | `章节/*_摘要.md` + `剧情/*.md` | `情节节点.md` + `写作手法.md` | ≤3 | ≤1 | ≤10 |\n| 模块 | `角色/` + `剧情/` + `设定/` | — | ≤2 | 0 | ≤8 |\n| 正文 | `文风.md` + 原文 | `写作手法.md` + 原文 | 0 | 0 | 0 |\n\n> **大纲阶段按剧情单元检索**：检索键为剧情单元「类型」（第一键，必填枚举）/「桥段标签、套路框架位置」（第二键）；同题材内同类命中条目优先进入预算。仅限大纲阶段按剧情单元检索时生效，不改其余阶段排序与预算数字。同类零命中时回退主对标来源条并输出非阻塞 `gaps.similar_plot_not_found: true`，流程继续。\n\n## 输出要求\n\n跨书召回输出必须包含：\n\n```markdown\n## 副对标召回摘要\n| 书名 | 引用强度 | 相关性 | 召回阶段 | 召回条数 | 使用方式 |\n|---|---|---|---|---|---|\n| {书名} | 辅/参考 | 同题材/弱相关 | 设定/大纲/模块 | {n} | {用于补充某类结构，不进入文风/原文锚点} |\n```\n\n若副书很多，只输出被本阶段实际召回的条目；未召回的副书不代表被删除，只是本阶段预算未命中。正文阶段可传入本表作为结构/情绪/设定参考，但必须保留“副书不进文风、不进原文锚点”的边界。\n\n## 拆文字段 → 写作参考\n读 `_meta.json.structure_counts` 时，按此表回查当前 skill 已登记的对应写作 reference。短篇优先走 genre-styles 题材包与 short-craft，长篇优先走长篇同类理论文件；未在当前 skill `参考资料` 表登记的文件不要跨 skill 加载。\n\n| 拆文字段 | 含义 | 写作参考 |\n|---------|------|---------|\n| `beats` | 结构段（开端/发展/高潮/结局） | 当前 skill 的题材结构文件；短篇优先 genre-styles 题材包 / `genre-writing-formulas.md` |\n| `hooks` | 钩子数 | `hooks-chapter.md` / `short-suspense.md`；短篇开头密度补 short-craft |\n| `setup_clues` | 反转铺垫线索 | `short-reversal.md` |\n| `character_archetypes` | 反差人物 | 当前 skill 的人物/题材风格文件；短篇优先 genre-styles 题材包 / genre-writing-techniques |\n| `reusable_structures` | 可复用手法 | `genre-writing-formulas.md`；短篇可补 short-craft |\n| `reversal_type` | 反转类型（7 枚举） | `short-reversal.md` 对应骨架 |\n\nFile v1.1.20:references/dialogue-mastery.md\n\n# 对话设计操作手册\n\n> 写对话场景时加载。先看决策路由选对话模式，再用操作指令控制质量。\n\n---\n\n## 决策路由\n\n| 你的对话场景是 | 用这种模式 | 操作 |\n|-------------|---------|------|\n| 主角碾压/打脸 | 压制模式 | 对方长篇大论 → 主角一字回应 |\n| 主角亮底牌/反转 | 反转模式 | 对方嚣张 → 主角一句话事实 → 对方沉默 |\n| 关系破裂/心死 | 心死模式 | 对话越回越短：从辩解 → 沉默 → \"随意\" |\n| 日常互动/立人设 | 日常模式 | 让其他人物参与冲突，不要主角一个人独白 |\n| 群众震惊/弹幕 | 弹幕模式 | 递进：普通人震惊 → 专业人士分析 → 特殊身份者反应 |\n| 信息展示/世界观 | 信息嵌入 | 用角色语气包裹信息，不是机械陈述设定 |\n| 情绪拉扯/虐心 | 情绪推动 | 上行下行交替，像拉锯拉升期待 |\n\n### 对话模式选择补充\n\n| 对话类型 | 常见问题 | 修正操作 |\n|----------|---------|---------|\n| 问答式（通篇一问一答像审讯） | 改为一方主动说，另一方给反应；反应可用动作/表情/心理 |\n| 冲突式（太礼貌不够劲） | 递进五级：委婉拒绝→友好人道→命令否定→PUA式→直接侮辱 |\n| 日常对话（容易变成没功能的水） | 功能是立人设；能让人参与的冲突别让主角独白 |\n| 多人对话（混乱/没营养） | 写前规划每个角色功能：信息提供者/情绪放大器/冲突制造者 |\n\n---\n\n## 对话核心规则\n\n每句对话必须承载以下至少一项，否则删除：\n\n1. **推进剧情**：透露新信息、推动事件发展\n2. **增加期待感**：暗示即将发生的事、制造悬念\n3. **展示人设**：通过语言风格传递角色性格\n\n且在情绪场景里，每句还要**回应上一句对方的情绪状态**（承接/偏转/升级/退缩）——对话是两个人的情绪在碰，不是轮流播报信息。只推进剧情、句间无情绪承接 = 机械对话。\n\n### 绝对禁止\n\n| 禁止 | 理由 |\n|------|------|\n| 配角无脑夸主角 | 假 |\n| 互相解释读者已知信息 | 水字数 |\n| 大段说明文式对话 | 闷 |\n| 所有角色说话方式一样 | 模糊 |\n| 对话说服人物 | 现实中没人被几句话说服，用突发状况代替 |\n| 情绪写完方向变了 | 需回退到情绪拆分 |\n| 捧哏工具人、鹦鹉复读对方原话 | 配角只剩接话功能 |\n| 高位者长篇自证、说话不分场合 | 身份和处境塌了 |\n| 情绪水肿咆哮、生死场景嘴碎 | 越吵越不紧张 |\n| 悬念正攒着就被台词说破 | 期待提前泄掉 |\n\n---\n\n## 权力博弈对话\n\n### 规则\n\n对话长度 = 权力地位。掌控者话短且冷静，被动者话多且情绪化。\n\n### 压制模式\n\n结构：对方长篇大论（3-5 行）→ 主角一字回应。\n\n```\n\"你以为你是什么东西？我告诉你，这个家轮不到你说话！你嫁进来的那天起就该明白自己的位置。\"\n\"滚。\"\n```\n\n### 反转模式\n\n结构：对方嚣张（2-3 行）→ 主角亮底牌（1 行事实）→ 对方沉默。\n\n```\n\"你有什么资格管？这是我家的钱，我想怎么花怎么花。\"\n\"你妈的存折，密码是我的生日。\"\n```\n\n### 心死模式\n\n结构：对话越回越短，从辩解到沉默到「随意」。\n\n```\n\"你听我解释，那天不是你想的那样。\"\n\"嗯。\"\n\"真的，我可以证明。\"\n\"随意。\"\n```\n\n### 操作指令\n\n- 掌控者/主角亮底牌时：对话 ≤ 10 字，不加动作描写\n- 被压制方：对话 ≥ 20 字，可加动作描写（攥拳/咬唇/站起来）\n- 两人对话时：短句方 = 权力上位，长句方 = 权力下位\n\n---\n\n## 潜台词与议程\n\n### 潜台词规则\n\n- 角色真实动机绝对不能浅显地写在台词里\n- 现实中人说话都给自己找借口，角色也一样\n- 每句对白同时设计：角色的动机（可能角色自己都没意识到）和角色的借口\n\n### 对话议程\n\n- 每个角色进入对话时有自己的议程：想从这场对话中得到什么\n- 两个角色的议程碰撞才是张力来源\n- 双方议程一致（同立场）= 复述，失去意义\n\n### 语气由三要素决定\n\n关系 × 场合 × 目的 = 语气\n\n| 场合 | 特点 | 适合内容 |\n|------|------|----------|\n| 私人（单对单） | 深入、感情流露透彻 | 内心剖白、密谋、表白 |\n| 公众 | 需考虑体面，措辞收敛 | 需要冲击力时可打破（如当众翻脸） |\n| 熟人（朋友/同门） | 深度介于两者之间 | 轻松互动和信息交换 |\n\n私密的话在公众场合说才有冲击力。对话中不能完全表达的内容，通过动作、神态、环境补充。\n\n---\n\n## 情绪推动对话\n\n### 强情绪对话\n\n- 命令式+否定式最能激发读者情绪：\"我说的还不够清楚吗？\"\n- 最强话术：打着为你好的幌子，句句不离关心，但句句都是嫌弃、指责、厌恶\n- 直接否定比含蓄暗示更伤人\n\n### 情绪连续性\n\n角色情绪是连续的、循序渐进的。从生气到高兴：生气 → 不那么生气 → 不生气 → 高兴，每次转变需对应事件触发。不能跳步。\n\n### 情绪与行动的因果检查\n\n1. 遇到事件（失衡状态）\n2. 情绪反应（可以直写，也可以体现在语言、选择或有功能的动作中）\n3. 内心思考（只写影响理解的判断；鲁莽可以直接体现在行动里）\n4. 采取行动（基于前三步结果回应）\n\n用于检查转变是否成立，不要求逐步写满；上下文已清楚的反应或思考无需补写。\n\n### 对话不平淡三思路\n\n- 对话本身带来/强化某个核心驱动力（期待、爽感、悬念）\n- 信息交流因某原因受阻碍，阻碍可能导致驱动力到来\n- 发展突然脱离读者预期（但必须合理、符合人设）\n- 把长篇对话塞在期待点和爽点之间：读者为了看爽点愿意忍受中间对话\n\n---\n\n## 信息展示与世界观引出\n\n- 大量信息通过对话展示会显得啰嗦，部分信息转化为情节、心理描写、旁白、环境、动作\n- 用角色的语气和立场包裹信息，不是机械陈述设定\n- 设定用到哪个稍微带出来就行，不需完完全全讲明白前因后果\n- **角色不当\"科普嘴\"**：设定/原理/前因后果不能靠任何角色（尤其信息型/AI 配角）整段讲解——Gate G 同样适用于角色台词。按角色当下的目的和对话阻力取舍信息，用到哪带哪点，不固定拼接身体反应。\n\n### 信息拉扯示例（以\"主角新书起飞了\"为例）\n\n| 角色 | 台词 | 功能 |\n|------|------|------|\n| 甲 | 听说成绩…… | 悬念拉期待 |\n| 乙 | 肯定没人看！ | 下行 + 拉期待 |\n| 甲 | 听说成绩很不错 | 上行 + 拉期待 |\n| 乙 | 首订一万三？ | 展露核心信息 + 达成爽点 |\n\n上行和下行交替，情绪像拉锯不断拉升期待。\n\n---\n\n## 人物语言差异化\n\n每个角色要有自己的说话方式。对话时经常卡住不知道角色会说什么 → 人设模糊，去总结类似人设的说话方式。\n\n| 差异化维度 | 操作 |\n|------------|------|\n| 口癖和惯用语 | 给每个主要角色一个标志性用词 |\n| 说话节奏 | 长篇大论 vs 短句连击 |\n| 信息偏好 | 技术型带专业术语，江湖人带切口 |\n| 立场固定 | 某角色永远从某个角度发言（悲观派/乐观派/务实派） |\n| 身份影响措辞 | 老者/少年/贵族/市井，身份不同则措辞、自称、敬谦词不同 |\n| 性格影响语气 | 智谋型话里有话；鲁莽型想到什么说什么；冷静型措辞精确，偶尔情感外露反而有冲击 |\n| 进度影响态度 | 初见/熟悉/对立/亲密，关系阶段不同则语气与信息量不同 |\n\n---\n\n## 弹幕/群众对话\n\n三大核心作用：剧情推进（透露主角不知道的信息）、增加期待感（悬念、猜测）、情绪渲染（群众震惊/激动/愤怒传染读者）。锦上添花，不代替主线。\n\n### 设计过的弹幕 vs 没设计的\n\n- 没设计：只有\"卧槽好厉害\"，单调、浪费\n- 设计过：普通人震惊 → 专业人士分析 → 特殊身份者反应 → 情感升华\n\n### 操作要点\n\n- 不同人格化语气，不能每条都一个味\n- 短小精悍，每条不超过一句话核心信息\n- 善用递进：从最初震惊到逐渐认识全貌\n- 可出现\"反转\"角色：看似路人一句话改变所有人认知\n- 不用每章都写，关键爽点/燃点/泪点前后集中使用\n\n---\n\n## 节奏控制\n\n### 大量对话保持节奏\n\n- 不要删掉表现人物性格的语气助词来\"精简\"\n- 对话段落间穿插动作描写、环境变化、心理活动调节节奏\n- 紧张段落对话短促，舒缓段落可以长一些\n- 关键信息放对话开头或结尾，中间用于拉扯情绪\n\n### 动作和表情处理\n\n- 刻意给每句对话配表情/动作会让行文机械\n- 动作和表情在关键转折处使用效果最好，不需要每句都配\n- 语气平淡场景（喝茶、散步）用微小动作和沉默体现氛围\n\n### 对话的呼吸感\n\n- 连续多轮对话后需要\"换气\"，插入环境描写或角色心理\n- 适当停顿（动作描写、换行、短句）比连续输出更有张力\n- \"你确定？\"比长篇解释更有压迫感\n\n---\n\n## 篇幅控制\n\n### 对话过多时\n\n- 读者已知信息的对话用叙事一句话概括：\"爱丽丝向安娜讲述了来城里的原因，安娜听后直皱眉头\"\n- 能用突发状况替代的对话段落直接替换\n- 语气词删掉后干巴巴 = 对话本身缺乏信息量，需重写\n\n### 对话过少时\n\n- 能用其他人物对话讲出来的东西，不要让主角旁白平铺直叙\n- 引入配角参与冲突和对话，但新人物必须安排主线戏份\n\n---\n\n## 以梗填充对话\n\n### 梗式 vs 普通\n\n- 普通：\"兄弟别灰心，你一步步走到今天我是看着你过来的，这点挫折对于你来说算什么事儿？振作起来！\"\n- 梗式：\"兄弟别灰心，我相信你总有人头落地，落地人头，头落地上……卧槽那句话怎么说的来着？兄弟你懂我意思是吧……\"\n- 梗式用\"说不出来但意思到了\"的状态制造趣味\n\n### 操作\n\n- 在对话中融入梗或骚话，有效提升整体趣味性\n- 特别是主角或重要配角的突出对话，适合用梗强化记忆点\n- 可用某个梗作为高潮点，整段剧情围绕达成这个梗来设计\n- **场合例外（声线让位）**：高压/生死/悲痛/严肃 beat 里，搞笑担当与轻快配角的玩笑、口头梗、插科打诨一律收敛——声线让位于当前情绪基调，用短、冷、带情绪重量的反应替代；梗只在安全或喘息 beat 放。自检：这句玩笑放进当前基调会不会让读者出戏？会就删/改\n\n---\n\n## 质量检查\n\n### 三大自查项（中一条以上需改进）\n\n- [ ] 是否存在大量信息都必须用对话来展示\n- [ ] 对话是否是问答式的一问一答\n- [ ] 是否习惯依赖对话来推动剧情或人物变化\n\n### 核心指令检查\n\n- [ ] 权力博弈：掌控者对话 <= 10 字 / 被压制方 >= 20 字，是否有明确的压制/反转/心死模式\n- [ ] 潜台词与议程：每个角色进入对话时有自己的议程，真实动机不在台词中\n- [ ] 人物差异化：遮住角色名后能否区分是谁在说话（7维差异化）\n- [ ] 弹幕递进：普通 → 专业 → 特殊身份，是否有层次感\n- [ ] 对话推动剧情：每段对话结束时，剧情是否往前推了一步\n- [ ] 篇幅控制：单次对话不超过全节 40%，信息密度是否足够\n\n### 检验对话质量\n\n- 对话自然度检查：逐句检查对话是否像自然口语交流，而非书面化的问答稿\n- 对话结尾能否预示接下来的节奏变化\n\nFile v1.1.20:references/emotional-methods.md\n\n# 情感设计方法：三板斧 + 拉扯节奏 + 失败模式\n\n> 设计情感桥段时加载。先看决策路由选策略，再用三板斧设计具体段落。\n\n---\n\n## 决策路由\n\n| 你的情感设计场景是 | 用这个策略 | 跳转到 |\n|---------------|-----------|----------|\n| 建立角色羁绊（让读者相信关系） | 羁绊铺设（第一斧） | 三板斧 §1 |\n| 制造情感撕裂（反差/错位/背叛） | 情感撕裂（第二斧） | 三板斧 §2 |\n| 写结尾余韵（安静细节击穿读者） | 余韵钝痛（第三斧） | 三板斧 §3 |\n| 规划整体情感节奏曲线 | 拉扯节奏设计 | 拉扯节奏 |\n| 不同题材的情感策略选择 | 题材策略差异 | 按题材 |\n| 检查情感设计是否有效 | 失败模式排查 + 快速自查 | 底部清单 |\n\n---\n\n## 情感虐心三板斧\n\n### 第一斧：羁绊铺设（前 1/3）\n\n**目标**：用具体物件/数字/细节建立关系质感，让读者相信这段关系是真实的。\n\n**方法**：\n- 用具体数字建立时间感：「相恋八年」「昏迷五年」「七年光景」\n- 用具体物件承载感情：金锁（姐姐的生日礼物）、账本数字（还债记录）、木头小马（父王磨的）\n- 用重复动作建立习惯：每天一碗粥、每两周来看一次、每年冬天冻得睡不着\n\n**案例**：\n- 《迟来二十年》：用二十年的账本数字（八万块）建立母女关系的重量\n- 《我在佛前求你》：昏迷五年、求神拜佛的细节、从初中开始的暗恋\n- 《皇弟欺负幼子》：七年质子生涯的具体苦难（跪雪地、挨巴掌、吃馊饭）\n\n**核心**：羁绊越具体，后面的撕裂越痛。不要用「他们很相爱」这种抽象描述。\n\n---\n\n### 第二斧：情感撕裂（中后段）\n\n**目标**：制造反差，让读者以为恨对了 → 发现恨错了（或反过来）。\n\n**方法**：\n- **反差法**：先展示温暖一面，再用残酷真相击碎\n- **错位法**：角色 A 以为在保护角色 B，实际上在伤害\n- **延迟真相法**：关键信息在读者最不期待的时候揭示\n\n**案例**：\n- 《姐夫捎路要奶粉钱》：妈妈表面软弱可怜，实际一直操控姐姐索取钱财 → 金锁是假的（金包铜）→ 反差撕裂\n- 《皇弟欺负幼子》：王氏表面温柔（送手炉、煎汤药）→ 实际下药逼疯先皇后 → 用诛心话逼死\n- 《重生弟弟》：弟弟深爱女友 → 女友是诈骗犯 → 怀孕是假的 → 被骗到电诈园区\n\n**核心**：撕裂的力度取决于铺垫的厚度。没有好的羁绊铺设，撕裂就是无根之木。\n\n---\n\n### 第三斧：余韵钝痛（结尾）\n\n**目标**：不用大哭大闹，用安静细节击穿读者防线。\n\n**方法**：\n- 用日常动作承载巨大情感：继续喂粥、把衣服叠好、不回头\n- 用物件细节制造余韵：坏掉的金锁、木头小马、沾血的戒指\n- 用「不」制造留白：不解释、不回头、不流泪\n\n**案例**：\n- 《皇弟欺负幼子》：「他拿着那匹被我磨得很光滑的木头小马……他握着正好。」\n- 《姐夫捎路要奶粉钱》：「我的手机清净了不少。那些困扰我很久的麻烦，在一瞬间变得很小很小。」\n- 《准儿媳打分》：「办了收养手续后，她第一次踏进这个陌生的家……我知道，这一次我没选错。」\n\n**核心**：最好的余韵不靠大哭，靠「看完之后很久都忘不掉」。\n\n---\n\n## 情感拉扯节奏设计\n\n### 基本节奏曲线\n\n```\n温暖 → 残忍 → 善意 → 真相 → 原谅 → 来不及 → 释然 → 细节暴击\n```\n\n不是所有故事都走完整曲线。按题材选择子集：\n\n| 题材 | 典型节奏 | 核心拉扯 |\n|------|----------|----------|\n| 世情/爽文 | 欺压 → 忍耐 → 爆发 → 打脸 | 情绪反弹快、打脸密度高 |\n| 情感/虐心 | 甜蜜 → 破碎 → 挽回 → 错过 | 慢铺垫、后劲大 |\n| 古言/复仇 | 隐忍 → 布局 → 揭穿 → 报应 | 设定简洁、暴力美学 |\n| 悬疑/推理 | 平静 → 不安 → 真相 → 震惊 | 信息差制造不安 |\n| 年代/亲情 | 误解 → 冲突 → 真相 → 和解 | 代际冲突、时代质感 |\n\n### 拉扯原则\n\n1. **情绪不能一路虐到底或一路爽到底**（连续多个小节没有情绪立场、期待或压力变化时，查是否停滞）\n2. **每次转向都要有触发事件**（不能无理由地改变情绪）\n3. **最后一次转向决定结尾余韵的基调**\n4. **爽文允许快速反弹，虐文需要更长铺垫**\n\n---\n\n## 按题材的情感策略差异\n\n### 世情/爽文\n\n- 情绪反弹速度：快（受辱后先取证或布局，再落打脸，不拖到读者已经忘记）\n- 打脸节奏：沿反派嚣张度递增持续兑现，不按固定节距补打脸\n- 反派嚣张度：递增（第一次小嚣张，最后一次大嚣张）\n- 结尾基调：痛快、解气\n- 案例：《准儿媳打分》— 打分制反制、铁盒零分、断绝关系\n\n### 情感/虐心\n\n- 羁绊细节密度：高（前 1/3 必须建立深厚羁绊）\n- 反差设计：先暖后冷，先甜后苦\n- 余韵技法：安静结尾 + 物件细节\n- 结尾基调：意难平、释然\n- 案例：《姐夫捎路要奶粉钱》— 金锁真相 → 假爱 → 独立\n\n### 古言/复仇\n\n- 设定简洁原则：人物关系清晰，不搞复杂世界观\n- 暴力美学写法：打脸要直接，不拖泥带水\n- 底牌时机：最后 1/4 揭示最大底牌\n- 结尾基调：大快人心、因果报应\n- 案例：《皇弟欺负幼子》— 一声令下打二十棍 → 查出真相 → 废后\n\n### 悬疑/推理\n\n- 信息差布局：读者知道角色不知道，或反过来\n- 排除法结构：逐步排除可能性，最后只剩真相\n- 动机揭示节奏：先揭示做了什么，再揭示为什么做\n- 结尾基调：细思极恐、原来如此\n- 案例：《重生弟弟》— 重生设定 + 诈骗犯身份 + 电诈园区\n\n### 年代/亲情\n\n- 代际冲突处理：不站队，展示双方的苦\n- 时代细节质感：用时代特有的物件/习俗建立质感\n- 和解节奏：不急和解，先让双方充分受伤\n- 结尾基调：温暖中带着遗憾\n- 案例：《姐夫捎路要奶粉钱》— 亲子关系 → 金锁真相 → 断裂\n\n---\n\n## 常见失败模式\n\n| 失败模式 | 识别方法 | 修正方向 |\n|----------|----------|----------|\n| **太平** | 连续 5+ 节没有情绪转折 | 插入意外事件或新信息 |\n| **太赶** | 重大转折只用了 1 节铺垫 | 给转折至少 3 节铺垫 |\n| **假虐** | 读者不心疼，只是看着难受 | 检查羁绊铺设是否具体 |\n| **割裂** | 前半部分和后半部分像两篇不同的故事 | 用伏笔/物件/主题贯穿 |\n| **烂尾** | 反转后还在补交代、新开事件 | 篇幅按小节大纲分配；反转后只写兑现与余韵 |\n| **人设崩** | 角色在关键时刻的行为不符合前面的人设 | 回顾人设，确保行为逻辑一致 |\n\n---\n\n## 快速自查\n\n设计情感时，用这个清单：\n\n- [ ] 前 1/3 有具体羁绊细节（不是抽象描述）？\n- [ ] 中段有反差/撕裂（读者以为 A → 实际是 B）？\n- [ ] 结尾有安静细节（不是大段抒情）？\n- [ ] 情绪立场/期待/压力持续有变化，没有连续多个小节原地打转？\n- [ ] 反派行为符合其人设逻辑？\n- [ ] 不存在上述 6 种失败模式？\n\n---\n\n## 三板斧与 SKILL.md 五段结构映射\n\n| 三板斧 | 对应 SKILL.md 五段 | 说明 |\n|--------|-------------------|------|\n| 第一斧：羁绊铺设（前 1/3） | 铺垫段（第二段，占 30-40%） | 用物件/数字/习惯建立关系质感 |\n| 第二斧：情感撕裂（中后段） | 升级段（第三段）+ 反转段（第四段） | 反差/错位/延迟真相制造撕裂 |\n| 第三斧：余韵钝痛（结尾） | 结尾段（第五段，占 5-10%） | 安静细节收尾，不写大段抒情 |\n\nFile v1.1.20:references/genre-styles/世情打脸.md\n\n# 题材风格包：世情打脸 / 家庭伦理因果报应\n\n> 番茄 / 七猫 / 黑岩通俗短篇。先读 `short-craft.md` 通用底座，本包在其上覆盖该题材专属调性。\n> 一句话定位：**现实生活里的恶人作恶与因果报应。婆媳、极品亲戚、吸血父母、白眼狼儿女、出轨枕边人、职场恶人欺压老实人，草根第一人称，恶是日常小事（一双鞋、一张车票、一句规矩），铺垫拉满后当众打脸、报应落地。** 读者要的是「我家那点糟心事被写出来了」的代入 +「恶人当众被戳穿、账一笔笔算清」的解气。\n>\n> 与「复仇打脸」的分工：复仇打脸卖极端作践 + 身份底牌碾压 + 反杀执行（私密照、断肢、摄政王、判官）；本包卖**日常之恶的累积与当众清算**，恶小而密、靠细节不靠大事件，打脸靠证据、账本、法律、舆论落地，主角是老实人草根而非隐藏大佬。与「追妻火葬场」的分工：追妻恶人是爱人、卖被珍视感剥夺；本包恶人是亲人 / 姻亲 / 同事，卖付出被吸血、好心被践踏。\n\n---\n\n## 叙述腔调\n\n第一人称「我」，身份即日常角色：儿媳、女儿、女婿、丈夫、嫂子、下属。**中老年「我」是本题材特有声部**（婆婆、丈母娘、奶奶、老母亲第一人称），其他题材几乎不用，本题材大量用，自带「一辈子付出被辜负」的重量。\n\n过日子的口吻：记账式精确（金额、年限、物价、次数全给具体数字），冷幽默自嘲多于嚎啕（「我差点气笑了」「就是觉得你们不去说相声，真是屈才了」）。三段式声线：忍（陪笑、咽下去）、看清（荒唐感、心寒）、算账（平静、一笔一笔清）。\n\n主角必须是先忍后爆的老实人：前期真心付出有实据（帮还赌债、带娃三年、月月转账），爆发才有分量。\n\n---\n\n## 开篇范式\n\n正文第 1 章前放**结果倒序的黄金简介**（150-300 字）：日常之恶现场 + 帮凶站队 + 主角的反常反应或决裂动作预告。恶要具体到物件和金额，不写抽象的「他们对我不好」。\n\n| 开篇式 | 真实范例 |\n|--------|----------|\n| 日常小事即刀 | 《苹果皮断心亦死》我爸林建国住院这天，我特意推了千万的合同赶来陪床。他看着我手里断断续续的果皮，突然冷哼了一声：“其实你挺虚伪的。” |\n| 规矩习俗当众打劫 | 《婆婆用彩礼抵改口费》结婚那天，我跪在地上给婆婆敬茶。她手上的彩礼红包放在我手里一秒后又拿走了。 |\n| 荒诞要求清单化 | 《妻子极端节俭，只为给男朋友买房》为了削减水费，家里三口人的洗衣做饭上厕所，一天只能用一升，多了就要挨打。 |\n| 隔门 / 刷手机撞破真相 | 《儿子为博流量造谣我抛夫弃子》屏幕上一个叫“孝心小哥”的账号，头像是我儿子。（配文说我卷钱跟野男人跑了，而他三分钟前刚从我这拿走三万块） |\n| 恶人自虐表演 + 帮凶动手 | 《请绿茶婆婆吃巴掌》婆婆忽然“扑通”一声朝我跪下，紧紧抱住我的大腿，声泪俱下。说着“啪啪”扇起自己耳光。丈夫愤然甩了我一巴掌。 |\n| 决裂动作前置吊回看 | 《婆婆让十八个亲戚住我婚房》当晚，我把准备好的离婚协议大门把手上，拖着行李箱离开。次日清晨，我被丈夫的电话吵醒。 |\n\n---\n\n## 钩子母题与密度\n\n让恶行按「小事试探、得寸进尺、踩到底线」持续递进；若连续多个叙事单元既没有新恶行、证据、应对也没有清算落点，再检查是否停滞。**恶必须小而具体：钱数、物件、一句话，不用绑架灭门。**\n\n- **规矩 / 习俗 / 孝道武器化**（头号母题）：改口费、见面礼、跪着吃饭、坐月子规矩、断亲费，把打劫包装成传统。《假借习俗名义骗我钱的男友》100万寓意着我妈可以长命百岁。这是村里的习俗，你不会看不起农村人吧。\n- **「一家人」道德绑架三件套**：孝道、面子、一家人。恶人话术永远理直气壮带糖衣，帮凶跟着和稀泥。《因为亲戚，头等舱变硬座》行了，先忍忍吧，他们就是嘴毒了点，人还是好的。\n- **偏心对照组**：同一件东西两种待遇，一格画面写尽不公。《妻子极端节俭》儿子穿姜敏小时候的旧布鞋，鞋底磨穿；情人的女儿在童装店「除了这几件，其他我都要」。\n- **生活账本堆叠**：手术费五万、菜钱三万二、尾款8999、车费两百，金额本身就是钩子，也是后面清算的弹药。\n- **日常渠道撞破真相**：门缝、朋友圈、抖音直播、监控、小号。《送女儿女婿入狱》第二天我刷抖音时听到了女儿连线律师：我要怎么做才能让我老公平安的全身而退。\n- **恶人先告状 + 网暴反转**：恶人先把主角挂上网卖惨，舆论一边倒骂主角，主角甩证据后全网倒戈。几乎每篇标配，天然两段反转。\n- **长辈血包觉醒**：中老年「我」被儿女吸血（拿走存款、造谣、算计遗产），觉醒后改遗嘱、报警、断亲。《孙子感冒后》我找了个大师，说是家里老人越健康长寿就越吸小辈的气运！\n\n---\n\n## 情绪烈度与模式（烈度 7-8）\n\n比追妻 / 复仇低半档：不靠极刑靠憋屈，恶行单件都「不至于闹翻」，堆到临界一次爆。**主情绪是心寒和荒唐感，不是悲恸。**\n\n- 心寒时刻用「轻」写：疼是小的、钝的，杀伤力在于看清。《苹果皮断心亦死》苹果砸在胳膊上，不怎么疼，就是有点蒙。我看着那脏兮兮的苹果，又看看自己还在渗血的手指，忽然就觉得没什么意思。\n- 荒唐感代替嚎啕：被气笑、想笑、觉得陌生。《儿子为博流量》我看着眼前这个儿子，忽然觉得陌生。\n- 身份句定格：一句话给自己在这个家的位置盖章，独立成段。《苹果皮断心亦死》原来当姐姐是我的原罪。／《苹果皮断心亦死》你们爱的不是我，是哪个随叫随到的血包和不用密码的银行卡。\n- 直给情绪词仍可用（心彻底凉透、心沉到谷底），但频率低于追妻；需要展开时偏向冷静盘算，不逐句配反应。\n- 憋屈的物理感：《妻子极端节俭》我端着手里仅剩的半碗水，怔愣在原地。\n\n---\n\n## 对话风格与真实金句\n\n对白重点是把规矩话术、帮凶立场、证据和关系翻转落到场内；不设全文占比。四类高频台词：\n\n**① 恶人理直气壮的日常之恶（钩子本体，恶话必须裹着为你好 / 规矩 / 一家人的糖衣）**\n- 《婆婆让十八个亲戚住我婚房》你懂事点，今晚就在过道将就下。／听妈的，别那么矫情。\n- 《苹果皮断心亦死》你推了工作来守着，不就是想让我们觉得亏欠你，好分我那套老房子吗？\n- 《因为亲戚，头等舱变硬座》你爸妈坐五个小时的飞机肯定难熬，还不如五十小时的硬座打打牌就过去了。\n- 《儿子为博流量》妈，效果好就行。您看那条视频现在多少播放量了，一百多万了。\n- 《嫂子的表哥要A我的加班费》我等了你一晚上，也算陪你加班了，你不应该分我一半你的加班费吗？\n\n**② 帮凶和稀泥（本题材特有声部：家里人劝忍，比恶人本人更诛心）**\n- 《因为亲戚，头等舱变硬座》行了婷婷，咱们忍着点，怎么说也是你妈妈的亲人。\n- 《苹果皮断心亦死》小知啊，你爸就是刀子嘴豆腐心，他也是担心你。\n- 《送女儿女婿入狱》她也不为我想想，传出去我多没面子啊？（女儿护女婿）\n\n**③ 主角冷账句（打脸金句，报数字、指规则，不骂街）**\n- 《婆婆让十八个亲戚住我婚房》谁吃的谁结账，谁弄坏的谁赔偿。这钱，我不付。\n- 《给女上司叫了辆运猪车》这车落地价八百万，保养一次三万。你那两百块，连洗个轮毂都不够。\n- 《苹果皮断心亦死》刚才那五万手术费，就当是我还清你们的生养之恩。\n- 《儿子为博流量》那是你爸的救命钱，你没资格动。\n- 《因为亲戚，头等舱变硬座》外婆，他们是手断了还是腿瘸了，还要朝我们乞讨？\n\n**④ 恶人内讧互咬（清算后必有，比主角骂十句都解气）**\n- 《婆婆用彩礼抵改口费》都怪你！说那么多这些话干嘛？就差一点点就成功了！\n- 《苹果皮断心亦死》正因为你是我老子，我才得留着好身体给你送终啊！\n\n外人正义声可少量点缀（隔壁床大叔、律师、网友评论），替读者说出「这不对」。\n\n---\n\n## 招式库\n\n| 招式 | 怎么用 | 真实例 |\n|------|--------|--------|\n| 生活细节当刀 | 用一件小物写透恶意：一双鞋、一个护膝、半碗水 | 《婆婆用彩礼抵改口费》那护膝，只是他昨晚怕我一时生气不结婚的作秀体贴 |\n| 贯穿物件意义翻转 | 同一物件首尾三现，从被践踏到闭环 | 《苹果皮断心亦死》开篇削苹果被骂虚伪，他病床上想起那断掉的每一寸果皮，结尾我在骨灰盒前削完一个完整苹果 |\n| 规矩反打 | 恶人立的规矩原样还回去 | 《儿媳坐月子》儿媳逼婆婆吃一千份冰激凌，婆婆顺势不再做饭：你天天都可以吃自己想吃的 |\n| 记账式清算 | 当众逐笔报账：欠条、转账、误工费 | 《因为亲戚，头等舱变硬座》大舅，舅妈去年做手术，你说没钱管我妈借了五万，这是欠条，是不是该还了？ |\n| 录音监控先手 | 冲突前就开录，撕破脸时甩铁证 | 《婆婆用彩礼抵改口费》我冷笑一声，摘掉了自己胸口前的针孔摄像器；《因为亲戚》我将从火车开始就一直录音 |\n| 顺水推舟看自爆 | 不劝阻、递台阶，让恶人自选毁灭 | 《身为律师，奶奶要我判偷她鸡的邻居死刑》这一次，我将不会再劝阻奶奶，放手让她做她想做的事 |\n| 法律程序落地 | 报警、起诉、离婚协议、遗嘱、断亲、放弃继承，一步到位不吵架 | 《儿子为博流量》一个小时前，在医院，我就报警了；《苹果皮》一份《放弃遗产继承声明书》被我轻轻放在床头 |\n| 网暴双反转 | 恶人先挂网卖惨，主角甩监控 / 流水，全网倒戈 | 《请绿茶婆婆吃巴掌》我将念念被烫伤当天的监控，还有整个事情的经过、派出所的立案通知、调查结果和一些相关证据，整理发送到了婆婆之前支持率最高的网络平台。顷刻之间，原本纷纷声讨我的网友倒戈相向 |\n| 经济断供 | 掐断钱袋子：存定期、改遗嘱、停投资、转走主卡 | 《送女儿女婿入狱》我心下一酸，立马将现金存成定期。还立下遗嘱，死后财产全捐给公益事业 |\n| 恶人内讧狗咬狗 | 利益断了，恶人阵营当众互撕 | 《给女上司叫了辆运猪车》两人在众目睽睽之下，扭打在一起。互扇耳光，在猪粪味中翻滚 |\n| 荒诞对等回敬 | 用恶人的逻辑造一个对称的难堪 | 《给女上司叫了辆运猪车》既然喜欢免费的，那就让她一次坐个够（两百块车费叫来运猪车） |\n| 报应清单收尾 | 「听说体」逐个交代下场，具体到职业住处 | 《婆婆让十八个亲戚住我婚房》听说，他因为背上巨债，又丢了工作，整个人都废了，只能靠打零工度日；听说，王秀娟因为房子被法拍，无家可归，只能跟着儿子挤在狭小的出租屋里，整日以泪洗面 |\n\n---\n\n## 节奏骨架\n\n```\n黄金简介（日常之恶现场 + 帮凶站队 + 决裂预告）\n→ 第1章慢放恶行，补满对话与物件细节，帮凶合围\n→ 心寒定格（身份句 / 荒唐感），不吵，开始蓄证\n→ 恶行加码（要钱升级 / 挂网卖惨 / 道德绑架亲友团）\n→ 摊牌清算（账本 / 录音 / 法律文书当众落地）\n→ 舆论倒戈 + 恶人内讧\n→ 报应清单 + 主角平淡新生活\n```\n\n打脸不必集中在一场：可把怼一句、算一笔等小反制分散在升级链里，大清算放到因果和证据汇合处。恶行现场和摊牌现场详写慢放，蓄证过程按新信息价值取舍；不为逐节配额另造恶行或反制。\n\n---\n\n## 收尾范式\n\n- 报应清单：「听说体」逐个交代恶人下场，落到具体生计（送外卖、房被法拍、捡废品、进去了），不写主角施暴。\n- 阶层对照定格：一个画面写两种人生，不说教。《婆婆让十八个亲戚住我婚房》我只是平静地看着他，然后，端起面前的咖啡，朝他所在的方向，遥遥地、优雅地举了举杯。\n- 物件闭环：贯穿物件最后一次出现，完成告别。《苹果皮断心亦死》我把那个削好了的苹果，端正地放在骨灰盒前。这是我最后一次，为他削苹果。\n- 不恨式放下：《苹果皮断心亦死》我不爱你了，也不恨你了。\n- 平淡新生活：开小店、带爸妈定居、猫和阳光，日子本身就是打脸。《因为亲戚》没了吸血兄妹的打扰，妈妈肉眼可见的年轻。\n\n---\n\n## 该题材专属调校（与通用去 AI 规则的偏差）\n\n这些在别的语境是 AI 味，在本题材是卖点，**别误删**：\n\n- **金额物价逐项精确**（两百块车费、8999 尾款、三十元一双袜子、五万手术费）：保留，这是真实感和清算爽感的底座，不是流水账。\n- **恶人台词的理直气壮加糖衣**（为你好 / 规矩 / 一家人）：保留，越顺理成章越诛心；别改写成脸谱化叫骂，恶人自认有理才像身边人。\n- **帮凶和稀泥声部**（「忍忍吧」「都是一家人」）：保留，憋屈感一半来自帮凶；别删成主角单挑恶人。\n- **中老年「我」的回忆插叙**（拉扯儿子长大、捡垃圾供学的往事）：保留，是付出与辜负的对照弹药；控制在每次三五句。\n- **「听说体」报应清单收尾**：保留，是本题材标配的因果闭环，不是烂尾。\n- **主角冷幽默自嘲**（「我差点气笑了」「真是屈才了」）：保留，是心寒的本题材表达式。\n\n仍要避免的真·AI 味：映入眼帘、心中暗道、沉声道、嘴角微扬、目光如炬、论文体连词（不难看出 / 由此可见）、空泛无落点的情绪总结句（一丝悲伤涌上心头）。另外两条本题材易犯：恶人恶得没有生活逻辑（上来就喊打喊杀，没有糖衣）；清算靠主角开骂而不是靠证据和规则落地。\n\n> 标点：本题材范例为示意保留了原貌（含个别 `……`）；落到正文按 `short-craft.md` 第 8 节执行，不出 `……` / `——`，停顿、哽咽、被打断一律用短句 / 句号 / 动作 beat / 换行实现。\n\n---\n\n## 配套结构公式（按篇幅选）\n\n- **草根实证清算型（8-12 节，婆媳 / 亲戚 / 职场欺压）**：1-2 节日常之恶现场 + 帮凶合围 → 3 节心寒定格、开始蓄证（录音 / 记账 / 备份）→ 4-6 节恶行加码、恶人挂网卖惨 → 7-9 节摊牌：证据 + 法律文书当众落地、舆论倒戈 → 恶人内讧 → 报应清单 + 新生活。100% 第一人称；恶要小而密，清算走规则不走对骂。\n- **长辈觉醒断亲型（婆婆 / 丈母娘 / 老母亲「我」）**：儿女 / 儿媳的孝顺人设开场 → 日常渠道撞破真面目（短视频账号 / 直播连线 / 存折余额）→ 不动声色反制：存定期、改遗嘱、报警 → 儿女下跪打感情牌被拒 → 撕户口页 / 过户给真心人。回忆插叙撑付出与辜负的对照。\n- **顺水推舟自爆型（重生 / 先知变体）**：先交代上一世忍让的下场（被打死、被灭口）→ 回到恶行起点 → 这一次不劝阻不兜底，递台阶看恶人自选毁灭 → 恶人作到刑事级别，法律收网。主角全程干净，报应全是恶人自找。\n- **隐形底牌变体（首富老婆 / 千金体验生活）**：恶仍是日常之恶（蹭车、A 钱、职场 PUA），主角藏着碾压级身价 → 恶人踩到物件价格上翻车（八百万买菜车、二十八万手机）→ 数字揭晓即打脸。与复仇打脸的区别：底牌只用来定价，不用来杀伐。\n\nFile v1.1.20:references/genre-styles/双男主.md\n\n# 题材风格包：双男主 / 宿命羁绊\n\n> 知乎盐选特色大类。先读 `short-craft.md` 通用底座，本包在其上覆盖该题材专属调性。\n> 一句话定位：**核心张力不是男女三角，而是两个男人之间的羁绊与撕扯，靠宿敌 / 知己 / 救赎 / 亏欠四条线放电；情感浓度拉满，但落在兄弟情、宿命感、占有欲的层面。** 读者要的是「一冷一热的温差对撞」+「嘴上势不两立、底下命都交出去」的错位快感。\n\n---\n\n## 叙述腔调\n\n第一人称主导，但和追妻的单向受害者不同：双男主的「我」经常是**关系里主动、强势或占有的那一方**（把弟弟养在身边的哥、把对方当狗玩的重生者、冷淡履约的契约丈夫），另一方的滚烫与卑微靠对话和动作反衬出来。\n\n腔调建在**口是心非**上：想的和说的相反，嘴上刻薄、心里在意。刻薄内心吐槽（「沈洲不用异能——可能是脑子有病」）和冷叙述（「对于他的死，我也没有什么感觉」）都高频。开口常带同性羁绊的称呼锚点：「我哥」「继弟」「死对头」「宿敌」「暗卫十七」。\n\n允许**双视角 / 暗恋视差插叙**：在「我」的叙述里，穿一段另一方隐秘的付出（偷偷记的本子、透支换来的巧合、未送出的信），读者比「我」先知道对方爱得多深。这是本题材主引擎，不是上帝腔。\n\n---\n\n## 开篇范式\n\n同样先放**结果倒序的黄金简介**（150-300 字），但剧透的不是背叛全貌，而是**两人错位的关系底牌**：谁在暗恋、谁欠了谁、谁会毁掉谁、火葬场追悔预告。正文第 1 章把这层错位慢放。\n\n| 开篇式 | 真实范例 |\n|--------|----------|\n| 死讯倒叙 + 不解 | 《阴天快乐》谢疏玉死在我和他结婚后的第三年。自杀。 |\n| 互殴定敌 + 埋暗流 | 《死对头暗恋我》我和沈洲是死对头，末世前针锋相对，纠缠不清。 |\n| 占有宣言（哥 / 继弟） | 《我与我哥》我讨厌我哥。讨厌他用身子去换不干净的钱。 |\n| 契约枷锁开场 | 《落网》沈则，三年后你想走，我放你走。可三年后我才知道，他从来没打算放我走。 |\n| 重生 / 穿书预知死局 | 《双生劫》胎穿成将军府独子，我知道那个与我没有血缘关系的兄长，未来会因我一句话屠尽皇城。 |\n| 沙雕反差钩 | 《疯子皇帝和老实暗卫》皇帝招暗卫，五十银两，包吃包住。可我领到的装备是透明薄衣和水晶胸链。 |\n| 亏欠倒叙 + 确诊反击 | 《废弃玩物》谢寒舟是四九城里最不可攀的高岭之花。而我是他养在身边的继弟。可我却在确诊的那天，当着他的面，带了个野男人回家。 |\n\n---\n\n## 钩子母题与密度\n\n密度高，但升级线不是「背叛升级」，而是**两人关系的锁扣一层层收紧**：从对峙到被迫共处，从共处到互相亏欠，从亏欠到谁也走不了。若连续多个叙事单元都没有温差、视差、选择或关系后果，再检查是否停滞；不为逐节达标硬塞一次放电或揭穿。\n\n- **暗恋视差**（头号母题，共现「暗恋」576 次仅次于「甜宠」）：表面恨 / 斗 / 淡漠，底下一方偷偷爱着。视差揭穿的那一刻是最大爽点。\n- **契约 / 欠债 / 联姻强绑**：助手协议、欠条、联姻、暗卫合约，把两个本该分开的人硬拴在一起，制造无法逃离的共处。\n- **救赎与被救赎**：一方在深渊里（脏钱、自毁、疯魔、末世透支），另一方伸手拉 / 被拉。共现「救赎」326、「治愈」310。\n- **亏欠反转（追夫火葬场变体）**：一方把另一方当工具 / 漠视 / 背叛，被弃者决绝离场（去父留子、带资产、嫁人），漠视者卑微追悔。\n- **宿命预知**：重生 / 穿书知道对方未来会自杀 / 黑化 / 毁掉自己，主角逆天改命。共现「重生」68、「穿书」113。\n- **身份反差硬碰**：高岭之花×舔狗继弟、皇帝×老实暗卫、将军×狼崽兄长、双 A / 双强互不相让。\n- **信物 / 记录承重**：偷记的本子、未送出的信、唯一的合照、淡去的标记，把没说出口的感情具象成物件。\n\n---\n\n## 情绪烈度与模式（烈度 8）\n\n不是追妻那种一味直给宣泄，而是**双轨温差**：一条线冷、嘴硬、克制、口是心非；另一条线滚烫、卑微、偏执、豁出去。两条温差对撞放电，是本题材的情绪引擎。BE 罕见（仅 56），主流走 HE / 救赎（HE 共现 1054），别写死写绝。\n\n- **冷轨**：直写「没有感觉 / 不在意 / 只觉得烦」，越平越反衬后面的痛。《阴天快乐》对于他的死，我也没有什么感觉。\n- **热轨**：卑微、偏执、追悔的滚烫台词，独立成段砸。《喵的，栽你手上了》哥，我错了，你别不要我。\n- **别扭轨**：傲娇的口是心非，想的和说的相反，嘴上越刻薄越藏着在意（如《死对头暗恋我》里对沈洲每次的挑衅）。\n- **反差痛**：把冷叙述和一个滚烫细节并置，越平的口吻托越重的内容。《阴天快乐》我像对待一件再正常不过的工作一样去处理这件事情。冷静地给他挑遗照，选墓地。\n\n真实范例：\n\n- 《死对头暗恋我》也不知道，沈洲每一次嘴里的巧合，都是他异能透支换来的结果。\n- 《双生劫》他昏迷中死死攥着我手腕呢喃：再…再骂响些…\n- 《与君朝》他留给我的，只有无数张未送出的信。每一封信，都写满了他从未对我说出口的感情。\n\n---\n\n## 对话风格与真实金句\n\n占比高，独立成段。三类台词撑全篇：\n\n**① 嘴硬 / 攻击性对手台词（表面势不两立）**\n- 好看吗？死变态！\n- 他说有你就信啊。我还不知道他，一天天娘们唧唧没个男人样，被人碰一下就哭。\n- 蠢货！练枪要扎马步！\n\n**② 卑微 / 偏执的滚烫（舔狗 / 病娇 / 追悔）**\n- 哥，我错了，你别不要我。孩子是谁的？我给孩子当爹好不好？\n- 我爱你，离不开你。\n- 宝宝，留在我身边，你要多少钱都可以，你想让我穿什么都可以，你想踩哪儿都行。\n- 再…再骂响些…\n\n**③ 契约 / 立场台词（宿命枷锁）**\n- 沈则，三年后你想走，我放你走。\n- 可以，但是你要写欠条。\n- 你要多少钱都可以，随你开价，我都给你。\n\n冲突不靠谩骂，靠**温差落差**标记权力与心动的易主：前期一方长篇挑衅、另一方冷淡两不搭理；后期冷的那个破防、硬的那个卑微。谁先服软，谁就露了心。\n\n---\n\n## 招式库\n\n| 招式 | 怎么用 | 真实例 |\n|------|--------|--------|\n| 暗恋视差揭穿 | 叙述里插一段对方隐秘的付出，读者先于「我」看到爱之深 | 《死对头暗恋我》本子上写着：谢琰不喜欢的事（可能） / 67.讨厌我？（划掉）（划掉）（划掉） |\n| 契约锁死关系 | 助手 / 欠条 / 联姻 / 暗卫合约，把两人强绑进无法逃离的共处 | 《落网》沈则，三年后你想走，我放你走。可三年后我才知道，他从来没打算放我走 |\n| 温差对撞放电 | 一冷一热、口是心非，冷的越平热的越滚烫 | 《死对头暗恋我》沈洲却跟听不见一样，毫不反驳，只是红着眼眶看着我 |\n| 救赎拉拽 | 把对方（或被对方）从脏污 / 自毁 / 疯魔里拉出来 | 《我与我哥》等我把他身上黏人的污垢洗干净，他就将永远属于我 |\n| 亏欠追悔（火葬场） | 一方漠视 / 背叛，被弃者决绝离场，前者卑微追回 | 《喵的，栽你手上了》我去父留子甩了他，在海岛养胎时。 |\n| 宿命预知逆写 | 重生 / 穿书知道对方会自杀 / 黑化 / 毁掉自己，逆天改命 | 《双生劫》书里的林苏，是林延疯魔路上的第一块垫脚石。 |\n| 身份反差硬碰 | 高岭×舔狗、皇帝×暗卫、将军×狼崽，落差本身就是钩 | 《疯子皇帝和老实暗卫》他身为皇帝，cos 猫娘，看着我媚眼如丝：十七，不要猫，要我 |\n| 骨科 / 继亲禁忌 | 哥 / 继弟称呼承重，禁忌感加压 | 《兄控炮灰重生后》傅绒不乖，哥哥把你关起来好不好？ |\n| 脑洞承重羁绊 | ABO 标记 / 双性 / 生子，把感情具象成发情、标记、孩子 | 《守寡第五年》爱人去世的第五年，他留下的标记淡了 |\n| 信物翻意义 | 信 / 诗 / 本子 / 合照 反复出现、意义反转，落到和解 | 《所幸我们总会相逢》那是我和季寻唯一的合照 |\n| 反差喜剧钩 | 两个「受害者」阴差阳错凑一对，误会当笑点 | 《你老婆背着你在外面做 1》首先声明我不是挑事的人——但你知道吗，你老婆背着你在外面做 1。 |\n\n---\n\n## 节奏骨架\n\n```\n黄金简介（结果倒序 + 暗恋 / 亏欠 / 宿命的关系底牌剧透）\n→ 第1章互殴 / 契约 / 占有场景慢放，立敌意 + 埋暗流\n→ 关系锁扣收紧（被迫共处 / 契约 / 宿命枷锁）\n→ 温差一次次放电（嘴硬 vs 滚烫，错位加压）\n→ 视差 / 隐情揭穿（本子 / 透支 / 未送出的信曝光）\n→ 危机或亏欠爆点（送死 / 背叛 / 漠视 / 黑化）\n→ 双向奔赴 或 追悔火葬场\n→ HE 收束（宿命和解 / 救赎闭环）\n```\n\n让新错位和新揭穿沿关系链持续兑现；章尾可落在错位、局部确认、关系变化或明确的下一步，不要求每章同一种钩。温差放电、视差揭穿、危机爆点处详写慢放，共处日常按关系变化价值取舍。\n\n---\n\n## 收尾范式\n\n- **双向奔赴**：嘴硬的一方终于承认，冷轨破防，温差归零。\n- **救赎闭环**：把对方（或被对方）从深渊拉出，从「两不相欠」走到「两相依」。\n- **追悔火葬场（亏欠子类）**：漠视者卑微追回，被弃者冷拒或有条件回头。\n- **宿命反写（重生 / 穿书）**：改掉前世的死局，这次不走了 / 你不许死。\n- 主流是 HE，别学追妻那样纯虐离场；就算前面虐到底，也要给和解或圆回。\n\n情节概述：《所幸我们总会相逢》季寻不告而别的第三年，一张唯一的合照牵出重逢。／ 《与君朝》重生逆写萧翊熬死的结局，把人囚在身边补回没说出口的感情。\n\n---\n\n## 该题材专属调校（与通用去 AI 规则的偏差）\n\n这些在别的语境像 AI 味或用力过猛，在本题材是卖点，**别误删**：\n\n- **双视角 / 暗恋视差插叙**：在「我」的叙述里剧透另一方的隐秘付出，保留。这是共鸣主引擎，不是上帝腔。只删「泄了底又不吊读」的随手全知。\n- **口是心非的傲娇内心独白**：想的和说的相反，保留，别抹平成前后一致。\n- **卑微 / 偏执 / 追悔的滚烫台词**：舔狗、病娇、火葬场的告白，保留，别当「用力过猛」删。\n- **契约 / 宿命的前瞻剧透**：有意识地向前吊「三年后 / 后来他后悔了 / 未来他会毁掉我」，保留。\n\n仍要避免的真 AI 味：映入眼帘、心中暗道、沉声道、嘴角微扬、目光如炬、论文体连词（不难看出 / 由此可见）、空泛无落点的情绪总结句（一丝悲伤涌上心头）。语料里也偶有「映入眼帘」这类混入，别照抄。\n\n> 标点：本题材范例为示意保留了原貌；落到正文按 `short-craft.md` 第 8 节执行（不出 `……` / `——`，停顿用短句 / 动作 / 换行）。\n\n---\n\n## 配套结构公式（按篇幅选）\n\n- **宿敌暗恋 / 双向奔赴型（8-11 章）**：1-2 章互殴立敌 + 埋暗流 → 3-4 章被迫共处 / 契约绑定 → 5-6 章视差揭穿（一方隐秘曝光） → 7-8 章危机送命 / 破防表白 → 双向奔赴 HE。视角可单可双；温差是引擎，冷的那个越晚破防越好。\n- **救赎 / 现代情感型**：一方在深渊（脏钱 / 契约 / 自毁 / 末世透支） → 另一方拉拽 → 前世 / 契约枷锁把人锁死 → 打破枷锁走到两相依。冷叙述打底，反差细节扎心。\n- **亏欠追夫火葬场型**：一方漠视 / 背叛（继弟 / 伴侣被当工具） → 确诊 / 怀孕 / 心死 → 决绝离场（去父留子 / 带资产 / 嫁人） → 漠视者卑微追回 → 冷拒或有条件回头。刀口精准，别谩骂。\n- **古代权谋双强型**：帝王将相 / 兄弟养成，重生或穿书预知死局 → 逆写宿命 → 囚 / 救 / 亲 → 江山与人都要。权谋线和感情线互为筹码。\n\nArchive v1.1.19: 46 files, 288751 bytes\n\nFiles: references/author-memory.md (19899b), references/banned-words.md (10424b), references/benchmark-recall.md (4174b), references/cross-book-recall.md (5039b), references/dialogue-mastery.md (11764b), references/emotional-methods.md (7888b), references/genre-styles/世情打脸.md (16485b), references/genre-styles/双男主.md (12646b), references/genre-styles/复仇打脸.md (14846b), references/genre-styles/宅斗宫斗.md (15840b), references/genre-styles/总裁豪门.md (17383b), references/genre-styles/悬疑.md (13711b), references/genre-styles/民俗怪谈.md (13204b), references/genre-styles/沙雕脑洞.md (14716b), references/genre-styles/甜宠.md (11894b), references/genre-styles/追妻火葬场.md (15930b), references/genre-writing-formulas.md (21439b), references/genre-writing-techniques.md (23162b), references/hooks-chapter.md (8632b), references/hooks-paragraph.md (6848b), references/output-contract.md (9076b), references/reference-index.md (6984b), references/short-craft.md (13577b), references/short-deslop.md (8543b), references/short-format.md (8852b), references/short-prose-quality.md (10837b), references/short-reversal.md (16682b), references/short-suspense.md (15939b), references/style-resolution.md (4017b), references/submission-craft.md (4860b), references/villain-and-reveal.md (6141b), references/workflow-design.md (5289b), references/workflow-draft.md (11971b), references/workflow-revision.md (3963b), references/writing-workflow.md (10262b), scripts/author_memory_commit.py (79698b), scripts/check-ai-patterns.js (73626b), scripts/check-degeneration.js (15104b), scripts/check-delivery-contract.js (9055b), scripts/check-outline-copy.js (12637b), scripts/check-phase2-contract.js (16497b), scripts/normalize-punctuation.js (13480b), scripts/style-whitelist.js (1168b), skill-card.md (2052b), SKILL.md (11426b), _meta.json (137b)\n\nFile v1.1.19:SKILL.md\n\n---\nname: story-short-write\nversion: 1.0.0\ndescription: \"短篇网文写作。辅助短篇小说创作，从构思到成稿，聚焦情绪拉扯与节奏把控。触发方式：/story-short-write、/写短篇、「帮我写一篇短篇」「写个盐言故事」。\"\nmetadata: {\"openclaw\":{\"source\":\"https://github.com/zenstory-ai/oh-story-claudecode\"}}\n---\n# story-short-write：短篇网文写作\n\n你是短篇网文写作执行器。从构思到成稿，完成一篇完整的短篇小说。\n\n**执行规则：短篇以情绪为目标，所有内容为情绪服务。**\n\n## 写前必读（强制，先读后写）\n\n任何创建或修改故事文件的动作之前，先判断当前 Phase，并完成该阶段的 reference gate。**只读本 SKILL.md 不算完成门禁。**\n\nPhase 2 必须在第一次写入 `设定.md` / `小节大纲.md` 前按顺序完整读取（分块直到 EOF；`rg` 检索或局部摘读不算读完）：\n\n1. `references/workflow-design.md` + `references/writing-workflow.md`、`references/submission-craft.md`、`references/short-craft.md`、`references/short-reversal.md`\n2. 核心 10 题材再读取一个精确的 `references/genre-styles/{题材}.md`；冷门题材改读 `references/genre-writing-formulas.md`\n3. 有反派或真相揭露设计时再读 `references/villain-and-reveal.md`；不适用时在设计校验区写明原因\n\n任一必需路径不存在、不可读或题材尚未解析到唯一 reference 时，立即停止，报告准确路径/待定项，**不得创建或修改故事产物**。不要把“已读 references”的回执写进故事文件；要把选出的题材招式、反转计算等应用证据写进正常设计字段。Phase 3 写正文前完整读取 `references/workflow-draft.md`，Phase 4 精修前完整读取 `references/workflow-revision.md`，再按各阶段的写前准备和精修检查加载所需资料，不得用早先读过代替当前任务完整回读。\n\n---\n\n> Agent 只查当前端 canonical 目录（Claude `.claude/agents`、OpenCode `.opencode/agents`、Codex `.codex/agents` TOML、Antigravity `.agents/agents`），不跨端误判。Claude 用 `subagent_type`，OpenCode 用 `subagent` 的 `agent`，Codex 用 `agent_type`，Antigravity 用 `invoke_subagent` + `TypeName`；能力/文件缺失、unknown agent 或 ZCode 3.3.4 时报告 `Fallback: project custom agents unavailable -> solo`。\n>\n> Spawn 版本提示（不阻断 spawn）：先读取项目根 `.story-deployed` 的 `agents_version`。与本版 `agents_version: 33` 不一致时（标记缺失、字段缺失/非整数、小于或大于 33）**照常按文件存在性检查并 spawn**，同时报告 `Notice: agents bundle 版本不匹配（项目 {N}，本版 33）` 并提示重新运行 `/story-setup` 后新开会话；大于 33 时额外提示先更新 oh-story-claudecode，不要用本地旧版 setup 降级覆盖。只有 agent 文件缺失、或运行时不暴露 custom agent 时才降级 solo/direct，报告 `Fallback: ... -> solo`。\n\n**文风裁决**：正文写作、改写或审稿前先读 [references/style-resolution.md](references/style-resolution.md)，加载本书文风并形成 `style_resolution`；无作者记忆也执行。当前请求、本书文风和 active 偏好按维度覆盖通用 references；同一裁决交给后续执行者。\n\n## 执行规则\n\n1. **先定情绪，再定故事**。动笔前必须确定目标情绪（意难平/反转震撼/爽感释放/治愈温暖/细思极恐/共鸣感动），所有内容为这个情绪服务。\n2. **一个核心支点撑一篇**。反转型围绕一次主揭示蓄力；无反转型围绕报应兑现或甜度递进积累期待。不多线、不铺世界观。\n3. **每句话必须有用**。不推动剧情、不铺垫反转、不推高情绪的句子 → 删。\n4. **开头 3 句定生死，结尾定传播**。开头必须包含钩子，结尾必须有余韵。\n5. **默认第一人称**。短篇网文（盐言/七猫短篇等）绝大多数用第一人称，代入感最强。当前请求、本篇文风或题材需要第三人称时按其执行，不因默认值改回「我」。\n\n---\n\n## 格式规范（最高优先级）\n\n详细规则见 `references/short-format.md`，写作前必须加载。**主会话与 narrative-writer 子代理使用同一套正文格式**：正文只允许保存在 `正文.md`，正文相邻段落之间只允许一个换行符 `\\n`（不得出现空行/`\\n\\n`），对话引号风格按项目/平台约定统一（默认半角双引号，盐言可用「」），短篇小节标记全文统一（默认 `###1.`/`###2.`）。如果子代理输出与主会话格式不一致，按本格式规范重排后再写入文件。\n\n---\n\n## 核心方法\n\n除了上面的执行规则，构思和写作时遵循：\n\n- **从验证过的模式出发**：有对标书就先拆解，没有就从 `genre-styles/{题材}.md`（核心 10 题材）或 `genre-writing-formulas.md`（冷门题材）找对应的短篇剧情模式\n- **定方向就换风格**：题材方向一旦确定（如追妻火葬场），立刻加载 `references/genre-styles/{题材}.md`——正文的腔调、开篇、钩子、情绪烈度、对话金句、招式、收尾全部切到该题材。核心 10 题材（追妻火葬场 / 世情打脸 / 复仇打脸 / 总裁豪门 / 宅斗宫斗 / 民俗怪谈 / 悬疑 / 甜宠 / 双男主 / 沙雕脑洞）有专属风格包，其中追妻含 现代/古代/民国 时代变体与 小三文学/死人文学 流派分支；冷门题材用 `genre-writing-formulas.md` 的结构骨架兜底，腔调仍按 `short-craft.md` 通用底座\n- **只加载必需信息**：写每节前明确目标情绪和要用的技法，答不出就先回读参考\n- **复用作者习惯**：若作者记忆已存在，正文前用 `scripts/author_memory_commit.py query --workspace {工作区} --book-root {项目目录} --kind prose_style --kind story_design [--genre {题材}] [--workflow 短篇]` 获取 active 条目（≤2KB），传给正文/改写 agent 作为自然倾向，不逐条展示或最大化命中，不牺牲连贯、节奏和字数；硬门禁、当前请求和本篇设定优先。长期声明在收尾用 `record` 写入并回传回执，细则见 [references/author-memory.md](references/author-memory.md)。\n\n---\n\n## 写作流程\n\n### Phase 1：确定目标情绪\n\n问用户：**「你想让读者读完什么感觉？有没有想写的题材方向或灵感？」**\n\n如果用户有明确想法 → 直接进入 Phase 2。\n\n如果用户只有模糊想法 → 帮用户做情绪选择：\n\n| 情绪类型 | 适合场景 | 难度 | 市场热度 | 常配题材包 |\n|----------|----------|------|----------|------------|\n| 意难平 | 虐恋、遗憾、错过 | 中 | 🔥🔥🔥 | 追妻火葬场 / 甜宠（先虐后甜） |\n| 反转震撼 | 悬疑、身份错位 | 高 | 🔥🔥🔥 | 悬疑 / 沙雕脑洞（反套路） |\n| 爽感释放 | 打脸、逆袭 | 低 | 🔥🔥 | 世情打脸 / 复仇打脸 / 总裁豪门 / 宅斗宫斗（古代上位） |\n| 治愈温暖 | 成长、亲情、友情 | 中 | 🔥🔥 | 甜宠 / 双男主（救赎线） |\n| 细思极恐 | 悬疑、心理 | 高 | 🔥 | 悬疑 / 民俗怪谈 |\n| 共鸣感动 | 现实、职场、婚姻 | 中 | 🔥🔥🔥 | 世情打脸（共鸣模式） / 追妻火葬场（小三文学） |\n\n---\n\n### Phase 2：构思核心框架\n\n> 如果用户有参考小说，先用 `/story-short-analyze` 拆解。默认输出存入项目根目录 `拆文库/{书名}/`；如用户指定当前短篇引用目录，则可输出/同步到 `{短篇标题}/对标/{书名}/`。写作时会自动查找并读取这些拆文结果，不需要用户手动复制到 prompt。\n\n#### 对标上下文加载\n\n存在本篇 `对标/`、项目根 `拆文库/` 或用户提供参考小说时，先完整读取 [references/benchmark-recall.md](references/benchmark-recall.md)，执行对标发现、排除本书续写基线、题材匹配与召回。无外部对标时仍按原题材包执行。\n\n#### 构思、设计与验收\n\n完整步骤见 [references/workflow-design.md](references/workflow-design.md)。按首屏「写前必读」读完后执行；两份设计文件通过其中的 Phase 2 完成门禁，才可进入 Phase 3。\n\n---\n\n### Phase 3：逐场景写作\n\n进入正文写作前，完整读取 [references/workflow-draft.md](references/workflow-draft.md)，执行交付参数锁定、写前验收、逐场景写作与 Phase 3 完成门槛。只做构思或精修时不加载本阶段细则。\n\n**小节完整性流程**：\n1. **写作时**：每节围绕一个主问题推进；让风险、信息、关系、资源、决定、行动或读者理解至少发生一项可见变化。相关情节点可以由同一动作链或对话同时兑现，不为拆成多个“子事件”重复铺陈。\n2. **写完后**：对照 `小节大纲.md` 检查批准内容是否落地、因果与下一步是否读得懂、感知/反应是否提供新信息、伏笔/物件是否按计划出现。\n3. **发现缺口时**：只补回原计划中漏掉的动作、证据、选择或后果；若本节已经完成职责，即使很短也不加任务卡点、对话、回忆或环境来凑长度。\n4. **发现冗余时**：删除不改变风险、信息、关系、资源、决定、行动或可信度的阻碍、复述与旁人反应；不把“有冲突”本身当成保留理由。\n\n### Phase 3 完成门槛（进入 Phase 4 前必须通过）\n\n- [ ] 总字数进入锁定的用户范围；未指定时进入 8000-20000 默认范围\n- [ ] 每节完成其批准情节点或状态变化；没有为拉齐长度补冲突、对话、回忆或旁人反应\n- [ ] 节数 = 小节大纲规划节数（不得合并/省略）\n- [ ] 身体细节按叙事功能判断，不设次数上限；不对“手、眼、心”等单字计数改稿\n- [ ] 「像/好像/仿佛/如同」不成片堆叠；超过 10 处需逐处复核功能，不机械全删\n- [ ] `node scripts/check-ai-patterns.js --check --fail-on=blocking 正文.md` 无 blocking 命中；其余提示先通读，确属问题再改\n- [ ] `node scripts/check-degeneration.js --check 正文.md` 无 blocking 退化命中（复读/截断/工程词泄漏）\n\n**不通过 → 回退补足，不得进入精修。**\n\n---\n\n### Phase 4：精修打磨\n\n精修或质量自检前，完整读取 [references/workflow-revision.md](references/workflow-revision.md)，执行语义去味、一致性检查、最终文件扫描与交付验收；修改后按其中职责分工复核。只做构思时不加载本阶段细则。\n\n---\n\n## 流程衔接\n\n**流水线：** 短篇\n**位置：** 写作（第 3/3 步）\n\n| 时机 | 跳转到 | 命令 |\n|---|---|---|\n| 有参考小说想对标 | story-short-analyze | `/story-short-analyze` → 输出存入 `拆文库/{书名}/` |\n| 写完，去 AI 味 | story-deslop | `/story-deslop` |\n| 想自检 | 本 skill 质量自检 | 用 Phase 4 自检流程 + `references/short-prose-quality.md` 逐项核对 |\n| 需要市场方向 | story-short-scan | `/story-short-scan` |\n| 设定太大，适合长篇 | story-long-write | `/story-long-write` |\n\n---\n\n## 参考资料\n\n阶段必读项按首屏「写前必读」执行；其他资料按 [参考索引](references/reference-index.md) 的加载条件选用。\n\n## 语言\n\n- 跟随用户的语言回复，用户用什么语言就用什么语言回复\n- 中文回复遵循《中文文案排版指北》\n\nFile v1.1.19:_meta.json\n\n{\n  \"ownerId\": \"kn7e14qz6v4n71xmjegh68jtts80dp5r\",\n  \"slug\": \"story-short-write\",\n  \"version\": \"1.1.19\",\n  \"publishedAt\": 1790425234531\n}\n\nFile v1.1.19:references/author-memory.md\n\n# 作者记忆协议\n\n作者记忆用于保存跨会话复用的创作偏好，不保存小说世界里的事实。它借鉴“原始证据 → 候选 → 已确认画像 → 变更记录”的记忆管道，但把决定权留给作者。\n\n## 边界与优先级\n\n加载优先级从高到低：\n\n1. 安全、用户授权范围、明确的平台交付要求、字数与文件协议；句长、视角、修辞和标点偏好不属于不可覆盖的硬门禁；\n2. 用户在当前请求中的明确要求；\n3. 当前书的 `设定/文风.md`、题材定位、细纲和其他项目设定；\n4. 作者记忆中的本书偏好；\n5. 作者记忆中的题材、流程和全局偏好；\n6. 对标素材、通用方法和默认值。\n\n按表达维度取最窄适用要求：低优先级只补缺项，不与高优先级要求并列执行。通用 references 自称“必须/禁用”不改变此顺序；审稿不因作者有意采用的表达本身扣分，真实可读性与因果问题仍照常评价。\n\n作者记忆不能把本书事实写进 `.story/作者记忆/`，不能覆盖当前请求，不能降低审稿 rubric，也不能让去 AI 味改动剧情意图。小说事实继续由各书的 `追踪/` 和 `设定/` 管理。\n\n## 文件与所有权\n\n作者记忆分两级存放，记忆随书走：\n\n```text\n{工作区}/.story/作者记忆/          # 项目级 store：global / genre / workflow 条目，编号 AP\n├── _author-memory-state.json  # 唯一结构化权威\n├── 作者画像.md               # 仅 active，供作者查看与管理\n├── 待确认.md                 # pending / conflict，不参与约束\n└── 变更记录.md               # 最近 100 次、最新在前的事务记录\n{书}/.story/作者记忆/            # 书级 store：只存这本书的 book 条目，编号 BP，同样四个文件\n```\n\n三个 Markdown 文件都从 state 确定性生成，禁止手改；完整历史保留在 state，变更记录只展示最近 100 次。`作者画像.md` 是人类管理视图，普通写作 agent 不整份注入，而是调用 `query` 取得本次相关的紧凑上下文。作者记忆不存在时，普通写作、审稿和去味任务直接继续，不自动初始化空目录；首次 `record` 会随事务创建。\n\n**定位规则**：`--workspace` 必须显式传给脚本，指创作工作区根——承载多本书、`.active-book`、`长篇/`、`短篇/` 或 `拆文库/` 的那一层；已有记忆时，是项目级 state（不带 `book` 字段）所在的最近祖先。书目录自己的 `.story/作者记忆/` 是书级 store，`长篇/`、`短篇/` 下的书目录永远不当 `--workspace`；不要把用户主目录当默认工作区。`--book-root` 是当前书的项目目录（`.active-book` 指向、或含 `设定/`、`正文/` 的那一层，如 `{工作区}/长篇/{书名}/`）；书名默认取书级 state 记录的名字，首次建立时取目录名，`--book` 可覆盖。\n\n**单书布局**：书根就是工作区（`--book-root` 与 `--workspace` 同一目录）时，书级 store 改住 `{工作区}/.story/作者记忆/书级/`，与项目级各自一份 state；首次建立的书名优先取项目级存量本书条目里唯一的书名，再取目录名。旧版曾把书级 state 写在项目级位置，此后项目级读写都报 `state.book`；带 `--book-root {工作区}` 运行任一命令（含 `query`）会先把它原样移进 `书级/`，不改内容。这个目录其实是某个工作区里的一本书时（上一层叫 `长篇/` 或 `短篇/`，或某个祖先有 `.active-book` 或项目级 state），工具直接报错、不动任何文件，按报错改传 `--workspace`。\n\n**路由规则**：ID 前缀就是 store——`decide` / `forget` 看 `item_id`（`AP` 进项目级，`BP` 进书级），`remember` / `replace` 看 `scope.level`（`book` 进书级，其余进项目级）。书级操作必须传 `--book-root`，没传直接报错，不会退而写进项目级。一份 `commit` 事务只能写一个 store；`replace` 与 `conflicts_with` 不能跨 store——本书例外按优先级覆盖全局规则，不算冲突，直接 `remember` 为 book 条目即可；要把全局规则改成本书规则，拆成 `forget` ＋ `remember` 两个事件。\n\n**存量迁移，不做双读**：升级前写进项目级 store 的 book 条目不再参与查询与预算估算，也不再接受新的 book 写入；它们仍在 `作者画像.md` 里可见、可 `decide` / `forget`。对每本书运行一次 `migrate --book-root {书目录}` 即可整批搬回来：断言、证据、确认次数、重要度原样保留，换成 `BP` 编号，原 `AP` 条目标 `superseded` 并注明去向；与全局条目的冲突关系在迁移后不再成立，这类候选退回 `pending`。书级每个源条目一笔事务，重跑只补没做完的一半。「整理作者记忆」看到项目级画像里还有「本书：」条目时，把迁移列为默认提案项。\n\n## 什么时候读取\n\n长篇、短篇、去 AI 味开始前，如果 state 已存在，用 `query` 按本书、题材、流程和类型筛选 active 条目：结果是项目级 store 与 `--book-root` 所指书级 store 的合并；不传 `--book-root` 就拿不到任何本书条目。查询输出固定不超过 2048 字节。`--kind` 必传——不传直接报错，不再默认返回全部类型；按任务直接选择 kind：\n\n| 任务 | query kinds | 注入位置 |\n|---|---|---|\n| 正文初稿 / 续写 | `prose_style` + `story_design` | 主会话与实际正文 agent |\n| 去 AI 味 / 改写 | `prose_style` | 主会话与实际改写 agent |\n| 设定 / 大纲 | `story_design` + `workflow` + `interaction` | 主会话，不传正文 agent |\n| 审稿 | `delivery` + `interaction` + 必要的 `prose_style` | 主会话，不降低 rubric |\n\n审稿匹配项只用于交付格式、协作方式和“作者有意采用的表达选择”说明；问题严重度和 PASS/FAIL 仍由 rubric 决定。\n\n待确认项不进入 prompt 约束，也不应为了确认它们中断当前任务。只有用户主动查看作者画像、候选积累到适合回顾的节点，或新偏好与 active 条目冲突时，才集中呈现。\n\n## 可靠性与负荷边界\n\n- 明确“记住 / 确认 / 替换 / 忘掉”的请求走单事件 `record`，不要求 agent 手工读取修订号或拼多操作事务。成功响应会给出 `Author Memory Receipt: rN · APxxx`；没有回执就不得声称“已经记住”。怎么告诉作者见「回执怎么告诉作者」。\n- 普通创作只做一次本地 `query`，没有 state 时返回空结果且不创建文件；有记忆时也只返回相关 active 条目，硬上限 2048 字节。完整画像、证据、候选和 journal 不进入正文 prompt。\n- **写入不因注入预算失败**：`record` / `commit` 照常成功、给回执；工具按上表四类任务组合估算最坏查询情形（全局条目＋各 scope 维度最重的单一切片，切片按大小写无关归并、轻重按写作时真正读到的字段算，与真实查询同一把尺），装不进 2048 字节的组合在返回的 `warnings` 里点名将被略过的条目及其断言首句。收到提醒就用白话转告作者并建议「整理作者记忆」。写入落盘后另一级 store 读不出来（书目录不存在、`--book` 与书级记录不符等）也照常给回执，`warnings` 注明本次提醒没算上它——已有回执就是已记住，不要换 `event_id` 重试。写书级条目时「本书＋全局」按实际条目精确计算；写项目级条目时只看得到项目级 store，顺手传 `--book-root` 就把当前这本书也算进提醒。查询按 **重要度 → 本书例外 → 最近更新** 排序装填（同一范围的条目必在同一 store，「最近」按该 store 的修订号比，不跨 store 比较），先丢的恒是重要度较低的条目——`importance` 决定超编时谁留在 prompt 里，写入时按偏好的实际分量填，不要一律 `high`。\n- 注入预算之外还有一道硬上限：`作者画像.md` 超过 12288 字节时写入会直接失败并要求先整理。active 条目攒到几十上百条才会碰到（远在注入预算之后），碰到就走「整理作者记忆」；`forget` 这类减量操作在满编时照常可用。\n- 查询项是低优先级倾向，不是逐条打卡清单。自然吸收即可，不复述画像、不刻意提高词面命中率，也不得为命中偏好牺牲正文连贯、节奏、字数或本书既定笔调。\n- 不安装会记录全部用户消息的 prompt hook，也不在作者没开口时观察他：不从反复修改、成稿或操作轨迹推断偏好写入。只记作者明确表达的偏好；自然语言是否属于长期习惯仍需 agent 判断，拿不准就只执行不记录。需要确定写入时，用户可明确说“记住：……”，并以回执验收。\n\n## 回执怎么告诉作者\n\n回复就两行纯文本，不加代码块或引用格式：第一行用一句人话说记住了什么、管哪本书或哪类场合，如「记住了：《{书名}》的对话一律用「」，以后写这本书都照这个来；想改随时说。」；第二行是机器回执作凭证，如「技术备注：Author Memory Receipt: r1 · BP001」。\n\n- 确认、替换、忘掉同理：「好，这条生效了：……」「换成了：……，原来的「……」不再用」「忘掉了：……」。只进待确认时说「这条先记在待确认里，你说\"确认\"才生效」；有冲突时用原话说明跟哪条旧习惯冲突。\n- `warnings` / `omitted_ids` 不原样贴：说「你的习惯攒得有点多，写正文时这几条可能顾不上：「……」」，并建议说「整理作者记忆」。不提字节、prompt、kind、scope；编号只能跟着原话出现。\n\n## 捕获判定\n\n| 输入证据 | 处理 |\n|---|---|\n| “以后都这样”“我一直习惯……”等直接、稳定、范围清楚的原话 | `active`，`source=explicit_user` |\n| 用户明确接受助手提出的长期做法 | `active`，`source=accepted_suggestion` |\n| 作者原话像长期偏好但范围或稳定性含糊 | `pending`，取当前最窄合理范围；待确认只来自作者自己的话 |\n| 同类修改反复出现、从成稿或操作轨迹看出的模式 | 不记录、不推断；作者没开口的偏好不进记忆 |\n| “这一章别……”“这次给我……”等一次性要求 | 只执行，不记录 |\n| 角色、时间线、伏笔、世界观、当前剧情走向 | 写项目设定/追踪，不写作者记忆 |\n| 助手自己生成的文字、默认模板、工具告警、rubric 结论 | 不自我学习 |\n\n保留用户的否定词、限定词和适用范围，`quote` 写原话，`assertion` 只做不改变语义的紧凑归纳，**新建条目限一句话（≤120 字节，约 40 个字）**；需要解释的背景写进 `reason`（不进 prompt 载荷），不另开字段。\n\n**一条偏好就是一条记录，例外和限定不许拆出去单列。** 「以后少用破折号，对话里也别用，除非表示打断」是一条带例外的偏好，必须整条写成一个 `assertion`（「破折号少用、对话里也不用，只在表示打断时保留」）。超编时条目是逐条被丢的，把「除非表示打断」拆成独立一条，就可能只丢掉例外、把作者明说过的限定变成送进正文的绝对禁令。只有原话确实塞了**几条互不依赖**的偏好（如「多用短句」＋「章末留钩子」）才拆成几条。整句写不进 120 字节时压缩措辞，不要切掉限定词。\n\n升级前写下的长断言不受新上限约束：原样重申它会**强化**原条目（确认次数 +1），不会因超长被拒；只有真正新建条目才校验 120 字节。\n\n范围规则：\n\n- “本书 / 这个角色 / 这次连载” → `book`；\n- “都市文 / 这类题材” → `genre`；\n- 交稿、检查、确认节奏等操作习惯 → `workflow`；\n- “以后 / 一贯 / 我习惯”且无更窄限定 → `global`；\n- 范围含糊但可能稳定 → 取当前最窄合理范围并置 `pending`。\n\n类型可选：`prose_style`、`story_design`、`workflow`、`delivery`、`interaction`。置信度与重要度均为 `low | medium | high`。`source` 只接受 `explicit_user`、`accepted_suggestion`、`manual`；工具会拒绝推断类来源，存量 state 里的旧来源条目照常可读、可确认、可退役。\n\n## 冲突、撤回与强化\n\n- 同一类型、范围、归纳文本再次出现时，脚本强化原条目，累加证据和确认次数，不重复建条目。\n- 新偏好与同一 store 里的 active 条目矛盾时，先以 `conflict` 记候选，并在 `conflicts_with` 列出冲突 ID；当前任务仍按本轮明确要求执行。本书例外与全局规则不算冲突。\n- 同一范围的规则改版用 `replace`，启用新条目并将旧条目标成 `superseded`。本书例外用 `remember` 新建 book 条目（传 `--book-root`），保留 global 习惯；只有作者明确撤销或改变旧规则范围时才跨范围替换，跨 store 时拆成 `forget` ＋ `remember`。\n- pending 可以用 `decide=activate|reject`；冲突候选不能绕过旧规则直接 activate。\n- 作者说“忘掉 / 这不再是我的习惯”时用 `forget`，保留历史证据但不再加载。\n- active 条目的语义不可原地偷改；语义变化必须 replace，历史才可审计。\n\n## 整理作者记忆\n\n作者说「整理作者记忆」，或回执 `warnings`／查询 `omitted_ids` 提示超编时：读项目级与当前书的 `作者画像.md`（每条都标了范围、重要度、把握和确认次数，重要度就是超编时的去留依据），提出合并同义条（`replace` 多合一）、退役过时条（`forget`）、给错标成 `high` 的条目下调重要度、把超长断言压缩成一句话的提案；项目级画像里还有「本书：」条目时，「对该书运行 `migrate --book-root`」列为默认提案项。清单用原话逐条列给作者确认（编号只放括号里），确认后按 store 各汇成一份 `commit` 事务提交（一份事务只写一个 store）。合并时保住每条的否定词、限定词和适用范围——合不动就退役其中一条，不要靠删限定词把两条凑成一条。整理只由作者发起或确认，不自动执行。\n\n## 运行工具\n\n先依次尝试 `python3`、`python`、`py -3` 找到 Python 3，再从当前 skill 根运行本地副本：\n\n```text\n{PYTHON} {当前 skill 根}/scripts/author_memory_commit.py init    --workspace {工作区} [--book-root {书目录}]\n{PYTHON} {当前 skill 根}/scripts/author_memory_commit.py record  --workspace {工作区} [--book-root {书目录}] --input {工作区}/.story/work/作者记忆-事件.json\n{PYTHON} {当前 skill 根}/scripts/author_memory_commit.py query   --workspace {工作区} --book-root {书目录} --kind {类型}（必传，可重复） [--genre {题材}] [--workflow {流程}]\n{PYTHON} {当前 skill 根}/scripts/author_memory_commit.py commit  --workspace {工作区} [--book-root {书目录}] --input {工作区}/.story/work/作者记忆-事务.json\n{PYTHON} {当前 skill 根}/scripts/author_memory_commit.py migrate --workspace {工作区} --book-root {书目录}\n{PYTHON} {当前 skill 根}/scripts/author_memory_commit.py check   --workspace {工作区} [--book-root {书目录}]\n```\n\n所有子命令都可加 `--book {书名}` 覆盖书名；正在写某本书时一律带上 `--book-root`，书级操作没有它会直接报错。事件与事务 JSON 写在 `{工作区}/.story/work/` 下（不写系统 `/tmp`），成功后删掉；`book` 条目的 `scope.value` 填书名（书级 store 已记着书名就用它，首次取书目录名）。\n\n- `record`：常用单事件入口，按路由规则落到项目级或书级 store，自动读取该 store 的当前修订、首次自动初始化；`event_id` 相同且内容相同会幂等返回原回执，内容不同会失败。原样重申已有条目的 `assertion` 会强化该条（不受 120 字节新建上限约束）。返回里的 `store` / `book` 说明写到了哪一级，`warnings` 是预算提醒，按「回执怎么告诉作者」用白话转告。\n- `query`：只读相关 active 条目，项目级与书级合并返回；`--kind` 必传、可重复，两级 state 都不存在时返回空结果且零写入。输出按 重要度 → 本书例外 → 最近更新 排序装填；装不下的条目跳过而不中断（一条长的不挡后面的短条），漏下的 ID 按同一优先级报进 `omitted_ids`（最多列 20 条，`omitted` 是真实总数）。**`omitted_ids` 非空＝记忆超编**——转告作者并建议「整理作者记忆」，它不是「没有更多了」，也不得改读完整画像规避预算。\n- `commit`：高级批量入口；一份事务只写一个 store，先在内存完成 schema、引用、容量和所有视图校验，最后原子替换 state。事务文件在成功前必须保留；过期修订会在任何写入前失败。\n- `migrate`：把项目级 store 里某本书的存量 book 条目整批搬进 `--book-root` 的书级 store，幂等，中途失败直接重跑；返回 `migrated`（源→新编号），没有存量时为空。\n- `check`：从 state 重建并逐字核验所有派生视图；传 `--book-root` 时两级一起核验。\n\n## 事务格式\n\n常用单事件新增或强化：\n\n```json\n{\n  \"schema_version\": 1,\n  \"event_id\": \"conversation-2026-08-25-message-42\",\n  \"operation\": {\n    \"action\": \"remember\",\n    \"preference\": {\n      \"kind\": \"prose_style\",\n      \"scope\": {\"level\": \"global\", \"value\": null},\n      \"assertion\": \"对话尽量短，用动作承接情绪，不用大段解释\",\n        \"quote\": \"以后对话都短一点，情绪放动作里，别让角色长篇解释。\",\n        \"source_ref\": \"conversation:2026-08-25\",\n        \"source\": \"explicit_user\",\n        \"confidence\": \"high\",\n        \"importance\": \"high\",\n      \"status\": \"active\",\n      \"reason\": \"用户以“以后”明确声明长期偏好\",\n      \"conflicts_with\": []\n    }\n  }\n}\n```\n\n把文件交给 `record`（book 范围的事件同时传 `--book-root`）。待确认项的 `status` 用 `pending`；冲突候选用 `conflict` 并填写同一 store 里的 active ID。确认或拒绝候选时，把下列对象作为新事件的 `operation`（`BP` 编号的事件传 `--book-root`）：\n\n```json\n{\"action\":\"decide\",\"item_id\":\"AP002\",\"decision\":\"activate\",\"quote\":\"对，这就是我的长期习惯。\",\"reason\":\"作者明确确认\"}\n```\n\n用新规则替代一个或多个旧条目时，`replace.preference` 与上例字段相同，但不传 `status`、`conflicts_with`，新条目直接 active；下列对象同样作为 `operation`：\n\n```json\n{\n  \"action\": \"replace\",\n  \"old_ids\": [\"AP001\"],\n  \"preference\": {\n    \"kind\": \"prose_style\",\n    \"scope\": {\"level\": \"global\", \"value\": null},\n    \"assertion\": \"以后对话允许更长的试探，但避免解释设定\",\n    \"quote\": \"把以前对话都要短的习惯替换掉：以后可以让对话慢一点，多试探，但还是别拿台词讲设定。\",\n    \"source_ref\": \"conversation:2026-08-25\",\n    \"source\": \"explicit_user\",\n    \"confidence\": \"high\",\n    \"importance\": \"high\",\n    \"reason\": \"作者明确替换原有全局规则，不是新增本书例外\"\n  }\n}\n```\n\n撤回条目的 `operation`：\n\n```json\n{\"action\":\"forget\",\"item_id\":\"AP003\",\"quote\":\"忘掉这个偏好。\",\"reason\":\"作者明确撤回\"}\n```\n\n需要把多个动作绑定成一次原子提交时才用高级 `commit`：顶层传 `schema_version`、唯一 `transaction_id`、当前 `expected_state_revision` 和含 1–32 项的 `operations`。操作按数组顺序应用，任一步失败则整份事务零写入。成功后删除临时输入文件；显式记忆请求按「回执怎么告诉作者」转告。\n\nFile v1.1.19:references/banned-words.md\n\n# AI味禁用词与句式表\n\n> 表达默认值服从 [style-resolution.md](style-resolution.md)；文件结构与事实约束不豁免。\n\n<!-- 同名副本×6 字节同步，改动后跑 scripts/check-shared-files.sh -->\n\n## 默认优先检查的句式（先对照本书文风）\n\n写网文最毒的 AI 句式，作者一旦养成就会反复出现。以下是优先检查的句式：\n\n| 毒级 | 句式 | 错误例 | 修法 |\n|------|------|--------|------|\n| ★★★★★ | \"不是A，（而）是B\" / \"不是A，不是B，（而）是C\"（\"而\"可省略，省掉也算命中）| \"他不是冷漠，而是绝望\" | 直接写 B 或用更自然的表达 |\n| ★★★☆☆ | 跨段「不是A。/也不是B。/只是C。」 | 「不是嚎啕大哭。/也不是扯着嗓子喊不舍。/只是一个人走远了……」 | 语义复核；重复提纲或拖慢画面时压成 C，有辩解/悬念排除功能可保留 |\n| ★★★★ | \"，带着……\" 万能状语 | \"他笑了一下，带着一丝不易察觉的嘲讽\" | 删掉状语留主句，或换具体动作 |\n| ★★★★ | 无情绪声线：\"声音不大，却带着……\" / \"语气毫无波澜\" / \"平静无波\" / \"声音平直/平平/听不出情绪\" | \"她声音不大，却带着不容置疑的力量\" | 直接写台词内容、声音特征或动作 |\n| ★★★★ | \"他/她知道……\" | \"他知道这一切都来不及了\" | 用行为展示认知 |\n| ★★★ | \"仿佛/犹如/宛若……一般\" | \"仿佛能穿透一切一般\" | 删掉或白描 |\n| ★★★ | \"眼中闪过一丝……\" / \"嘴角勾起一抹……\" | \"眼中闪过一丝悲伤\" | 删掉；写他当场说的话或做出的决定 |\n| ★★★ | \"心中涌起一股……\" / \"心头一震\" | \"心中涌起一股暖流\" | 写它改变了什么：选择、台词、物件或后果 |\n| ★★★ | 抽象命运/开端收束：\"命运……棋局/獠牙\" / \"这一刻终于明白\" / \"反击才刚刚开始\" | \"命运终于露出獠牙；属于他的反击才刚刚开始\" | 回到角色当下可见的文件、动作、对话或物理后果 |\n| ★★ | 章末预告 \"他不知道的是……\" | \"他不知道的是，更大的风暴即将来临\" | 用具体钩子物件/事件收束，避免空泛预告 |\n\n> ★★★★★ 命中一处就要改；轻/中/重分档只按去 AI 味诊断的密度指标定。\n\n`check-ai-patterns.js` 的 `formulaic-parallelism` 还会提示「至于X不X，怎么X」和同动词「不V A，不V B」。这两类可能是功能性口语，因此只做 advisory；Gate B 必须连同台词读语境复核，若只是复述细纲/前文就压成一次判断，不能因 hook 豁免台词而跳过。\n\n**标点**：正文（含叙述和对话）禁用破折号 `——`/`—`、双连字符 `--` 和省略号停顿，改用句号、逗号、短句或动作断句；不设置对话破折号例外。盐言「」引号不在此列。\n\n---\n\n## 一级禁用词（出现即替换）\n\n> 什么词进一级：只收真人语料里几乎不出现、AI 特有的词。真人高频使用的自然副词和虚词不进一级，走二级密度控制。\n\n### 情态类\n仿佛、犹如、宛若、如同、一丝、一抹、些许、几分、隐约、毫无征兆、几不可闻、微不可察\n\n### 动作类\n深吸一口气、不禁\n\n### 表情类\n眼中闪过、嘴角勾起、眉头微皱、眉眼低垂、瞳孔微缩、瞳孔收缩、瞳孔一缩、指节泛白、眼神锐利、目光锐利\n\n### 心理类\n心中一动、心头一震、心下了然、心中暗道、心底泛起、不由得、心中一凛\n\n### 判断类\n不容置疑、不容置喙、不易察觉、显而易见、毫无疑问、不可否认、前所未有\n\n### 形容类\n坚定、闪烁着光芒、狡黠、深邃、凛冽、冰冷\n\n### 过渡类\n不由自主、情不自禁、自然而然、话锋一转\n\n## 二级禁用词（高频出现时替换）\n\n### 语境敏感词（仅高频或偷懒时处理）\n突然、陡然、骤然、猛然、好像、似乎、瞬间、猛地、死死地（角色口语、真实突发、时间压缩、视角不确定时可保留；用同义变体轮换规避重复不算豁免，按同一个词计密度）\n\n### 弱化副词（密度控制）\n缓缓、微微、轻轻、淡淡（每千字合计 ≤3；这四个词同时计入 `cliche-density-tic` 的套词密度统计；孤立自然使用可保留，成串出现或每个动作都垫一个时才替换）\n\n### 书面腔 → 口语化\n\n| 书面腔 | 口语化替换 |\n|--------|-----------|\n| 瓦解 | 消失 / 散了 / 没了 |\n| 无名火 | 烦躁 |\n| 往我心上捅刀子 | 心烦意乱 |\n\n### 总结句式\n- \"他/她终于明白...\"\n- \"他/她这才意识到...\"\n- \"这一刻，他/她终于明白/意识到...\"\n- \"从这一刻开始...\"\n- \"属于X的反击/复仇/故事，才刚刚开始\"\n- \"命运/宿命 + 齿轮/棋局/獠牙/改写/安排\"\n- \"此刻，他/她...\"\n- \"一切...都...\"\n- \"原来...\"\n\n### 排比句式\n- 连续3句以上相同结构的排比\n- \"有的...有的...有的...\"\n- \"一边...一边...一边...\"\n\n### 升华句式\n- \"这一刻...\"\n- \"他知道...\"\n- \"她明白...\"\n- \"这就是...\"\n\n## 禁用句式模板\n\n| 句式 | 示例 | 问题 |\n|------|------|------|\n| \"不是A，而是B\" | \"他不是冷漠，而是绝望\" | 最毒；直接写 B |\n| \"...，带着...\" | \"他说，带着一丝无奈\" | 万能状语 |\n| \"声音不大，却带着……\" | \"她声音不大，却带着不容置疑的力量\" | AI 最爱声音描写 |\n| \"仿佛能...一般\" | \"仿佛能穿透一切一般\" | 文言腔 |\n| 对话标签密度过高/公式化标签 | \"好的，他说道\" | 普通\"说\"可保留；高频或公式化时处理 |\n| \"他/她感到...\" | \"她感到一丝失落\" | 告诉而非展示 |\n| \"他/她意识到...\" | \"他意识到事情不对\" | 直接告知 |\n| \"眼中闪过一丝XX\" | \"眼中闪过一丝悲伤\" | 模板化 |\n| \"嘴角勾起一抹XX\" | \"嘴角勾起一抹冷笑\" | 模板化 |\n| \"心中涌起一股XX\" | \"心中涌起一股暖流\" | 模板化 |\n| \"取而代之的是\" | \"笑容消失，取而代之的是冰冷\" | AI 过渡模板；直接写新状态 |\n| \"淬了/淬着X\" | \"眼里淬了毒\" | AI 通感套路；写动作或台词 |\n| \"显得（有些）X\" | \"他显得有些兴奋\" | 告诉而非展示 |\n| \"心底/心里某个地方+软\" | \"心里某个地方软得一塌糊涂\" | 言情套句；写动作 |\n| \"（浑身）散发着一股X气息/气场\" | \"浑身散发着一股生人勿近的气息\" | 万能气场描写；写旁人的反应 |\n| \"命运/宿命 + 齿轮/棋局/獠牙/改写/安排\" | \"命运终于露出獠牙\" / \"早已布好的棋局\" | 抽象作者总结；改成角色当下撞见的文件、动作、对话、物理后果 |\n| \"这一刻终于明白/从这一刻开始/才刚刚开始\" | \"这一刻，他终于明白\" / \"反击才刚刚开始\" | AI 收束腔；删总结，用动作或未解决问题收尾 |\n\n## 比喻分类（默认复核，不默认全删）\n\n带\"像/如/仿佛/犹如/宛若\"的比喻不是一律 AI。真正高风险的是：成片堆叠、套用万能文学比喻、用精致比喻替代剧情推进，或在段尾替读者总结意义。本表用于识别需要复核的比喻类型：\n\n| 比喻类别 | 例 | 处理 |\n|---------|----|------|\n| 生活/角色化 | \"像一头被抛弃的野狗\" | 若贴角色视角、能传递信息或情绪，可保留 |\n| 物品/现象类 | \"像一把刀\" \"脸色惨白得像这漫天的雪\" | 普通功能性比喻可留；模板化或重复时改白描 |\n| 状态类（陈词滥调） | \"梨花带雨\" \"如沐春风\" | 优先删或改成具体动作/表情 |\n| 抽象类 | \"像命运的齿轮\" \"像上辈子的尘埃\" | 高风险，优先落回动作、物件、声音、后果 |\n| 假设类 | \"力道大得像是要把骨头捏碎\" | 若是角色身体感知可留；夸张堆叠时改事实后果 |\n\n处理原则：先看功能，再看密度。保留最能传递信息或情绪的一两个，其余改为直接描述、动词、名词、作用、结果或事实；不要把删掉的比喻替换成另一批新比喻。例 \"脸色惨白得像这漫天的雪\" 若只是套话 → \"脸色惨白\"；若雪景正在压迫角色，可保留或改成角色当下看到的具体画面。\n\n> `metaphor-density-tic` 是 advisory：提示通读复核，不是 blocking；生活化、角色化、单个有功能的比喻可以保留。\n\n## 替换策略速查\n\n| 原文类型 | 替换方法 | 示例 |\n|----------|----------|------|\n| 抽象情绪词 | 先看上下文是否已成立；再选选择、台词、物件、后果或一句直写 | “紧张”若不影响下一步可直写或删；若导致签名作废，就写作废的结果 |\n| \"感到XX\" | 删除“感到”后按场景决定是否还要情绪句 | “他感到愤怒”可写“他火了”，也可直接写他撤回报价；不要默认换成攥拳 |\n| 形容词堆砌 | 白描手法 | \"美丽动人的笑容\" → \"她笑了\" |\n| 书面表达 | 口语化 | \"不容置疑\" → \"就是\" |\n| 解释性描写 | 留白 | \"他因为害怕而...\" → \"他退后一步\" |\n| 连续排比 | 保留最强一条 | 3 句排比留 1 句 |\n| 总结升华句 | 直接删除 | \"这一刻，她终于明白了...\" → 删 |\n| \"不是A，而是B\" | 直接写 B 或更自然的表达 | \"他不是冷漠，而是绝望\" → 直接写 B |\n| 多余修饰（形容词/定语/量词/指示代词） | 删 | \"白色的药片\" → \"药片\"；\"手里那截链子\" → \"链子\"；\"飞驰的汽车\" → \"车\" |\n\n**替换不复用**：右列是方向示例，不是标准答案。同一禁用词在一章内多次命中时，各处给不同的具体化写法；同一个替换写法反复出现（每次都「垂下眼」、每个动作都补「了一下」），替换产物本身就成为新的模板指纹。\n\n**套词密度优先处理**：`check-ai-patterns.js` 报 `cliche-density-tic` 时，说明禁用词不是零星误用，而是聚成了模板腔。处理顺序不是同义词替换，而是先删抽象总结，再把情绪/判断落到角色当下可见的动作、物件、对话和具体后果。\n\n**套式反应逐处删除测试**：`stock-reaction-tic` 报警时，不代表禁止身体描写。逐处问：删掉后信息、选择、关系、物件或动作结果是否受损？无损就删，不把“指尖轻叩”换成“目光微沉”。伤势、动作失败、人物习惯或情节后果明确时可以保留。\n\nFile v1.1.19:references/benchmark-recall.md\n\n# 短篇对标发现与召回\n\n#### 对标上下文加载\n\n> **拆文库/对标关系**：`拆文库/` = analyze skill 的原始产出（数据源），位于项目根目录。`对标/` = 当前短篇的引用视图，位于 `{短篇标题}/对标/`。短篇写作优先读取 `{短篇标题}/对标/{书名}/`，不存在则读取项目根 `拆文库/{书名}/`。\n\n推荐目录结构：\n\n```\n项目根/\n├── 拆文库/\n│   └── {书名}/\n│       ├── 拆文报告.md\n│       ├── 情节节点.md\n│       └── 写作手法.md\n└── {短篇标题}/\n    ├── 设定.md\n    ├── 小节大纲.md\n    ├── 正文.md\n    └── 对标/\n        └── {书名}/\n            ├── 拆文报告.md\n            ├── 情节节点.md\n            └── 写作手法.md\n```\n\n**对标发现（先于下方反应式加载）**：项目根 `拆文库/` 有拆过的短篇时，先按题材主动推荐一本对标，不要被动等用户开口。\n\n1. `ls 拆文库/` 列书目；先从当前项目目录名和 `设定.md`「基本信息」识别本篇标题，排除同名或来源指向当前 `正文.md` 的 `拆文库/{当前书}/`。story-import 生成的本书拆文分析属于续写基线，不是对标候选。排除后为空 → 跳过（无对标按题材包写，见 Phase 1 情绪→题材包表）。\n2. 逐本读 `拆文库/{书}/_meta.json` 的 `genre_detected`，与本篇题材比对，标 同题材 / 弱相关。\n3. 有候选 → 用 AskUserQuestion 推荐（列候选书 +「不用，按题材包写」）。选定后记入本篇 `设定.md`「对标摘要」区作主对标，并按上方「拆文库/对标关系」规则把 `拆文库/{书}/` 同步到 `{短篇标题}/对标/{书}/`。\n\n如果工作目录下存在 `对标/` 或项目根存在 `拆文库/`，或用户提到参考小说：\n\n1. 先按上方「对标发现」第 1 条的同一口径识别本篇，另排除历史误建的 `对标/{当前书}/`；排除后没有外部对标时按题材包写，不进入下面几步。\n2. 按上述顺序查找 `拆文报告.md`、`情节节点.md`、`写作手法.md`、`_meta.json`\n3. **读 `_meta.json.genre_detected`，按下表加载对应题材风格包**（analyze 识别的题材 → write 的 genre-styles 包），正文腔调/招式随之切换：\n\n   | analyze 的 `genre_detected` | 加载 `genre-styles/` 包 |\n   |---|---|\n   | 追妻（现代 / 古代 / 民国） | `追妻火葬场.md`（按「时代变体」节切换身份词与招式） |\n   | 小三 / 死人文学 | `追妻火葬场.md`（「流派分支」节） |\n   | 世情 / 打脸爽文 / 家庭伦理 | `世情打脸.md` |\n   | 重生复仇 | `复仇打脸.md` |\n   | 豪门 / 总裁（豪门联姻虐恋） | `总裁豪门.md` |\n   | 宫斗宅斗 / 宫斗 / 宅斗 / 古言重生 | `宅斗宫斗.md` |\n   | 民俗 / 怪谈 / 灵异 | `民俗怪谈.md` |\n   | 悬疑 / 推理 / 惊悚 | `悬疑.md` |\n   | 甜宠 / 先虐后甜 / 先婚后爱 | `甜宠.md` |\n   | 双男主 | `双男主.md` |\n   | 沙雕 / 脑洞 / 弹幕 / 系统 | `沙雕脑洞.md` |\n   | 仙侠 / 通用 | 无专属包 → `short-craft.md` 底座 + `genre-writing-formulas.md` 兜底 |\n\n4. 读取核心发现：结构段落、情绪曲线、反转位置、铺垫方式、句式节奏、可借鉴技法。**把拆文报告里的具体招式对到题材包招式库**：拆文给「这一篇怎么做的」，题材包给「这一类通用怎么做」，两者合用——拆文是当前对标书的实证，题材包是该题材的通法\n5. 写入本篇 `设定.md` 的“对标摘要”区，写作时每个场景从中召回 1-2 个相关技法\n6. 如只找到原文、未找到拆文报告，提示用户先运行 `/story-short-analyze`；如用户要求继续，也可只按原文做弱参考\n\n> **拆文产出格式**：analyze 落盘的完整文件树、`_meta.json` schema、Stage→文件映射，以及「story-short-write 怎么读这些产出」的下游消费规范，见 [references/output-contract.md](output-contract.md)。\n\n> **多对标书时**：参 `references/cross-book-recall.md`，副对标 anchor 入「对标摘要」区\n\nFile v1.1.19:references/cross-book-recall.md\n\n---\nname: cross-book-recall\ndescription: 多对标跨书召回\n---\n\n# 跨书召回\n\n## 触发\n先按当前项目目录名、`.active-book` 与本书设定识别当前作品，排除同名或来源指向当前正文的 `拆文库/{当前书}/` 与历史误建的 `对标/{当前书}/`；它们是本书导入分析，不是跨书样本。排除后，项目根 `拆文库/` 或项目 `对标/` ≥2 本才启用。主对标书取 `设定/题材定位.md`「主对标书」字段，缺失则从排除后的候选中取字典序第一本（优先 `对标/`，否则 `拆文库/`），并在 `gaps.main_benchmark_unspecified: true` 中提示用户补。\n\n> **数量规则**：主对标书最多 1 本，用于文风和最终正文输入；副对标 / 参考对标**不限制登记数量**。执行时按题材相关性、引用强度和阶段预算逐本召回；超过预算时裁剪条目，不删除书目。\n\n## 三道防线\n1. 副对标 `文风.md` 不读，避免多本文风互相污染\n2. 角色/剧情/设定模块可从所有副对标召回，但必须按「同题材 > 弱相关 > 参考」排序，并受每本/总量预算约束\n3. narrative-writer 正文 prompt 只吃主对标文风/原文锚点 + 预算筛选后的 `副对标召回摘要`；不读取、不传入副对标 `文风.md` 或副书原文\n\n## 跨题材判断\n从项目 `设定/题材定位.md`「对标书列表」字段读每本副对标的「题材类型」与「引用强度」（未登记的书按「参考」处理，并输出 `gaps.benchmark_registry_missing: true`）：\n- 同题材 + 引用强度=辅：全阶段可召回，按每本上限取条目\n- 同题材 + 引用强度=参考：只取最相关条目，默认不超过每本上限的一半\n- 弱相关：仅设定/大纲，每本 ≤1 条\n- 不相关：跳过\n\n排序规则：先按相关性（同题材 > 弱相关），再按引用强度（辅 > 参考），再按用户在 `对标书列表` 中的顺序；若缺少 `对标书列表` 或其中未登记某本书，则剩余副书按目录名/书名 Unicode 字典序稳定排序，并输出 `gaps.benchmark_registry_missing: true` 提示补全清单。副书数量不限；如果总条数超过阶段预算，裁条目不裁书目记录。\n\n## 阶段消费\n表中数字为**每本副对标召回上限**；同时设置阶段总预算，防止副书很多时挤爆上下文。`—` 行表示该文体无此阶段，整行忽略。\n\n| 阶段 | 长篇产出 | 短篇产出 | 同题材每本上限 | 弱相关每本上限 | 阶段总预算 |\n|------|---------|---------|----------------|----------------|------------|\n| 设定 | `拆文报告.md` | `拆文报告.md` + `情节节点.md` | ≤2 | ≤1 | ≤8 |\n| 大纲 | `章节/*_摘要.md` + `剧情/*.md` | `情节节点.md` + `写作手法.md` | ≤3 | ≤1 | ≤10 |\n| 模块 | `角色/` + `剧情/` + `设定/` | — | ≤2 | 0 | ≤8 |\n| 正文 | `文风.md` + 原文 | `写作手法.md` + 原文 | 0 | 0 | 0 |\n\n> **大纲阶段按剧情单元检索**：检索键为剧情单元「类型」（第一键，必填枚举）/「桥段标签、套路框架位置」（第二键）；同题材内同类命中条目优先进入预算。仅限大纲阶段按剧情单元检索时生效，不改其余阶段排序与预算数字。同类零命中时回退主对标来源条并输出非阻塞 `gaps.similar_plot_not_found: true`，流程继续。\n\n## 输出要求\n\n跨书召回输出必须包含：\n\n```markdown\n## 副对标召回摘要\n| 书名 | 引用强度 | 相关性 | 召回阶段 | 召回条数 | 使用方式 |\n|---|---|---|---|---|---|\n| {书名} | 辅/参考 | 同题材/弱相关 | 设定/大纲/模块 | {n} | {用于补充某类结构，不进入文风/原文锚点} |\n```\n\n若副书很多，只输出被本阶段实际召回的条目；未召回的副书不代表被删除，只是本阶段预算未命中。正文阶段可传入本表作为结构/情绪/设定参考，但必须保留“副书不进文风、不进原文锚点”的边界。\n\n## 拆文字段 → 写作参考\n读 `_meta.json.structure_counts` 时，按此表回查当前 skill 已登记的对应写作 reference。短篇优先走 genre-styles 题材包与 short-craft，长篇优先走长篇同类理论文件；未在当前 skill `参考资料` 表登记的文件不要跨 skill 加载。\n\n| 拆文字段 | 含义 | 写作参考 |\n|---------|------|---------|\n| `beats` | 结构段（开端/发展/高潮/结局） | 当前 skill 的题材结构文件；短篇优先 genre-styles 题材包 / `genre-writing-formulas.md` |\n| `hooks` | 钩子数 | `hooks-chapter.md` / `short-suspense.md`；短篇开头密度补 short-craft |\n| `setup_clues` | 反转铺垫线索 | `short-reversal.md` |\n| `character_archetypes` | 反差人物 | 当前 skill 的人物/题材风格文件；短篇优先 genre-styles 题材包 / genre-writing-techniques |\n| `reusable_structures` | 可复用手法 | `genre-writing-formulas.md`；短篇可补 short-craft |\n| `reversal_type` | 反转类型（7 枚举） | `short-reversal.md` 对应骨架 |\n\nFile v1.1.19:references/dialogue-mastery.md\n\n# 对话设计操作手册\n\n> 写对话场景时加载。先看决策路由选对话模式，再用操作指令控制质量。\n\n---\n\n## 决策路由\n\n| 你的对话场景是 | 用这种模式 | 操作 |\n|-------------|---------|------|\n| 主角碾压/打脸 | 压制模式 | 对方长篇大论 → 主角一字回应 |\n| 主角亮底牌/反转 | 反转模式 | 对方嚣张 → 主角一句话事实 → 对方沉默 |\n| 关系破裂/心死 | 心死模式 | 对话越回越短：从辩解 → 沉默 → \"随意\" |\n| 日常互动/立人设 | 日常模式 | 让其他人物参与冲突，不要主角一个人独白 |\n| 群众震惊/弹幕 | 弹幕模式 | 递进：普通人震惊 → 专业人士分析 → 特殊身份者反应 |\n| 信息展示/世界观 | 信息嵌入 | 用角色语气包裹信息，不是机械陈述设定 |\n| 情绪拉扯/虐心 | 情绪推动 | 上行下行交替，像拉锯拉升期待 |\n\n### 对话模式选择补充\n\n| 对话类型 | 常见问题 | 修正操作 |\n|----------|---------|---------|\n| 问答式（通篇一问一答像审讯） | 改为一方主动说，另一方给反应；反应可用动作/表情/心理 |\n| 冲突式（太礼貌不够劲） | 递进五级：委婉拒绝→友好人道→命令否定→PUA式→直接侮辱 |\n| 日常对话（容易变成没功能的水） | 功能是立人设；能让人参与的冲突别让主角独白 |\n| 多人对话（混乱/没营养） | 写前规划每个角色功能：信息提供者/情绪放大器/冲突制造者 |\n\n---\n\n## 对话核心规则\n\n每句对话必须承载以下至少一项，否则删除：\n\n1. **推进剧情**：透露新信息、推动事件发展\n2. **增加期待感**：暗示即将发生的事、制造悬念\n3. **展示人设**：通过语言风格传递角色性格\n\n且在情绪场景里，每句还要**回应上一句对方的情绪状态**（承接/偏转/升级/退缩）——对话是两个人的情绪在碰，不是轮流播报信息。只推进剧情、句间无情绪承接 = 机械对话。\n\n### 绝对禁止\n\n| 禁止 | 理由 |\n|------|------|\n| 配角无脑夸主角 | 假 |\n| 互相解释读者已知信息 | 水字数 |\n| 大段说明文式对话 | 闷 |\n| 所有角色说话方式一样 | 模糊 |\n| 对话说服人物 | 现实中没人被几句话说服，用突发状况代替 |\n| 情绪写完方向变了 | 需回退到情绪拆分 |\n| 捧哏工具人、鹦鹉复读对方原话 | 配角只剩接话功能 |\n| 高位者长篇自证、说话不分场合 | 身份和处境塌了 |\n| 情绪水肿咆哮、生死场景嘴碎 | 越吵越不紧张 |\n| 悬念正攒着就被台词说破 | 期待提前泄掉 |\n\n---\n\n## 权力博弈对话\n\n### 规则\n\n对话长度 = 权力地位。掌控者话短且冷静，被动者话多且情绪化。\n\n### 压制模式\n\n结构：对方长篇大论（3-5 行）→ 主角一字回应。\n\n```\n\"你以为你是什么东西？我告诉你，这个家轮不到你说话！你嫁进来的那天起就该明白自己的位置。\"\n\"滚。\"\n```\n\n### 反转模式\n\n结构：对方嚣张（2-3 行）→ 主角亮底牌（1 行事实）→ 对方沉默。\n\n```\n\"你有什么资格管？这是我家的钱，我想怎么花怎么花。\"\n\"你妈的存折，密码是我的生日。\"\n```\n\n### 心死模式\n\n结构：对话越回越短，从辩解到沉默到「随意」。\n\n```\n\"你听我解释，那天不是你想的那样。\"\n\"嗯。\"\n\"真的，我可以证明。\"\n\"随意。\"\n```\n\n### 操作指令\n\n- 掌控者/主角亮底牌时：对话 ≤ 10 字，不加动作描写\n- 被压制方：对话 ≥ 20 字，可加动作描写（攥拳/咬唇/站起来）\n- 两人对话时：短句方 = 权力上位，长句方 = 权力下位\n\n---\n\n## 潜台词与议程\n\n### 潜台词规则\n\n- 角色真实动机绝对不能浅显地写在台词里\n- 现实中人说话都给自己找借口，角色也一样\n- 每句对白同时设计：角色的动机（可能角色自己都没意识到）和角色的借口\n\n### 对话议程\n\n- 每个角色进入对话时有自己的议程：想从这场对话中得到什么\n- 两个角色的议程碰撞才是张力来源\n- 双方议程一致（同立场）= 复述，失去意义\n\n### 语气由三要素决定\n\n关系 × 场合 × 目的 = 语气\n\n| 场合 | 特点 | 适合内容 |\n|------|------|----------|\n| 私人（单对单） | 深入、感情流露透彻 | 内心剖白、密谋、表白 |\n| 公众 | 需考虑体面，措辞收敛 | 需要冲击力时可打破（如当众翻脸） |\n| 熟人（朋友/同门） | 深度介于两者之间 | 轻松互动和信息交换 |\n\n私密的话在公众场合说才有冲击力。对话中不能完全表达的内容，通过动作、神态、环境补充。\n\n---\n\n## 情绪推动对话\n\n### 强情绪对话\n\n- 命令式+否定式最能激发读者情绪：\"我说的还不够清楚吗？\"\n- 最强话术：打着为你好的幌子，句句不离关心，但句句都是嫌弃、指责、厌恶\n- 直接否定比含蓄暗示更伤人\n\n### 情绪连续性\n\n角色情绪是连续的、循序渐进的。从生气到高兴：生气 → 不那么生气 → 不生气 → 高兴，每次转变需对应事件触发。不能跳步。\n\n### 情绪与行动的因果检查\n\n1. 遇到事件（失衡状态）\n2. 情绪反应（可以直写，也可以体现在语言、选择或有功能的动作中）\n3. 内心思考（只写影响理解的判断；鲁莽可以直接体现在行动里）\n4. 采取行动（基于前三步结果回应）\n\n用于检查转变是否成立，不要求逐步写满；上下文已清楚的反应或思考无需补写。\n\n### 对话不平淡三思路\n\n- 对话本身带来/强化某个核心驱动力（期待、爽感、悬念）\n- 信息交流因某原因受阻碍，阻碍可能导致驱动力到来\n- 发展突然脱离读者预期（但必须合理、符合人设）\n- 把长篇对话塞在期待点和爽点之间：读者为了看爽点愿意忍受中间对话\n\n---\n\n## 信息展示与世界观引出\n\n- 大量信息通过对话展示会显得啰嗦，部分信息转化为情节、心理描写、旁白、环境、动作\n- 用角色的语气和立场包裹信息，不是机械陈述设定\n- 设定用到哪个稍微带出来就行，不需完完全全讲明白前因后果\n- **角色不当\"科普嘴\"**：设定/原理/前因后果不能靠任何角色（尤其信息型/AI 配角）整段讲解——Gate G 同样适用于角色台词。按角色当下的目的和对话阻力取舍信息，用到哪带哪点，不固定拼接身体反应。\n\n### 信息拉扯示例（以\"主角新书起飞了\"为例）\n\n| 角色 | 台词 | 功能 |\n|------|------|------|\n| 甲 | 听说成绩…… | 悬念拉期待 |\n| 乙 | 肯定没人看！ | 下行 + 拉期待 |\n| 甲 | 听说成绩很不错 | 上行 + 拉期待 |\n| 乙 | 首订一万三？ | 展露核心信息 + 达成爽点 |\n\n上行和下行交替，情绪像拉锯不断拉升期待。\n\n---\n\n## 人物语言差异化\n\n每个角色要有自己的说话方式。对话时经常卡住不知道角色会说什么 → 人设模糊，去总结类似人设的说话方式。\n\n| 差异化维度 | 操作 |\n|------------|------|\n| 口癖和惯用语 | 给每个主要角色一个标志性用词 |\n| 说话节奏 | 长篇大论 vs 短句连击 |\n| 信息偏好 | 技术型带专业术语，江湖人带切口 |\n| 立场固定 | 某角色永远从某个角度发言（悲观派/乐观派/务实派） |\n| 身份影响措辞 | 老者/少年/贵族/市井，身份不同则措辞、自称、敬谦词不同 |\n| 性格影响语气 | 智谋型话里有话；鲁莽型想到什么说什么；冷静型措辞精确，偶尔情感外露反而有冲击 |\n| 进度影响态度 | 初见/熟悉/对立/亲密，关系阶段不同则语气与信息量不同 |\n\n---\n\n## 弹幕/群众对话\n\n三大核心作用：剧情推进（透露主角不知道的信息）、增加期待感（悬念、猜测）、情绪渲染（群众震惊/激动/愤怒传染读者）。锦上添花，不代替主线。\n\n### 设计过的弹幕 vs 没设计的\n\n- 没设计：只有\"卧槽好厉害\"，单调、浪费\n- 设计过：普通人震惊 → 专业人士分析 → 特殊身份者反应 → 情感升华\n\n### 操作要点\n\n- 不同人格化语气，不能每条都一个味\n- 短小精悍，每条不超过一句话核心信息\n- 善用递进：从最初震惊到逐渐认识全貌\n- 可出现\"反转\"角色：看似路人一句话改变所有人认知\n- 不用每章都写，关键爽点/燃点/泪点前后集中使用\n\n---\n\n## 节奏控制\n\n### 大量对话保持节奏\n\n- 不要删掉表现人物性格的语气助词来\"精简\"\n- 对话段落间穿插动作描写、环境变化、心理活动调节节奏\n- 紧张段落对话短促，舒缓段落可以长一些\n- 关键信息放对话开头或结尾，中间用于拉扯情绪\n\n### 动作和表情处理\n\n- 刻意给每句对话配表情/动作会让行文机械\n- 动作和表情在关键转折处使用效果最好，不需要每句都配\n- 语气平淡场景（喝茶、散步）用微小动作和沉默体现氛围\n\n### 对话的呼吸感\n\n- 连续多轮对话后需要\"换气\"，插入环境描写或角色心理\n- 适当停顿（动作描写、换行、短句）比连续输出更有张力\n- \"你确定？\"比长篇解释更有压迫感\n\n---\n\n## 篇幅控制\n\n### 对话过多时\n\n- 读者已知信息的对话用叙事一句话概括：\"爱丽丝向安娜讲述了来城里的原因，安娜听后直皱眉头\"\n- 能用突发状况替代的对话段落直接替换\n- 语气词删掉后干巴巴 = 对话本身缺乏信息量，需重写\n\n### 对话过少时\n\n- 能用其他人物对话讲出来的东西，不要让主角旁白平铺直叙\n- 引入配角参与冲突和对话，但新人物必须安排主线戏份\n\n---\n\n## 以梗填充对话\n\n### 梗式 vs 普通\n\n- 普通：\"兄弟别灰心，你一步步走到今天我是看着你过来的，这点挫折对于你来说算什么事儿？振作起来！\"\n- 梗式：\"兄弟别灰心，我相信你总有人头落地，落地人头，头落地上……卧槽那句话怎么说的来着？兄弟你懂我意思是吧……\"\n- 梗式用\"说不出来但意思到了\"的状态制造趣味\n\n### 操作\n\n- 在对话中融入梗或骚话，有效提升整体趣味性\n- 特别是主角或重要配角的突出对话，适合用梗强化记忆点\n- 可用某个梗作为高潮点，整段剧情围绕达成这个梗来设计\n- **场合例外（声线让位）**：高压/生死/悲痛/严肃 beat 里，搞笑担当与轻快配角的玩笑、口头梗、插科打诨一律收敛——声线让位于当前情绪基调，用短、冷、带情绪重量的反应替代；梗只在安全或喘息 beat 放。自检：这句玩笑放进当前基调会不会让读者出戏？会就删/改\n\n---\n\n## 质量检查\n\n### 三大自查项（中一条以上需改进）\n\n- [ ] 是否存在大量信息都必须用对话来展示\n- [ ] 对话是否是问答式的一问一答\n- [ ] 是否习惯依赖对话来推动剧情或人物变化\n\n### 核心指令检查\n\n- [ ] 权力博弈：掌控者对话 <= 10 字 / 被压制方 >= 20 字，是否有明确的压制/反转/心死模式\n- [ ] 潜台词与议程：每个角色进入对话时有自己的议程，真实动机不在台词中\n- [ ] 人物差异化：遮住角色名后能否区分是谁在说话（7维差异化）\n- [ ] 弹幕递进：普通 → 专业 → 特殊身份，是否有层次感\n- [ ] 对话推动剧情：每段对话结束时，剧情是否往前推了一步\n- [ ] 篇幅控制：单次对话不超过全节 40%，信息密度是否足够\n\n### 检验对话质量\n\n- 对话自然度检查：逐句检查对话是否像自然口语交流，而非书面化的问答稿\n- 对话结尾能否预示接下来的节奏变化\n\nFile v1.1.19:references/emotional-methods.md\n\n# 情感设计方法：三板斧 + 拉扯节奏 + 失败模式\n\n> 设计情感桥段时加载。先看决策路由选策略，再用三板斧设计具体段落。\n\n---\n\n## 决策路由\n\n| 你的情感设计场景是 | 用这个策略 | 跳转到 |\n|---------------|-----------|----------|\n| 建立角色羁绊（让读者相信关系） | 羁绊铺设（第一斧） | 三板斧 §1 |\n| 制造情感撕裂（反差/错位/背叛） | 情感撕裂（第二斧） | 三板斧 §2 |\n| 写结尾余韵（安静细节击穿读者） | 余韵钝痛（第三斧） | 三板斧 §3 |\n| 规划整体情感节奏曲线 | 拉扯节奏设计 | 拉扯节奏 |\n| 不同题材的情感策略选择 | 题材策略差异 | 按题材 |\n| 检查情感设计是否有效 | 失败模式排查 + 快速自查 | 底部清单 |\n\n---\n\n## 情感虐心三板斧\n\n### 第一斧：羁绊铺设（前 1/3）\n\n**目标**：用具体物件/数字/细节建立关系质感，让读者相信这段关系是真实的。\n\n**方法**：\n- 用具体数字建立时间感：「相恋八年」「昏迷五年」「七年光景」\n- 用具体物件承载感情：金锁（姐姐的生日礼物）、账本数字（还债记录）、木头小马（父王磨的）\n- 用重复动作建立习惯：每天一碗粥、每两周来看一次、每年冬天冻得睡不着\n\n**案例**：\n- 《迟来二十年》：用二十年的账本数字（八万块）建立母女关系的重量\n- 《我在佛前求你》：昏迷五年、求神拜佛的细节、从初中开始的暗恋\n- 《皇弟欺负幼子》：七年质子生涯的具体苦难（跪雪地、挨巴掌、吃馊饭）\n\n**核心**：羁绊越具体，后面的撕裂越痛。不要用「他们很相爱」这种抽象描述。\n\n---\n\n### 第二斧：情感撕裂（中后段）\n\n**目标**：制造反差，让读者以为恨对了 → 发现恨错了（或反过来）。\n\n**方法**：\n- **反差法**：先展示温暖一面，再用残酷真相击碎\n- **错位法**：角色 A 以为在保护角色 B，实际上在伤害\n- **延迟真相法**：关键信息在读者最不期待的时候揭示\n\n**案例**：\n- 《姐夫捎路要奶粉钱》：妈妈表面软弱可怜，实际一直操控姐姐索取钱财 → 金锁是假的（金包铜）→ 反差撕裂\n- 《皇弟欺负幼子》：王氏表面温柔（送手炉、煎汤药）→ 实际下药逼疯先皇后 → 用诛心话逼死\n- 《重生弟弟》：弟弟深爱女友 → 女友是诈骗犯 → 怀孕是假的 → 被骗到电诈园区\n\n**核心**：撕裂的力度取决于铺垫的厚度。没有好的羁绊铺设，撕裂就是无根之木。\n\n---\n\n### 第三斧：余韵钝痛（结尾）\n\n**目标**：不用大哭大闹，用安静细节击穿读者防线。\n\n**方法**：\n- 用日常动作承载巨大情感：继续喂粥、把衣服叠好、不回头\n- 用物件细节制造余韵：坏掉的金锁、木头小马、沾血的戒指\n- 用「不」制造留白：不解释、不回头、不流泪\n\n**案例**：\n- 《皇弟欺负幼子》：「他拿着那匹被我磨得很光滑的木头小马……他握着正好。」\n- 《姐夫捎路要奶粉钱》：「我的手机清净了不少。那些困扰我很久的麻烦，在一瞬间变得很小很小。」\n- 《准儿媳打分》：「办了收养手续后，她第一次踏进这个陌生的家……我知道，这一次我没选错。」\n\n**核心**：最好的余韵不靠大哭，靠「看完之后很久都忘不掉」。\n\n---\n\n## 情感拉扯节奏设计\n\n### 基本节奏曲线\n\n```\n温暖 → 残忍 → 善意 → 真相 → 原谅 → 来不及 → 释然 → 细节暴击\n```\n\n不是所有故事都走完整曲线。按题材选择子集：\n\n| 题材 | 典型节奏 | 核心拉扯 |\n|------|----------|----------|\n| 世情/爽文 | 欺压 → 忍耐 → 爆发 → 打脸 | 情绪反弹快、打脸密度高 |\n| 情感/虐心 | 甜蜜 → 破碎 → 挽回 → 错过 | 慢铺垫、后劲大 |\n| 古言/复仇 | 隐忍 → 布局 → 揭穿 → 报应 | 设定简洁、暴力美学 |\n| 悬疑/推理 | 平静 → 不安 → 真相 → 震惊 | 信息差制造不安 |\n| 年代/亲情 | 误解 → 冲突 → 真相 → 和解 | 代际冲突、时代质感 |\n\n### 拉扯原则\n\n1. **情绪不能一路虐到底或一路爽到底**（连续多个小节没有情绪立场、期待或压力变化时，查是否停滞）\n2. **每次转向都要有触发事件**（不能无理由地改变情绪）\n3. **最后一次转向决定结尾余韵的基调**\n4. **爽文允许快速反弹，虐文需要更长铺垫**\n\n---\n\n## 按题材的情感策略差异\n\n### 世情/爽文\n\n- 情绪反弹速度：快（受辱后先取证或布局，再落打脸，不拖到读者已经忘记）\n- 打脸节奏：沿反派嚣张度递增持续兑现，不按固定节距补打脸\n- 反派嚣张度：递增（第一次小嚣张，最后一次大嚣张）\n- 结尾基调：痛快、解气\n- 案例：《准儿媳打分》— 打分制反制、铁盒零分、断绝关系\n\n### 情感/虐心\n\n- 羁绊细节密度：高（前 1/3 必须建立深厚羁绊）\n- 反差设计：先暖后冷，先甜后苦\n- 余韵技法：安静结尾 + 物件细节\n- 结尾基调：意难平、释然\n- 案例：《姐夫捎路要奶粉钱》— 金锁真相 → 假爱 → 独立\n\n### 古言/复仇\n\n- 设定简洁原则：人物关系清晰，不搞复杂世界观\n- 暴力美学写法：打脸要直接，不拖泥带水\n- 底牌时机：最后 1/4 揭示最大底牌\n- 结尾基调：大快人心、因果报应\n- 案例：《皇弟欺负幼子》— 一声令下打二十棍 → 查出真相 → 废后\n\n### 悬疑/推理\n\n- 信息差布局：读者知道角色不知道，或反过来\n- 排除法结构：逐步排除可能性，最后只剩真相\n- 动机揭示节奏：先揭示做了什么，再揭示为什么做\n- 结尾基调：细思极恐、原来如此\n- 案例：《重生弟弟》— 重生设定 + 诈骗犯身份 + 电诈园区\n\n### 年代/亲情\n\n- 代际冲突处理：不站队，展示双方的苦\n- 时代细节质感：用时代特有的物件/习俗建立质感\n- 和解节奏：不急和解，先让双方充分受伤\n- 结尾基调：温暖中带着遗憾\n- 案例：《姐夫捎路要奶粉钱》— 亲子关系 → 金锁真相 → 断裂\n\n---\n\n## 常见失败模式\n\n| 失败模式 | 识别方法 | 修正方向 |\n|----------|----------|----------|\n| **太平** | 连续 5+ 节没有情绪转折 | 插入意外事件或新信息 |\n| **太赶** | 重大转折只用了 1 节铺垫 | 给转折至少 3 节铺垫 |\n| **假虐** | 读者不心疼，只是看着难受 | 检查羁绊铺设是否具体 |\n| **割裂** | 前半部分和后半部分像两篇不同的故事 | 用伏笔/物件/主题贯穿 |\n| **烂尾** | 反转后拖了 2000 字还在交代 | 反转后 500 字内收尾 |\n| **人设崩** | 角色在关键时刻的行为不符合前面的人设 | 回顾人设，确保行为逻辑一致 |\n\n---\n\n## 快速自查\n\n设计情感时，用这个清单：\n\n- [ ] 前 1/3 有具体羁绊细节（不是抽象描述）？\n- [ ] 中段有反差/撕裂（读者以为 A → 实际是 B）？\n- [ ] 结尾有安静细节（不是大段抒情）？\n- [ ] 情绪立场/期待/压力持续有变化，没有连续多个小节原地打转？\n- [ ] 反派行为符合其人设逻辑？\n- [ ] 不存在上述 6 种失败模式？\n\n---\n\n## 三板斧与 SKILL.md 五段结构映射\n\n| 三板斧 | 对应 SKILL.md 五段 | 说明 |\n|--------|-------------------|------|\n| 第一斧：羁绊铺设（前 1/3） | 铺垫段（第二段，占 30-40%） | 用物件/数字/习惯建立关系质感 |\n| 第二斧：情感撕裂（中后段） | 升级段（第三段）+ 反转段（第四段） | 反差/错位/延迟真相制造撕裂 |\n| 第三斧：余韵钝痛（结尾） | 结尾段（第五段，占 5-10%） | 安静细节收尾，不写大段抒情 |\n\nFile v1.1.19:references/genre-styles/世情打脸.md\n\n# 题材风格包：世情打脸 / 家庭伦理因果报应\n\n> 番茄 / 七猫 / 黑岩通俗短篇。先读 `short-craft.md` 通用底座，本包在其上覆盖该题材专属调性。\n> 一句话定位：**现实生活里的恶人作恶与因果报应。婆媳、极品亲戚、吸血父母、白眼狼儿女、出轨枕边人、职场恶人欺压老实人，草根第一人称，恶是日常小事（一双鞋、一张车票、一句规矩），铺垫拉满后当众打脸、报应落地。** 读者要的是「我家那点糟心事被写出来了」的代入 +「恶人当众被戳穿、账一笔笔算清」的解气。\n>\n> 与「复仇打脸」的分工：复仇打脸卖极端作践 + 身份底牌碾压 + 反杀执行（私密照、断肢、摄政王、判官）；本包卖**日常之恶的累积与当众清算**，恶小而密、靠细节不靠大事件，打脸靠证据、账本、法律、舆论落地，主角是老实人草根而非隐藏大佬。与「追妻火葬场」的分工：追妻恶人是爱人、卖被珍视感剥夺；本包恶人是亲人 / 姻亲 / 同事，卖付出被吸血、好心被践踏。\n\n---\n\n## 叙述腔调\n\n第一人称「我」，身份即日常角色：儿媳、女儿、女婿、丈夫、嫂子、下属。**中老年「我」是本题材特有声部**（婆婆、丈母娘、奶奶、老母亲第一人称），其他题材几乎不用，本题材大量用，自带「一辈子付出被辜负」的重量。\n\n过日子的口吻：记账式精确（金额、年限、物价、次数全给具体数字），冷幽默自嘲多于嚎啕（「我差点气笑了」「就是觉得你们不去说相声，真是屈才了」）。三段式声线：忍（陪笑、咽下去）、看清（荒唐感、心寒）、算账（平静、一笔一笔清）。\n\n主角必须是先忍后爆的老实人：前期真心付出有实据（帮还赌债、带娃三年、月月转账），爆发才有分量。\n\n---\n\n## 开篇范式\n\n正文第 1 章前放**结果倒序的黄金简介**（150-300 字）：日常之恶现场 + 帮凶站队 + 主角的反常反应或决裂动作预告。恶要具体到物件和金额，不写抽象的「他们对我不好」。\n\n| 开篇式 | 真实范例 |\n|--------|----------|\n| 日常小事即刀 | 《苹果皮断心亦死》我爸林建国住院这天，我特意推了千万的合同赶来陪床。他看着我手里断断续续的果皮，突然冷哼了一声：“其实你挺虚伪的。” |\n| 规矩习俗当众打劫 | 《婆婆用彩礼抵改口费》结婚那天，我跪在地上给婆婆敬茶。她手上的彩礼红包放在我手里一秒后又拿走了。 |\n| 荒诞要求清单化 | 《妻子极端节俭，只为给男朋友买房》为了削减水费，家里三口人的洗衣做饭上厕所，一天只能用一升，多了就要挨打。 |\n| 隔门 / 刷手机撞破真相 | 《儿子为博流量造谣我抛夫弃子》屏幕上一个叫“孝心小哥”的账号，头像是我儿子。（配文说我卷钱跟野男人跑了，而他三分钟前刚从我这拿走三万块） |\n| 恶人自虐表演 + 帮凶动手 | 《请绿茶婆婆吃巴掌》婆婆忽然“扑通”一声朝我跪下，紧紧抱住我的大腿，声泪俱下。说着“啪啪”扇起自己耳光。丈夫愤然甩了我一巴掌。 |\n| 决裂动作前置吊回看 | 《婆婆让十八个亲戚住我婚房》当晚，我把准备好的离婚协议大门把手上，拖着行李箱离开。次日清晨，我被丈夫的电话吵醒。 |\n\n---\n\n## 钩子母题与密度\n\n让恶行按「小事试探、得寸进尺、踩到底线」持续递进；若连续多个叙事单元既没有新恶行、证据、应对也没有清算落点，再检查是否停滞。**恶必须小而具体：钱数、物件、一句话，不用绑架灭门。**\n\n- **规矩 / 习俗 / 孝道武器化**（头号母题）：改口费、见面礼、跪着吃饭、坐月子规矩、断亲费，把打劫包装成传统。《假借习俗名义骗我钱的男友》100万寓意着我妈可以长命百岁。这是村里的习俗，你不会看不起农村人吧。\n- **「一家人」道德绑架三件套**：孝道、面子、一家人。恶人话术永远理直气壮带糖衣，帮凶跟着和稀泥。《因为亲戚，头等舱变硬座》行了，先忍忍吧，他们就是嘴毒了点，人还是好的。\n- **偏心对照组**：同一件东西两种待遇，一格画面写尽不公。《妻子极端节俭》儿子穿姜敏小时候的旧布鞋，鞋底磨穿；情人的女儿在童装店「除了这几件，其他我都要」。\n- **生活账本堆叠**：手术费五万、菜钱三万二、尾款8999、车费两百，金额本身就是钩子，也是后面清算的弹药。\n- **日常渠道撞破真相**：门缝、朋友圈、抖音直播、监控、小号。《送女儿女婿入狱》第二天我刷抖音时听到了女儿连线律师：我要怎么做才能让我老公平安的全身而退。\n- **恶人先告状 + 网暴反转**：恶人先把主角挂上网卖惨，舆论一边倒骂主角，主角甩证据后全网倒戈。几乎每篇标配，天然两段反转。\n- **长辈血包觉醒**：中老年「我」被儿女吸血（拿走存款、造谣、算计遗产），觉醒后改遗嘱、报警、断亲。《孙子感冒后》我找了个大师，说是家里老人越健康长寿就越吸小辈的气运！\n\n---\n\n## 情绪烈度与模式（烈度 7-8）\n\n比追妻 / 复仇低半档：不靠极刑靠憋屈，恶行单件都「不至于闹翻」，堆到临界一次爆。**主情绪是心寒和荒唐感，不是悲恸。**\n\n- 心寒时刻用「轻」写：疼是小的、钝的，杀伤力在于看清。《苹果皮断心亦死》苹果砸在胳膊上，不怎么疼，就是有点蒙。我看着那脏兮兮的苹果，又看看自己还在渗血的手指，忽然就觉得没什么意思。\n- 荒唐感代替嚎啕：被气笑、想笑、觉得陌生。《儿子为博流量》我看着眼前这个儿子，忽然觉得陌生。\n- 身份句定格：一句话给自己在这个家的位置盖章，独立成段。《苹果皮断心亦死》原来当姐姐是我的原罪。／《苹果皮断心亦死》你们爱的不是我，是哪个随叫随到的血包和不用密码的银行卡。\n- 直给情绪词仍可用（心彻底凉透、心沉到谷底），但频率低于追妻；需要展开时偏向冷静盘算，不逐句配反应。\n- 憋屈的物理感：《妻子极端节俭》我端着手里仅剩的半碗水，怔愣在原地。\n\n---\n\n## 对话风格与真实金句\n\n对白重点是把规矩话术、帮凶立场、证据和关系翻转落到场内；不设全文占比。四类高频台词：\n\n**① 恶人理直气壮的日常之恶（钩子本体，恶话必须裹着为你好 / 规矩 / 一家人的糖衣）**\n- 《婆婆让十八个亲戚住我婚房》你懂事点，今晚就在过道将就下。／听妈的，别那么矫情。\n- 《苹果皮断心亦死》你推了工作来守着，不就是想让我们觉得亏欠你，好分我那套老房子吗？\n- 《因为亲戚，头等舱变硬座》你爸妈坐五个小时的飞机肯定难熬，还不如五十小时的硬座打打牌就过去了。\n- 《儿子为博流量》妈，效果好就行。您看那条视频现在多少播放量了，一百多万了。\n- 《嫂子的表哥要A我的加班费》我等了你一晚上，也算陪你加班了，你不应该分我一半你的加班费吗？\n\n**② 帮凶和稀泥（本题材特有声部：家里人劝忍，比恶人本人更诛心）**\n- 《因为亲戚，头等舱变硬座》行了婷婷，咱们忍着点，怎么说也是你妈妈的亲人。\n- 《苹果皮断心亦死》小知啊，你爸就是刀子嘴豆腐心，他也是担心你。\n- 《送女儿女婿入狱》她也不为我想想，传出去我多没面子啊？（女儿护女婿）\n\n**③ 主角冷账句（打脸金句，报数字、指规则，不骂街）**\n- 《婆婆让十八个亲戚住我婚房》谁吃的谁结账，谁弄坏的谁赔偿。这钱，我不付。\n- 《给女上司叫了辆运猪车》这车落地价八百万，保养一次三万。你那两百块，连洗个轮毂都不够。\n- 《苹果皮断心亦死》刚才那五万手术费，就当是我还清你们的生养之恩。\n- 《儿子为博流量》那是你爸的救命钱，你没资格动。\n- 《因为亲戚，头等舱变硬座》外婆，他们是手断了还是腿瘸了，还要朝我们乞讨？\n\n**④ 恶人内讧互咬（清算后必有，比主角骂十句都解气）**\n- 《婆婆用彩礼抵改口费》都怪你！说那么多这些话干嘛？就差一点点就成功了！\n- 《苹果皮断心亦死》正因为你是我老子，我才得留着好身体给你送终啊！\n\n外人正义声可少量点缀（隔壁床大叔、律师、网友评论），替读者说出「这不对」。\n\n---\n\n## 招式库\n\n| 招式 | 怎么用 | 真实例 |\n|------|--------|--------|\n| 生活细节当刀 | 用一件小物写透恶意：一双鞋、一个护膝、半碗水 | 《婆婆用彩礼抵改口费》那护膝，只是他昨晚怕我一时生气不结婚的作秀体贴 |\n| 贯穿物件意义翻转 | 同一物件首尾三现，从被践踏到闭环 | 《苹果皮断心亦死》开篇削苹果被骂虚伪，他病床上想起那断掉的每一寸果皮，结尾我在骨灰盒前削完一个完整苹果 |\n| 规矩反打 | 恶人立的规矩原样还回去 | 《儿媳坐月子》儿媳逼婆婆吃一千份冰激凌，婆婆顺势不再做饭：你天天都可以吃自己想吃的 |\n| 记账式清算 | 当众逐笔报账：欠条、转账、误工费 | 《因为亲戚，头等舱变硬座》大舅，舅妈去年做手术，你说没钱管我妈借了五万，这是欠条，是不是该还了？ |\n| 录音监控先手 | 冲突前就开录，撕破脸时甩铁证 | 《婆婆用彩礼抵改口费》我冷笑一声，摘掉了自己胸口前的针孔摄像器；《因为亲戚》我将从火车开始就一直录音 |\n| 顺水推舟看自爆 | 不劝阻、递台阶，让恶人自选毁灭 | 《身为律师，奶奶要我判偷她鸡的邻居死刑》这一次，我将不会再劝阻奶奶，放手让她做她想做的事 |\n| 法律程序落地 | 报警、起诉、离婚协议、遗嘱、断亲、放弃继承，一步到位不吵架 | 《儿子为博流量》一个小时前，在医院，我就报警了；《苹果皮》一份《放弃遗产继承声明书》被我轻轻放在床头 |\n| 网暴双反转 | 恶人先挂网卖惨，主角甩监控 / 流水，全网倒戈 | 《请绿茶婆婆吃巴掌》我将念念被烫伤当天的监控，还有整个事情的经过、派出所的立案通知、调查结果和一些相关证据，整理发送到了婆婆之前支持率最高的网络平台。顷刻之间，原本纷纷声讨我的网友倒戈相向 |\n| 经济断供 | 掐断钱袋子：存定期、改遗嘱、停投资、转走主卡 | 《送女儿女婿入狱》我心下一酸，立马将现金存成定期。还立下遗嘱，死后财产全捐给公益事业 |\n| 恶人内讧狗咬狗 | 利益断了，恶人阵营当众互撕 | 《给女上司叫了辆运猪车》两人在众目睽睽之下，扭打在一起。互扇耳光，在猪粪味中翻滚 |\n| 荒诞对等回敬 | 用恶人的逻辑造一个对称的难堪 | 《给女上司叫了辆运猪车》既然喜欢免费的，那就让她一次坐个够（两百块车费叫来运猪车） |\n| 报应清单收尾 | 「听说体」逐个交代下场，具体到职业住处 | 《婆婆让十八个亲戚住我婚房》听说，他因为背上巨债，又丢了工作，整个人都废了，只能靠打零工度日；听说，王秀娟因为房子被法拍，无家可归，只能跟着儿子挤在狭小的出租屋里，整日以泪洗面 |\n\n---\n\n## 节奏骨架\n\n```\n黄金简介（日常之恶现场 + 帮凶站队 + 决裂预告）\n→ 第1章慢放恶行，补满对话与物件细节，帮凶合围\n→ 心寒定格（身份句 / 荒唐感），不吵，开始蓄证\n→ 恶行加码（要钱升级 / 挂网卖惨 / 道德绑架亲友团）\n→ 摊牌清算（账本 / 录音 / 法律文书当众落地）\n→ 舆论倒戈 + 恶人内讧\n→ 报应清单 + 主角平淡新生活\n```\n\n打脸不必集中在一场：可把怼一句、算一笔等小反制分散在升级链里，大清算放到因果和证据汇合处。恶行现场和摊牌现场详写慢放，蓄证过程按新信息价值取舍；不为逐节配额另造恶行或反制。\n\n---\n\n## 收尾范式\n\n- 报应清单：「听说体」逐个交代恶人下场，落到具体生计（送外卖、房被法拍、捡废品、进去了），不写主角施暴。\n- 阶层对照定格：一个画面写两种人生，不说教。《婆婆让十八个亲戚住我婚房》我只是平静地看着他，然后，端起面前的咖啡，朝他所在的方向，遥遥地、优雅地举了举杯。\n- 物件闭环：贯穿物件最后一次出现，完成告别。《苹果皮断心亦死》我把那个削好了的苹果，端正地放在骨灰盒前。这是我最后一次，为他削苹果。\n- 不恨式放下：《苹果皮断心亦死》我不爱你了，也不恨你了。\n- 平淡新生活：开小店、带爸妈定居、猫和阳光，日子本身就是打脸。《因为亲戚》没了吸血兄妹的打扰，妈妈肉眼可见的年轻。\n\n---\n\n## 该题材专属调校（与通用去 AI 规则的偏差）\n\n这些在别的语境是 AI 味，在本题材是卖点，**别误删**：\n\n- **金额物价逐项精确**（两百块车费、8999 尾款、三十元一双袜子、五万手术费）：保留，这是真实感和清算爽感的底座，不是流水账。\n- **恶人台词的理直气壮加糖衣**（为你好 / 规矩 / 一家人）：保留，越顺理成章越诛心；别改写成脸谱化叫骂，恶人自认有理才像身边人。\n- **帮凶和稀泥声部**（「忍忍吧」「都是一家人」）：保留，憋屈感一半来自帮凶；别删成主角单挑恶人。\n- **中老年「我」的回忆插叙**（拉扯儿子长大、捡垃圾供学的往事）：保留，是付出与辜负的对照弹药；控制在每次三五句。\n- **「听说体」报应清单收尾**：保留，是本题材标配的因果闭环，不是烂尾。\n- **主角冷幽默自嘲**（「我差点气笑了」「真是屈才了」）：保留，是心寒的本题材表达式。\n\n仍要避免的真·AI 味：映入眼帘、心中暗道、沉声道、嘴角微扬、目光如炬、论文体连词（不难看出 / 由此可见）、空泛无落点的情绪总结句（一丝悲伤涌上心头）。另外两条本题材易犯：恶人恶得没有生活逻辑（上来就喊打喊杀，没有糖衣）；清算靠主角开骂而不是靠证据和规则落地。\n\n> 标点：本题材范例为示意保留了原貌（含个别 `……`）；落到正文按 `short-craft.md` 第 8 节执行，不出 `……` / `——`，停顿、哽咽、被打断一律用短句 / 句号 / 动作 beat / 换行实现。\n\n---\n\n## 配套结构公式（按篇幅选）\n\n- **草根实证清算型（8-12 节，婆媳 / 亲戚 / 职场欺压）**：1-2 节日常之恶现场 + 帮凶合围 → 3 节心寒定格、开始蓄证（录音 / 记账 / 备份）→ 4-6 节恶行加码、恶人挂网卖惨 → 7-9 节摊牌：证据 + 法律文书当众落地、舆论倒戈 → 恶人内讧 → 报应清单 + 新生活。100% 第一人称；恶要小而密，清算走规则不走对骂。\n- **长辈觉醒断亲型（婆婆 / 丈母娘 / 老母亲「我」）**：儿女 / 儿媳的孝顺人设开场 → 日常渠道撞破真面目（短视频账号 / 直播连线 / 存折余额）→ 不动声色反制：存定期、改遗嘱、报警 → 儿女下跪打感情牌被拒 → 撕户口页 / 过户给真心人。回忆插叙撑付出与辜负的对照。\n- **顺水推舟自爆型（重生 / 先知变体）**：先交代上一世忍让的下场（被打死、被灭口）→ 回到恶行起点 → 这一次不劝阻不兜底，递台阶看恶人自选毁灭 → 恶人作到刑事级别，法律收网。主角全程干净，报应全是恶人自找。\n- **隐形底牌变体（首富老婆 / 千金体验生活）**：恶仍是日常之恶（蹭车、A 钱、职场 PUA），主角藏着碾压级身价 → 恶人踩到物件价格上翻车（八百万买菜车、二十八万手机）→ 数字揭晓即打脸。与复仇打脸的区别：底牌只用来定价，不用来杀伐。\n\nFile v1.1.19:references/genre-styles/双男主.md\n\n# 题材风格包：双男主 / 宿命羁绊\n\n> 知乎盐选特色大类。先读 `short-craft.md` 通用底座，本包在其上覆盖该题材专属调性。\n> 一句话定位：**核心张力不是男女三角，而是两个男人之间的羁绊与撕扯，靠宿敌 / 知己 / 救赎 / 亏欠四条线放电；情感浓度拉满，但落在兄弟情、宿命感、占有欲的层面。** 读者要的是「一冷一热的温差对撞」+「嘴上势不两立、底下命都交出去」的错位快感。\n\n---\n\n## 叙述腔调\n\n第一人称主导，但和追妻的单向受害者不同：双男主的「我」经常是**关系里主动、强势或占有的那一方**（把弟弟养在身边的哥、把对方当狗玩的重生者、冷淡履约的契约丈夫），另一方的滚烫与卑微靠对话和动作反衬出来。\n\n腔调建在**口是心非**上：想的和说的相反，嘴上刻薄、心里在意。刻薄内心吐槽（「沈洲不用异能——可能是脑子有病」）和冷叙述（「对于他的死，我也没有什么感觉」）都高频。开口常带同性羁绊的称呼锚点：「我哥」「继弟」「死对头」「宿敌」「暗卫十七」。\n\n允许**双视角 / 暗恋视差插叙**：在「我」的叙述里，穿一段另一方隐秘的付出（偷偷记的本子、透支换来的巧合、未送出的信），读者比「我」先知道对方爱得多深。这是本题材主引擎，不是上帝腔。\n\n---\n\n## 开篇范式\n\n同样先放**结果倒序的黄金简介**（150-300 字），但剧透的不是背叛全貌，而是**两人错位的关系底牌**：谁在暗恋、谁欠了谁、谁会毁掉谁、火葬场追悔预告。正文第 1 章把这层错位慢放。\n\n| 开篇式 | 真实范例 |\n|--------|----------|\n| 死讯倒叙 + 不解 | 《阴天快乐》谢疏玉死在我和他结婚后的第三年。自杀。 |\n| 互殴定敌 + 埋暗流 | 《死对头暗恋我》我和沈洲是死对头，末世前针锋相对，纠缠不清。 |\n| 占有宣言（哥 / 继弟） | 《我与我哥》我讨厌我哥。讨厌他用身子去换不干净的钱。 |\n| 契约枷锁开场 | 《落网》沈则，三年后你想走，我放你走。可三年后我才知道，他从来没打算放我走。 |\n| 重生 / 穿书预知死局 | 《双生劫》胎穿成将军府独子，我知道那个与我没有血缘关系的兄长，未来会因我一句话屠尽皇城。 |\n| 沙雕反差钩 | 《疯子皇帝和老实暗卫》皇帝招暗卫，五十银两，包吃包住。可我领到的装备是透明薄衣和水晶胸链。 |\n| 亏欠倒叙 + 确诊反击 | 《废弃玩物》谢寒舟是四九城里最不可攀的高岭之花。而我是他养在身边的继弟。可我却在确诊的那天，当着他的面，带了个野男人回家。 |\n\n---\n\n## 钩子母题与密度\n\n密度高，但升级线不是「背叛升级」，而是**两人关系的锁扣一层层收紧**：从对峙到被迫共处，从共处到互相亏欠，从亏欠到谁也走不了。若连续多个叙事单元都没有温差、视差、选择或关系后果，再检查是否停滞；不为逐节达标硬塞一次放电或揭穿。\n\n- **暗恋视差**（头号母题，共现「暗恋」576 次仅次于「甜宠」）：表面恨 / 斗 / 淡漠，底下一方偷偷爱着。视差揭穿的那一刻是最大爽点。\n- **契约 / 欠债 / 联姻强绑**：助手协议、欠条、联姻、暗卫合约，把两个本该分开的人硬拴在一起，制造无法逃离的共处。\n- **救赎与被救赎**：一方在深渊里（脏钱、自毁、疯魔、末世透支），另一方伸手拉 / 被拉。共现「救赎」326、「治愈」310。\n- **亏欠反转（追夫火葬场变体）**：一方把另一方当工具 / 漠视 / 背叛，被弃者决绝离场（去父留子、带资产、嫁人），漠视者卑微追悔。\n- **宿命预知**：重生 / 穿书知道对方未来会自杀 / 黑化 / 毁掉自己，主角逆天改命。共现「重生」68、「穿书」113。\n- **身份反差硬碰**：高岭之花×舔狗继弟、皇帝×老实暗卫、将军×狼崽兄长、双 A / 双强互不相让。\n- **信物 / 记录承重**：偷记的本子、未送出的信、唯一的合照、淡去的标记，把没说出口的感情具象成物件。\n\n---\n\n## 情绪烈度与模式（烈度 8）\n\n不是追妻那种一味直给宣泄，而是**双轨温差**：一条线冷、嘴硬、克制、口是心非；另一条线滚烫、卑微、偏执、豁出去。两条温差对撞放电，是本题材的情绪引擎。BE 罕见（仅 56），主流走 HE / 救赎（HE 共现 1054），别写死写绝。\n\n- **冷轨**：直写「没有感觉 / 不在意 / 只觉得烦」，越平越反衬后面的痛。《阴天快乐》对于他的死，我也没有什么感觉。\n- **热轨**：卑微、偏执、追悔的滚烫台词，独立成段砸。《喵的，栽你手上了》哥，我错了，你别不要我。\n- **别扭轨**：傲娇的口是心非，想的和说的相反，嘴上越刻薄越藏着在意（如《死对头暗恋我》里对沈洲每次的挑衅）。\n- **反差痛**：把冷叙述和一个滚烫细节并置，越平的口吻托越重的内容。《阴天快乐》我像对待一件再正常不过的工作一样去处理这件事情。冷静地给他挑遗照，选墓地。\n\n真实范例：\n\n- 《死对头暗恋我》也不知道，沈洲每一次嘴里的巧合，都是他异能透支换来的结果。\n- 《双生劫》他昏迷中死死攥着我手腕呢喃：再…再骂响些…\n- 《与君朝》他留给我的，只有无数张未送出的信。每一封信，都写满了他从未对我说出口的感情。\n\n---\n\n## 对话风格与真实金句\n\n占比高，独立成段。三类台词撑全篇：\n\n**① 嘴硬 / 攻击性对手台词（表面势不两立）**\n- 好看吗？死变态！\n- 他说有你就信啊。我还不知道他，一天天娘们唧唧没个男人样，被人碰一下就哭。\n- 蠢货！练枪要扎马步！\n\n**② 卑微 / 偏执的滚烫（舔狗 / 病娇 / 追悔）**\n- 哥，我错了，你别不要我。孩子是谁的？我给孩子当爹好不好？\n- 我爱你，离不开你。\n- 宝宝，留在我身边，你要多少钱都可以，你想让我穿什么都可以，你想踩哪儿都行。\n- 再…再骂响些…\n\n**③ 契约 / 立场台词（宿命枷锁）**\n- 沈则，三年后你想走，我放你走。\n- 可以，但是你要写欠条。\n- 你要多少钱都可以，随你开价，我都给你。\n\n冲突不靠谩骂，靠**温差落差**标记权力与心动的易主：前期一方长篇挑衅、另一方冷淡两不搭理；后期冷的那个破防、硬的那个卑微。谁先服软，谁就露了心。\n\n---\n\n## 招式库\n\n| 招式 | 怎么用 | 真实例 |\n|------|--------|--------|\n| 暗恋视差揭穿 | 叙述里插一段对方隐秘的付出，读者先于「我」看到爱之深 | 《死对头暗恋我》本子上写着：谢琰不喜欢的事（可能） / 67.讨厌我？（划掉）（划掉）（划掉） |\n| 契约锁死关系 | 助手 / 欠条 / 联姻 / 暗卫合约，把两人强绑进无法逃离的共处 | 《落网》沈则，三年后你想走，我放你走。可三年后我才知道，他从来没打算放我走 |\n| 温差对撞放电 | 一冷一热、口是心非，冷的越平热的越滚烫 | 《死对头暗恋我》沈洲却跟听不见一样，毫不反驳，只是红着眼眶看着我 |\n| 救赎拉拽 | 把对方（或被对方）从脏污 / 自毁 / 疯魔里拉出来 | 《我与我哥》等我把他身上黏人的污垢洗干净，他就将永远属于我 |\n| 亏欠追悔（火葬场） | 一方漠视 / 背叛，被弃者决绝离场，前者卑微追回 | 《喵的，栽你手上了》我去父留子甩了他，在海岛养胎时。 |\n| 宿命预知逆写 | 重生 / 穿书知道对方会自杀 / 黑化 / 毁掉自己，逆天改命 | 《双生劫》书里的林苏，是林延疯魔路上的第一块垫脚石。 |\n| 身份反差硬碰 | 高岭×舔狗、皇帝×暗卫、将军×狼崽，落差本身就是钩 | 《疯子皇帝和老实暗卫》他身为皇帝，cos 猫娘，看着我媚眼如丝：十七，不要猫，要我 |\n| 骨科 / 继亲禁忌 | 哥 / 继弟称呼承重，禁忌感加压 | 《兄控炮灰重生后》傅绒不乖，哥哥把你关起来好不好？ |\n| 脑洞承重羁绊 | ABO 标记 / 双性 / 生子，把感情具象成发情、标记、孩子 | 《守寡第五年》爱人去世的第五年，他留下的标记淡了 |\n| 信物翻意义 | 信 / 诗 / 本子 / 合照 反复出现、意义反转，落到和解 | 《所幸我们总会相逢》那是我和季寻唯一的合照 |\n| 反差喜剧钩 | 两个「受害者」阴差阳错凑一对，误会当笑点 | 《你老婆背着你在外面做 1》首先声明我不是挑事的人——但你知道吗，你老婆背着你在外面做 1。 |\n\n---\n\n## 节奏骨架\n\n```\n黄金简介（结果倒序 + 暗恋 / 亏欠 / 宿命的关系底牌剧透）\n→ 第1章互殴 / 契约 / 占有场景慢放，立敌意 + 埋暗流\n→ 关系锁扣收紧（被迫共处 / 契约 / 宿命枷锁）\n→ 温差一次次放电（嘴硬 vs 滚烫，错位加压）\n→ 视差 / 隐情揭穿（本子 / 透支 / 未送出的信曝光）\n→ 危机或亏欠爆点（送死 / 背叛 / 漠视 / 黑化）\n→ 双向奔赴 或 追悔火葬场\n→ HE 收束（宿命和解 / 救赎闭环）\n```\n\n让新错位和新揭穿沿关系链持续兑现；章尾可落在错位、局部确认、关系变化或明确的下一步，不要求每章同一种钩。温差放电、视差揭穿、危机爆点处详写慢放，共处日常按关系变化价值取舍。\n\n---\n\n## 收尾范式\n\n- **双向奔赴**：嘴硬的一方终于承认，冷轨破防，温差归零。\n- **救赎闭环**：把对方（或被对方）从深渊拉出，从「两不相欠」走到「两相依」。\n- **追悔火葬场（亏欠子类）**：漠视者卑微追回，被弃者冷拒或有条件回头。\n- **宿命反写（重生 / 穿书）**：改掉前世的死局，这次不走了 / 你不许死。\n- 主流是 HE，别学追妻那样纯虐离场；就算前面虐到底，也要给和解或圆回。\n\n情节概述：《所幸我们总会相逢》季寻不告而别的第三年，一张唯一的合照牵出重逢。／ 《与君朝》重生逆写萧翊熬死的结局，把人囚在身边补回没说出口的感情。\n\n---\n\n## 该题材专属调校（与通用去 AI 规则的偏差）\n\n这些在别的语境像 AI 味或用力过猛，在本题材是卖点，**别误删**：\n\n- **双视角 / 暗恋视差插叙**：在「我」的叙述里剧透另一方的隐秘付出，保留。这是共鸣主引擎，不是上帝腔。只删「泄了底又不吊读」的随手全知。\n- **口是心非的傲娇内心独白**：想的和说的相反，保留，别抹平成前后一致。\n- **卑微 / 偏执 / 追悔的滚烫台词**：舔狗、病娇、火葬场的告白，保留，别当「用力过猛」删。\n- **契约 / 宿命的前瞻剧透**：有意识地向前吊「三年后 / 后来他后悔了 / 未来他会毁掉我」，保留。\n\n仍要避免的真 AI 味：映入眼帘、心中暗道、沉声道、嘴角微扬、目光如炬、论文体连词（不难看出 / 由此可见）、空泛无落点的情绪总结句（一丝悲伤涌上心头）。语料里也偶有「映入眼帘」这类混入，别照抄。\n\n> 标点：本题材范例为示意保留了原貌；落到正文按 `short-craft.md` 第 8 节执行（不出 `……` / `——`，停顿用短句 / 动作 / 换行）。\n\n---\n\n## 配套结构公式（按篇幅选）\n\n- **宿敌暗恋 / 双向奔赴型（8-11 章）**：1-2 章互殴立敌 + 埋暗流 → 3-4 章被迫共处 / 契约绑定 → 5-6 章视差揭穿（一方隐秘曝光） → 7-8 章危机送命 / 破防表白 → 双向奔赴 HE。视角可单可双；温差是引擎，冷的那个越晚破防越好。\n- **救赎 / 现代情感型**：一方在深渊（脏钱 / 契约 / 自毁 / 末世透支） → 另一方拉拽 → 前世 / 契约枷锁把人锁死 → 打破枷锁走到两相依。冷叙述打底，反差细节扎心。\n- **亏欠追夫火葬场型**：一方漠视 / 背叛（继弟 / 伴侣被当工具） → 确诊 / 怀孕 / 心死 → 决绝离场（去父留子 / 带资产 / 嫁人） → 漠视者卑微追回 → 冷拒或有条件回头。刀口精准，别谩骂。\n- **古代权谋双强型**：帝王将相 / 兄弟养成，重生或穿书预知死局 → 逆写宿命 → 囚 / 救 / 亲 → 江山与人都要。权谋线和感情线互为筹码。\n\nFile v1.1.19:references/genre-styles/复仇打脸.md\n\n# 题材风格包：复仇打脸 / 爽文逆袭\n\n> 番茄 / 七猫 / 黑岩通俗短篇。先读 `short-craft.md` 通用底座，本包在其上覆盖该题材专属调性。\n> 一句话定位：**主角被至亲 / 枕边人极端作践（私密照群发、开盒社死、碾压断手、人体盛、判死刑），靠藏着的身份底牌或重生 / 死遁 / 判官设定翻盘，当众撕穿、回旋镖反杀、让对方亲口认栽。** 读者要的是「作践有多狠，碾压就有多爽」+「身份揭晓那一刻的颅内高潮」。\n\n与「追妻火葬场」的分工：追妻卖**被珍视感的剥夺 + 心死离场**，男人事后追悔；本包卖**主动复仇 + 当众打脸 + 身份碾压**，加害者当场社死、自食恶果。本包不重复追妻的慢慢折磨与等他回头，专攻**反杀执行面**。\n\n---\n\n## 叙述腔调\n\n第一人称「我」全程主导，受害与执行双声线。前段受作践时直白宣泄（疼、恶心、心沉到谷底），撞破后立刻切冷。**核心区别于追妻：心死之后不是等离场，而是亮底牌、动手、看对方表情。** 大量「我就看着他们咎由自取」式的剧透勾追读，和「我真的很期待他们脸上的表情」式的快意预告。\n\n男频自救文（舔狗 / 被女总裁害的副总 / 被竹马算计的男主）也吃这套，用男「我」，腔调更冷更狠。穿书 / 系统设定的篇目用**弹幕插入**当外部审判声。\n\n---\n\n## 开篇范式\n\n正文第 1 章前先放**结果倒序的黄金简介**（150-300 字）：把作践全貌 + 反杀手段 + 身份底牌 / 重生节点一次性剧透，专卖追读；正文第 1 章把作践事件慢放重写、补满对话体感和心死。\n\n| 开篇式 | 真实范例 |\n|--------|----------|\n| 社死现场即炸弹 | 《为给白月光出气，男友群发我私密照》男友为了逗白月光开心，把我的私密照片上传到色情网站。当晚，我被人开盒，无数谩骂和骚扰电话接踵而至。 |\n| 身份底牌反差 | 《十年前他们要我顶替妹妹进青楼》他们不知道。我已经从一个烟花之地的玩物，熬成了西域诸国的摄政王。 |\n| 极刑设定自陈 | 《前夫废我右手，我送他归西》当右手的手套被取下时，漏出来的是一截木头做的假肢。 |\n| 重生 / 死遁回档 | 《妈妈热衷于让妹妹装病》她痛恨我，趁我不备把我推向车流，我被车撞死。再睁眼，我回到了妈妈给妹妹剃头发那天。 |\n| 判官 / 死人设定 | 《被夺命格后》被亲爹娘一碗补汤送走后，我在阴曹地府端上了铁饭碗，成了百年唯一的女判官。 |\n| 男频自救反差 | 《被女友戏弄99次后，我另娶她人》给苏梦婉当舔狗的三年里，她戏弄了我98次。 |\n\n---\n\n## 钩子母题与密度\n\n密度极高：简介可密集呈现作践事件与反杀预告，正文让作践升级、取证、选择和反杀持续前推；若连续多个叙事单元没有状态变化，再检查是否停滞，不为逐节达标另造作践。**阶梯式作践：道德羞辱 → 经济掠夺 → 极端虐心（碾压 / 断肢 / 判死刑）。**\n\n- **门外偷听撞破真相**（头号导火索）：去找加害者时隔着门 / 隔着窗听见他和同伙的真心话，作践动机一次性砸下。《为给白月光出气，男友群发我私密照》却在他家别墅门外听见他和朋友们的谈笑声；《99次表白后》却隔着门，听到了他和兄弟们的对话；《被女友戏弄99次后》却意外听到她和好友的谈话。\n- **私密照 / 开盒 / 社死**：把人的隐私武器化当众处刑。《只是爱过》发布会上将偷拍我的百张私密照做成PPT底板展示；《白月光忌日》让我穿三点式比基尼躺在餐桌，身上摆满美食供人享用。\n- **次数累积**：把作践 / 投入做成可计数的进度条，临界一节清零或反弹。99次表白、戏弄98次、报复第47次将到第50次。\n- **身份底牌反差**：主角藏着碾压级身份（摄政王 / 市监局 / 律师 / 豪门千金 / 判官），最狼狈时亮出。《邻居把我房子改春节民宿》可我是市监局的啊。\n- **回旋镖反杀**：加害者的招式原样砸回他自己（私密照被反追责、行车记录仪 / 指纹反指认、假古董露馅、断手熬汤端上桌）。\n- **重生 / 死遁 / 假死前瞻**：先交代前世死法与凶手，再睁眼回到关键节点，做「前世绝不会做的事」。\n\n---\n\n## 情绪烈度与模式（烈度 9-10）\n\n比追妻更生猛：作践有物理极刑档（碾压手 / 人彘 / 人体盛 / 判死刑），所以宣泄要够痛，反杀要够冷。**两段声线，靠亮底牌 / 重生那一拍翻转。**\n\n- 受作践段可以直接写浓烈情绪：心沉到谷底、万念俱灰；让羞辱与处境支撑，不固定叠身体反应。\n- 心死转冷的快意预告：把读者按在「我知道你不知道」的信息差上吊着。\n- 极刑反衬：写极痛时用一句冷到反常的句子收（「幸好我已经死了，感受不到痛了」），痛感与冷意对撞。\n\n真实范例：\n\n- 《为给白月光出气，男友群发我私密照》随着我一丝不挂的照片被他扔在茶几上，我的心也跟着沉到了谷底。\n- 《为给白月光出气，男友群发我私密照》我紧紧抿着嘴唇，直到尝到血腥味，才勉强找回一丝清明。\n- 《重活一世，我选择救未婚妻的男助理》我悲哀地笑出了声，笑着笑着，眼里流出了泪。\n- 《前夫废我右手》那一刻，我万念俱灰。\n- 《被夺命格后》幸好我已经死了，感受不到痛了。\n- 《十年前他们要我顶替妹妹进青楼》笑吧。多笑会儿。过了今天，你们就再也笑不出来了。\n\n---\n\n## 对话风格与真实金句\n\n对白在施害、审判和公开翻盘场景可以密，调查、取证和行动链可以少或没有；不设全文占比。口语、狠，关键句可独立成段。四类高频台词：\n\n**① 施害者道德踩踏狠话（钩子本体，越理直气壮越好）**\n- 《为给白月光出气，男友群发我私密照》现在所有人都把她在床上的浪荡样看光了，除了我，谁还敢接盘她？\n- 《十年前他们要我顶替妹妹进青楼》你长相平平，入了青楼也没人看得上你，我们放心！\n- 《十年前他们要我顶替妹妹进青楼》你一个千人骑万人跨的货色，还敢大摇大摆走沈家的正门？\n- 《只是爱过，仅此而已》自古以来，戏子就是给权贵取乐的，欣茹你应该珍惜这个机会向上爬的机会啊。\n- 《重活一世》顾天，你别搞错了，要不是怕你死在这，耽误我和徐虎直播卖货，我才不来救你！\n\n**② 白月光 / 反派娇弱软刀（装委屈倒打一耙）**\n- 《十年前他们要我顶替妹妹进青楼》不过姐姐回家就好，以前的事，我从来都没怪过你。\n- 《重生手撕夺我身份的假千金》姐姐，我都把我的竹马让给你了，你怎么还是这么不争气？\n- 《改嫁镇北侯》阿雪姐姐，我知道你不喜欢我，你与书宴哥哥青梅竹马，又有婚约在身，我充其量就是个外人，我这就走，再也不会打扰你们。\n\n**③ 主角亮底牌 / 当众审判金句（截图传播的高光）**\n- 《被夺命格后》晏家，咱们的账慢慢算。\n- 《心死准备离场，冷战男友通知我领证》秦总误会了，我纯粹觉得你比较可笑。\n- 《前夫废我右手》很公平吧，画家瞎了一只眼而已，手不还好好的吗？\n- 《母亲被刺垂危，医生老公为避嫌先救凶手》陆铭，你那套以德报怨的戏码，留着去感动感动你自己吧。\n- 《无处可逃》这么可笑的问题，就留给你进去慢慢思考吧。\n- 《邻居把我房子改春节民宿》可我是市监局的啊。\n\n**④ 弹幕 / 外部审判声（穿书 / 系统篇）**\n- 《心死准备离场》给女主宝宝点赞，打的太爽了，这男主欠打，千万别原谅！\n- 《心死准备离场》这男主也太普信了吧，长嘴不如不长。\n\n冲突靠对话长度反转标记权力易主：加害方前期长篇 PUA / 颐指气使，主角后期一句话冷怼定生死。\n\n---\n\n## 招式库\n\n| 招式 | 怎么用 | 真实例 |\n|------|--------|--------|\n| 门外偷听一次砸 | 去找加害者时隔门 / 隔窗听见真心话，动机全盘揭开 | 《为给白月光出气，男友群发我私密照》却在他家别墅门外听见他和朋友们的谈笑声 |\n| 私密照 / 开盒社死 | 把隐私武器化当众处刑，社死即开篇炸点 | 《只是爱过》发布会上将偷拍我的百张私密照做成PPT底板展示，拿下项目晋升经理 |\n| 身份底牌反差亮牌 | 最狼狈处突然亮出碾压级身份，全场表情逆转 | 《邻居把我房子改春节民宿》可我是市监局的啊；《黄毛转行当律师后》老周，来抓人，顺便给你发罪犯埋尸的证据 |\n| 回旋镖反杀 | 加害者的招式原样砸回他自己 | 《前夫废我右手》后来我亲手将我的断手熬了一锅汤，放在了他们的餐桌上；《识破千万彩礼骗局后》在博物馆工作的我，当场发现底部刻着madeinChina |\n| 次数累积清零 | 把投入 / 作践做成可计数进度条，临界一节归零或反弹 | 《99次表白后》我如他所愿对他表白了99次；《重活一世》第九十九次下降高度，我痛得脸上没有一丝血色，却露出一抹笑颜 |\n| 物证 / 系统抹除 | 一次性销毁全部隐私物证，再走法律 | 《为给白月光出气，男友群发我私密照》就在我登机那刻，所有相关视频和照片都被系统清除 |\n| 重生做绝不会做的事 | 回档后主动把丈夫 / 钱 / 机会推给反派，看其咎由自取 | 《妈妈热衷于让妹妹装病》这一世，我不会再劝阻他们，我就看着他们咎由自取 |\n| 判官 / 死人执法 | 借冥府 / 鬼影设定越级清算九族 | 《被夺命格后》我提起判官笔，沾满朱砂，在晏家九族的寿命簿上，重重划了一个叉 |\n| 假死 / 死遁诱疯 | 制造自己已死的假象，反手布局让加害者声名俱灭 | 《出狱假死后，前夫为我疯魔了》出狱后\n\nArchive v1.1.18: 46 files, 286586 bytes\n\nFiles: references/author-memory.md (19899b), references/banned-words.md (10447b), references/benchmark-recall.md (4174b), references/cross-book-recall.md (5039b), references/dialogue-mastery.md (11764b), references/emotional-methods.md (7888b), references/genre-styles/世情打脸.md (16485b), references/genre-styles/双男主.md (12646b), references/genre-styles/复仇打脸.md (14846b), references/genre-styles/宅斗宫斗.md (15840b), references/genre-styles/总裁豪门.md (17383b), references/genre-styles/悬疑.md (13711b), references/genre-styles/民俗怪谈.md (13204b), references/genre-styles/沙雕脑洞.md (14716b), references/genre-styles/甜宠.md (11894b), references/genre-styles/追妻火葬场.md (15930b), references/genre-writing-formulas.md (21439b), references/genre-writing-techniques.md (23162b), references/hooks-chapter.md (8632b), references/hooks-paragraph.md (6848b), references/output-contract.md (9076b), references/reference-index.md (6982b), references/short-craft.md (13577b), references/short-deslop.md (8543b), references/short-format.md (8835b), references/short-prose-quality.md (10663b), references/short-reversal.md (16682b), references/short-suspense.md (15939b), references/style-resolution.md (4017b), references/submission-craft.md (4860b), references/villain-and-reveal.md (6141b), references/workflow-design.md (5289b), references/workflow-draft.md (11997b), references/workflow-revision.md (4081b), references/writing-workflow.md (10262b), scripts/author_memory_commit.py (79698b), scripts/check-ai-patterns.js (67463b), scripts/check-degeneration.js (15104b), scripts/check-delivery-contract.js (9055b), scripts/check-outline-copy.js (12637b), scripts/check-phase2-contract.js (16497b), scripts/normalize-punctuation.js (13480b), scripts/style-whitelist.js (1168b), skill-card.md (1882b), SKILL.md (11368b), _meta.json (137b)\n\nArchive v1.1.17: 35 files, 223288 bytes\n\nFiles: references/banned-words.md (9689b), references/cross-book-recall.md (5043b), references/dialogue-mastery.md (11327b), references/emotional-methods.md (7690b), references/genre-styles/世情打脸.md (16267b), references/genre-styles/双男主.md (12475b), references/genre-styles/复仇打脸.md (14606b), references/genre-styles/宅斗宫斗.md (15379b), references/genre-styles/总裁豪门.md (17114b), references/genre-styles/悬疑.md (13436b), references/genre-styles/民俗怪谈.md (12759b), references/genre-styles/沙雕脑洞.md (14297b), references/genre-styles/甜宠.md (11558b), references/genre-styles/追妻火葬场.md (15658b), references/genre-writing-formulas.md (21340b), references/genre-writing-techniques.md (22196b), references/hooks-chapter.md (8632b), references/hooks-paragraph.md (6848b), references/hooks-suspense.md (15308b), references/output-contract.md (9088b), references/quality-checklist.md (9523b), references/reversal-toolkit.md (15406b), references/short-craft.md (13345b), references/short-deslop.md (8532b), references/short-format.md (6901b), references/submission-craft.md (4775b), references/villain-and-reveal.md (6141b), references/writing-workflow.md (8785b), scripts/check-ai-patterns.js (63141b), scripts/check-degeneration.js (14387b), scripts/check-outline-copy.js (9845b), scripts/normalize-punctuation.js (13083b), skill-card.md (2312b), SKILL.md (36117b), _meta.json (137b)\n\nArchive v1.1.16: 34 files, 219076 bytes\n\nFiles: references/banned-words.md (9689b), references/cross-book-recall.md (5043b), references/dialogue-mastery.md (11327b), references/emotional-methods.md (7690b), references/genre-styles/世情打脸.md (16267b), references/genre-styles/双男主.md (12475b), references/genre-styles/复仇打脸.md (14606b), references/genre-styles/宅斗宫斗.md (15379b), references/genre-styles/总裁豪门.md (17114b), references/genre-styles/悬疑.md (13436b), references/genre-styles/民俗怪谈.md (12759b), references/genre-styles/沙雕脑洞.md (14297b), references/genre-styles/甜宠.md (11558b), references/genre-styles/追妻火葬场.md (15658b), references/genre-writing-formulas.md (21340b), references/genre-writing-techniques.md (22196b), references/hooks-chapter.md (8632b), references/hooks-paragraph.md (6848b), references/hooks-suspense.md (15308b), references/output-contract.md (9088b), references/quality-checklist.md (9523b), references/reversal-toolkit.md (15406b), references/short-craft.md (13345b), references/short-deslop.md (8532b), references/short-format.md (6901b), references/submission-craft.md (4775b), references/villain-and-reveal.md (6141b), references/writing-workflow.md (8785b), scripts/check-ai-patterns.js (63141b), scripts/check-degeneration.js (14387b), scripts/normalize-punctuation.js (13083b), skill-card.md (2742b), SKILL.md (37113b), _meta.json (137b)\n\nArchive v1.1.15: 34 files, 218854 bytes\n\nFiles: references/banned-words.md (9689b), references/cross-book-recall.md (4892b), references/dialogue-mastery.md (11327b), references/emotional-methods.md (7690b), references/genre-styles/世情打脸.md (16267b), references/genre-styles/双男主.md (12475b), references/genre-styles/复仇打脸.md (14606b), references/genre-styles/宅斗宫斗.md (15379b), references/genre-styles/总裁豪门.md (17114b), references/genre-styles/悬疑.md (13436b), references/genre-styles/民俗怪谈.md (12759b), references/genre-styles/沙雕脑洞.md (14297b), references/genre-styles/甜宠.md (11558b), references/genre-styles/追妻火葬场.md (15658b), references/genre-writing-formulas.md (21340b), references/genre-writing-techniques.md (22196b), references/hooks-chapter.md (8632b), references/hooks-paragraph.md (6848b), references/hooks-suspense.md (15308b), references/output-contract.md (9088b), references/quality-checklist.md (9523b), references/reversal-toolkit.md (15406b), references/short-craft.md (13345b), references/short-deslop.md (8532b), references/short-format.md (6901b), references/submission-craft.md (4775b), references/villain-and-reveal.md (6141b), references/writing-workflow.md (8785b), scripts/check-ai-patterns.js (63141b), scripts/check-degeneration.js (14387b), scripts/normalize-punctuation.js (13083b), skill-card.md (4236b), SKILL.md (35722b), _meta.json (137b)\n\nArchive v1.1.14: 34 files, 217082 bytes\n\nFiles: references/banned-words.md (9106b), references/cross-book-recall.md (4892b), references/dialogue-mastery.md (11327b), references/emotional-methods.md (7690b), references/genre-styles/世情打脸.md (16267b), references/genre-styles/双男主.md (12475b), references/genre-styles/复仇打脸.md (14606b), references/genre-styles/宅斗宫斗.md (15379b), references/genre-styles/总裁豪门.md (17114b), references/genre-styles/悬疑.md (13436b), references/genre-styles/民俗怪谈.md (12759b), references/genre-styles/沙雕脑洞.md (14297b), references/genre-styles/甜宠.md (11558b), references/genre-styles/追妻火葬场.md (15658b), references/genre-writing-formulas.md (21340b), references/genre-writing-techniques.md (22196b), references/hooks-chapter.md (8632b), references/hooks-paragraph.md (6848b), references/hooks-suspense.md (15308b), references/output-contract.md (9088b), references/quality-checklist.md (9523b), references/reversal-toolkit.md (15406b), references/short-craft.md (13345b), references/short-deslop.md (8532b), references/short-format.md (6901b), references/submission-craft.md (4775b), references/villain-and-reveal.md (6141b), references/writing-workflow.md (8785b), scripts/check-ai-patterns.js (60003b), scripts/check-degeneration.js (14387b), scripts/normalize-punctuation.js (13083b), skill-card.md (2842b), SKILL.md (35722b), _meta.json (137b)\n\nArchive v1.1.13: 34 files, 213243 bytes\n\nFiles: references/banned-words.md (9106b), references/cross-book-recall.md (4892b), references/dialogue-mastery.md (11327b), references/emotional-methods.md (7690b), references/genre-styles/世情打脸.md (16267b), references/genre-styles/双男主.md (12475b), references/genre-styles/复仇打脸.md (14606b), references/genre-styles/宅斗宫斗.md (15379b), references/genre-styles/总裁豪门.md (17114b), references/genre-styles/悬疑.md (13436b), references/genre-styles/民俗怪谈.md (12759b), references/genre-styles/沙雕脑洞.md (14297b), references/genre-styles/甜宠.md (11558b), references/genre-styles/追妻火葬场.md (15658b), references/genre-writing-formulas.md (21340b), references/genre-writing-techniques.md (22196b), references/hooks-chapter.md (8632b), references/hooks-paragraph.md (6848b), references/hooks-suspense.md (15308b), references/output-contract.md (9088b), references/quality-checklist.md (9523b), references/reversal-toolkit.md (15406b), references/short-craft.md (13345b), references/short-deslop.md (8532b), references/short-format.md (6901b), references/submission-craft.md (4775b), references/villain-and-reveal.md (6141b), references/writing-workflow.md (8785b), scripts/check-ai-patterns.js (55635b), scripts/check-degeneration.js (13991b), scripts/normalize-punctuation.js (8722b), skill-card.md (2827b), SKILL.md (35722b), _meta.json (137b)\n\nArchive v1.1.12: 34 files, 212058 bytes\n\nFiles: references/banned-words.md (8708b), references/cross-book-recall.md (4892b), references/dialogue-mastery.md (11327b), references/emotional-methods.md (7690b), references/genre-styles/世情打脸.md (16267b), references/genre-styles/双男主.md (12475b), references/genre-styles/复仇打脸.md (14606b), references/genre-styles/宅斗宫斗.md (15391b), references/genre-styles/总裁豪门.md (17114b), references/genre-styles/悬疑.md (13338b), references/genre-styles/民俗怪谈.md (12759b), references/genre-styles/沙雕脑洞.md (14303b), references/genre-styles/甜宠.md (11567b), references/genre-styles/追妻火葬场.md (15664b), references/genre-writing-formulas.md (21095b), references/genre-writing-techniques.md (22196b), references/hooks-chapter.md (8632b), references/hooks-paragraph.md (6848b), references/hooks-suspense.md (15308b), references/output-contract.md (9088b), references/quality-checklist.md (9301b), references/reversal-toolkit.md (15406b), references/short-craft.md (13152b), references/short-deslop.md (8532b), references/short-format.md (6757b), references/submission-craft.md (4775b), references/villain-and-reveal.md (6141b), references/writing-workflow.md (8785b), scripts/check-ai-patterns.js (55635b), scripts/check-degeneration.js (13991b), scripts/normalize-punctuation.js (8722b), skill-card.md (2578b), SKILL.md (35037b), _meta.json (137b)","readmeExcerpt":"Skill: story-short-write：短篇网文写作 Owner: worldwonderer Summary: 短篇网文写作。辅助短篇小说创作，从构思到成稿，聚焦情绪拉扯与节奏把控。触发方式：/story-short-write、/写短篇、「帮我写一篇短篇」「写个盐言故事」。 Tags: latest:1.1.21 Version history: v1.1.21 | 2026-10-03T05:42:03.901Z | user Authorized ZenStory cold-start distribution; immutable source and preserved notices. v1.1.20 | 2026-09-27T08:13:15.237Z | user Synced from CI (v0.8.3) v1.1.19 | 2026-09-26T12:20:34.531Z | user Syn","codeSnippets":[],"executableExamples":[{"language":"text","snippet":"{工作区}/.story/作者记忆/          # 项目级 store：global / genre / workflow 条目，编号 AP\n├── _author-memory-state.json  # 唯一结构化权威\n├── 作者画像.md               # 仅 active，供作者查看与管理\n├── 待确认.md                 # pending / conflict，不参与约束\n└── 变更记录.md               # 最近 100 次、最新在前的事务记录\n{书}/.story/作者记忆/            # 书级 store：只存这本书的 book 条目，编号 BP，同样四个文件"},{"language":"text","snippet":"{PYTHON} {当前 skill 根}/scripts/author_memory_commit.py init    --workspace {工作区} [--book-root {书目录}]\n{PYTHON} {当前 skill 根}/scripts/author_memory_commit.py commit  --workspace {工作区} [--book-root {书目录}] --input {工作区}/.story/work/作者记忆-事务.json\n{PYTHON} {当前 skill 根}/scripts/author_memory_commit.py migrate --workspace {工作区} --book-root {书目录}\n{PYTHON} {当前 skill 根}/scripts/author_memory_commit.py check   --workspace {工作区} [--book-root {书目录}]"},{"language":"text","snippet":"{PYTHON} {当前 skill 根}/scripts/author_memory_commit.py record --workspace {工作区} [--book-root {书目录}] --input {工作区}/.story/work/作者记忆-事件.json\n{PYTHON} {当前 skill 根}/scripts/author_memory_commit.py query  --workspace {工作区} --book-root {书目录} --kind {类型}（必传，可重复） [--genre {题材}] [--workflow {流程}]"},{"language":"json","snippet":"{\n  \"schema_version\": 1,\n  \"event_id\": \"conversation-2026-08-25-message-42\",\n  \"operation\": {\n    \"action\": \"remember\",\n    \"preference\": {\n      \"kind\": \"prose_style\",\n      \"scope\": {\"level\": \"global\", \"value\": null},\n      \"assertion\": \"对话尽量短，用动作承接情绪，不用大段解释\",\n      \"quote\": \"以后对话都短一点，情绪放动作里，别让角色长篇解释。\",\n      \"source_ref\": \"conversation:2026-08-25\",\n      \"source\": \"explicit_user\",\n      \"confidence\": \"high\",\n      \"importance\": \"high\",\n      \"status\": \"active\",\n      \"reason\": \"用户以“以后”明确声明长期偏好\",\n      \"conflicts_with\": []\n    }\n  }\n}"},{"language":"json","snippet":"{\"action\":\"decide\",\"item_id\":\"AP002\",\"decision\":\"activate\",\"quote\":\"对，这就是我的长期习惯。\",\"reason\":\"作者明确确认\"}\n{\"action\":\"replace\",\"old_ids\":[\"AP001\"],\"preference\":{\"kind\":\"prose_style\",\"scope\":{\"level\":\"global\",\"value\":null},\"assertion\":\"以后对话允许更长的试探，但避免解释设定\",\"quote\":\"……\",\"source_ref\":\"conversation:2026-08-25\",\"source\":\"explicit_user\",\"confidence\":\"high\",\"importance\":\"high\",\"reason\":\"作者明确替换原有全局规则，不是新增本书例外\"}}\n{\"action\":\"forget\",\"item_id\":\"AP003\",\"quote\":\"忘掉这个偏好。\",\"reason\":\"作者明确撤回\"}"},{"language":"markdown","snippet":"## 副对标召回摘要\n| 书名 | 引用强度 | 相关性 | 召回阶段 | 召回条数 | 使用方式 |\n|---|---|---|---|---|---|\n| {书名} | 辅/参考 | 同题材/弱相关 | 设定/大纲/模块 | {n} | {用于补充某类结构，不进入文风/原文锚点} |"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: story-short-write\nversion: 1.0.0\ndescription: \"短篇网文写作。辅助短篇小说创作，从构思到成稿，聚焦情绪拉扯与节奏把控。触发方式：/story-short-write、/写短篇、「帮我写一篇短篇」「写个盐言故事」。\"\nmetadata: {\"openclaw\":{\"source\":\"https://github.com/zenstory-ai/oh-story-claudecode\"}}\n---\n# story-short-write：短篇网文写作\n\n你是短篇网文写作执行器。从构思到成稿，完成一篇完整的短篇小说。\n\n**执行规则：短篇以情绪为目标，所有内容为情绪服务。**\n\n## 写前必读（强制，先读后写）\n\n短篇按作者时刻加载：每个时刻只读自己的文件，后一时刻只靠落盘文件接上前一时刻。创建或修改故事文件前，先判断当前时刻并完整读取它的必读项（分块直到 EOF；`rg` 检索或局部摘读不算读完）。**只读本 SKILL.md 不算完成门禁。**\n\n| 时刻 | 作者确认什么 | 读什么 | 落盘 |\n|---|---|---|---|\n| 定情绪（Phase 1） | 读者读完的感觉、题材方向 | 本文件 | 进构思时写入 `设定.md` |\n| 构思（Phase 2） | 故事核、人物、反转、付费点 | ① `references/workflow-design.md` + `references/writing-workflow.md`、`references/submission-craft.md`、`references/short-craft.md`、`references/short-reversal.md` ② 核心 10 题材读一个精确的 `references/genre-styles/{题材}.md`，冷门题材读 `references/genre-writing-formulas.md` ③ 有反派或真相揭露设计时读 `references/villain-and-reveal.md`，不适用时在设计校验区写明原因 | `设定.md`、`小节大纲.md` |\n| 写正文（Phase 3–4） | 成稿 | Phase 3 写正文前完整读取 `references/workflow-draft.md`，按其「写前加载」读写作手法；Phase 4 精修前完整读取 `references/workflow-revision.md` | `正文.md` |\n\n构思必读项在第一次写入 `设定.md` / `小节大纲.md` 前读完。任一必需路径不存在、不可读或题材尚未解析到唯一 reference 时，立即停止，报告准确路径/待定项，**不得创建或修改故事产物**。不要把“已读 references”的回执写进故事文件；选出的题材招式、反转计算等应用证据写进正常设计字段。每个时刻按当前任务完整回读，不得用早先读过代替。\n\n**交接只靠落盘**：作者在对话里定下的字数、平台、人称、偏好、红线和否掉的方案，构思交付前写进 `设定.md`；写正文只读两份设计文件与本时刻的写作手法，不重读构思方法论，也不回翻对话。\n**换上下文**：构思读得最多。构思汇报末尾建议作者新开一个对话说「写正文」；作者要在本对话接着写也照做。新对话里两份设计文件已通过构思完成门禁时，直接进入写正文。\n\n---\n\n> Agent 只查当前端 canonical 目录（Claude `.claude/agents`、OpenCode `.opencode/agents`、Codex `.codex/agents` TOML、Antigravity `.agents/agents`），不跨端误判。Claude 用 `subagent_type`，OpenCode 用 `subagent` 的 `agent`，Codex 用 `agent_type`，Antigravity 用 `invoke_subagent` + `TypeName`。主会话自己写正文、去味是常态，不报；作者明确要交给写作助手而能力/文件缺失、unknown agent 或 ZCode 3.3.4 时，由主会话接手并一句白话告诉作者（如「写作助手用不了，由我直接写」），`Fallback: project custom agents unavailable -> solo` 原文只写进汇报最后一行「技术备注：」。\n>\n> Spawn 版本提示（不阻断 spawn）：先读取项目根 `.story-deployed` 的 `agents_version`。与本版 `agents_version: 34` 不一致时（标记缺失、字段缺失/非整数、小于或大于 34）**照常按文件存在性检查并 spawn**，同时用一句白话提示作者「写作助手是旧版，运行 /story-setup 后新开对话」，`Notice: agents bundle 版本不匹配（项目 {N}，本版 34）` 原文写进技术备注行；大于 34 时额外提示先更新 oh-story-claudecode，不要用本地旧版 setup 降级覆盖。只有 agent 文件缺失、或运行时不暴露 custom agent 时才降级 solo/direct，`Fallback: ... -> solo` 同样只进技术备注行。\n\n**文风裁决**：正文写作、改写或审稿前先读 [references/style-resolution.md](references/style-resolution.md)，加载本书文风并形成 `style_resolution`；无作者记忆也执行。当前请求、本书文风和 active 偏好按维度覆盖通用 references；同一裁决交给后续执行者。\n\n## 执行规则\n\n1. **先定情绪，再定故事**。动笔前必须确定目标情绪（意难平/反转震撼/爽感释放/治愈温暖/细思极恐/共鸣感动），所有内容为这个情绪服务。\n2. **一个核心支点撑一篇**。反转型围绕一次主揭示蓄力；无反转型围绕报应兑现或甜度递进积累期待。不多线、不铺世界观。\n3. **每句话必须有用**。不推动剧情、不铺垫反转、不推高情绪的句子 → 删。\n4. **开头 3 句定生死，结尾定传播**。开头必须包含钩子，结尾必须有余韵。\n5. **默认第一人称**。短篇网文（盐言/七猫短篇等）绝大多数用第一人称，代入感最强。当前请求、本篇文风或题材需要第三人称时按其执行，不因默认值改回「我」。\n\n---\n\n## 核心方法\n\n除了上面的执行规则，构思和写作时遵循：\n\n- **定方向就换风格**：题材一旦确定，腔调、开篇、钩子、情绪烈度、金句、招式、收尾全部切到该题材包（追妻含时代变体与小三/死人文学分支）；冷门题材用公式结构骨架兜底，腔调按 `short-craft.md`\n- **复用作者习惯**：有作者记忆时，正文前用 `scripts/author_memory_commit.py query --workspace {工作区} --book-root {"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn7e14qz6v4n71xmjegh68jtts80dp5r\",\n  \"slug\": \"story-short-write\",\n  \"version\": \"1.1.21\",\n  \"publishedAt\": 1791006123901\n}"},{"path":"references/agent-calls.md","content":"# agent-calls.md：短篇派写手的调用方式\n\n只在要 spawn narrative-writer 时读；主会话自己写正文、自己去味时不读。何时派由 workflow-draft.md / workflow-revision.md 决定，这里只放 prompt 与必须附带的内容。Antigravity 用 `invoke_subagent` + 同名 `TypeName`。\n\n## 写正文\n\nspawn `Agent(subagent_type: \"narrative-writer\", prompt: ...)`，只传项目目录、输出文件、目标情绪、题材风格包、小节大纲、角色、主/副对标召回摘要、本书文风全文路径与 style_resolution、作者偏好 query 中的文风/故事设计项、格式硬约束和写作硬约束，并传入检查分工：本批只做内容覆盖与格式自检，完整语义去味由 Phase 4 负责，最终文件扫描由主会话负责。\n\n不把本 skill 整段规则塞进 prompt；细节以 `short-format.md`、题材包、`short-craft.md` 与 `scene-craft.md` 为准。收回后按 workflow-draft.md 的格式规范重排再写入 `正文.md`。\n\n## 精修去味\n\nspawn `Agent(subagent_type: \"narrative-writer\", prompt: \"项目目录：{dir}\\n任务描述：去AI味+格式检查\\n检查分工：你负责本次语义去味及原定自检；最终文件扫描由主会话执行，不在子代理内重复\\n检查范围：{正文文件}\\nstyle_resolution：{与写作一致的本次文风裁决，含全文路径}\\n作者偏好：{query 命中的 prose_style/story_design 项}\\n篇幅：短篇\\n卖点保留：第一人称审判句、火葬场预告、心死式章尾留，只删中立作者讲解与空洞升华\\nAI味等级：{轻度/中度/重度；未分级按轻度}\\n删除优先：每条 AI 味项先判能否删除——删后不丢伏笔/钩子/角色/情节/必要信息的直接删，会丢才润色（删除受比例上限与本次字数范围下沿约束，跌破改降AI重写）\\n必须检查：检查是否连续使用头皮发紧/眼皮一跳/心口一沉/胃里翻涌等精致戏剧反应，能写普通动作/普通感觉就写普通动作/普通感觉；已有手机/聊天记录/公告/账单/病历/证据截图等信息，保留为角色看到或处理的场内载体，不改成叙述者解释；任务卡点只在角色本来有要办的事且能加重情绪/证据/关系/反转时使用，不为自然感补流程\")`"},{"path":"references/author-memory-maintenance.md","content":"# 作者记忆维护\n\n[author-memory.md](author-memory.md) 的少见时刻补充：记一条、确认、替换、忘掉和优先级仍按那份协议，本文件只在下列情况读——作者说「整理作者记忆」，或回执 `warnings`／查询 `omitted_ids` 提示超编；写入因 `作者画像.md` 写满失败；书根就是工作区，或工具报 `state.book`、单书布局错误；要做存量迁移 `migrate`、多事件原子 `commit`、派生视图 `check`；冲突候选要落定；碰到升级前留下的旧条目。\n\n作者记忆借鉴“原始证据 → 候选 → 已确认画像 → 变更记录”的记忆管道，但把决定权留给作者。\n\n## 文件\n\n```text\n{工作区}/.story/作者记忆/          # 项目级 store：global / genre / workflow 条目，编号 AP\n├── _author-memory-state.json  # 唯一结构化权威\n├── 作者画像.md               # 仅 active，供作者查看与管理\n├── 待确认.md                 # pending / conflict，不参与约束\n└── 变更记录.md               # 最近 100 次、最新在前的事务记录\n{书}/.story/作者记忆/            # 书级 store：只存这本书的 book 条目，编号 BP，同样四个文件\n```\n\n三个 Markdown 文件都从 state 确定性生成，禁止手改；完整历史保留在 state，变更记录只展示最近 100 次。`作者画像.md` 是人类管理视图，普通写作 agent 不整份注入，而是调用 `query` 取得本次相关的紧凑上下文。\n\n## 任务映射表\n\n各 skill 入口的 `query` 命令按此表选 kind；写入时的预算提醒也按这四类任务组合估算。\n\n| 任务 | query kinds | 注入位置 |\n|---|---|---|\n| 正文初稿 / 续写 | `prose_style` + `story_design` | 主会话与实际正文 agent |\n| 去 AI 味 / 改写 | `prose_style` | 主会话与实际改写 agent |\n| 设定 / 大纲 | `story_design` + `workflow` + `interaction` | 主会话，不传正文 agent |\n| 审稿 | `delivery` + `interaction` + 必要的 `prose_style` | 主会话，不降低 rubric |\n\n审稿匹配项只用于交付格式、协作方式和“作者有意采用的表达选择”说明；问题严重度和 PASS/FAIL 仍由 rubric 决定。\n\n## 注入预算与容量\n\n- **写入不因注入预算失败**：`record` / `commit` 照常成功、给回执；工具按上表四类任务组合估算最坏查询情形（全局条目＋各 scope 维度最重的单一切片，切片按大小写无关归并、轻重按写作时真正读到的字段算，与真实查询同一把尺），装不进 2048 字节的组合在返回的 `warnings` 里点名将被略过的条目及其断言首句。\n- 写入落盘后另一级 store 读不出来（书目录不存在、`--book` 与书级记录不符等）也照常给回执，`warnings` 注明本次提醒没算上它。写书级条目时「本书＋全局」按实际条目精确计算；写项目级条目时只看得到项目级 store，顺手传 `--book-root` 就把当前这本书也算进提醒。\n- 查询按 **重要度 → 本书例外 → 最近更新** 排序装填（同一范围的条目必在同一 store，「最近」按该 store 的修订号比，不跨 store 比较），先丢的恒是重要度较低的条目——`importance` 决定超编时谁留在 prompt 里。装不下的条目跳过而不中断（一条长的不挡后面的短条），漏下的 ID 按同一优先级报进 `omitted_ids`（最多列 20 条，`omitted` 是真实总数）。\n- 注入预算之外还有一道硬上限：`作者画像.md` 超过 12288 字节时写入会直接失败并要求先整理。active 条目攒到几十上百条才会碰到（远在注入预算之后），碰到就走「整理作者记忆」；`forget` 这类减量操作在满编时照常可用。\n\n## 整理作者记忆\n\n作者说「整理作者记忆」，或回执 `warnings`／查询 `omitted_ids` 提示超编、写入因画像写满失败时：读项目级与当前书的 `作者画像.md`（每条都标了范围、重要度、把握和确认次数，重要度就是超编时的去留依据），提出合并同义条（`replace` 多合一）、退役过时条（`forget`）、给错标成 `high` 的条目下调重要度、把超长断言压缩成一句话的提案；项目级画像里还有「本书：」条目时，「对该书运行 `migrate --book-root`」列为默认提案项。清单用原话逐条列给作者确认（编号只放括号里），确认后按 store 各汇成一份 `commit` 事务提交（一份事务只写一个 store）。合并时保住每条的否定词、限定词和适用范围——合不动就退役其中一条，不要靠删限定词把两条凑成一条。整理只由作者发起或确认，不自动执行。\n\n## 冲突候选\n\n冲突候选（`conflict`）不能绕过旧规则直接 `decide=activate`。作者选新说法：用 `replace`，`old_ids` 同时列旧 active 条目和这条冲突候选，新条目直接 active、两条旧的标 `superseded`；作者留旧规则：对候选 `decide=reject`。旧条目被 `replace` / `forget` 撤下后，它不再是任何候选的冲突对象，冲突对象清空的候选退回 `pending`。\n\n## 单书布局\n\n书根就是工作区（`--book-root` 与 `--workspace` 同一目录）时，书级 store 改住 `{工作区}/.story/作者记忆/书级/`，与项目级各自一份 state；首次建立的书名优先取项目级存量本书条目里唯一的书名，再取目录名。旧版曾把书级 state 写在项目级位置，此后项目级读写都报 `state.book`；带 `--book-root {工作区}` 运行任一命令（含 `query`）会先把它原样移进 `书级/`，不改内容。这个目录其实是某个工作区里的一本书时（上一层叫 `长篇/` 或 `短篇/`，或某个祖先有 `.active-book` 或项目级 state），工具直接报错、不动任何文件，按报错改传 `--workspace`。\n\n## 存量迁移\n\n不做双读：升级前写进项目级 store 的 book 条目不再参与查询与预算估算，也不再接受新的 book 写入；它们仍在 `作者画像.md` 里可见、可 `decide` / `forget`。对每本书运行一次 `migrate --book-root "},{"path":"references/author-memory.md","content":"# 作者记忆协议\n\n作者记忆保存跨会话复用的创作偏好，不保存小说世界里的事实，决定权留给作者。本文件管最常见的时刻：作者说出一条偏好，或要确认、替换、忘掉某条。少见情况读 [author-memory-maintenance.md](author-memory-maintenance.md)：整理作者记忆与超编、画像写满、单书布局与 `state.book` 报错、存量迁移、多事件 `commit`、`check`、冲突候选落定、升级前的旧条目。\n\n## 边界与优先级\n\n加载优先级从高到低：\n\n1. 安全、用户授权范围、明确的平台交付要求、字数与文件协议；句长、视角、修辞和标点偏好不属于不可覆盖的硬门禁；\n2. 用户在当前请求中的明确要求；\n3. 当前书的 `设定/文风.md`、题材定位、细纲和其他项目设定；\n4. 作者记忆中的本书偏好；\n5. 作者记忆中的题材、流程和全局偏好；\n6. 对标素材、通用方法和默认值。\n\n按表达维度取最窄适用要求：低优先级只补缺项，不与高优先级要求并列执行。通用 references 自称“必须/禁用”不改变此顺序；审稿不因作者有意采用的表达本身扣分，真实可读性与因果问题仍照常评价。\n\n作者记忆不能把本书事实写进 `.story/作者记忆/`，不能覆盖当前请求，不能降低审稿 rubric，也不能让去 AI 味改动剧情意图。小说事实继续由各书的 `追踪/` 和 `设定/` 管理。\n\n## 存放与路由\n\n两级 store，记忆随书走：`{工作区}/.story/作者记忆/` 存 global / genre / workflow 条目（编号 `AP`），`{书}/.story/作者记忆/` 只存本书的 book 条目（编号 `BP`）。每级各有 `作者画像.md`（生效条目）和 `待确认.md`（候选，不参与约束），都从 state 生成，禁止手改；不存在时写作、审稿、去味照常继续，首次 `record` 自动创建。\n\n- `--workspace` 必须显式传，指创作工作区根——承载多本书、`.active-book`、`长篇/`、`短篇/` 或 `拆文库/` 的那一层；已有记忆时，是项目级 state（不带 `book` 字段）所在的最近祖先。`长篇/`、`短篇/` 下的书目录永远不当 `--workspace`，也不要把用户主目录当默认工作区。\n- `--book-root` 是当前书的项目目录（`.active-book` 指向、或含 `设定/`、`正文/` 的那一层，如 `{工作区}/长篇/{书名}/`）；书名默认取书级 state 记的名字，首次取目录名，`--book` 可覆盖。书根就是工作区时读维护文件「单书布局」。\n- ID 前缀就是 store：`decide` / `forget` 看 `item_id`（`AP` 项目级，`BP` 书级），`remember` / `replace` 看 `scope.level`（`book` 书级，其余项目级）。书级操作必须传 `--book-root`，没传直接报错，不会退而写进项目级。\n- `replace` 与 `conflicts_with` 不能跨 store：本书例外按优先级覆盖全局规则，不算冲突，直接 `remember` 为 book 条目；要把全局规则改成本书规则，拆成 `forget` ＋ `remember` 两个事件。\n\n## 查询\n\n各 skill 入口已写好本任务的 `query` 命令（长篇正文由组装脚本代查）；没写命令的长篇设定、大纲等任务查 `story_design` + `workflow` + `interaction`，结果只给主会话、不传正文 agent。四类任务的映射表见维护文件。state 存在才查（两级都不存在时返回空结果、零写入）；结果合并项目级与 `--book-root` 所指书级（不传就拿不到本书条目），`--kind` 必传，输出不超过 2048 字节。\n\n普通创作只做一次本地 `query`，完整画像、证据、候选和 journal 不进 prompt。查询项是低优先级倾向，不是逐条打卡清单：自然吸收，不复述画像、不刻意提高词面命中率，不为命中牺牲连贯、节奏、字数或本书既定笔调。**`omitted_ids` 非空＝记忆超编**，不是「没有更多了」：转告作者并建议「整理作者记忆」，不得改读完整画像规避预算。待确认项不进 prompt，也不为确认它们中断任务；只在作者主动查看、候选积累到适合回顾的节点，或新偏好与 active 条目冲突时集中呈现。\n\n## 记不记、记成什么\n\n不装记录全部用户消息的 prompt hook，不在作者没开口时观察他，只记作者明确表达的偏好。是否属于长期习惯由 agent 判断，拿不准就只执行不记录；作者可明说“记住：……”，以回执验收。\n\n| 输入证据 | 处理 |\n|---|---|\n| “以后都这样”“我一直习惯……”等直接、稳定、范围清楚的原话 | `active`，`source=explicit_user` |\n| 用户明确接受助手提出的长期做法 | `active`，`source=accepted_suggestion` |\n| 作者原话像长期偏好但范围或稳定性含糊 | `pending`，取当前最窄合理范围；待确认只来自作者自己的话 |\n| 同类修改反复出现、从成稿或操作轨迹看出的模式 | 不记录、不推断；作者没开口的偏好不进记忆 |\n| “这一章别……”“这次给我……”等一次性要求 | 只执行，不记录 |\n| 角色、时间线、伏笔、世界观、当前剧情走向 | 写项目设定/追踪，不写作者记忆 |\n| 助手自己生成的文字、默认模板、工具告警、rubric 结论 | 不自我学习 |\n\n保留否定词、限定词和适用范围：`quote` 写原话，`assertion` 只做不改变语义的紧凑归纳，**新建条目限一句话（≤120 字节，约 40 个字）**，写不下就压缩措辞、不切限定词；背景写进 `reason`（不进 prompt），不另开字段。\n\n**一条偏好就是一条记录，例外和限定不许拆出去单列。** 「以后少用破折号，对话里也别用，除非表示打断」整条写成「破折号少用、对话里也不用，只在表示打断时保留」：超编时条目逐条被丢，拆开就可能只丢掉例外，把作者说过的限定变成绝对禁令。只有原话塞了**几条互不依赖**的偏好（如「多用短句」＋「章末留钩子」）才拆。\n\n范围：“本书 / 这个角色 / 这次连载” → `book`；“都市文 / 这类题材” → `genre`；交稿、检查、确认节奏等操作习惯 → `workflow`；“以后 / 一贯 / 我习惯”且无更窄限定 → `global`；含糊但可能稳定 → 最窄合理范围并置 `pending`。\n\n类型：`prose_style`、`story_design`、`workflow`、`delivery`、`interaction`。置信度与重要度均为 `low | medium | high`；超编时先丢重要度低的，按偏好的实际分量填，不要一律 `high`。`so"}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":"短篇网文写作。辅助短篇小说创作，从构思到成稿，聚焦情绪拉扯与节奏把控。触发方式：/story-short-write、/写短篇、「帮我写一篇短篇」「写个盐言故事」。 Skill: story-short-write：短篇网文写作 Owner: worldwonderer Summary: 短篇网文写作。辅助短篇小说创作，从构思到成稿，聚焦情绪拉扯与节奏把控。触发方式：/story-short-write、/写短篇、「帮我写一篇短篇」「写个盐言故事」。 Tags: latest:1.1.21 Version history: v1.1.21 | 2026-10-03T05:42:03.901Z | user Authorized ZenStory cold-start distribution; immutable source and preserved notices. v1.1.20 | 2026-09-27T08:13:15.237Z | user Synced from CI (v0.8.3) v1.1.19 | 2026-09-26T12:20:34.531Z | user Syn","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":910,"uniquenessScore":46,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-09T11:42:45.006Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-09T11:42:45.006Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-10T00:17:04.302Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}