@mingmaple/dsh-handover 0.9.22 → 1.0.0

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.
Files changed (81) hide show
  1. package/README.md +117 -113
  2. package/docs/migrate.md +52 -41
  3. package/docs/releases/0.9.12.md +2 -3
  4. package/docs/releases/0.9.14.md +1 -5
  5. package/docs/releases/0.9.22.md +1 -1
  6. package/docs/releases/1.0.0.md +33 -0
  7. package/docs/troubleshoot.md +221 -61
  8. package/package.json +5 -2
  9. package/scripts/behavior.mjs +398 -0
  10. package/scripts/blank-dsh.mjs +12 -2
  11. package/scripts/blank-smoke.mjs +95 -44
  12. package/scripts/check-docs.mjs +7 -0
  13. package/scripts/portability.mjs +71 -0
  14. package/scripts/style-gate.mjs +571 -0
  15. package/src/client.js +1028 -994
  16. package/src/index.mjs +273 -109
  17. package/src/lib/absrefs.mjs +1 -1
  18. package/src/lib/api.mjs +9 -3
  19. package/src/lib/archive.mjs +1 -1
  20. package/src/lib/brief.mjs +8 -6
  21. package/src/lib/config.mjs +21 -6
  22. package/src/lib/docmap.mjs +5 -8
  23. package/src/lib/drift.mjs +1 -1
  24. package/src/lib/events.mjs +1 -1
  25. package/src/lib/facts.mjs +19 -12
  26. package/src/lib/gates.mjs +12 -12
  27. package/src/lib/global-task.mjs +69 -0
  28. package/src/lib/guide.mjs +80 -75
  29. package/src/lib/handover-io.mjs +69 -6
  30. package/src/lib/identity.mjs +330 -0
  31. package/src/lib/legacy.mjs +89 -0
  32. package/src/lib/lint.mjs +14 -11
  33. package/src/lib/manual.mjs +117 -80
  34. package/src/lib/mover.mjs +18 -14
  35. package/src/lib/office.mjs +42 -2
  36. package/src/lib/pack-ops.mjs +10 -10
  37. package/src/lib/pathkey.mjs +24 -0
  38. package/src/lib/phase.mjs +8 -13
  39. package/src/lib/profile.mjs +1 -1
  40. package/src/lib/reminder.mjs +110 -0
  41. package/src/lib/role.mjs +1 -1
  42. package/src/lib/scaffold.mjs +30 -10
  43. package/src/lib/schedule.mjs +5 -5
  44. package/src/lib/session-create.mjs +2 -2
  45. package/src/lib/session-ops.mjs +76 -47
  46. package/src/lib/sessions.mjs +40 -2
  47. package/src/lib/sevenzip.mjs +10 -1
  48. package/src/lib/status.mjs +337 -336
  49. package/src/lib/succession.mjs +14 -14
  50. package/src/lib/system.mjs +364 -0
  51. package/src/templates/Changelog.skeleton.md +3 -3
  52. package/src/templates/Charter.skeleton.md +13 -9
  53. package/src/templates/Handover.global.skeleton.md +20 -13
  54. package/src/templates/Handover.template.md +89 -0
  55. package/src/templates/Plan.skeleton.md +34 -0
  56. package/src/templates/Prompt_Templates.md +91 -10
  57. package/src/templates/Runtime_Manual.md +254 -139
  58. package/src/templates/System.skeleton.md +31 -0
  59. package/src/templates/Systems.global.skeleton.md +13 -0
  60. package/src/templates/rules/Delegation_Rules.md +45 -0
  61. package/src/templates/rules/Handover_Rules.md +46 -24
  62. package/src/templates/rules/Migration_Rules.md +7 -7
  63. package/src/templates/rules/Misc_Task_Standard.md +17 -10
  64. package/src/templates/rules/Writing_Rules.md +33 -16
  65. package/src/templates/standards/README.md +19 -7
  66. package/src/templates/standards//345/206/231/344/275/234/350/247/204/350/214/203/README.md +120 -0
  67. package/src/templates/standards//345/206/231/344/275/234/350/247/204/350/214/203//344/276/235/346/215/256_/350/256/272/346/226/207.md +389 -0
  68. package/src/tools/ho_backup.mjs +8 -8
  69. package/src/tools/ho_changelog.mjs +4 -4
  70. package/src/tools/ho_charter.mjs +7 -6
  71. package/src/tools/ho_checkpoint.mjs +34 -31
  72. package/src/tools/ho_docmap.mjs +135 -49
  73. package/src/tools/ho_gate.mjs +9 -4
  74. package/src/tools/ho_handover.mjs +61 -35
  75. package/src/tools/ho_office.mjs +45 -4
  76. package/src/tools/ho_profile.mjs +3 -3
  77. package/src/tools/ho_sessions.mjs +43 -22
  78. package/src/tools/ho_status.mjs +14 -9
  79. package/src/tools/ho_succeed.mjs +3 -3
  80. package/src/tools/ho_workspace.mjs +83 -51
  81. package/src/tools/peer.mjs +219 -8
