Просмотр исходного кода

docs: update README for v0.3.0, add LinuxDo post

- Three-layer rule architecture section
- 19-dimension audit table
- Anti-AI-taste rules section
- Genre CLI commands in command reference
- Updated roadmap and project structure
majx_mac 8 месяцев назад
Родитель
Сommit
9adacb54a2
3 измененных файлов с 262 добавлено и 65 удалено
  1. 104 22
      README.md
  2. 31 43
      assets/logo.svg
  3. 127 0
      linuxdo-v0.3.0.md

+ 104 - 22
README.md

@@ -27,7 +27,7 @@ Agent 写小说。写、审、改,全程接管。
 
 用 AI 写小说不是简单的"提示词 + 复制粘贴"。长篇小说很快就会崩:角色记忆混乱、物品凭空出现、同样的形容词每段都在重复、伏笔悄无声息地断掉。InkOS 把这些当工程问题来解决。
 
-- **三大真相文件** — 追踪世界的真实状态,而非 LLM 的幻觉
+- **长期记忆** — 追踪世界的真实状态,而非 LLM 的幻觉
 - **反信息泄漏** — 确保角色只知道他们亲眼见证过的事
 - **资源衰减** — 物资会消耗、物品会损坏,没有无限背包
 - **词汇疲劳检测** — 在读者发现之前就捕捉过度使用的词语
@@ -35,23 +35,23 @@ Agent 写小说。写、审、改,全程接管。
 
 ## 工作原理
 
-InkOS 为每一章运行多智能体管线:
+每一章由五个 Agent 接力完成:
 
 <p align="center">
   <img src="assets/screenshot-pipeline.png" width="800" alt="管线流程图">
 </p>
 
-| 智能体 | 职责 |
-|--------|------|
+| Agent | 职责 |
+|-------|------|
 | **雷达 Radar** | 扫描平台趋势和读者偏好,指导故事方向(可插拔,可跳过) |
 | **建筑师 Architect** | 规划章节结构:大纲、场景节拍、节奏控制 |
 | **写手 Writer** | 根据大纲 + 当前世界状态生成正文 |
-| **连续性审计员 Auditor** | 对照三大真相文件验证草稿 |
+| **连续性审计员 Auditor** | 对照长期记忆验证草稿 |
 | **修订者 Reviser** | 修复审计发现的问题 — 关键问题自动修复,其他标记给人工审核 |
 
 如果审计不通过,管线自动进入"修订 → 再审计"循环,直到所有关键问题清零。
 
-### 三大真相文件
+### 长期记忆
 
 每本书维护三个文件作为唯一事实来源:
 
@@ -64,12 +64,85 @@ InkOS 为每一章运行多智能体管线:
 连续性审计员对照这三个文件检查每一章草稿。如果角色"记起"了从未亲眼见过的事,或者拿出了两章前已经丢失的武器,审计员会捕捉到。
 
 <p align="center">
-  <img src="assets/screenshot-state.png" width="800" alt="三大真相文件快照">
+  <img src="assets/screenshot-state.png" width="800" alt="长期记忆快照">
 </p>
 
