-
Notifications
You must be signed in to change notification settings - Fork 90
Expand file tree
/
Copy pathrules.md.example
More file actions
90 lines (64 loc) · 4.5 KB
/
rules.md.example
File metadata and controls
90 lines (64 loc) · 4.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
---
# ── 最简用法 ───────────────────────────────────────────────
# 本文件展示「全部」可配项,但你不必全用。只想写偏好?
# 删掉这整段 front matter(--- 之间的内容),直接写下面的 markdown 正文
# (# 角色 / # 风格 …)即可,零格式、零 YAML,editor 会按语义审阅。
# 下面的结构化字段是「可选高级层」——要「字数 / 禁词」的硬性确定检查时才用。
# ───────────────────────────────────────────────────────────
# 题材标签:当前作为字符串透传到 working_memory.user_rules.structured.genre,
# 供 LLM 在偏好语义判断时参考。题材规则库(assets/rules/genres/)暂未开放,
# 未来真要按题材机械加载内置文件时再恢复二阶段 loader。
genre: xianxia
# 章节字数范围(min-max)。偏差 < 20% 报 warning;≥ 20% 报 error。
chapter_words: 3000-6000
# 字符/符号黑名单。出现 ≥ 1 次即 error。
# 注意:中文双破折号是两个 em-dash 字符;写 "——" 匹配双个,写 "—" 匹配单个。
forbidden_chars:
- "——"
# 短语黑名单。出现 ≥ 1 次即 error。checker 做字面子串匹配,无通配符:
# 只填"定长固定串";带变量的模式(如"不是X而是Y")字面匹配抓不到,
# 应写到下面 markdown 正文,交 editor 语义判断。
forbidden_phrases:
- "某种程度上"
- "值得注意的是"
# 疲劳词阈值:本章超过 N 次才 warning(不跨章累计)。
# 同时支持 list 形式:- 不禁 - 竟然 ← 默认阈值 1
fatigue_words:
不禁: 1
竟然: 1
仿佛: 2
---
# 风格
- 严禁破折号代替逗号;对话被打断的情况可保留。
- 避免分析报告式表达("核心矛盾在于……"),改用人物动作与对白。
- 尽量多用身体感知(胃部痉挛、指节发白)替代情绪标签(紧张、愤怒)。
# 角色
- 主角"林尘":性格冷静克制,外冷内热;不要写成傲娇也不要写成圣母。
- 配角"师妹":对主角有未明说的好感但克制;说话偏简短,不喋喋不休。
# 设定
- 修炼境界:练气 → 筑基 → 金丹 → 元婴 → 化神,每境九层。
- 灵根分五行,主角是混沌灵根(极罕见)。
# 偏好正文的语义提示
Markdown 正文里的偏好由 editor 在审阅时语义判断,没有严格度字段:
- **严禁/不准/绝不** — editor 倾向把违反者归 critical,触发 rewrite
- **避免/不要** — editor 倾向 error/warning
- **尽量/最好** — editor 仅作为参考偏好,不强制
机械规则(front matter)由 commit_chapter 强制检查并返 rule_violations;
自然语言规则(这段 Markdown)由 editor LLM 判断并映射到现有七维评审。
# 使用说明
把本文件复制为项目根的 `rules.md` 后即生效:
```bash
cp rules.md.example rules.md
# 编辑 rules.md 改成你的偏好
```
加载优先级(高 → 低)三层:
1. `./rules.md` — **本书规则**(绑定当前工作目录 cwd)
2. `~/.ainovel/rules/` 目录下任意 `.md` — **全局偏好**(跨书复用,按文件名字典序合并)
3. `assets/rules/default.md` — **项目内置默认**(含去 AI 味机械基线;语义基线另在内置 `assets/references/anti-ai-tone.md`)
多来源声明同一字段且值不一致时**就近优先**生效;`fatigue_words` 按词合并,同一词在多来源声明不同阈值时按就近优先。冲突写进内部诊断信息(不进 LLM 上下文,由 CLI 启动面板按需展示),不阻断加载。
> 去 AI 味即此机制的一例:内置基线(机械 `default.md` + 语义 `anti-ai-tone.md`)兜底,你的 `rules.md` 叠加在其上——大白话正文写语义偏好(主路径),需要硬性禁词/字数检查时再可选加 front matter,零编译生效。
## 多本书并行
`./rules.md` 绑定 **当前工作目录**,不绑定小说输出目录:
- ✅ 推荐:每本书 cd 到独立目录启动(`cd works/xiyou && ainovel-cli` / `cd works/honglou && ainovel-cli`)— 每本书的 `./rules.md` 独立
- ⚠️ 边缘:从同一 cwd 用 `-o output/xiyou` / `-o output/honglou` 切换两本书 — 这两本书会共享同一份 `./rules.md`
如需"严格本书隔离"且不想换 cwd,把偏好放 `~/.ainovel/rules/` 全局目录,让所有书共享一套用户偏好。