@@ -1,9 +1,9 @@
1
1
  # 交接文档规范(插件自带默认口径)
2
2
 
3
- > 这份是 dsh-handover 首次安装时铺下的默认版本,可以按自己的工作方式改写。
4
- > 插件只做两件硬事:**写前备份、写后按结构体检**;结构不达标时 `ho_checkpoint` 拒绝排压缩。
3
+ > 本文件是 dsh-handover 首次安装时写入的默认版本,可按实际工作方式改写。
4
+ > 插件强制执行 2 项操作:整篇重写前归档上一份交接,写入后按结构体检。结构不达标时,`ho_checkpoint` 拒绝安排压缩。
5
5
 
6
- ## 1. 谁的位置
6
+ ## 1 谁的位置
7
7
 
8
8
  | 角色 | 交接文件 |
9
9
  |---|---|
@@ -11,35 +11,57 @@
11
11
  | 项目 | `_Project_Meta/<项目名>/Handover.md` |
12
12
  | 杂项 | `_Misc/tasks/<任务名>/Handover.md` |
13
13
 
14
- **绝不串用**:项目会话读到全局交接,等于把别人的状态当成自己的(0.2.x 的真实故障)。
14
+ 各类交接不得串用:项目会话读取全局交接,即把其他会话的状态当作自身状态。
15
15
 
16
- ## 2. 什么时候写
16
+ 交接归属与体系注册分离:交接只写在途状态,体系注册写路径与读取时机,见 `_Control_Center/records/systems.md` 与各任务 `System.md`。
17
17
 
18
- - 水位 **32%**:开始收尾,不要开新任务。
19
- - 水位 **35%**:必须写完交接 → `ho_checkpoint` 登记 → 轮末自动压缩 → 续跑。
20
- - 水位 **85%**:硬顶,不压也得压。
21
- - 同一会话最多压 3 次;第 4 段写交接,用户授权后由在任会话调用 `ho_succeed` 换任(**不得自行新建会话**)。
18
+ ## 2 什么时候写
22
19
 
23
- ## 3. 必须写清(缺一项就会在换任时丢信息)
20
+ - 水位 35%:先写毕交接,再通知全局,并提醒当前用户换会话;此后可压缩。
21
+ - 水位 50%:不再新开任务。
22
+ - 水位 85%:硬顶,到线即压缩。
23
+ - 判断标准:35% 档要求完成剩余流程后上下文占用不超过 45%;50% 档不超过 55%。
24
+ - 压缩至多 3 次;第 4 次须换任:写交接,由用户授权后由在任会话调用 `ho_succeed` 完成换任,不得自行新建会话。
25
+ - 早于 35% 的压缩,仅限助手建议,或用户主动提出并授权。
24
26
 
25
- 1. **正在做什么、到哪一步**(版本号、产物路径、构建是否通过)。
26
- 2. **下一步按顺序**:每一步写「做什么、动哪个文件、完成判据」。
27
- 3. **环境与路径**:工具版本、安装位置、用的源。
28
- 4. **已完成待验收** 与 **要求了没落地** 分开写,不要混。
29
- 5. **坑点与禁区**:踩过的错、不能再动的文件。
30
- 6. **会话 id 对照**:在任会话、已归档的旧会话。
27
+ ## 3 固定流程(写新交接)
31
28
 
32
- ## 4. 硬规矩
29
+ 交接一律重写,不在旧文件上续写。4 步按顺序执行,不得跳步:
33
30
 