+### 三层规则架构
+
+InkOS 采用三层规则合并机制,让通用规则、题材规范、单本书定制层层叠加:
+
+```
+通用规则(~25 条,代码内置)
+  ↓ 合并
+题材规范(genres/*.md,按题材定制)
+  ↓ 合并
+单本书规则(books/{id}/story/book_rules.md,逐本定制)
+  ↓ 注入 prompt
+LLM
+```
+
+**通用层** — 人物塑造、叙事技法、逻辑自洽、语言约束、去AI味铁律(共 ~25 条),适用于所有题材。
+
+**题材层** — 内置 5 个题材 profile(玄幻、仙侠、都市、恐怖、通用),每个 profile 定义:
+- 章节类型(战斗章/氛围章/商战章…)
+- 高疲劳词列表 + AI 标记词检测
+- 数值系统 / 战力体系 / 年代考据开关
+- 节奏规则、爽点类型
+- 审计维度启用列表
+- 题材禁忌、语言铁律(带 ✗→✓ 示例)、叙事指导
+
+**书籍层** — 主角人设锁定、题材锁定、数值上限、自定义禁令等,由建筑师 agent 在创建书籍时生成,也可手动编辑。
+
+```bash
+inkos genre list                    # 查看所有可用题材
+inkos genre show xuanhuan           # 查看玄幻 profile 详情
+inkos genre create wuxia --name 武侠  # 创建自定义题材
+inkos genre copy xuanhuan           # 复制内置 profile 到项目中定制
+```
+
+### 19 维度连续性审计
+
+审计员对每章草稿进行 19 个维度的检查,维度按题材自动启用:
+
+| 维度 | 说明 | 条件 |
+|------|------|------|
+| OOC 检查 | 角色行为是否符合人设 | 始终 |
+| 时间线检查 | 时间线是否连贯 | 始终 |
+| 设定冲突 | 是否与已建立设定矛盾 | 始终 |
+| 战力崩坏 | 战力是否前后一致 | powerScaling=true |
+| 数值检查 | 资源/数值是否正确结算 | numericalSystem=true |
+| 伏笔检查 | 伏笔是否遗忘或矛盾 | 始终 |
+| 节奏检查 | 节奏是否符合题材预期 | 始终 |
+| 文风检查 | 文风是否一致 | 始终 |
+| 信息越界 | 角色是否知道不该知道的事 | 始终 |
+| 词汇疲劳 | 高疲劳词 + AI 标记词密度 | 始终 |
+| 利益链断裂 | 利益关系是否逻辑完整 | 始终 |
+| 年代考据 | 年代细节是否准确 | eraResearch=true |
+| 配角降智 | 配角是否被降智 | 始终 |
+| 配角工具人化 | 配角是否沦为工具人 | 始终 |
+| 爽点虚化 | 爽点是否落地 | 始终 |
+| 台词失真 | 对话是否符合角色身份 | 始终 |
+| 流水账 | 是否平铺直叙无起伏 | 始终 |
+| 知识库污染 | 是否把设定资料原样搬进正文 | 始终 |
+| 视角一致性 | 视角切换是否有过渡 | 始终 |
+
+玄幻/仙侠启用全部 19 维度(含数值和战力),都市启用 17 维度(含年代考据,无数值/战力),恐怖启用 15 维度(无数值/战力/利益链)。
+
+### 去 AI 味铁律
+
+写手 agent 内置 5 条强制去 AI 味规则:
+
+- 叙述者不替读者下结论 — 行为传达意图,不直说
+- 禁止分析报告式语言 — "核心动机""信息边界"等推理术语禁入正文
+- AI 标记词限频 — 仿佛/忽然/竟然/不禁等每 3000 字不超过 1 次
+- 意象渲染限两轮 — 同一意象第三次出现必须切入新信息
+- 方法论术语隔离 — 六步走心理分析的术语只在内部推理用,不入正文
+
+每个题材还有专属语言铁律(带 ✗→✓ 对比示例),从源头限制 AI 味。
+
 ### 内置创作规则体系
 
-写手 agent 内置了一套从大量网文创作实践中提炼的规则体系,覆盖 6 个维度:
+通用层覆盖 6 个维度:
 
 - **人物塑造铁律** — 角色行为由"过往经历 + 当前利益 + 性格底色"共同驱动;配角必须有独立动机
 - **叙事技法** — Show don't tell、五感代入法、每章结尾必须设置钩子、信息分层植入
@@ -78,7 +151,7 @@ InkOS 为每一章运行多智能体管线:
 - **禁忌清单** — 禁止机械降神、反派降智、主角圣母、特定句式和标点
 - **数值验算铁律** — 每次数值变动必须从账本取值验算,同质资源有衰减公式
 
-每本书还有自己的 `style_guide.md`(文风指南)和 `story_bible.md`(世界观设定),由建筑师 agent 在创建书籍时生成。
+每本书还有自己的 `book_rules.md`(写作规则)和 `story_bible.md`(世界观设定),由建筑师 agent 在创建书籍时生成。
 
 ## 三种使用模式
 
@@ -99,9 +172,9 @@ inkos audit 吞天魔帝 31 --json
 inkos revise 吞天魔帝 31 --json
 ```
 
-每个命令独立执行单一操作,`--json` 输出结构化数据。可被 OpenClaw 等自主智能体通过 `exec` 调用,也可用于脚本编排。
+每个命令独立执行单一操作,`--json` 输出结构化数据。可被 OpenClaw 等 AI Agent 通过 `exec` 调用,也可用于脚本编排。
 
-### 3. 自然语言 Agent 模式(LLM 自主编排)
+### 3. 自然语言 Agent 模式
 
 ```bash
 inkos agent "帮我写一本都市修仙,主角是个程序员"
