@chengzhao-dev/dsh-quarto-book 0.6.18 → 0.6.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.en.md +1 -1
- package/README.md +3 -3
- package/lib/tools/pass-report.js +6 -5
- package/package.json +1 -1
- package/skills/designing-theme/SKILL.md +23 -11
- package/skills/writing-quarto/SKILL.md +52 -39
- package/skills/writing-quarto/examples/02-structure-shape.md +1 -1
- package/skills/writing-quarto/examples/06-wording-cases.md +1 -1
- package/skills/writing-quarto/examples/07-layout-list.md +17 -1
- package/skills/writing-quarto/quarto/authoring.md +3 -3
- package/skills/writing-quarto/quarto/coords.md +1 -1
- package/skills/writing-quarto/quarto/prose.md +1 -3
- package/skills/writing-quarto/quarto/refactor.md +3 -3
- package/skills/writing-quarto/references/book-journey.md +14 -14
- package/skills/writing-quarto/references/personas.md +1 -1
- package/skills/writing-quarto/references/rules-cards.md +3 -3
- package/skills/writing-quarto/references/token-budget.md +2 -2
- package/skills/writing-quarto/scripts/verifying-content.py +85 -3
- package/skills/writing-quarto/steps/01-task.md +25 -42
- package/skills/writing-quarto/steps/02-structure.md +26 -52
- package/skills/writing-quarto/steps/03-blocks.md +111 -138
- package/skills/writing-quarto/steps/04-paragraphs.md +2 -1
- package/skills/writing-quarto/steps/05-sentences.md +45 -70
- package/skills/writing-quarto/steps/07-layout.md +2 -1
- package/skills/writing-quarto/steps/08-reread.md +8 -25
- package/skills/writing-quarto/steps/09-check.md +3 -3
package/README.en.md
CHANGED
|
@@ -29,7 +29,7 @@ Both skills are discovered from the package's `skills/` directory and loaded on
|
|
|
29
29
|
2. Open a session in the book repository. `_quarto.yml` needs a standalone `type: book` line, and the book needs at least one `.qmd` or `.md` chapter source; only then do both skill names appear.
|
|
30
30
|
3. Call a skill: `writing-quarto` for prose, `designing-theme` for the theme.
|
|
31
31
|
|
|
32
|
-
Replace `--profile` with the profile you actually run. The desktop app always runs the `desktop` profile, and that profile is owned by the app, so `dsh --profile desktop` is rejected; install or upgrade with `dsh plugin --profile desktop add <package>`, and use the app's Settings → Plugins → Add plugin only if the app refuses that write. To pin a version, write `npm:@chengzhao-dev/dsh-quarto-book@0.6.
|
|
32
|
+
Replace `--profile` with the profile you actually run. The desktop app always runs the `desktop` profile, and that profile is owned by the app, so `dsh --profile desktop` is rejected; install or upgrade with `dsh plugin --profile desktop add <package>`, and use the app's Settings → Plugins → Add plugin only if the app refuses that write. To pin a version, write `npm:@chengzhao-dev/dsh-quarto-book@0.6.19`; to follow a GitHub tag, write `github:chengzhao-dev/dsh-quarto-book#v0.6.19`.
|
|
33
33
|
|
|
34
34
|
Upgrading from the old unscoped package `dsh-quarto-book` (removed from npm with 0.3.4, so this only affects profiles that installed it earlier): remove it from the same profile first with `dsh plugin --profile <profile> remove dsh-quarto-book`, then add the scoped package. Keeping both installed registers `writing-quarto` and `designing-theme` twice at the same rank 550.
|
|
35
35
|
|
package/README.md
CHANGED
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
2. 在书仓库里打开会话。`_quarto.yml` 要有独立一行的 `type: book`,书根至少有一个 `.qmd` 或 `.md` 章节源文件;两个技能名这时才会出现。
|
|
30
30
|
3. 调用技能:写正文用 `writing-quarto`,改主题用 `designing-theme`。
|
|
31
31
|
|
|
32
|
-
`--profile` 换成你实际运行的那个 profile。桌面应用固定跑 `desktop` profile,且该 profile 由应用独占管理,`dsh --profile desktop` 直接启动会被拒绝;安装或升级用 `dsh plugin --profile desktop add <包>`,应用拒绝写入时再走「设置 → 插件 → 添加插件」。需要固定版本时写 `npm:@chengzhao-dev/dsh-quarto-book@0.6.
|
|
32
|
+
`--profile` 换成你实际运行的那个 profile。桌面应用固定跑 `desktop` profile,且该 profile 由应用独占管理,`dsh --profile desktop` 直接启动会被拒绝;安装或升级用 `dsh plugin --profile desktop add <包>`,应用拒绝写入时再走「设置 → 插件 → 添加插件」。需要固定版本时写 `npm:@chengzhao-dev/dsh-quarto-book@0.6.19`,跟 GitHub 标签时写 `github:chengzhao-dev/dsh-quarto-book#v0.6.19`。
|
|
33
33
|
|
|
34
34
|
从旧的无作用域包 `dsh-quarto-book` 升级(该包已随 0.3.4 从 npm 删除,只影响之前装过它的 profile):先在同一个 profile 里 `dsh plugin --profile <profile> remove dsh-quarto-book`,再装新包。两个包同时留着会以相同的 rank 550 各注册一遍 `writing-quarto` 和 `designing-theme`。
|
|
35
35
|
|
|
@@ -50,7 +50,7 @@
|
|
|
50
50
|
|
|
51
51
|
### 写章节
|
|
52
52
|
|
|
53
|
-
在 `type: book` 的仓库里加载 `writing-quarto`,按 `SKILL.md`
|
|
53
|
+
在 `type: book` 的仓库里加载 `writing-quarto`,按 `SKILL.md` 判操作并走九步。每一步只打开同号的一个 `steps/` 文件;判不准才读 `examples/` 里同号的案例;要排图、查渲染或全仓改写才打开 `quarto/`。
|
|
54
54
|
|
|
55
55
|
书仓库根目录的 `README.md` 是说明页,不是章节:只走第 5–8 步,不套第 1–4 步的任务与结构骨架,不写「常见错误」「自测问题」,不调 `quarto_render_check`。`README.en.md` 同样处理。
|
|
56
56
|
|
|
@@ -71,7 +71,7 @@ python scripts/checking-prose.py --root <book>
|
|
|
71
71
|
python scripts/checking-names.py --root <book>
|
|
72
72
|
```
|
|
73
73
|
|
|
74
|
-
`checking-prose.py` 只报中文混排里能直接判断的问题;`checking-names.py`
|
|
74
|
+
`checking-prose.py` 只报中文混排里能直接判断的问题;`checking-names.py` 只在全仓改写时加跑。日常章节检查跑前三条即可。
|
|
75
75
|
|
|
76
76
|
渲染后的 Callout、HTML 产物与 DOM 结构约定由 `quarto_render_check` 调包内脚本完成,不用手跑 `checking-callouts.py`、`checking-output.py` 或 `checking-dom.py`;`designing-theme` 的 `scripts/checking-layout.py` 在渲染后的 HTML 上检查溢出、对比度和页面结构。`apply()` 不在加载时跑这些脚本,也不跑 `quarto render`。
|
|
77
77
|
|
package/lib/tools/pass-report.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
// `quarto_pass_report
|
|
1
|
+
// `quarto_pass_report`:把一次写作、改写、润色或主题调整的结果压成固定行数的卡片。
|
|
2
2
|
//
|
|
3
3
|
// 入参是闭集:模式、文件、步骤、未改项、检查状态都只能取登记过的值。
|
|
4
4
|
// 卡片由工具自己拼接,返回的文本就是卡片本身,不附章节原文,也不贴改写后的句子。
|
|
5
5
|
// 没改也要出卡,这样「插件没跑」和「跑了但没改」在会话里分得开。
|
|
6
6
|
export const PASS_SKILLS = ['writing-quarto', 'designing-theme'];
|
|
7
|
-
export const PASS_MODES = ['
|
|
7
|
+
export const PASS_MODES = ['write', 'rewrite', 'polish', 'theme', 'skipped'];
|
|
8
8
|
export const HELD_ITEMS = ['fences', 'facts', 'css', 'prose'];
|
|
9
9
|
export const CHECK_NAMES = ['content', 'html', 'layout'];
|
|
10
10
|
export const CHECK_STATUSES = ['pass', 'fail', 'skip'];
|
|
@@ -25,8 +25,9 @@ export const WRITING_STEPS = {
|
|
|
25
25
|
/** 主题步骤表的名字,与 `skills/designing-theme/references/theme-spine.md` 逐字对应。 */
|
|
26
26
|
export const THEME_STEPS = ['定表面', '定字体', '定尺度', '定颜色', '定组件', '通过检查'];
|
|
27
27
|
const MODE_LABELS = {
|
|
28
|
-
|
|
29
|
-
rewrite: '
|
|
28
|
+
write: '写作',
|
|
29
|
+
rewrite: '改写',
|
|
30
|
+
polish: '润色',
|
|
30
31
|
theme: '主题',
|
|
31
32
|
skipped: '未执行',
|
|
32
33
|
};
|
|
@@ -247,7 +248,7 @@ const RESULT_SCHEMA = {
|
|
|
247
248
|
export function registerPassReportTool(tools) {
|
|
248
249
|
tools.register({
|
|
249
250
|
name: 'quarto_pass_report',
|
|
250
|
-
description: '
|
|
251
|
+
description: '把一次写作、改写、润色或主题调整的改动压成一张回执卡,卡片即回执,不写文件。',
|
|
251
252
|
parameters: {
|
|
252
253
|
type: 'object',
|
|
253
254
|
additionalProperties: false,
|
package/package.json
CHANGED
|
@@ -5,22 +5,33 @@ metadata:
|
|
|
5
5
|
short-description: 维护 Quarto 图书主题
|
|
6
6
|
---
|
|
7
7
|
|
|
8
|
-
#
|
|
8
|
+
# designing-theme
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
本技能维护插件自带的 Quarto Book 主题资产,入口是 `assets/theme/`。这套资产属于本插件,不与其他仓库共享同一套文件;项目若另有权威副本,以项目 `_quarto.yml` 实际引用的路径为准。
|
|
11
11
|
|
|
12
12
|
## 适用场景
|
|
13
13
|
|
|
14
14
|
- 调整颜色、字体、间距、导航、Callout 或落地页样式。
|
|
15
15
|
- 新增 palette 或页面组件样式。
|
|
16
|
-
-
|
|
17
|
-
|
|
18
|
-
|
|
16
|
+
- 不适用:`.qmd` 正文写法(转 `writing-quarto`);书里项目的业务领域内容(由项目自己的技能负责)。
|
|
17
|
+
|
|
18
|
+
项目有 `.agents/skills/quarto-book-project/SKILL.md` 时,先读它的「主题与过滤器路径」,只改 `_quarto.yml` 实际引用的书内副本;没有就跳过。书内副本默认在 `theme/`,过滤器在 `filters/`。
|
|
19
|
+
|
|
20
|
+
编码与行尾跟 `writing-quarto` 的 `quarto/encoding.md`:UTF-8 无 BOM、样式文件用 LF;`.bat`/`.cmd` 才用 CRLF。
|
|
19
21
|
|
|
20
22
|
## 任务路由
|
|
21
23
|
|
|
22
24
|
任何主题任务先读 `references/theme-spine.md`(步骤唯一入口)。增量任务只走被改组件所在的那一步,再加第 6 步「通过检查」;从定表面到通过检查依次走完只用于新主题或用户明确要求整体调整。
|
|
23
25
|
|
|
26
|
+
| 步 | 名称 | 产出 | 文件 |
|
|
27
|
+
| --- | --- | --- | --- |
|
|
28
|
+
| 1 | 定表面 | 这次动的是正文、代码、Callout 还是导航 | `references/theme-spine.md` |
|
|
29
|
+
| 2 | 定字体 | 字体栈与字形来源 | `references/theme-spine.md` |
|
|
30
|
+
| 3 | 定尺度 | 字号台阶、行长与间距 | `references/theme-spine.md` |
|
|
31
|
+
| 4 | 定颜色 | 语义色、明暗分层与对比度 | `references/theme-spine.md` |
|
|
32
|
+
| 5 | 定组件 | 表格、Callout、代码块与导航 | `references/theme-spine.md` |
|
|
33
|
+
| 6 | 通过检查 | 布局、对比度与整本渲染 | `references/theme-spine.md` |
|
|
34
|
+
|
|
24
35
|
## 加载与结束
|
|
25
36
|
|
|
26
37
|
- 只改 `_quarto.yml` 实际引用的主题文件;不打开章节正文,也不打开章节以外的实现文件。
|
|
@@ -29,12 +40,13 @@ metadata:
|
|
|
29
40
|
- `scripts/checking-layout.py` 通过并完成一次整本渲染后,在同一轮结束 goal,不把没失败的步骤留到下一轮。
|
|
30
41
|
- 不探测同 profile 的其他插件,也不把它们写成依赖;子会话按自己的 cwd 重新判定门禁。
|
|
31
42
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
43
|
+
## 文件职责
|
|
44
|
+
|
|
45
|
+
- `references/theme-spine.md`:主题步骤的唯一入口与每步的检查点。
|
|
46
|
+
- `references/theme-system.md`:令牌、组件边界与分层规则。
|
|
47
|
+
- `knowledge/reading-surface.md`:字体、栏宽与阅读表面的取舍理由。
|
|
48
|
+
- `assets/theme/`:palette、CSS 与可被 `_quarto.yml` 直接消费的资产。
|
|
49
|
+
- `scripts/`:布局测量与检查。
|
|
38
50
|
|
|
39
51
|
## P0 硬约束
|
|
40
52
|
|
|
@@ -1,68 +1,81 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: writing-quarto
|
|
3
|
-
description:
|
|
3
|
+
description: 写作、改写、润色或检查 Quarto Book 章节时使用;不用于改主题样式与只改 .cpp。
|
|
4
4
|
metadata:
|
|
5
|
-
short-description:
|
|
5
|
+
short-description: 写作、改写与润色中文 Quarto 章节
|
|
6
6
|
---
|
|
7
7
|
|
|
8
|
-
#
|
|
8
|
+
# writing-quarto
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
本技能负责 Quarto Book 的读者正文:`content/**/*.qmd`、`index.qmd` 与 `_quarto.yml` 的章节结构。主题样式走 `designing-theme`,C++ 源码走 `developing-cpp`,书里的业务事实由项目技能提供。
|
|
11
11
|
|
|
12
12
|
## 适用场景
|
|
13
13
|
|
|
14
|
-
-
|
|
15
|
-
-
|
|
16
|
-
-
|
|
17
|
-
- 书仓库根目录的 `README.md` 只走第 5–8 步:它是仓库说明页,不是章节;不套第 1–4 步的任务与结构骨架,不写「常见错误」「自测问题」,不调 `quarto_render_check`。第 8 步发现问题只退回第 5、6、7 步。`README.en.md` 同样处理;`CHANGELOG.md`、`LICENSE`、`AGENTS.md` 不在写作范围。这条只在书仓库里适用。
|
|
14
|
+
- 新建、改写、润色或只读审查章节正文。
|
|
15
|
+
- 调整章题、二级标题、内容块顺序、段落、句子、用词与版式。
|
|
16
|
+
- 核对正文里的代码围栏与源文件是否一致。
|
|
18
17
|
|
|
19
|
-
|
|
18
|
+
不适用:主题颜色、字体、导航与页面样式;只改 `.cpp`;书里项目的业务知识本身。
|
|
20
19
|
|
|
21
|
-
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
- 同一文件最多退回上一步一次;第二次仍失败就停在检查输出上,不重走整段。
|
|
25
|
-
- 项目技能列出检查命令时只跑那一条;没有就跑本技能 `scripts/` 下的内容与链接检查。退出码为 0 就在同一轮结束 goal。
|
|
26
|
-
- 不探测同 profile 的其他插件,也不把它们写成依赖;子会话按自己的 cwd 重新判定门禁,不把技能正文塞进子代理提示。
|
|
20
|
+
项目有 `.agents/skills/quarto-book-project/SKILL.md` 时,先读本技能,再读项目技能,只按它指向的章节对照与术语表读;没有就跳过,不猜书名、章节名与术语。
|
|
21
|
+
|
|
22
|
+
`README.md` 与 `README.en.md` 只走第 5–8 步:它们是说明页,不套任务与结构骨架,不写「常见错误」「自测问题」,不调 `quarto_render_check`;发现问题只退回第 5–7 步。`CHANGELOG.md`、`LICENSE`、`AGENTS.md` 不在写作范围。
|
|
27
23
|
|
|
28
|
-
##
|
|
24
|
+
## 三种操作
|
|
29
25
|
|
|
30
|
-
|
|
26
|
+
一次只选一种,`mode` 只填一个;范围(单点、整章、全书)是任务属性,不单独占一个操作。只读审查不改文件,不调渲染与回执。
|
|
31
27
|
|
|
32
|
-
|
|
28
|
+
| 操作 | 什么时候选 | 从哪步进 | `mode` |
|
|
29
|
+
| --- | --- | --- | --- |
|
|
30
|
+
| 写作(起稿) | 缺任务、结构或可观察行为 | 第 1 步;新章走到第 4 步 | `write` |
|
|
31
|
+
| 改写 | 事实与行为不变,块段或顺序不对 | 从被打破的步重走,可到第 9 步 | `rewrite` |
|
|
32
|
+
| 润色 | 只改句子和用词 | 第 5–8 步;段像清单先走第 4 步 | `polish` |
|
|
33
33
|
|
|
34
|
-
|
|
34
|
+
三种操作共守:不新增事实、数字、命令、结论、引文与出处;不把「可能」「通常」「在本书里」改成确定;保留否定、条件、范围、时间与归属;围栏里的代码、命令、路径、URL 与 YAML 不改。润色只删换词;改写可删可换序,但不发明事实。只读审查按九步逐条报告行号、规则出处与改法。
|
|
35
35
|
|
|
36
|
-
|
|
36
|
+
## 加载规则
|
|
37
|
+
|
|
38
|
+
- 一次激活只做一类文件:章节或主题。写章节时只打开项目技能或 `_quarto.yml` 点名的章节;围栏注释与源文件不一致时回源改围栏,不读无关实现。
|
|
39
|
+
- 只开本文件、当前一步与该步点名的一个文件;第 8 步只开 `steps/08-reread.md`。同轮不把同号案例、其余步骤和条文一起打开。
|
|
40
|
+
- 判不准才开步骤点名的 `examples/` 案例;`references/` 是完整条文,只在排错、整书重构或步骤明确指向时打开。
|
|
41
|
+
- `quarto/` 只在排图、查渲染、写围栏或核对 qmd 语法时按需打开,不整目录读。
|
|
42
|
+
- 同一文件最多退回上一步一次;第二次仍失败就停在检查输出上,不重走整段。
|
|
43
|
+
- 句子与条文、项目技能或既有正文冲突时,先列冲突位置、原句与出处,由用户选一条;不自行取舍或默认采用计划。
|
|
44
|
+
- 不探测同 profile 的其他插件,也不把它们写成依赖;子会话按自己的 cwd 重新判定门禁,不把技能正文塞进子代理提示。
|
|
37
45
|
|
|
38
|
-
|
|
46
|
+
改多章或排目录时,先读 `references/book-journey.md`:先定全书主线与章节次序,再逐章判操作走对应步骤,最后做全书一致性回读。单章与整书共用同一套九步,不另造章节规则;项目有章节表时以项目表为准。
|
|
39
47
|
|
|
40
|
-
##
|
|
48
|
+
## 九步地图
|
|
41
49
|
|
|
42
|
-
|
|
50
|
+
操作定入口,域定层次;九步按四域分:写作 1–2,布局 3–4 与 7,润色 5–6 与 8,排版归主题。跨域按写作→布局→润色推进,前步落定再进。
|
|
43
51
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
52
|
+
| 步 | 名称 | 产出 | 文件 |
|
|
53
|
+
| --- | --- | --- | --- |
|
|
54
|
+
| 1 | 定任务 | 读者做完能完成的一件事 | `steps/01-task.md` |
|
|
55
|
+
| 2 | 定结构 | 页面骨架、二级标题与篇幅 | `steps/02-structure.md` |
|
|
56
|
+
| 3 | 排列内容块 | 导语、围栏、收束与 Callout 的次序 | `steps/03-blocks.md` |
|
|
57
|
+
| 4 | 定段落 | 一段一个关键,句间接住新信息 | `steps/04-paragraphs.md` |
|
|
58
|
+
| 5 | 定句子 | 主语是执行者,一句一动作 | `steps/05-sentences.md` |
|
|
59
|
+
| 6 | 定用词 | 术语、语态与语气统一 | `steps/06-wording.md` |
|
|
60
|
+
| 7 | 定版式 | 标点、中英混排、列表与加粗 | `steps/07-layout.md` |
|
|
61
|
+
| 8 | 回读并退回 | 按现象找到该退的步 | `steps/08-reread.md` |
|
|
62
|
+
| 9 | 检查与渲染 | 内容与链接检查,HTML 可用 | `steps/09-check.md` |
|
|
54
63
|
|
|
55
|
-
##
|
|
64
|
+
## 文件职责
|
|
56
65
|
|
|
57
|
-
|
|
66
|
+
- `steps/`:每步的唯一权威;同一事实不在本文件复述。
|
|
67
|
+
- `references/`:跨步骤的完整条文(优先级、规则卡、整书旅程、围栏语义、人物、预算)。
|
|
68
|
+
- `examples/`:案例;只开步骤点名的一份。
|
|
69
|
+
- `references/rules-cards.md`:改句子、块或标题时按需开一张卡(C01–C30),不整份读;卡是步骤的紧凑副本,冲突时以步骤为准。
|
|
70
|
+
- `quarto/`:qmd 语法、表格、图、mermaid、终端、编码、渲染与作者工具。
|
|
71
|
+
- `scripts/`:内容、链接、混排与结构检查。
|
|
58
72
|
|
|
59
73
|
## 完成判据
|
|
60
74
|
|
|
61
|
-
- [ ]
|
|
62
|
-
- [ ]
|
|
63
|
-
- [ ] 内容与链接核对通过:项目技能列了检查命令时按它执行,否则跑本技能 `scripts/verifying-content.py` 与 `checking-links.py`。
|
|
75
|
+
- [ ] 本轮点名的文件走完它对应的步骤;不要求九步全走。
|
|
76
|
+
- [ ] 检查命令退出码为 0;项目有检查命令就按它跑,没有就跑本技能 `scripts/` 下的检查。
|
|
64
77
|
- [ ] 新人能按正文独立完成任务:前置、动作、结果与失败出口齐全,术语首用有解释;清单见 `quarto/readability.md`。
|
|
65
78
|
- [ ] 混排自查通过:`scripts/checking-prose.py --root <book>` 无高置信问题。
|
|
66
79
|
- [ ] 调 `quarto_render_check`:`dry_run: true` 最多 2 次,确认 `safe_to_render`;`dry_run: false` 最多 1 次,确认 `html_report.usable` 为 true。不手跑 `quarto render`,也不截图 PNG。
|
|
67
|
-
- [ ] 收尾调用一次 `quarto_pass_report`:`skill` 填 `writing-quarto`,`mode` 填 `
|
|
80
|
+
- [ ] 收尾调用一次 `quarto_pass_report`:`skill` 填 `writing-quarto`,`mode` 填 `write`、`rewrite` 或 `polish`,改动次数、未改项与检查结论照实填。卡片就是回执,回复里不再复述;没改也传 0,当前文件不是章节时传 `executed: false`。
|
|
68
81
|
- [ ] 只读审查:不改文件,不调 `quarto_render_check`、`quarto_pass_report`,报告写清行号、规则出处与改法。
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
|
|
23
23
|
## 定结构:标题只留对象名
|
|
24
24
|
|
|
25
|
-
条文见 `steps/02-structure.md
|
|
25
|
+
条文见 `steps/02-structure.md`「标题分层」「形式规则」。两个旧标题都在旧字数上限内,仍是一句步骤说明:指示、过程动词和关系词把真正的对象挤到末尾;目录、侧栏和页内 TOC 需要的是对象名,不是把导语缩进标题。改写在定结构:先圈出目录里要扫到的对象,删掉指示、过程和数量,再检查同级句式是否一致。
|
|
26
26
|
|
|
27
27
|
**定结构(示例章「记下流程数据」下两个三级标题):**
|
|
28
28
|
|
|
@@ -70,7 +70,23 @@
|
|
|
70
70
|
- **数据项被占用**:`PlacePiece` 返回 `false`,状态面板保持不变,调用方另选数据项就行。
|
|
71
71
|
```
|
|
72
72
|
|
|
73
|
-
|
|
73
|
+
以 01 规则章的落子规则列表改稿前为对照(有序步骤同样受字数带约束):
|
|
74
|
+
|
|
75
|
+
```text
|
|
76
|
+
不佳(第 3 项先写「程序检查输入」再展开三种失败,长度超过最短项两倍):
|
|
77
|
+
1. 程序显示当前棋盘,提示轮到谁落子。
|
|
78
|
+
2. 玩家给出两个 0 到 2 的行列号,要落的棋盘格子必须为空。
|
|
79
|
+
3. 程序检查输入。行列越界、棋盘格子已被占用或格式错误时,程序说明原因并保持棋盘不变。随后要求重新输入。
|
|
80
|
+
4. 输入有效时写入棋盘格子,随后判定胜负。
|
|
81
|
+
|
|
82
|
+
改写(第 3 项收成一句,四项落在同一字数带):
|
|
83
|
+
1. 程序显示当前棋盘,提示轮到谁落子。
|
|
84
|
+
2. 玩家给出两个 0 到 2 的行列号,要落的棋盘格子必须为空。
|
|
85
|
+
3. 越界、占用或格式错误时,程序说明原因并要求重新输入,棋盘保持不变。
|
|
86
|
+
4. 输入有效时写入棋盘格子,随后判定胜负。
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
判定信号:同一列表内最长项可见字数 ≥ 最短项 × 2(有引导词时另看引导词相差 ≥ 4);长项的第二句删掉后主线仍闭合。章级定稿对照见 `examples/08-appendix.md`「列表项长度均衡定稿」。
|
|
74
90
|
|
|
75
91
|
## 公式与换算讲解段
|
|
76
92
|
|
|
@@ -22,9 +22,9 @@
|
|
|
22
22
|
- 新手必须掌握的内容和引言说明放正文。引言用连贯段落交代动机、范围和全章路线。代码块前交代本步目标、执行环境和预期变化,三级标题内部次序见「三级标题最小模块」;收束段只写共同契约、结果和少量解释;块内 `//` / `#` 注释已写明的意图不在块后同义复述(对照见 `examples/03-block-after.md`「块后复述注释」)。Callout 只承载非主线且确有独立价值的风险、版本差异或可选替代;不重复正文动作或成功判据,不用于装饰层级,也不放进引言。
|
|
23
23
|
- 需要失败分支时,先用 `## 常见错误` 按症状列出 `###`,再用 `## 自测问题` 承载自测题,最后以 `## 本章回顾` 收束。不设置章末集中式资料区。
|
|
24
24
|
|
|
25
|
-
##
|
|
25
|
+
## 改写与事实核对
|
|
26
26
|
|
|
27
|
-
|
|
27
|
+
改写默认在原文基础上进行:先读取原文件、相关引用和任务边界,再局部调整结构、表达和衔接。只有用户明确要求,或原结构无法安全修复时,才删除后重新生成。目录、文件名、版本号、命令输出和工程结构等可从磁盘获得的内容,必须先实际获取。无法确认时只写检查方法,不伪造事实。
|
|
28
28
|
|
|
29
29
|
局部删除或移动内容后必须回读切口,并为后文仍引用的动作保留「触发时机 → 状态变化及原因 → 可观察结果 → 下一步」的最短闭环。后文出现悬空的「然后、因此、此时、重启、再次」等承接时必须重写切口,不能只按表面冗余删除过渡句。
|
|
30
30
|
|
|
@@ -133,6 +133,6 @@ Callout 个数见 `steps/02-structure.md`,本段不写数字;`warning` 只
|
|
|
133
133
|
|
|
134
134
|
### 交叉引用
|
|
135
135
|
|
|
136
|
-
图、表、公式或 Callout 需要按编号引用时,标签写法、前缀与书内编号规则见 `quarto/crossrefs.md`。本项目是纯 HTML 中文书,`number-sections: false`,章节标题不写 `{#sec-...}`;跨章节引用用章节标题链接,不写「第 N
|
|
136
|
+
图、表、公式或 Callout 需要按编号引用时,标签写法、前缀与书内编号规则见 `quarto/crossrefs.md`。本项目是纯 HTML 中文书,`number-sections: false`,章节标题不写 `{#sec-...}`;跨章节引用用章节标题链接,不写「第 N 章」。引用前确认目标页面存在,改标题后按「改写与事实核对」重新核对。
|
|
137
137
|
|
|
138
138
|
需要渲染与链接依据时,读 `quarto/render.md` 与 `quarto/mermaid.md`;图注、原生 SVG 与图前句的分工读 `quarto/figures.md`。
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# 坐标轴网格图的生成约定
|
|
2
2
|
|
|
3
|
-
坐标轴类网格图(状态面板行列、二维数组下标)用共享绘图助手生成 SVG,不用 Mermaid 硬画网格。流程图与坐标图的分工、页面围栏写法、解释器与 CI 依赖都在本文件;token 预算的排除口径见 `steps/02-structure.md
|
|
3
|
+
坐标轴类网格图(状态面板行列、二维数组下标)用共享绘图助手生成 SVG,不用 Mermaid 硬画网格。流程图与坐标图的分工、页面围栏写法、解释器与 CI 依赖都在本文件;token 预算的排除口径见 `steps/02-structure.md`「分层上限」。
|
|
4
4
|
|
|
5
5
|
## 与 Mermaid 的分工
|
|
6
6
|
|
|
@@ -39,9 +39,7 @@
|
|
|
39
39
|
|
|
40
40
|
反例:`Board` 只保存九个棋盘格子。落子、满盘、成线与赢家都从这些格子得出。写入前先检查坐标。声明在工程目录的 board.h。实现放在 board.cpp。
|
|
41
41
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
判定信号:同一段连续 4 个以上句号且多数句子短于 15 字;顿号串在分句之间;声明与实现各占一句,只剩位置碎片。
|
|
42
|
+
改写与判定见 `steps/04-paragraphs.md`「章节核心不漂移」;本节只留这个标点反例:句号把共享主语的相邻短句切碎后,读者读到的是位置碎片,不是机制。
|
|
45
43
|
|
|
46
44
|
## 空格
|
|
47
45
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
# 全仓 QMD
|
|
1
|
+
# 全仓 QMD 改写
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
用于同时改写根入口、part 入口和全部 `content/**/*.qmd` 的任务。它补充单章写作规则,不替代章节骨架和领域路由。
|
|
4
4
|
|
|
5
5
|
## 范围
|
|
6
6
|
|
|
@@ -20,6 +20,6 @@
|
|
|
20
20
|
|
|
21
21
|
## 收尾
|
|
22
22
|
|
|
23
|
-
|
|
23
|
+
全仓改写后,核对导航与路由表、标题层级、章节链接、源码摘录、命令和输出。先运行增量验证定位问题,再对所有 QMD 执行全量 `verifying-content.py`,最后在仓库根目录渲染 Book。按章推进时,每一章的出口是 `verifying-content.py --root <书根> --paths <该章>`;全部章节通过之后才 `render`。涉及知识库时同步索引、健康检查和评测;涉及代码时用实际构建、CTest 或示例验证核对文档。
|
|
24
24
|
|
|
25
25
|
## 本项目边界
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# 整本书的写作次序
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
单章润色看一章;整书改写先看这本书要带读者完成什么,再决定章节次序。本文件只定整书层的判断,单章规则仍在 `steps/`。
|
|
4
4
|
|
|
5
5
|
## 先定一条主线
|
|
6
6
|
|
|
@@ -23,26 +23,26 @@
|
|
|
23
23
|
- **总览章**写整体形状:交代对象在全局里的位置、彼此关系与阅读路线,可以点名后章对象,但不展开它的数据与函数。
|
|
24
24
|
- **对象章**只写本章对象:数据成员、构造后的状态、公开接口与实现选择。后章才展开的类型名、个数标题、块后归属段不写;「留在某类型」「由某类得出」「不放进本章」这类归属句整句删除。
|
|
25
25
|
- 对象章内的互斥结果写成无序列表,每项「情形:结果」,列表后停止;标题点名这一节的实体,不数条目(`八条线` 拆成 `线坐标表`、`成线判断`)。
|
|
26
|
-
-
|
|
26
|
+
- 总览章与对象章的分界见项目章节表;项目没有章节表时,规则、结构与导航类章用总览写法,讲具体类型或函数的章用对象写法。
|
|
27
27
|
- 整书遍同时统一陈述范围:部分页使用项目名与「这一部分」,不把单个样例抬成全书;只有书首页概括全书。页首导语不复述目录与章节卡片,卡片入口只写章节标题与一句交付结果。
|
|
28
28
|
|
|
29
|
-
##
|
|
29
|
+
## 阶段示例
|
|
30
30
|
|
|
31
|
-
| 阶段 |
|
|
32
|
-
| --- | --- |
|
|
33
|
-
| 规则 |
|
|
34
|
-
| 结构 |
|
|
35
|
-
| 数据 |
|
|
36
|
-
| 决策 |
|
|
37
|
-
| 交互 |
|
|
38
|
-
| 质量 |
|
|
39
|
-
| 收束 |
|
|
31
|
+
| 阶段 | 交给下一章的结果 |
|
|
32
|
+
| --- | --- |
|
|
33
|
+
| 规则 | 一局怎样算结束 |
|
|
34
|
+
| 结构 | 文件与类的整体形状 |
|
|
35
|
+
| 数据 | 对象、坐标与操作后的状态 |
|
|
36
|
+
| 决策 | 程序怎样选择下一步 |
|
|
37
|
+
| 交互 | 人怎样完成一次操作 |
|
|
38
|
+
| 质量 | 改动后怎样确认没坏 |
|
|
39
|
+
| 收束 | 怎样保存与还原一次过程 |
|
|
40
40
|
|
|
41
|
-
|
|
41
|
+
这张表只示例阶段顺序。项目有自己的章节表时,以 `.agents/skills/quarto-book-project/writing/chapter-map.md` 为准;没有就按上面的阶段顺序推,不猜项目事实。
|
|
42
42
|
|
|
43
43
|
## 插件层怎么配合
|
|
44
44
|
|
|
45
45
|
- 整书规划先读本文件与项目章节表,再逐章加载 `steps/`;不要一次读完九步。
|
|
46
|
-
- 单章判不准时才开 `examples
|
|
46
|
+
- 单章判不准时才开 `examples/`;排图、查渲染或全仓改写才开 `quarto/`。
|
|
47
47
|
- 全仓检查用 `scripts/`,渲染验收用 `quarto_render_check`;两件事都放在最后一遍,不在骨架遍执行。
|
|
48
48
|
- 文件体量受 `references/token-budget.md` 约束;新增整书规则只写进本文件,不复制到各步。
|
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
- 步骤:`steps/02-structure.md`
|
|
54
54
|
|
|
55
55
|
**C10 章节按五步走。** 现象 → 最小例子 → 机制 → 边界 → 自测。
|
|
56
|
-
-
|
|
56
|
+
- 正:章文件依次讲空棋盘、落子、越界、判胜、自测。
|
|
57
57
|
- 反:先给完整类声明,再逐行解释。
|
|
58
58
|
- 步骤:`steps/02-structure.md`
|
|
59
59
|
|
|
@@ -63,8 +63,8 @@
|
|
|
63
63
|
- 步骤:`steps/03-blocks.md`
|
|
64
64
|
|
|
65
65
|
**C12 一节一个关键。** 一章只解决一个问题,多出来的挪到下一章。
|
|
66
|
-
-
|
|
67
|
-
-
|
|
66
|
+
- 正:讲棋盘的章只讲棋盘;游戏流程留给下一章。
|
|
67
|
+
- 反:讲棋盘的章顺手把 `Game` 的状态机也讲了。
|
|
68
68
|
- 步骤:`steps/02-structure.md`
|
|
69
69
|
|
|
70
70
|
**C13 章首导语 60–146 字。** 一段说清这章解决什么、读者读完能做什么。
|
|
@@ -18,11 +18,11 @@
|
|
|
18
18
|
| `assets/**/meta.md` | 2000 |
|
|
19
19
|
| 全部技能 Markdown 合计 | 140000 |
|
|
20
20
|
|
|
21
|
-
单次激活上限:`SKILL.md` + 1 个步骤 + 1
|
|
21
|
+
单次激活上限:`SKILL.md` + 1 个步骤 + 1 个被点名文件(案例、条文或脚本路径)。**九步同走**只用于新章、整章改写或用户明确要求全章处理;同轮不把同号案例与条文一起打开。
|
|
22
22
|
|
|
23
23
|
## 怎么用
|
|
24
24
|
|
|
25
25
|
- 新增规则先判断属于哪一层,再写进已有文件;同一判定只成文一处,其他位置写引用。
|
|
26
26
|
- 文件将超限时,先删重复、合并同源条目,再考虑拆成同目录的新文件;拆文件后同步入口和 `scripts/checking-skill-links.mjs`。
|
|
27
|
-
-
|
|
27
|
+
- 单点修改只加载 `SKILL.md`、当前一步与该步点名的一个文件;不要为了省 token 把整本书的规则塞进 `SKILL.md`。
|
|
28
28
|
- 预算不是目标:没必要的条文直接删,不靠缩写把句子压成暗语。
|