34
- - **机密只写位置,不写值**:密码、token、证书写在哪个文件,不要抄进交接正文。
31
+ 1. 读上一份交接:`ho_handover(action="read")`。
32
+ 2. 归档上一份交接:`ho_handover(action="archive")`;确认输出「已归档」且 sha256 一致。
33
+ 3. 读模板:`_Control_Center/templates/Handover.md`。
34
+ 4. 新建空白文件并写入:`ho_handover(action="new", text=…)`。
35
+
36
+ 硬性约束:
37
+
38
+ - 已有交接不得用 `action="write"` 改写;该动作只用于首次创建,文件已存在时工具直接报错。
39
+ - `action="append"` 只用于会话中途补一行推进状态,不得用于交接刷新。
40
+ - 不手工编辑交接文件;不将旧交接的章节移入新文件。
41
+ - 归档是写新交接的前置步骤,不是可选步骤。
42
+
43
+ ## 4 必须写清
44
+
45
+ 1. 当前工作与所处步骤:版本号、产物路径、构建是否通过。
46
+ 2. 下一步按顺序:每一步写做什么、动哪个文件、完成判据。
47
+ 3. 环境与路径:工具版本、安装位置、所用的源。
48
+ 4. 已完成待验收与要求了未落地分开写,不混为一节。
49
+ 5. 风险与禁区:已发生的问题、不得再修改的文件。
50
+ 6. 会话 id 对照:在任会话、已归档的旧会话。
51
+ 7. 体系注册与计划的位置:`systems.md` 或本任务 `System.md`、当前 `PLAN.md`;没有计划则写「无」。
52
+
53
+ ## 5 硬规矩
54
+
55
+ - 机密只写位置,不写具体值:密码、令牌、证书只写所在文件,不抄录进交接正文。
35
56
  - 时间一律带偏移(例 `2026-10-24 22:40 +0800`)。
36
- - 不写「大概」「应该」这类没核过的话;没核就写「未核,待确认」。
37
- - 写交接用 `ho_handover(action="write")`、`action="append"`,不要手改文件(会绕过备份与体检)。
57
+ - 不写「大概」「应该」这类未核过的表述;未核就写「未核,待确认」。
58
+ - 写交接按 §3 的固定流程执行:整篇重写用 `action="new"`,首次创建用 `action="write"`,中途补一行用 `action="append"`。不得手工修改文件,以免绕过归档、备份与体检。
38
59
  - 归档命名:`_Archives/<范围>/Handover/<原文件名>_<YYYYMMDD_HHMMSS>.md`(例 `Handover_20261108_144307.md`);杂项归档自包含在 `_Misc/tasks/<任务>/_archive/`。
39
- - **篇幅不设上限**:不规定字节、行数、页数。体积由结构控制——只写在途与指针、状态用表格承载;过期即删,过一段时间整篇按归档重写。不得给交接或同类文档设上限。
60
+ - 篇幅不设上限:不规定字节、行数、页数。体积由结构控制:只写在途与指针,状态用表格承载;过期即删,经历一段时间后按归档重写。不得为交接或同类文档设置上限。
40
61
 
41
- ## 5. 体检判据(插件自动跑)
62
+ ## 6 体检判据(插件自动执行)
42
63
 
43
64
  - 有标题、有「正在做的事」实质内容、有「下一步」条目、无残留占位符。
44
- - 全局交接另需 §0 的七个字段与 §7 至少一行 session id。
45
- - 体检结论:`通过` / `缺节` / `不合格`;`缺节` 允许压缩,`不合格` 必须补完再压。
65
+ - 全局交接另需 8 节齐全(含 §0 身份与寻址、§5 风险与禁区、§7 会话 id 对照)、§0 的 7 个字段齐全、§7 至少一行带 session id。
66
+ - 体检结论取「通过」「缺节」「不合格」;「缺节」允许压缩,「不合格」须补完再压缩。
67
+ - 体检命令:`ho_gate`(全局与全部项目)、`ho_handover` 写后自动体检。
@@ -1,24 +1,24 @@
1
1
  # 迁移规范(插件自带默认口径)
2
2
 
3
- > 迁移靠 `ho_backup` 四件套:`check` → `pack` → `verify` → `restore`。
3
+ > 迁移使用 `ho_backup` 的 4 个动作:`check` → `pack` → `verify` → `restore`。
4
4
 
5
5
  ## 1. 前置检查 `action="check"`
6
6
 
7
- - 在役会话必须**静止**(默认 90 分钟无活动、且不在跑)。
7
+ - 在役会话必须**静止**(默认 90 分钟无活动,且未在运行)。
8
8
  - 交接必须存在且体检通过。
9
- - 不通过就等,不要「先打包再说」。
9
+ - 未通过时等待,不得先行打包。
10
10
 
11
11
  ## 2. 打包 `action="pack"`
12
12
 
13
13
  - 目标:`kind=global|project|task` + `name`。
14
14
  - 产物含 `manifest.json`(逐文件 sha256)、`CHECKSUMS.sha256`、`MIGRATION.md`。
15
- - 打包格式:本机有 7-Zip 时出 `.7z`;没有时自动出 `.tar.gz`(插件自带归档器,二者功能等价)。
16
- - 包内**只报告绝对路径、不改写文件内容**——迁移后由人或项目会话按新机器改。
15
+ - 打包格式:本机安装 7-Zip 时生成 `.7z`,未安装时自动生成 `.tar.gz`(插件自带归档器,二者功能等价)。
16
+ - 包内**只报告绝对路径、不改写文件内容**。迁移后由用户或项目会话按新机器环境修改。
17
17
 