@@ -109,7 +182,7 @@ inkos agent "写下一章,重点写师徒矛盾"
 inkos agent "先扫描市场趋势,然后根据结果创建一本新书"
 ```
 
-内置 9 个工具(write_draft、audit_chapter、revise_chapter、scan_market、create_book、get_book_status、read_truth_files、list_books、write_full_pipeline),LLM 通过 tool-use 自主决定调用顺序。
+内置 9 个工具(write_draft、audit_chapter、revise_chapter、scan_market、create_book、get_book_status、read_truth_files、list_books、write_full_pipeline),LLM 通过 tool-use 决定调用顺序。
 
 ## 快速开始
 
@@ -159,6 +232,10 @@ inkos up                       # 守护进程模式
 | `inkos status` | 项目状态 |
 | `inkos export <id>` | 导出书籍为 txt/md |
 | `inkos radar scan` | 扫描平台趋势 |
+| `inkos genre list` | 列出所有题材 profile |
+| `inkos genre show <id>` | 查看题材 profile 详情 |
+| `inkos genre create <id>` | 创建自定义题材 |
+| `inkos genre copy <id>` | 复制内置 profile 到项目定制 |
 | `inkos config set/show` | 查看/更新配置 |
 | `inkos doctor` | 诊断配置问题 |
 | `inkos up / down` | 启动/停止守护进程 |
@@ -203,7 +280,7 @@ inkos up                       # 守护进程模式
 
 ### 守护进程模式
 
-`inkos up` 启动自主循环,按计划写章。管线对非关键问题全自动运行,当审计员标记无法自动修复的问题时暂停等待人工审核。
+`inkos up` 启动后台循环,按计划写章。管线对非关键问题全自动运行,当审计员标记无法自动修复的问题时暂停等待人工审核。
 
 ### 通知推送
 
@@ -211,22 +288,23 @@ inkos up                       # 守护进程模式
 
 ### 外部 Agent 集成
 
-原子命令 + `--json` 输出让 InkOS 可以被 OpenClaw 等自主智能体调用。OpenClaw 通过 `exec` 工具执行 `inkos draft`/`audit`/`revise`,读取 JSON 结果决定下一步操作。
+原子命令 + `--json` 输出让 InkOS 可以被 OpenClaw 等 AI Agent 调用。OpenClaw 通过 `exec` 工具执行 `inkos draft`/`audit`/`revise`,读取 JSON 结果决定下一步操作。
 
 ## 项目结构
 
 ```
 inkos/
 ├── packages/
-│   ├── core/              # 智能体运行时、管线、状态管理
+│   ├── core/              # Agent 运行时、管线、状态管理
 │   │   ├── agents/        # architect, writer, continuity, reviser, radar
 │   │   ├── pipeline/      # runner (原子操作 + 完整管线), agent (tool-use 编排), scheduler
 │   │   ├── state/         # 基于文件的状态管理器
 │   │   ├── llm/           # OpenAI 兼容接口 (流式)
 │   │   ├── notify/        # Telegram, 飞书, 企业微信