18
18
  ## 3. 校验 `action="verify"`
19
19
 
20
20
  - 逐文件比对 sha256:一致 / 漂移 / 缺失。
21
- - 漂移≠0 ⇒ 包已作废,必须重打。
21
+ - 漂移≠0 时包已作废,须重新打包。
22
22
 
23
23
  ## 4. 恢复 `action="restore"`
24
24
 
@@ -29,4 +29,4 @@
29
29
 
30
30
  ## 5. 会话不迁移
31
31
 
32
- 连续性只靠交接文档;新机器上由 `ho_sessions(action="new")` 建新会话,读交接后继续作业。
32
+ 连续性仅由交接文档承载;新机器上由 `ho_sessions(action="new")` 建立新会话,读取交接后继续作业。
@@ -1,23 +1,30 @@
1
1
  # 杂项任务规范(插件自带默认口径)
2
2
 
3
- ## 1. 什么算杂项
3
+ ## 1 什么算杂项
4
4
 
5
- 一次性或短期任务:不建项目库、不进 `_Project_Meta/Registry.md`。落点 `_Misc/tasks/<任务短名>/`。
5
+ 一次性或短期任务:不建项目库,不进 `_Project_Meta/Registry.md`。存放位置为 `_Misc/tasks/<任务短名>/`。
6
6
 
7
- ## 2. 目录约定
7
+ ## 2 目录约定
8
8
 
9
9
  | 路径 | 用途 |
10
10
  |---|---|
11
- | `_Misc/tasks/<任务>/` | 工作文件、`RULES.md`、`Handover.md` |
11
+ | `_Misc/tasks/<任务>/` | 工作文件、`RULES.md`、`Handover.md`、`PLAN.md`、`System.md`、`Delegation_Prompt.md` |
12
12
  | `_Temp/_Misc/<任务>/Snapshots/` | 覆盖前快照 |
13
13
  | `_Archives/_Misc/<任务>/` | 归档 |
14
+ | `_Misc/tasks/<任务>/_archive/` | 旧计划、旧暂任提示词等任务内归档 |
14
15
 
15
- ## 3. 边界
16
+ ## 3 边界
16
17
 
17
- - 只写上面三处;`_Control_Center`、`Projects`、其他任务目录都不得写入。
18
- - 接任:杂项须用户授权(`/allow-succeed` 或设置页),再由本会话调用 `ho_succeed`,由插件按登记表建立接任会话;项目会话不得自行新建会话。
19
- - 交接与水位协议同项目(32% 提醒 / 35% 交接线 / 85% 硬顶)。
18
+ - 只写上述 4 处;`_Control_Center`、`Projects`、其他任务目录都不得写入。
19
+ - 接任:杂项任务须用户授权(`/allow-succeed` 或设置页),再由本会话调用 `ho_succeed`,由插件按登记表建立接任会话。不得自行新建会话。
20
+ - 交接与水位协议同项目:水位 35% 先写毕交接,水位 50% 不再新开任务,水位 85% 为硬顶。压缩至多 3 次,第 4 次换任。判断标准:35% 档要求完成剩余流程后不超过 45%,50% 档不超过 55%。
20
21
 
21
- ## 4. 升级为项目
22
+ ## 4 体系注册、计划与暂任
22
23
 
23
- 任务变成长期项目时:建 `Projects/<名>/<名>库/`,移入工作文件,写 `_Project_Meta/<名>/`,再由全局登记进 `Registry.md`。
24
+ - 体系注册写 `_Misc/tasks/<任务>/System.md`,格式见 `_Control_Center/templates/System.skeleton.md`;全局总注册 `_Control_Center/records/systems.md` 只列该文件路径,由全局会话写入。
25
+ - 行动计划写任务根 `PLAN.md`,格式见 `_Control_Center/templates/Plan.skeleton.md`;新建计划前将旧计划移入 `_archive/`,归档后不读旧计划。
26
+ - 暂任提示词写任务根 `Delegation_Prompt.md`,旧文件移入 `_archive/`;插件不检查该文件是否存在,也不检查是否已归档。暂任方只写本任务库。
27
+
28
+ ## 5 升级为项目
29
+
30
+ 任务转为长期项目时通过身份互转完成:`ho_sessions(action="role", migrate="auto")` 先对源库做快照,再将 `_Misc/tasks/<名>/` 移入 `Projects/<名>/<名库>/`;注册与交接随之改位置,`_Project_Meta/Registry.md` 增行。选择 `migrate="direct"` 时不搬旧文件,按模板新建体系。2 种方式均须将 `Office.json` 的类别键改为新类别,写前备份该文件。
@@ -1,24 +1,41 @@
1
- # 写作规范(插件自带默认口径)
1
+ # 写作规则(插件自带默认口径)
2
2
 
3
- ## 1. 语言与时间
3
+ > 本文件只列指针与硬性要求,不复述条款表;两者冲突时以规范正文为准。
4
4
 
5
- - 对用户可见的一切一律**中文**;专有名词、代码、命令保留原文。
6
- - **一律使用标准书面语**:不得出现口语、俚俗与拟人化表达(例如「搞定」「弄好」「别忘」「收工」「点单」「拍板」「跑一遍」「看一眼」「咱们」);命令式统一写作「应当、不得、须、宜」。
7
- - 时间一律带偏移:`2026-10-24 22:40 +0800`。不带偏移的时间视为不完整。
5
+ ## 1 指针
8
6
 
9
- ## 2. 结构
7
+ - 写作规范见 `_Control_Center/standards/写作规范/README.md`(W-01 至 W-42)。
8
+ - 条款编号一经分配不再复用;检查方式分「自动」与「人工」。
9
+ - 研究依据:同目录 `依据_论文.md`,只作追溯,不作执行文本,不注入提示段。
10
+ - 提示段只放一行指针,不注入条款正文;规范正文按需读取(`ho_charter(doc="writing_rules")` 可代替本文件)。
11
+ - 例外登记的唯一既存项为 E-01:对外仓库 README「为什么需要」一节,用户指定保留、逐字比对,见规范 §4.2;不得扩充,修改须经用户同意。
10
12
 
11
- - 先结论、再证据、最后待办;能用表格就不用长段落。
12
- - 一个文档只有一个主题;分节用 `##`,不要超过三级。
13
- - 路径写相对工作区根的形式(`Projects/<项目>/...`),不要写死本机盘符。
13
+ ## 2 硬性要求
14
14
 
15
- ## 3. 事实纪律
15
+ - 语言:对用户可见的一切一律用中文,含工具描述、选项、清单与表格状态词。代码、命令、专有名词保留原文。
16
+ - 语体:采用标准、简洁、专业的书面语。不使用口语词与语气词,不使用情绪化、评价性表达,不以比喻或拟人替代术语,不使用填充语。词表见 W-01 至 W-04。
17
+ - 界面动作统一写「点击」,不写其他同义单字(W-05)。
18
+ - 标点与数字:中文正文用全角标点;代码、路径、命令用半角并加反引号(W-23)。版本号写 vX.Y.Z,日期写 YYYY-MM-DD,时间用 24 小时制(W-27)。
19
+ - 结构:每份文档只有一个一级标题,标题层级不跳级(W-29)。标题不带句末标点,标题内不放链接(W-30)。链接文字自述目标(W-32)。
20
+ - 句式:单句宜不超过 40 字(W-09)。一个指令一句,并列动作分条(W-14)。结论前置(W-16)。
21
+ - 术语:同一对象同一称名(W-17)。缩写首次出现写「全称(缩写)」(W-19)。产品名与代码标识符保持官方写法(W-21)。
22
+ - 事实纪律:不虚构。未执行的验证不写「已验证」,未读的文件不写「已检查」;区分「已完成待验收」与「要求了未落地」。
23
+ - 交接文档 6 项齐全(W-40):状态、已完成、未完成、风险、下一步、路径。
24
+ - 台账一行一事实,字段固定,状态取受控词表(W-41)。
25
+ - 错误消息含现象、原因、处置 3 段(W-39)。
26
+ - 规范性关键词全大写,仅用于契约语义;中文对应「应」「宜」「可」(W-42)。
16
27
 
17
- - 不虚构:没跑过的验证不写「已验证」,没读过的文件不写「已检查」。
18
- - 区分「已完成待验收」与「要求了没落地」。
19
- - 引用别人的话要标出处;引用自己的判断要标「推测」。
28
+ ## 3 时间与路径
20
29
 
21
- ## 4. 台账
30
+ - 时间一律带偏移(例 `2026-10-24 22:40 +0800`);不带偏移视为缺失。
31
+ - 路径写工作区相对形式(例 `Projects/<项目>/…`),不以本机盘符书写。
22
32
 