-│   │   └── models/        # Zod schema 校验
-│   └── cli/               # Commander.js 命令行 (15 条命令)
-│       └── commands/      # init, book, write, draft, audit, revise, agent, review, status, export...
+│   │   ├── models/        # Zod schema 校验 (genre-profile, book-rules)
+│   │   └── genres/        # 内置题材 profile (xuanhuan, xianxia, urban, horror, other)
+│   └── cli/               # Commander.js 命令行
+│       └── commands/      # init, book, write, draft, audit, revise, agent, review, genre, status, export...
 └── (规划中) studio/        # 网页审阅编辑界面
 ```
 
@@ -234,10 +312,14 @@ TypeScript 单仓库,pnpm workspaces 管理。
 
 ## 路线图
 
-- [x] 完整智能体管线(雷达 → 建筑师 → 写手 → 审计 → 修订)
-- [x] 三大真相文件 + 连续性审计
-- [x] 内置创作规则体系
-- [x] CLI 全套命令(15 条)
+- [x] 完整管线(雷达 → 建筑师 → 写手 → 审计 → 修订)
+- [x] 长期记忆 + 连续性审计
+- [x] 内置创作规则体系(~25 条通用规则 + 去AI味铁律)
+- [x] 三层规则架构(通用 → 题材 → 单本书)
+- [x] 5 个内置题材 profile(玄幻、仙侠、都市、恐怖、通用)
+- [x] 19 维度连续性审计(按题材自动启用)
+- [x] 题材管理 CLI(genre list/show/create/copy)
+- [x] CLI 全套命令
 - [x] 状态快照 + 章节重写
 - [x] 守护进程模式
 - [x] 通知推送(Telegram / 飞书 / 企微)

+ 31 - 43
assets/logo.svg

@@ -1,64 +1,52 @@
 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" fill="none">
   <defs>
-    <linearGradient id="inkGrad" x1="0%" y1="0%" x2="100%" y2="100%">
-      <stop offset="0%" stop-color="#1a1a2e"/>
-      <stop offset="50%" stop-color="#16213e"/>
-      <stop offset="100%" stop-color="#0f3460"/>
+    <linearGradient id="bg" x1="0%" y1="0%" x2="100%" y2="100%">
+      <stop offset="0%" stop-color="#2d1b0e"/>
+      <stop offset="100%" stop-color="#1a1008"/>
     </linearGradient>
-    <linearGradient id="penGrad" x1="0%" y1="0%" x2="100%" y2="100%">
-      <stop offset="0%" stop-color="#e94560"/>
-      <stop offset="100%" stop-color="#c23152"/>
+    <linearGradient id="drop" x1="0%" y1="0%" x2="0%" y2="100%">
+      <stop offset="0%" stop-color="#f4a261"/>
+      <stop offset="100%" stop-color="#e76f51"/>
     </linearGradient>
-    <linearGradient id="dropGrad" x1="0%" y1="0%" x2="0%" y2="100%">
-      <stop offset="0%" stop-color="#533483"/>
-      <stop offset="100%" stop-color="#0f3460"/>
+    <linearGradient id="nib" x1="0%" y1="0%" x2="100%" y2="100%">
+      <stop offset="0%" stop-color="#fefae0"/>
+      <stop offset="100%" stop-color="#dda15e"/>
     </linearGradient>
     <filter id="glow">
-      <feGaussianBlur stdDeviation="3" result="coloredBlur"/>
+      <feGaussianBlur stdDeviation="4" result="blur"/>
       <feMerge>
-        <feMergeNode in="coloredBlur"/>
+        <feMergeNode in="blur"/>
         <feMergeNode in="SourceGraphic"/>
       </feMerge>
     </filter>
   </defs>
 
-  <!-- Background circle -->
-  <circle cx="256" cy="256" r="240" fill="url(#inkGrad)" stroke="#e94560" stroke-width="3"/>
+  <!-- Background -->
+  <circle cx="256" cy="256" r="240" fill="url(#bg)" stroke="#f4a261" stroke-width="2.5" opacity="0.95"/>
 
-  <!-- Inner ring - circuit pattern -->
-  <circle cx="256" cy="256" r="210" fill="none" stroke="#533483" stroke-width="1.5" stroke-dasharray="12 6" opacity="0.6"/>
+  <!-- Subtle ring -->
+  <circle cx="256" cy="256" r="210" fill="none" stroke="#dda15e" stroke-width="1" stroke-dasharray="8 8" opacity="0.25"/>
 
-  <!-- Ink drop shape - main icon -->
-  <path d="M256 70 C256 70, 345 185, 345 268 C345 317, 305 362, 256 362 C207 362, 167 317, 167 268 C167 185, 256 70, 256 70Z"
-        fill="url(#dropGrad)" stroke="#e94560" stroke-width="2.5" filter="url(#glow)"/>
+  <!-- Ink drop -->
+  <path d="M256 80 C256 80, 340 190, 340 265 C340 312, 302 352, 256 352 C210 352, 172 312, 172 265 C172 190, 256 80, 256 80Z"
+        fill="url(#drop)" filter="url(#glow)" opacity="0.9"/>
 
-  <!-- Quill nib inside the drop -->
-  <path d="M256 130 L238 278 L256 312 L274 278 Z"
-        fill="url(#penGrad)" opacity="0.9"/>
+  <!-- Quill nib -->
+  <path d="M256 140 L240 275 L256 305 L272 275 Z"
+        fill="url(#nib)" opacity="0.85"/>
 
-  <!-- Quill split line -->
-  <line x1="256" y1="170" x2="256" y2="302" stroke="#1a1a2e" stroke-width="2" opacity="0.5"/>
+  <!-- Nib split -->
+  <line x1="256" y1="175" x2="256" y2="295" stroke="#2d1b0e" stroke-width="1.5" opacity="0.4"/>
 
-  <!-- Circuit nodes -->
-  <circle cx="185" cy="195" r="4" fill="#e94560" opacity="0.8"/>
-  <circle cx="327" cy="195" r="4" fill="#e94560" opacity="0.8"/>
-  <circle cx="165" cy="290" r="4" fill="#e94560" opacity="0.8"/>
-  <circle cx="347" cy="290" r="4" fill="#e94560" opacity="0.8"/>
+  <!-- Warm accent dots -->
+  <circle cx="190" cy="200" r="3" fill="#f4a261" opacity="0.5"/>
+  <circle cx="322" cy="200" r="3" fill="#f4a261" opacity="0.5"/>
+  <circle cx="170" cy="285" r="3" fill="#e9c46a" opacity="0.4"/>
+  <circle cx="342" cy="285" r="3" fill="#e9c46a" opacity="0.4"/>
 
-  <!-- Circuit lines -->
-  <line x1="185" y1="195" x2="165" y2="290" stroke="#e94560" stroke-width="1.5" opacity="0.4"/>
-  <line x1="327" y1="195" x2="347" y2="290" stroke="#e94560" stroke-width="1.5" opacity="0.4"/>
-
-  <!-- Data flow dots -->
-  <circle cx="148" cy="240" r="2.5" fill="#e94560" opacity="0.6"/>
-  <circle cx="364" cy="240" r="2.5" fill="#e94560" opacity="0.6"/>
-
-  <!-- Text: InkOS -->
-  <text x="256" y="420" text-anchor="middle" font-family="'Helvetica Neue', Arial, sans-serif" font-size="48" font-weight="700" fill="#ffffff" letter-spacing="4">InkOS</text>
+  <!-- Text -->
+  <text x="256" y="425" text-anchor="middle" font-family="'Helvetica Neue', Arial, sans-serif" font-size="50" font-weight="700" fill="#fefae0" letter-spacing="5">InkOS</text>
 
   <!-- Subtitle -->
-  <text x="256" y="452" text-anchor="middle" font-family="'Helvetica Neue', Arial, sans-serif" font-size="13" fill="#e94560" letter-spacing="2" opacity="0.9">MULTI-AGENT NOVEL ENGINE</text>
-
-  <!-- Chinese subtitle -->
-  <text x="256" y="474" text-anchor="middle" font-family="'PingFang SC', 'Microsoft YaHei', sans-serif" font-size="11" fill="#ffffff" opacity="0.5">多智能体网文生产系统</text>
+  <text x="256" y="460" text-anchor="middle" font-family="'Helvetica Neue', Arial, sans-serif" font-size="13" fill="#f4a261" letter-spacing="3" opacity="0.8">NOVEL WRITING AGENT</text>
 </svg>

+ 127 - 0
linuxdo-v0.3.0.md

@@ -0,0 +1,127 @@
+# InkOS v0.3.0 大更新:三层规则架构 + 19 维度审计 + 去 AI 味铁律
+
+## 回顾
+
+InkOS 是一个开源的自动化小说写作 CLI Agent,写、审、改全程接管。之前发过一次帖子介绍基本功能:5 个 Agent 接力写章节、长期记忆追踪、资源账本、伏笔管理等。
+
+这次是一个架构级大更新,主要解决一个核心问题:**之前的规则全部硬编码为玄幻/爽文,换个题材写出来就是垃圾**。
+
+## 这次更新了什么
+
+### 1. 三层规则架构
+
+之前 prompt 里 148 行规则全是"杀伐果断""同质吞噬衰减公式"这种玄幻专属内容。现在拆成三层:
+
+```
+通用规则(~25 条,代码内置,适用所有题材)
+  ↓ 合并
+题材规范(genres/*.md,按题材定制)
+  ↓ 合并
+单本书规则(books/{id}/story/book_rules.md,逐本定制)
+  ↓ 注入 prompt
+LLM
+```
+
+- **通用层**:人物塑造、叙事技法、逻辑自洽、语言约束、去AI味,~25 条硬规则
+- **题材层**:内置 5 个题材 profile(玄幻、仙侠、都市、恐怖、通用),各有自己的章节类型、疲劳词、禁忌、语言铁律
+- **书籍层**:主角人设锁定、数值上限、自定义禁令,建筑师 agent 自动生成,也可以自己改
+
+好处:写都市文不会出现"同质吞噬衰减公式",写恐怖不会要求"三章内必须打脸"。
+
+### 2. 19 维度连续性审计
+
+审计员从笼统的"检查一致性"升级到 19 个明确维度:
+
+OOC检查、时间线、设定冲突、战力崩坏、数值检查、伏笔、节奏、文风、信息越界、词汇疲劳、利益链断裂、年代考据、配角降智、配角工具人化、爽点虚化、台词失真、流水账、知识库污染、视角一致性。
+
+关键点是**按题材自动启用**:
+
+- 玄幻/仙侠:全部 19 维度(含数值和战力)
+- 都市:17 维度(加年代考据,去数值/战力)
+- 恐怖:15 维度(去数值/战力/利益链)
+
+不会出现恐怖小说被审计"战力崩坏"这种离谱结果。
+
+### 3. 去 AI 味铁律
+
+这是花了最多时间调的部分。用 3 个题材各跑了 3 章实测,发现 AI 味的核心来源:
+
+1. **叙述者替读者下结论** — "他想看对方能不能活" 这种,应该只写动作让读者自己判断
+2. **分析报告式语言** — "核心动机""信息边界""信息落差"这些推理术语渗入正文
+3. **AI 标记词密度** — 仿佛/忽然/竟然/不禁/宛如/猛地,AI 特别爱用
+4. **意象原地打转** — "火在体内流动"连写三遍
+5. **方法论术语泄漏** — 内部推理用的"六步走心理分析"术语跑到正文里
+
+对策:通用层加了 5 条硬性铁律,每个题材还有专属语言铁律带 ✗→✓ 对比示例。比如:
+
+**玄幻**:
+- ✗ "他的火元从12缕增加到24缕" → ✓ "手臂比先前有力了,握拳时指骨发紧"
+
+**都市**:
+- ✗ "他迅速分析了当前的债务状况" → ✓ "他把那叠皱巴巴的白条翻了三遍"
+- ✗ "信息落差就在这儿" → ✓ "他们不知道的,他知道"
+
+**恐怖**:
+- ✗ "他感到一阵恐惧" → ✓ "他后颈的汗毛一根根立起来"
+
+### 4. 题材管理 CLI
+
+```bash
+inkos genre list                      # 查看所有可用题材
+inkos genre show xuanhuan             # 查看玄幻 profile 详情
+inkos genre create wuxia --name 武侠   # 创建自定义题材
+inkos genre copy xuanhuan             # 复制内置 profile 到项目中定制
+```
+
+想加新题材?`inkos genre create` 生成模板,填好 YAML 头和 markdown 规则就行。想微调内置题材?`inkos genre copy` 复制一份到项目目录,改了就生效。
+
+### 5. 单本书可调参数
+
+每本书的 `story/book_rules.md` 支持 YAML 头配置:
+
+```yaml
+protagonist:
+  name: 林烬
+  personalityLock: ["强势冷静", "能忍能杀"]
+  behavioralConstraints: ["不圣母不留手"]
+genreLock:
+  primary: xuanhuan
+  forbidden: ["都市腔", "科幻腔"]
+fatigueWordsOverride: ["冷笑", "蝼蚁"]    # 覆盖题材默认
+additionalAuditDimensions: [12]            # 额外启用年代考据
+```
+
+markdown body 部分可以写叙事视角、文风要求等自由格式的创作指导。
+
+## 实测结果
+
+用 3 个题材各跑了 2-3 章:
+
+| 题材 | 书名 | 章节 | 特点 |
+|------|------|------|------|
+| 玄幻 | 烈焰吞天 | 3 章 | 数值追踪、战力验算、资源账本全程工作 |
+| 都市 | 重生2003 | 3 章 | 无数值系统、年代考据启用、法律/商业术语匹配 2003 年语感 |
+| 恐怖 | 末班地铁 | 3 章 | 无战力/数值审计、氛围递进、克制叙事 |
+
+审计结果确认:
+- 题材错位问题消失(恐怖不出现"战力崩坏"审计)
+- 数值系统按题材条件化(都市/恐怖不生成 particle_ledger.md)
+- 词汇疲劳审计现在检测 AI 标记词密度
+- 文风检查报告"场景落点具体""冷感与设备层细节稳定"
+
+## 安装 & 使用
+
+```bash
+npm i -g @actalk/inkos
+inkos init                                    # 初始化项目
+inkos book create --title "末班地铁" --genre horror  # 创建恐怖题材书籍
+inkos write next 末班地铁                       # 写下一章
+```
+
+支持所有 OpenAI 兼容接口(需要支持 streaming)。
+
+GitHub:https://github.com/nicepkg/inkos
+
+---
+
+有问题直接问,欢迎提 issue 和 PR。