23
- - 结构性改动追加一行到 `_Control_Center/records/Global_Changelog.md`(`ho_changelog`)。
24
- - 一行说清「改了什么、为什么、影响面」,不复述过程。
33
+ ## 4 台账
34
+
35
+ - 结构性改动追加一行到 `_Control_Center/records/Global_Changelog.md`(`ho_changelog`);每行写明改动内容、原因与影响范围,不复述过程。
36
+
37
+ ## 5 门禁与例外
38
+
39
+ - 三道门禁:生成时自检、提交时检查、评审时复核(规范 §4.1)。命中阻断级条款即改写。
40
+ - 语体门禁纳入门禁清单;唯一豁免为对外仓库 README 第 9 行。
41
+ - 例外登记 7 项:编号、条款、适用路径、理由、替代措施、批准人、生效期与复核日(规范 §4.2)。例外绑定具体路径,到期未复核自动失效。
@@ -4,22 +4,34 @@
4
4
 
5
5
  ## 结构
6
6
 
7
- 一条规范一个子目录,目录名即规范名,例如 `发布流程/`、`文档结构/`。
7
+ 每条规范占一个子目录,目录名即规范名,例如 `写作规范/`、`发布流程/`、`文档结构/`。
8
8
 
9
9
  - 正文放在子目录内,入口文件用 `README.md`;篇幅长时拆成多份,并在入口列出清单。
10
- - 规范自带的脚本与附件放在同一子目录内,不放进 `_Control_Center/tools/`:脚本与正文同生共死,一起搬走才不会失效。
10
+ - 规范自带的脚本与附件放在同一子目录内,不放进 `_Control_Center/tools/`:脚本与正文须同步维护,一同迁移方可避免失效。
11
11
  - 规范只写做法、判据与验收条件,不写某一次作业的进度与结果;进度属于交接与台账。
12
12
 
13
+ ### 写作规范子目录
14
+
15
+ `写作规范/` 是常设规范,随插件发布:入口为 `写作规范/README.md`,条款编号 W-01 至 W-42;同目录 `依据_论文.md` 只作追溯,不作执行文本,不注入提示段。
16
+
17
+ - 适用范围:全部会话与全部构建产出,含代码注释、提交信息、文档、版本说明、提示段、工具描述、设置页文案、错误消息、交接与台账。
18
+ - 使用方式:提示段只放一行指针,条款正文按需读取;语体门禁按该文件的条款与编号执行。
19
+ - 例外:唯一的既存项为对外仓库 README 第 9 行,按该文件 §4.2 登记,不得扩充。
20
+
13
21
  ## 查找
14
22
 
15
- 用户提到「按某某规范进行」一类要求时,两处都属查找范围:先看本库有无同名规范,再看本目录。本库指会话自己所在的工作区;两处都有时按本库那份执行,本目录那份作为通用版本。
23
+ 用户提到「按某某规范进行」一类要求时,2 处都属查找范围:先看本库有无同名规范,再看本目录。本库指会话自己所在的工作区;2 处都有时按本库那份执行,本目录那份作为通用版本。
16
24
 
17
- 正文取到后按其中的步骤与判据执行,不自行增删步骤;规范本身需要改动时,先改规范再作业。
25
+ 取得正文后按其步骤与判据执行,不自行增删步骤;规范本身需要修改时,先改规范再作业。
26
+
27
+ `写作规范/` 属常设规范,条款正文按需读取,不注入提示段。
18
28
 
19
29
  ## 写入
20
30
 
21
- 用户提到「把某某写成规范」时:未指明范围就写本库(该会话所在的工作区);说「写入通用规范库」「写成通用规范」「写成共用规范」的才写入本目录。
31
+ 用户提到「把某某写成规范」时:未指明范围即写本库(该会话所在的工作区);仅当用户说「写入通用规范库」「写成通用规范」「写成共用规范」时,才写入本目录。
32
+
33
+ 本目录的新增与改写由全局会话执行,项目与杂项会话只读;本库内的文档由本库会话自行编写。规范中的路径与工具名须与插件实际口径一致,改名或更换入口时同步修改本目录。
22
34
 
23
- 本目录的新增与改写由全局会话执行,项目与杂项会话只读;本库内的文档由本库会话自己写。规范里的路径与工具名要与插件当时的实际口径一致,改名或换入口时同步改本目录。
35
+ `写作规范/` 的条款与编号由规范维护者改写,其余会话只读;条款编号一经分配不再复用。
24
36
 
25
- 目录内只有本说明是合法状态:尚无共用规范时,各库按自己的文档执行。
37
+ 目录内仅有本说明属正常状态:尚无共用规范时,各库按自己的文档执行。
@@ -0,0 +1,120 @@
1
+ # 写作规范
2
+
3
+ > 版本 1.0.0(2026-11-14)。执行口径见本文件;研究依据见同目录 `依据_论文.md`(只作追溯,不作执行文本,不注入提示段)。
4
+
5
+ ## 1 适用范围
6
+
7
+ 本规范约束 dsh-handover 体系全部会话(全局、项目、杂项、普通)与全部构建产出:代码注释、提交信息、README 与文档、版本说明、提示段与工具描述、设置页文案、错误消息、交接与台账、审阅材料。
8
+
9
+ 规范只约束书面语的表层可控特征:用词、句式、术语、标点、数字、结构、链接与体裁要素;不涉及创意文案、市场宣传与文学表达。
10
+
11
+ ## 2 原则
12
+
13
+ 准确、简洁、一致、面向读者、可操作、可检验。冲突按此顺序裁决:准确优先于简洁,一致优先于修辞变化,可操作优先于句式美观,可检验优先于条款完备。
14
+
15
+ ## 3 条款
16
+
17
+ 检查方式分「自动」(脚本可判定)与「人工」(需语境判断)。编号一经分配不再复用;条款废止时保留编号并标注日期。
18
+
19
+ ### 3.1 用词与语体
20
+
21
+ | 编号 | 条款 | 检查 |
22
+ |---|---|---|
23
+ | W-01 | 不使用口语词与语气词(吧、呢、啦、嘛、呀、哈、哦、其实、反正) | 自动 |
24
+ | W-02 | 不使用情绪化、评价性表达(完美、惊艳、糟糕、坑、丝滑、离谱) | 自动 |
25
+ | W-03 | 不以比喻、拟人替代术语(打通、收口、抓手、链路、落地) | 人工 |
26
+ | W-04 | 不使用填充语(值得注意的是、众所周知、简单来说) | 自动 |
27
+ | W-05 | 「点」一律写「点击」;界面动作统一为点击、选择、输入、按 | 自动 |
28
+ | W-06 | 不堆叠同义修饰(彻底完全、基本大致) | 自动 |
29
+ | W-07 | 不使用网络缩略语、表情符号与装饰符号 | 自动 |
30
+ | W-08 | 不使用感叹号;问号不叠用 | 自动 |
31
+
32
+ ### 3.2 句式
33
+
34
+ | 编号 | 条款 | 检查 |
35
+ |---|---|---|
36
+ | W-09 | 单句宜不超过 40 字;超过应拆分,且不丢失限定条件 | 自动 |
37
+ | W-10 | 一段只含一个主题,段首宜为主题句 | 人工 |
38
+ | W-11 | 条件、前提、目的置于动作之前 | 人工 |
39
+ | W-12 | 以主动语态为主;确需强调受事时可用被动 | 自动+人工 |
40
+ | W-13 | 控制名词化,不用「进行/实施/开展+名词」替代实义动词 | 自动 |
41
+ | W-14 | 一句只含一个指令;并列动作分条 | 人工 |
42
+ | W-15 | 操作步骤首句含祈使动词,位置信息先于动作 | 自动+人工 |
43
+ | W-16 | 结论前置,首句给出完整判断,不铺垫背景 | 人工 |
44
+
45
+ ### 3.3 术语
46
+
47
+ | 编号 | 条款 | 检查 |
48
+ |---|---|---|
49
+ | W-17 | 同一对象在同一体系内只有一个称名,禁止同义换用 | 自动 |
50
+ | W-18 | 术语首次出现就地定义或给链接,不设集中定义章 | 人工 |
51
+ | W-19 | 缩写首次出现写「全称(缩写)」,其后统一使用缩写 | 自动 |
52
+ | W-20 | 不自造缩写,不混用中英变体 | 自动 |
53
+ | W-21 | 产品名、标准号、代码标识符保持官方写法与大小写 | 自动 |
54
+ | W-22 | 清单场景穷举,关键项不以「等」「之类」省略 | 人工 |
55
+
56
+ ### 3.4 标点与数字
57
+
58
+ | 编号 | 条款 | 检查 |
59
+ |---|---|---|
60
+ | W-23 | 中文正文用全角标点;代码、路径、命令、标识符用半角并加反引号 | 自动 |
61
+ | W-24 | 并列词语用顿号,并列分句用分号,不用逗号连接并列项 | 自动 |
62
+ | W-25 | 书名号、引号、括号成对出现,嵌套不超过两层 | 自动 |
63
+ | W-26 | 计量、统计、编号用阿拉伯数字;概数与惯用语用汉字 | 自动 |
64
+ | W-27 | 版本号用 vX.Y.Z,日期用 YYYY-MM-DD,时间用 24 小时制 | 自动 |
65
+ | W-28 | 标准号写全,含编号、破折号与年号(如 GB/T 15834—2011) | 自动 |
66
+
67
+ ### 3.5 结构、链接与引用
68
+
69
+ | 编号 | 条款 | 检查 |
70
+ |---|---|---|
71
+ | W-29 | 每份文档只有一个一级标题,标题层级不跳级 | 自动 |
72
+ | W-30 | 标题不带句末标点,不以编号充当层级,标题内不放链接 | 自动 |
73
+ | W-31 | 标题与内容对应,无空标题,无标题与正文错位 | 人工 |
74
+ | W-32 | 链接文字自述目标,禁止「点击这里」「详见」「此处」 | 自动 |
75
+ | W-33 | 外链可解析,去除追踪参数,优先一手来源 | 自动+人工 |
76
+ | W-34 | 正文引用编号与参考文献条目一一对应,不得悬空 | 自动 |
77
+
78
+ ### 3.6 场景专项
79
+
80
+ | 编号 | 条款 | 检查 |
81
+ |---|---|---|
82
+ | W-35 | 代码注释解释「为什么」,不复述语句行为 | 人工 |
83
+ | W-36 | 文档注释含摘要、参数、返回值、异常与副作用 | 自动 |
84
+ | W-37 | 提交信息首行不超过 50 字符,用祈使式,空行后写正文 | 自动 |
85
+ | W-38 | 版本说明按新增、变更、修复、移除、安全分组,每条一句 | 自动 |
86
+ | W-39 | 错误消息含现象、原因、处置三段 | 自动+人工 |
87
+ | W-40 | 交接文档含状态、已完成、未完成、风险、下一步、路径六项 | 自动 |
88
+ | W-41 | 台账一行一事实,字段固定,状态取受控词表 | 自动 |
89
+ | W-42 | 规范性关键词全大写且仅用于契约语义;中文对应「应/宜/可」 | 自动 |
90
+
91
+ ## 4 执行
92
+
93
+ ### 4.1 三道门禁
94
+
95
+ 1. 生成时自检:产出文本后、写入文件前检查阻断级条款,命中即改写。
96
+ 2. 提交时检查:脚本对暂存内容执行全部自动条款;阻断级违规拒绝提交,警告级写入报告。
97
+ 3. 评审时复核:逐项确认人工条款,并对警告项给出处置意见。
98
+
99
+ 三道门禁共用本条款表与编号。门禁配置与规范同版本发布。
100
+
101
+ ### 4.2 分级与例外
102
+
103
+ - 分级:「应」为阻断,「宜」为警告,「可」为提示。
104
+ - 例外登记七项:编号、条款、适用路径、理由、替代措施、批准人、生效期与复核日。例外绑定具体路径,不得全局豁免,到期未复核自动失效。
105
+ - W-01 至 W-08 属阻断级词表,不得登记例外。
106
+ - 唯一既存例外 E-01:插件对外仓库 README 的「为什么需要」一节(`README.md` 中 `## 为什么需要` 至下一个 `##` 之间,含「本插件一定能很好地帮助你。来试试吧;不满意,随时关闭插件并删除即可。」)。用户 2026-11-13 与 2026-11-15 两次指定保留;按节绑定,不按行号;`check-docs` 逐字比对,改写即失败。
107
+
108
+ ### 4.3 版本化
109
+
110
+ 语义化版本:主版本变更指条款增删或判定标准改变;次版本指措辞澄清或阈值调整;修订版本指笔误与格式修正。编号永久保留,废止条款标注日期与替代条款。规范文本、条款表、门禁配置与评审清单同版本发布;不一致时以本文件为准。
111
+
112
+ ### 4.4 提示段
113
+
114
+ 所有角色提示段只放一行指向本文件的指针,不注入条款正文;规范正文按需读取。
115
+
116
+ ## 5 依据与限制
117
+
118
+ 条款依据为 `依据_论文.md`:国际风格指南(Microsoft、Google)、简明语言标准(ISO 24495-1:2023、Digital.gov)、使用说明标准(IEC/IEEE 82079-1:2019)、代码注释规范(Go、PEP 257、JSDoc、Oracle JavaDoc、rustdoc)、中文国家标准(GB/T 15834、15835、7713.2、8567、1.1)与规范性关键词(RFC 2119、RFC 8174)。
119
+
120
+ 取证限制:Google 指南经官方镜像 developers.google.cn 取得;中文国标多仅公开题录,相关论断限定在适用范围层面;ISO 24495-1 与 IEC/IEEE 82079-1 全文付费,仅依据官方摘要页。W-09 的 40 字与 W-37 的 50 字符为工程设定值,非标准规定,调整须记入变更记录并同步门禁配置。