lunheng-article-pipeline 18.2.0 → 18.2.3

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 (67) hide show
  1. package/README.es.md +2 -2
  2. package/README.hi.md +2 -2
  3. package/README.md +2 -2
  4. package/README.pt.md +2 -2
  5. package/README.zh.md +2 -2
  6. package/SECURITY.md +1 -1
  7. package/cordis.patch.yml +1 -1
  8. package/docs/faq.md +4 -4
  9. package/docs/introduction.md +2 -2
  10. package/docs/troubleshooting.md +1 -1
  11. package/examples/preset/README.md +1 -1
  12. package/package.json +1 -1
  13. package/skills/lunheng-article-pipeline/AGENTS.md +2 -1
  14. package/skills/lunheng-article-pipeline/QUICKSTART.md +2 -2
  15. package/skills/lunheng-article-pipeline/README.md +1 -1
  16. package/skills/lunheng-article-pipeline/SKILL.md +5 -5
  17. package/skills/lunheng-article-pipeline/references/_shared/DSH-/351/233/206/346/210/220/346/226/271/346/241/210.md +38 -1
  18. package/skills/lunheng-article-pipeline/references/_shared/M-Gate-Algorithm.md +15 -1
  19. package/skills/lunheng-article-pipeline/references/_shared/audit-checklist-quickref.md +1 -1
  20. package/skills/lunheng-article-pipeline/references/_shared/degraded-scenarios.md +1 -1
  21. package/skills/lunheng-article-pipeline/references/_shared/failure-modes.md +1 -1
  22. package/skills/lunheng-article-pipeline/references/_shared/format-export.md +1 -1
  23. package/skills/lunheng-article-pipeline/references/_shared//344/270/255/346/226/207/346/225/260/346/215/256/346/272/220/351/233/206/346/210/220.md +1 -1
  24. package/skills/lunheng-article-pipeline/references/_shared//345/255/227/346/225/260/345/210/244/345/256/232/350/241/250.md +13 -6
  25. package/skills/lunheng-article-pipeline/references/_shared//346/234/237/345/210/212/345/214/271/351/205/215/347/256/227/346/263/225.md +1 -1
  26. package/skills/lunheng-article-pipeline/references/_shared//346/234/237/345/210/212/346/225/260/346/215/256/345/272/223.md +1 -1
  27. package/skills/lunheng-article-pipeline/references/_shared//346/234/272/346/243/200/347/241/254/346/240/274/345/274/217.md +35 -2
  28. package/skills/lunheng-article-pipeline/references/_shared//346/250/241/345/236/213/350/267/257/347/224/261.md +1 -1
  29. package/skills/lunheng-article-pipeline/references/_shared//350/247/204/350/214/203-/346/234/272/346/242/260/351/227/250/345/257/271/347/205/247/350/241/250.md +17 -2
  30. package/skills/lunheng-article-pipeline/references/agents/00-/344/270/273/346/216/247-coordinator.md +1 -1
  31. package/skills/lunheng-article-pipeline/references/agents/00-/344/270/273/346/216/247-/346/211/251/345/261/225/350/201/214/350/264/243.md +10 -1
  32. package/skills/lunheng-article-pipeline/references/agents/01-/346/226/207/347/214/256/346/243/200/347/264/242-literature-scout.md +1 -1
  33. package/skills/lunheng-article-pipeline/references/agents/02-/346/225/260/346/215/256/346/243/200/347/264/242-data-scout.md +1 -1
  34. package/skills/lunheng-article-pipeline/references/agents/03-/346/241/210/344/276/213/346/243/200/347/264/242-case-scout.md +1 -1
  35. package/skills/lunheng-article-pipeline/references/agents/04-/345/210/206/346/236/220-analyst.md +1 -1
  36. package/skills/lunheng-article-pipeline/references/agents/05-/345/206/231/344/275/234-writer.md +1 -1
  37. package/skills/lunheng-article-pipeline/references/agents/06-/346/211/271/345/210/244-critical-companion.md +1 -1
  38. package/skills/lunheng-article-pipeline/references/agents/07-/345/256/241/350/256/241-auditor.md +1 -1
  39. package/skills/lunheng-article-pipeline/references/agents/08-/347/273/210/346/243/200-finalizer.md +1 -1
  40. package/skills/lunheng-article-pipeline/references/agents/09-/345/256/241/347/250/277-peer-reviewer.md +10 -1
  41. package/skills/lunheng-article-pipeline/references/checkers//344/270/255/346/226/207AI/347/227/225/350/277/271-checker.md +1 -1
  42. package/skills/lunheng-article-pipeline/references/deliverables.md +9 -1
  43. package/skills/lunheng-article-pipeline/references/gates/14-/344/270/255/346/226/207AI/347/227/225/350/277/271-gate.md +1 -1
  44. package/skills/lunheng-article-pipeline/references/glossary.md +1 -1
  45. package/skills/lunheng-article-pipeline/references/pipeline-readme.md +27 -2
  46. package/skills/lunheng-article-pipeline/references/templates/AI-/344/275/277/347/224/250/345/243/260/346/230/216-template.md +1 -1
  47. package/skills/lunheng-article-pipeline/references/templates/G14/346/243/200/346/265/213/346/212/245/345/221/212-template.md +1 -1
  48. package/skills/lunheng-article-pipeline/references/templates/status-template.md +1 -1
  49. package/skills/lunheng-article-pipeline/references/templates/style-baseline-template.md +1 -1
  50. package/skills/lunheng-article-pipeline/references/templates//344/270/273/344/272/272/346/212/225/345/226/202/346/270/205/345/215/225-template.md +1 -1
  51. package/skills/lunheng-article-pipeline/references/templates//344/270/273/344/272/272/347/241/256/350/256/244-template.md +6 -1
  52. package/skills/lunheng-article-pipeline/references/templates//344/272/244/344/273/230/350/257/264/346/230/216-template.md +1 -1
  53. package/skills/lunheng-article-pipeline/references/templates//344/273/273/345/212/241/347/256/200/346/212/245-template-lite.md +2 -0
  54. package/skills/lunheng-article-pipeline/references/templates//344/273/273/345/212/241/347/256/200/346/212/245-template.md +15 -5
  55. package/skills/lunheng-article-pipeline/references/templates//344/277/256/350/256/242/350/257/264/346/230/216-template-full.md +1 -1
  56. package/skills/lunheng-article-pipeline/references/templates//345/261/200/351/231/220/346/200/247-template.md +72 -0
  57. package/skills/lunheng-article-pipeline/references/templates//346/212/225/347/250/277/345/260/261/347/273/252/346/243/200/346/237/245/350/241/250-template.md +1 -1
  58. package/skills/lunheng-article-pipeline/references/templates//346/225/260/346/215/256/345/215/241-template.md +1 -1
  59. package/skills/lunheng-article-pipeline/references/templates//346/241/210/344/276/213/345/215/241-template-lite.md +1 -1
  60. package/skills/lunheng-article-pipeline/references/templates//346/241/210/344/276/213/345/215/241-template.md +2 -0
  61. package/skills/lunheng-article-pipeline/references/templates//346/250/241/345/236/213/350/267/257/347/224/261/350/241/250-template.md +1 -1
  62. package/skills/lunheng-article-pipeline/references/templates//347/264/240/346/235/220/345/212/240/350/275/275/346/270/205/345/215/225-template.md +2 -1
  63. package/skills/lunheng-article-pipeline/references/templates//350/277/233/345/261/225-/344/270/273/344/272/272/347/211/210-template.md +1 -1
  64. package/skills/lunheng-article-pipeline/references/templates//351/227/270/351/227/250/350/256/260/345/275/225-template.md +1 -1
  65. package/skills/lunheng-article-pipeline/scripts/consistency-check.mjs +28 -5
  66. package/skills/lunheng-article-pipeline/scripts/count-chars.mjs +31 -16
  67. package/skills/lunheng-article-pipeline/scripts/m-gate-check.mjs +216 -24
package/README.es.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Lunheng (lunheng-article-pipeline) — pipeline multiagente para textos largos
2
2
 
3
- > 版本:v18.2.0(DSH bundle:package.json + cordis.patch.yml + lib/index.js)
3
+ > 版本:v18.2.3(DSH bundle:package.json + cordis.patch.yml + lib/index.js)
4
4
 
5
5
  > 🌐 [English](README.md) | [中文](README.zh.md) | **Español**(este archivo)| [Português](README.pt.md) | [हिन्दी](README.hi.md)
6
6
 
@@ -108,7 +108,7 @@ La capa patch hace dos cosas: **inserta una fila para este paquete** (`- id: lun
108
108
  Las versiones se publican **solo por tag**; `npm publish` local está prohibido (evita las puertas de CI y la procedencia OIDC, y una versión npm nunca se puede sobrescribir).
109
109
 
110
110
  ```sh
111
- git tag v18.2.0 && git push origin v18.2.0 # un tag por push (GitHub: >3 tags en un push no dispara workflow)
111
+ git tag v18.2.3 && git push origin v18.2.3 # un tag por push (GitHub: >3 tags en un push no dispara workflow)
112
112
  # publish.yml ejecuta: puerta 1 consistencia → puerta 2 empaquetado → puerta 3 higiene → puerta 4 humo del paquete → tests
113
113
  # → tag/versión iguales → guarda de idempotencia → OIDC publish --provenance --tag dsh → auditoría posterior
114
114
  ```
package/README.hi.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # लुन्हेंग (lunheng-article-pipeline) — बहु-एजेंट दीर्घ-लेख पाइपलाइन
2
2
 
3
- > 版本:v18.2.0(DSH bundle:package.json + cordis.patch.yml + lib/index.js)
3
+ > 版本:v18.2.3(DSH bundle:package.json + cordis.patch.yml + lib/index.js)
4
4
 
5
5
  > 🌐 [English](README.md) | [中文](README.zh.md) | [Español](README.es.md) | [Português](README.pt.md) | **हिन्दी**(यह फ़ाइल)
6
6
 
@@ -108,7 +108,7 @@ patch परत दो काम करती है: **इस पैकेज
108
108
  संस्करण **केवल tag से** प्रकाशित होते हैं; स्थानीय `npm publish` वर्जित है (यह CI द्वारों और OIDC provenance को दरकिनार करता है, और npm संस्करण कभी अधिलेखित नहीं हो सकता)।
109
109
 
110
110
  ```sh
111
- git tag v18.2.0 && git push origin v18.2.0 # एक बार में एक ही tag (GitHub: >3 tag एक push में कोई workflow नहीं चलाता)
111
+ git tag v18.2.3 && git push origin v18.2.3 # एक बार में एक ही tag (GitHub: >3 tag एक push में कोई workflow नहीं चलाता)
112
112
  # publish.yml क्रम: द्वार 1 सुसंगति → द्वार 2 पैकेजिंग → द्वार 3 स्वच्छता → द्वार 4 पैकेज स्मोक → स्क्रिप्ट परीक्षण
113
113
  # → tag/संस्करण समानता → idempotency गार्ड → OIDC publish --provenance --tag dsh → प्रकाशन-पश्चात लेखा-परीक्षा
114
114
  ```
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  > 🌐 **English** (this file) | [中文](README.zh.md) | [Español](README.es.md) | [Português](README.pt.md) | [हिन्दी](README.hi.md)
4
4
 
5
- > 版本:v18.2.0(DSH bundle:package.json + cordis.patch.yml + lib/index.js)
5
+ > 版本:v18.2.3(DSH bundle:package.json + cordis.patch.yml + lib/index.js)
6
6
 
7
7
  > A DeepSeek Harness (DSH) bundle that registers one on-demand agent skill. The skill turns long-form production — academic papers, industry analysis, business commentary, and long-form articles — into a **9-role pipeline with a human in the loop**.
8
8
 
@@ -108,7 +108,7 @@ The patch layer does two things: it **inserts one row for this package** (`- id:
108
108
  Releases are **tag-only**; a local `npm publish` is forbidden (it would bypass the CI gates and OIDC provenance, and a published npm version can never be overwritten).
109
109
 
110
110
  ```sh
111
- git tag v18.2.0 && git push origin v18.2.0 # push one tag at a time (GitHub: >3 tags in one push triggers no workflow)
111
+ git tag v18.2.3 && git push origin v18.2.3 # push one tag at a time (GitHub: >3 tags in one push triggers no workflow)
112
112
  # publish.yml then runs gate 1 consistency → gate 2 packaging surface → gate 3 hygiene → gate 4 pack smoke → script tests
113
113
  # → tag/version equality → idempotency guard → OIDC publish --provenance --tag dsh → post-publish audit
114
114
  ```
package/README.pt.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Lunheng (lunheng-article-pipeline) — pipeline multiagente para textos longos
2
2
 
3
- > 版本:v18.2.0(DSH bundle:package.json + cordis.patch.yml + lib/index.js)
3
+ > 版本:v18.2.3(DSH bundle:package.json + cordis.patch.yml + lib/index.js)
4
4
 
5
5
  > 🌐 [English](README.md) | [中文](README.zh.md) | [Español](README.es.md) | **Português**(este arquivo)| [हिन्दी](README.hi.md)
6
6
 
@@ -108,7 +108,7 @@ A camada patch faz duas coisas: **insere uma linha para este pacote** (`- id: lu
108
108
  As versões são publicadas **apenas por tag**; `npm publish` local é proibido (contorna os portões de CI e a proveniência OIDC, e uma versão npm nunca pode ser sobrescrita).
109
109
 
110
110
  ```sh
111
- git tag v18.2.0 && git push origin v18.2.0 # uma tag por push (GitHub: >3 tags em um push não dispara workflow)
111
+ git tag v18.2.3 && git push origin v18.2.3 # uma tag por push (GitHub: >3 tags em um push não dispara workflow)
112
112
  # publish.yml executa: portão 1 consistência → portão 2 empacotamento → portão 3 higiene → portão 4 teste de fumaça do pacote → testes
113
113
  # → tag/versão iguais → guarda de idempotência → OIDC publish --provenance --tag dsh → auditoria posterior
114
114
  ```
package/README.zh.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  > 🌐 [English](README.md) | **中文**(本文件)| [Español](README.es.md) | [Português](README.pt.md) | [हिन्दी](README.hi.md)
4
4
 
5
- > 版本:v18.2.0(DSH bundle:package.json + cordis.patch.yml + lib/index.js)
5
+ > 版本:v18.2.3(DSH bundle:package.json + cordis.patch.yml + lib/index.js)
6
6
 
7
7
  > 一个 DeepSeek Harness(DSH)bundle 插件,注册一个按需加载的 agent 技能。它把深度长文的生产——学术论文、行业分析、商业评论、公众号深文——变成**带人在环节点的 9 角色流水线**。
8
8
 
@@ -108,7 +108,7 @@ patch 层做两件事:**插入一行本包自注册行**(`- id: lunheng-arti
108
108
  **只推 tag 发布,禁止本地 `npm publish`**(本地直发会绕过 CI 三道门与 OIDC 来源证明,且 npm 版本不可覆盖)。
109
109
 
110
110
  ```sh
111
- git tag v18.2.0 && git push origin v18.2.0 # 一次只推 1 个 tag(GitHub:单次 push >3 个 tag 不触发任何 workflow)
111
+ git tag v18.2.3 && git push origin v18.2.3 # 一次只推 1 个 tag(GitHub:单次 push >3 个 tag 不触发任何 workflow)
112
112
  # publish.yml 依次跑:门 1 一致性 → 门 2 打包面 → 门 3 机械卫生 → 门 4 打包产物冒烟 → 脚本回归测试
113
113
  # → tag/版本一致校验 → 幂等守卫 → OIDC 发布 --provenance --tag dsh → 发布后审计
114
114
  ```
package/SECURITY.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # 安全策略(SECURITY)
2
2
 
3
- > 版本:v18.2.0(DSH 原生插件,发布于 2026-09-12)
3
+ > 版本:v18.2.3(DSH 原生插件,发布于 2026-09-12)
4
4
 
5
5
  ## 上报漏洞
6
6
 
package/cordis.patch.yml CHANGED
@@ -1,4 +1,4 @@
1
- # lunheng-article-pipeline bundle patch(DSH 原生插件 v18.2.0)
1
+ # lunheng-article-pipeline bundle patch(DSH 原生插件 v18.2.3)
2
2
  #
3
3
  # 本文件用 DSH cordis-plugin-include 的 `- insert:` 列表语法在 standard 组合树之上叠加 4 行:
4
4
  # 1. **本包入口(自注册行)**:`name: lunheng-article-pipeline` → loader 按包名解析到
package/docs/faq.md CHANGED
@@ -14,16 +14,16 @@
14
14
 
15
15
  实测技能可正常加载:`dsh --profile <profile> --dump-config` 可见本包层与三档 `tool-subagent-*` 行,新会话的技能目录能列出 `lunheng-article-pipeline`。
16
16
 
17
- ## 版本号为什么是 18.2.0 这种形态?
17
+ ## 版本号为什么是 18.2.1 这种形态?
18
18
 
19
19
  DSH 版独立维护、独立版本线,版本号不与任何外部版本线共享。**v17.0.0 起版本号 = 纯语义化版本,迭代号进 major**:
20
20
 
21
21
  | 场景 | 版本 |
22
22
  |---|---|
23
- | 本轮迭代 | `18.2.0` |
23
+ | 本轮迭代 | `18.2.1` |
24
24
  | 上一轮迭代(未单独发布,内容随本版首发) | `17.0.0` |
25
- | 同一轮内修补 | `18.2.0` |
26
- | 同一轮内小步改进 | `18.2.0` |
25
+ | 同一轮内修补 | `18.2.1` |
26
+ | 同一轮内小步改进 | `18.2.1` |
27
27
 
28
28
  **为什么不能写成 `dsh.17.0`**:npm 强制 [semver](https://semver.org),`major.minor.patch` 三段必须是数字,`dsh` 只能出现在 `-`(prerelease)或 `+`(build metadata)之后——实测 `npm publish` 会直接以 `Invalid version` 拒绝。
29
29
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  > **论衡(lunheng-article-pipeline)** 是一个多 Agent 深度长文生产流水线,DeepSeek Harness(dsh)bundle 插件。它不是让一个 AI 直接写文章,而是让一支 **9 个 AI 角色组成的"论文生产小队"** 按既定协议协作:定题 → 三线并行检索 → 分析 → 写作 → 批判 → 审计 → 审稿 → 终检。每一步都有明确产出物、交接报告与质量闸门,最终交付**有证据底座、有反方论证、有独立审计、有人工核验节点**的文章。
4
4
 
5
- > 适用:公众号深度长文、研究报告、学术论文、商业评论、行业分析——任何"要站得住脚"的长内容。当前版本 **v18.2.0**(DSH 独立版本)。
5
+ > 适用:公众号深度长文、研究报告、学术论文、商业评论、行业分析——任何"要站得住脚"的长内容。当前版本 **v18.2.3**(DSH 独立版本)。
6
6
 
7
7
  ---
8
8
 
@@ -170,7 +170,7 @@ dsh plugin --profile web add lunheng-article-pipeline
170
170
  ## 获取方式
171
171
 
172
172
  - **GitHub(DSH bundle)**:https://github.com/zuoyunlai/lunheng-article-pipeline-dsh
173
- - **npm**:`lunheng-article-pipeline@dsh`(dist-tag `dsh` = 最新 DSH 迭代版);锁定具体版本可写 `@18.2.0`
173
+ - **npm**:`lunheng-article-pipeline@dsh`(dist-tag `dsh` = 最新 DSH 迭代版);锁定具体版本可写 `@18.2.3`
174
174
  - **历史版本线(独立化前)**:https://github.com/zuoyunlai/lunheng-article-pipeline
175
175
 
176
176
  ---
@@ -1,6 +1,6 @@
1
1
  # 故障排查(troubleshooting)
2
2
 
3
- > 版本:v18.2.0(DSH 原生插件,发布于 2026-09-12)
3
+ > 版本:v18.2.3(DSH 原生插件,发布于 2026-09-12)
4
4
 
5
5
  安装/验证失败时按「症状 → 原因 → 处置」对照。
6
6
 
@@ -12,7 +12,7 @@
12
12
  ```sh
13
13
  # 1. 在 profile 里声明 bundle 依赖(DSH 读 dsh.bundle.patch 找到 cordis.patch.yml 加载)
14
14
  dsh plugin --profile web add lunheng-article-pipeline@dsh # 推荐:跟随最新 DSH 迭代版
15
- # 锁定具体版本:dsh plugin --profile web add lunheng-article-pipeline@18.2.0
15
+ # 锁定具体版本:dsh plugin --profile web add lunheng-article-pipeline@18.2.3
16
16
 
17
17
  # 2. (可选)设三档 subagent 工具的 provider/model 环境变量
18
18
  # 不设任何变量 = 三档全部继承会话模型(安全默认,单模型用户无需本步)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lunheng-article-pipeline",
3
- "version": "18.2.0",
3
+ "version": "18.2.3",
4
4
  "description": "论衡(lunheng-article-pipeline)— 多 Agent 深度长文流水线技能包(DeepSeek Harness 原生插件):定题→并行检索(文献/数据/案例)→分析→大纲人在环确认→写作→批判→审计→审稿→修订→配图→终检交付,9 个独立角色 T1-T9 互不可替代(文献/数据/案例/分析/写作/批判/审计/终检/审稿),主控 = T0 调度 + T8 终检亲执行(T8 独立角色,执行者主控担任,不 spawn),T9 审稿可选默认选中学术必选,三角验证 + M 机械化硬门 + F 失败模式防御 + G14 中文 AI 痕迹闸 + 期刊匹配助手,用 dsh subagent 子代理编排。",
5
5
  "type": "module",
6
6
  "main": "lib/index.js",
@@ -4,7 +4,8 @@
4
4
 
5
5
  ## 启动时必读
6
6
 
7
- > **清单真源 = `SKILL.md` §启动清单**(v18.0.5 收敛:此前本处 4 项与 SKILL 3 项不一致——一方漏 §十二、一方漏 `MEMORY.md`)。要点复述(**以 SKILL.md 为准**):① `references/pipeline-readme.md` 的「流水线全景 / 派发话术 / 模型配置」三节;② `references/glossary.md`(按需查节;**§十二 本技能自用术语与文档约定** 属改机制前必读);③ `MEMORY.md` + `memory/YYYY-MM-DD.md`(主人偏好与最近关注)。
7
+ > **清单真源 = `SKILL.md` §启动清单 与 §⚡ 启动速查表**——本处**不再复述**。
8
+ > v18.2.2 收敛(主人授权修订;依据 2026-09-12 全量测试反哺):旧版此处**复述**了 SKILL 的 3 项启动清单,构成**同一事实两处维护**——v18.0.5 已因「本处 4 项 vs SKILL 3 项」不一致修过一次,但只要还在复述,就会**再漂**(改启动清单时要记得同步两处 = 违反「一事实一处」)。**改启动清单只改 `SKILL.md`**。
8
9
 
9
10
  > **包形态(v18.0.0 起)**:**包根**含 `package.json`(`main` → `lib/index.js` + `dsh.bundle.patch` → `cordis.patch.yml`)、`lib/index.js`(**入口**:读随包 `skills/lunheng-article-pipeline/SKILL.md`,经 `ctx.skills.register()` 注册为 agent 技能,`inject=['skills']` + `resourceBase` 指向技能目录,注册即 effect、卸载自动清理)、`cordis.patch.yml`(**① 插入本包自注册行** `- id: lunheng-article-pipeline / name: lunheng-article-pipeline`——loader 靠这一行按包名 import 入口,**删了它技能就不注册**(v18.0.0 缺陷,v18.0.1 修复)+ ② 3 档 subagent 工具)。两种部署均受支持:① `dsh plugin add` 装 bundle(技能由入口注册);② 把 **`skills/lunheng-article-pipeline/` 技能目录**复制到任一 skill 根(项目级 `.dsh/skills/` rank 100 / 用户级 `$DSH_HOME/skills/` rank 400)。**包面自检**:`dsh-plugin-dev check`(14 项:11 通过 / 3 跳过——**v18.0.0 起无豁免**,目标 0 fail / 0 warn)+ `node --test "tests/**/*.test.mjs"`。
10
11
 
@@ -1,6 +1,6 @@
1
- > 版本:v18.2.0(DSH bundle 插件)
1
+ > 版本:v18.2.3(DSH bundle 插件)
2
2
 
3
- # 论衡快速开始指南(v18.2.0)
3
+ # 论衡快速开始指南(v18.2.3)
4
4
 
5
5
  > **v2.3.0 升级(2026-08-21)**:角色编号重构(教训 #116)—— T6 案例检索 → T3 案例检索(三方并行检索员连贯 T1∥T2∥T3),T3-T8 顺延 + T7/T8 交换位置(终检 → T8 主控亲完成、批判 → T6 独立早期攻击、审计 → T7 形式审查)。新增 Phase 3.6 批判(T6 攻击 v2 含主人洞察)。
6
6
  >
@@ -1,6 +1,6 @@
1
1
  # 论衡(lunheng-article-pipeline)— 多 Agent 深度长文流水线
2
2
 
3
- > **DSH 原生插件(v18.2.0)**:本仓库为 DSH bundle 技能包(`package.json` 的 `main` → `lib/index.js` 注册本技能 + `dsh.bundle.patch` → `cordis.patch.yml` 叠加三档 subagent 工具);结构性差异见 `SKILL.md` 的「🔧 DSH 环境说明」章节。
3
+ > **DSH 原生插件(v18.2.3)**:本仓库为 DSH bundle 技能包(`package.json` 的 `main` → `lib/index.js` 注册本技能 + `dsh.bundle.patch` → `cordis.patch.yml` 叠加三档 subagent 工具);结构性差异见 `SKILL.md` 的「🔧 DSH 环境说明」章节。
4
4
 
5
5
  把一篇深度文章 / 论文的生产拆成 **9 个独立角色 T1-T9 + 6 个阶段**(v2.5.2-dsh.8 语义定案:T1-T9 互不可替代;Phase 1 为 T1 文献 ∥ T2 数据 ∥ T3 案例 三检索员三方真并行互不干涉,T3 任何量级必 spawn 含 0 条空卡协议;T6 批判伙伴 + T7 审计 + **T8 终检独立角色由主控 T0 亲执行** + T9 同行评审可选默认选中学术必选,v2.3.0 角色编号重构 + v2.4.0 加 T9),用 DSH 的 `subagent` 子代理编排,产出有**证据底座、反方论证、独立审计、人工核验节点**的交付物。
6
6
 
@@ -1,11 +1,11 @@
1
1
  ---
2
2
  name: "lunheng-article-pipeline"
3
- version: "18.2.0"
3
+ version: "18.2.3"
4
4
  description: "论衡:DSH 原生多 Agent 深度长文流水线(学术论文 / 商业评论 / 行业分析 / 公众号)。9 个独立角色 T1-T9 + 主控(T0 调度 + T8 终检);三角验证 + M 门 + G 审计 + 修订回环 ≤2 轮 + 期刊匹配。适用:≥2000 字、证据须可追溯的长文(含 4 个人在环节点、1-3 小时流水线时长)。**不适用**:<2000 字短文与即时问答;文学创作(小说/诗歌/剧本);需数学推导或实验设计的理工科论文;营销软文;需要一手数据(问卷/访谈/田野/实验)而尚未投喂素材。"
5
5
  whenToUse: "「何时该用」与「何时不该用」的完整判据已并入 description(v18.0.5:官方目录只渲染 name + description,本字段对模型不可见,保留仅供工具链与维护者阅读)。"
6
6
  ---
7
7
 
8
- > 版本:v18.2.0(DSH bundle 插件)
8
+ > 版本:v18.2.3(DSH bundle 插件)
9
9
  > **v2.5.2-dsh.8 角色语义定案(主人指令)**:**9 个角色 T1-T9 各自独立、不可相互替代**——T8 终检不是「主控兼做的杂活」而是独立角色(有独立角色卡),只是执行者由主控担任(**主控 = T0 调度 + T8 终检执行双重身份**),不 spawn 子代理;**T9 审稿可选、默认选中、学术论文必选**。
10
10
 
11
11
  # 多 Agent 深度长文流水线(论文/深度文章生产)
@@ -94,8 +94,8 @@ whenToUse: "「何时该用」与「何时不该用」的完整判据已并入 d
94
94
 
95
95
  ## ⚡ 启动速查表
96
96
 
97
- - 版本:v18.2.0|角色:T0 主控(= T8 终检执行者)+ T1 文献 / T2 数据 / T3 案例 / T4 分析 / T5 写作 / T6 批判 / T7 审计 / T8 终检(主控亲执行)/ T9 审稿(默认选中,学术必选)
98
- - Phase:0 定题 → 1 检索(T1∥T2∥T3) → 2 分析 → 2.5 大纲(人) → 3 写作 → 3.5 洞察(人) → 3.6 批判 → 4 审计 → 4.5 审稿+G14 → 5 终检(人)
97
+ - 版本:v18.2.3|角色:T0 主控(= T8 终检执行者)+ T1 文献 / T2 数据 / T3 案例 / T4 分析 / T5 写作 / T6 批判 / T7 审计 / T8 终检(主控亲执行)/ T9 审稿(默认选中,学术必选)
98
+ - Phase:0 定题 → 1 检索(T1∥T2∥T3) → 2 分析 → 2.5 大纲(人) → 3 写作 → **[3.1 G14 早闸]** → 3.5 洞察(人) → 3.6 批判 → 4 审计 → 4.5 审稿+G14 → 5 终检(人)
99
99
  - 工具:subagent=派发(分档预设按角色选 subagent_retrieval/strong/audit)|list_agents=查看|todo_write=计划|web_search/web_fetch=检索|pwsh=命令|edit/write=文件
100
100
  - 闸门:T2.5(检索→分析)/ T7.5(审计→终检);M 门 exit 0;修订回环双轨 ≤2 轮(A 轨)
101
101
  - 闸门留痕(v2.5.2-dsh.17):两道闸门各落一份 `audits/闸门记录-T2.5.md` / `-T7.5.md`(模板 `templates/闸门记录-template.md`)——「实据」列必须是路径/exit code/命令,写「已检查」被判 P1(机检 **M-Exist-5**)
@@ -200,7 +200,7 @@ whenToUse: "「何时该用」与「何时不该用」的完整判据已并入 d
200
200
  ## 角色卡与模板
201
201
 
202
202
  - **9 个独立角色卡(T1-T9)**:`references/agents/01~09`(00-主控-coordinator.md = T0 调度 + T8 终检双重身份;**`00-主控-扩展职责.md` = T0 的实操手册(49 KB,全库第二大文档,含 §一–§二十三:编排循环防空转 / 闸门公共动作 / 主人侧产物…)——v18.0.5 补入本索引,此前只能从 coordinator 卡的指针到达**;T8 独立卡 08-终检-finalizer.md,主控亲执行不 spawn;T9 默认选中、学术必选;T3 任何量级必 spawn 含 0 条空卡协议)。
203
- - **模板**:`references/templates/`(**26 个**,v18.0.3 实测;按用途取用,别整目录读):`任务简报 / status / 交接报告 / 文献卡 / 数据卡 / 案例卡` 各含 **full + lite**(实战用 lite,培训/字段详解用 full)+ 单文件模板 `先行者清单 / G14检测报告 / 主人确认 / AI-使用声明 / 修订说明 / 投稿就绪检查表 / 图表-SVG / 素材加载清单 / 闸门记录 / 交付说明 / 模型路由表 / 进展-主人版 / 主人投喂清单 / style-baseline`。
203
+ - **模板**:`references/templates/`(**27 个**,v18.2.2 实测;按用途取用,别整目录读):`任务简报 / status / 交接报告 / 文献卡 / 数据卡 / 案例卡` 各含 **full + lite**(实战用 lite,培训/字段详解用 full)+ 单文件模板 `先行者清单 / G14检测报告 / 主人确认(= 阶段确认单通用模板)/ AI-使用声明 / 修订说明 / 投稿就绪检查表 / 图表-SVG / 素材加载清单 / 闸门记录 / 交付说明 / **局限性(v18.2.2 新增)** / 模型路由表 / 进展-主人版 / 主人投喂清单 / style-baseline`。
204
204
  > v18.0.3:旧版此处只列 15 项(漏 7 个后加模板);**改模板集合时同步本行**(`ls references/templates/` 为准)。另:`机检硬格式` 表已收口到 [`references/_shared/机检硬格式.md`](references/_shared/机检硬格式.md)。
205
205
  - **运行手册**:`references/pipeline-readme.md`(含 T1-T9/G14 派发话术 + M 门 + F 模式 + AI 披露)。
206
206
  - **新增文档索引**:字数判定表 / degraded-scenarios / 期刊数据库+匹配算法 / 中文数据源集成 / format-export / case-studies 均位于 `references/_shared/` 与 `references/`(路径见各节链接)。
@@ -1,6 +1,6 @@
1
1
  # 论衡 × DSH 能力面集成方案
2
2
 
3
- > **版本**:v18.2.0(C 组落地;§一–§六 为 v18.0.2 原文,§七–§八 为 v18.2.0 新增)
3
+ > **版本**:v18.2.3(C 组落地;§一–§六 为 v18.0.2 原文,§七–§八 为 v18.2.1 新增,**§九 为 v18.2.2 新增**)
4
4
  > **用途**:把论衡的既有机制(11 个门禁脚本 / 并行阶段 / 状态机 / 人在环闸门)**对齐 DSH 已有能力面**,替代平行自建。§一–§六 是**实施方案**,§七 是**落地状态表**,§八 是**可选配方**。
5
5
  > **依据**:DSH 官方文档 `docs/cookbook/adding-a-tool.md`、`docs/tool-execution-pipeline.md`、`docs/subsystems/*.md`、`docs/capability-seams.md`(知识库副本见 `dsh-plugin-guide/references/official-docs/`;行号对快照 commit `d347e703…`)。
6
6
  > **当前状态**:**C 组四项已启用**(原生只读工具 / `ctx.tools.guard()` 写保护 / `/lunheng-status` / 词预算门)、一项给配方(分档工具行→agent preset)、一项仍未接线(Phase 内并行→`workflow`,依官方用法限定「仅在用户明确要求 workflow 或大规模编排时」用,故**降级为按需**)。
@@ -329,3 +329,40 @@ dsh --profile web --dump-config 2>&1 | grep -E "tool-subagent-(retrieval|strong|
329
329
  3. **`restrict` 藏不住预设层工具**(`tools.md:507-513`:对 scope-local 名会失败)——想「有预设但偶尔禁掉某档」只能靠不选该预设。
330
330
  4. **预设行会被校验拒绝**:`capability-seams.md:507`「rejecting a row that never activates or that publishes into the root service realm」——写错 `toolName` 或把它当 service 用会**加载期报错**(这是好事:响亮失败)。
331
331
  5. **本包默认不动**:`cordis.patch.yml` 仍保留三行全局声明。「装了不坏」优先——**换了作用域就不再是「装了就可用」**,需要主人主动选择会话预设。
332
+
333
+ ---
334
+
335
+ ## 九、运行环境限制:Windows sandbox 的 `--temp` 前置目录(v18.2.2 新增,主人授权修订)
336
+
337
+ > **来源**:2026-09-12 全量测试(`run/ai-era-humanity-crisis`)实测。**如实登记为「环境限制」而非「本包缺陷」**——本包无法从技能侧修复。
338
+
339
+ ### 9.1 现象
340
+
341
+ 在 `workspace-write` 文件策略下,**主控 `pwsh` 调用会整体失败**,报:
342
+
343
+ ```
344
+ sandbox mode "workspace-write" is requested but no sandbox backend is usable on this host;
345
+ refusing to run the command unconfined.
346
+ Runner failure: windows-acl-run: --temp is not an existing directory:
347
+ C:\Users\<用户>\AppData\Local\Temp\dsh-<随机后缀>
348
+ ```
349
+
350
+ - **不是命令本身的问题**:同一台机器、同一会话内,**前若干次 `pwsh` 正常**,之后开始连续失败;`node --check`、`Add-Type`、`cp` 等一律失败。
351
+ - **根因**:Windows ACL runner 需要一个 `--temp` 目录,而该目录**已不存在**(会话临时区被清理),runner 拒绝降级为 unconfined 启动 → 命令根本没执行。
352
+ - **误判风险(高)**:错误文本含 `sandbox` 与 `exit code: 1`,极易被读成「命令失败」而反复重试 → **耗尽步数**(本轮实测连续 3 次同错,触发「相同命令连续失败」告警)。
353
+
354
+ ### 9.2 论衡侧的应对(已在本轮使用,均零额外成本)
355
+
356
+ | 场景 | 失败路径 | 替代路径 |
357
+ |---|---|---|
358
+ | 校验产物(文件存在 / 行数 / grep 计数) | 主控 `pwsh` | ✅ **`read` / `glob` / `grep` 原生只读工具**(不经过 runner,永远可用) |
359
+ | 跑随包脚本(`m-gate-check.mjs` / `count-chars.mjs` / `consistency-check.mjs` / `node --test`) | 主控 `pwsh` | ✅ **委派 `subagent` 执行**——子代理进程自带可用的临时区(本轮全部脚本验证均如此完成) |
360
+ | 备份 / `cp` / `sha256` 对比 | 主控 `pwsh` | ✅ 委派 `subagent`;或 `write` 工具按内容重建(慢但可靠) |
361
+ | M 门预检 | `pwsh` 调脚本 | ✅ bundle 部署下的原生只读工具 `lunheng_m_gate`(若清单里有) |
362
+
363
+ ### 9.3 给主控的操作纪律(v18.2.2 起)
364
+
365
+ 1. **第一次**看到该错误 → **立即改写调用路径**(改用原生只读工具,或委派子代理),**不要重试同一命令**。
366
+ 2. **不要**为了绕过而请求 `danger-full-access` 提权——`--temp` 缺失是 runner 前置条件问题,提权不解决,且属不必要的权限扩张。
367
+ 3. **不要把该失败记成角色失败**:它不产生任何产物缺失,`list_agents` 与产物校验都不受影响。
368
+ 4. 若需彻底修复:属 DSH 宿主侧(保证 `--temp` 目录在会话生命周期内存在,或 runner 缺失时自动重建),**超出本包范围**——本包只登记现象与替代路径。
@@ -1,4 +1,4 @@
1
- > 版本:v18.2.0(DSH bundle 插件)
1
+ > 版本:v18.2.3(DSH bundle 插件)
2
2
 
3
3
  > **v2.5.2-dsh.5 重大修订**(测试轮反哺 14 项问题落地):
4
4
  > - **P0** #1 M-Form-2 与 M-Form-7 白名单统一(含 AI 使用声明)
@@ -212,6 +212,8 @@ else: return {"通过": False, "命中": total, "优先级": "P0" if total >= 3
212
212
 
213
213
  ### M-Form-4: 角色元数据泄露(v2.5.2-dsh.5 重大修订:黑名单转白名单)
214
214
 
215
+ > **v18.2.2(主人授权的机制修订)**:「AI 使用声明」节**整体豁免**文末二级扫描——该节的唯一职责就是披露 AI 参与,措辞由 `templates/AI-使用声明-template.md` 规定,与「文末不得含内部流水线信息」不冲突。实测:定稿在声明节写「…三档**承重**证据」命中禁词「承重」→ 假 P0。**豁免范围仅「AI 使用声明」一节**;`参考文献 / 数据来源 / 案例来源 / 先行者文献` 四节仍照扫(v18.0.0 加二级扫描的动因正是 `## 案例来源` 泄露角色名)。
216
+
215
217
  **v2.2.0 原版**(**黑名单模式,已废弃**):只查 16 个具体词,漏网多;黑名单永远补不全。
216
218
 
217
219
  **v2.5.2-dsh.5 新版**(**白名单模式,结构性修复**):列出**论衡白名单内容**([Lxx]/[Dxx]/[Cxx]/[C-主xx]/[先xx] 引用 + 公开出版人名/机构名 + 通用学术术语 + 时间锚点 + 数字事实 + 通用标点),白名单外所有「流水线/论衡专属」标识都判定为元数据泄露。**白名单列举**:
@@ -456,6 +458,8 @@ else:
456
458
 
457
459
  ### M-Form-8: 三角验证覆盖率检查(v2.3.7 论文三实战升级 + v2.5.2-dsh.5 按论点逐一核)
458
460
 
461
+ > **v18.2.2(主人授权的机制修订)**:承重墙清单锚点新增**「表格表头锚点」并置其优先级最高**——T4 常把承重墙做成三角验证表的**一列**(表头 `| … | 承重 top1 | … |`),而非独立小节。旧实现只认「以承重墙/承重证据/承重清单开头的标题行」与「行内式 承重证据 top1」,于是命中的是表上方的**纪律说明引用块行**,收块时又在**空行处即停** → `structRows=0` → 假报「承重墙清单无结构性条目」P1。三处修正:① 表头锚点优先;② 收块容忍 ≤3 行空行间隔;③ 锚点搜索跳过围栏代码块。
462
+
459
463
  **背景**:v2.3.7 论文三实战 §四 P4 一直缺 [Lxx](L=0 D=22 C=3),直到 T7 fallback 审计才发现(v3→v4 加了 [L06] [L12])。**毛在才不出现**——主控「三角验证把关」职责未机制化,写手 v1 落地前没自动跑 [Lxx]+[Dxx]+[Cxx] 三维 检查。
460
464
 
461
465
  **三角验证原理**(论衡核心机制):任何论点必须能映射到文献卡[Lxx]+数据卡[Dxx]+案例卡[Cxx](涉企业行为/事件者必须配案例卡)。检索不到就标缺口,严禁编造。主角控「三角验证把关」职责(2026-08-13 原创性保证增)原本是主控手动检查,v2.3.7 P1-4 升级为**写手 v1 落地前机械化自动跑**。
@@ -622,6 +626,8 @@ node skills/lunheng-article-pipeline/scripts/m-gate-check.mjs final/定稿.md fi
622
626
 
623
627
  ### M-Form-11: 素材按需加载闭环(v2.5.2-dsh.17 新增)
624
628
 
629
+ > **v18.2.2(主人授权的机制修订)**:① **比率对账先取交集**——分子 = |已加载 ∩ 索引段|,越出索引段的编号另记软提示、不参与比率(实测出现过 `已加载 54 / 索引 52`,分子 > 分母 → 比率 >100% 仍被判「>90% 整卡通读」,不可复算);② **「白读」软提示排除 `## 已跳过` 段已声明的编号**(清单明示跳过者不再报「上下文浪费」)。
630
+
625
631
  **检查对象**:`analysis/素材加载清单.md`(**## 已加载** 段)↔ `final/定稿.md` 正文引用的 `[Lxx]/[Dxx]/[Cxx]` ↔ 三张卡片的正文条目编号。
626
632
 
627
633
  **为什么必须有这一项**:05 卡要求 T5「先读各卡索引段 → 按大纲映射表**只读相关条目,不读全文**」(**实测口径**:T5 占子代理 cacheRead 单项目峰值 76%(test-paper-02)、本机 34 会话聚合 63.6%;见 `本机实测:`node scripts/token-budget.mjs --roles``)。但「按需加载」与「整卡通读」在产物上**完全同形**——只看初稿无从区分,整条 token 优化的收益此前**全靠写手自述**。本项用一份 ≤30 行的留痕(`templates/素材加载清单-template.md`)把「到底加载了哪些编号」变成事实。
@@ -652,6 +658,8 @@ unused = loaded - cited # 读了不用 = 上下文浪费
652
658
 
653
659
  ### M-Exist-1: 文末四节双向 对比(v2.2.1.2 + v2.2.4 升级版 + v2.5.2-dsh.5 严重度评级)
654
660
 
661
+ > **v18.2.2(主人授权的机制修订)**:**诊断增强**——最高频的漏引根因不是「缺条目」,而是**「参考文献」节误用 GB/T 7714 的数字标签 `[1]..[n]`**:本门编号正则 `\[(L|D|C-主|C|先)\d+\]` **要求字母前缀**,`[1]` 一条都扫不到 → 文末字母编号集为空 → **正文全部 `[Lxx]` 被判「漏引」**(本仓库 v18.2.1 `规范-机械门对照表.md` 已记「首版无 [Lxx] → 漏引 17」,v18.2.2 全量测试再次踩到)。旧 detail 只报「漏引 N」,主控与写手易误判为「缺条目」而去补条目(治标不治本)。现检测该形态并在 detail **前置可操作提示**(「把 [N] 逐条改为 [Lxx],按现有顺序一一对应,禁止重排顺序」)。**判定逻辑与严重度完全不变,只改提示文字。**
662
+
655
663
  **v2.2.0 算法**(**有 bug**):提取 严格匹配 4 个标准文末节 → 对「## 附」段误判。
656
664
 
657
665
  **v2.2.1.2 升级算法**(教训 #82)+ **v2.2.4 内联引用 + 补检索回填分支**:
@@ -713,6 +721,8 @@ return (len(leaked) == 0 and len(orphan) == 0, leaked, orphan)
713
721
 
714
722
  ### M-Exist-2: 证据包文件完整性 sha256(v2.2.0 原版 + v2.2.10 跨平台等价命令 + v2.2.11 能力边界修正)
715
723
 
724
+ > **v18.2.2(主人授权的机制修订)**:**阶段感知**——被审正文位于 `drafts/`(Phase ≤4 审计场景)且证据包为空时,本项记 **N/A(pass=true)** 而非 P0。理由:证据包由 **T8 终检** 的 `build-evidence-bundle.mjs` 生成,T7 审计时它本就「尚未到期」;旧实现一律判「0 个 .md 文件 → P0」,该 P0 从 Phase 4 起挂在报告里、**T5 修订轮无法关闭**,最终只能写进 Acknowledged Limitations。同文件「证据包完整性前置提示」段已定过同一原则。**被审正文为 `final/定稿.md` 时维持原判 P0**。
725
+
716
726
  ```
717
727
  算法步骤(v2.2.17 修订,回应 外部扫描器 v2.2.16 finding F03+F05 94%/92%):
718
728
  1. 读取 final/证据包/ 目录下所有 .md 和 .txt 文件
@@ -956,6 +966,8 @@ report = audits/审计报告-vN.md(N 取最大);无 → N/A(未进入 Ph
956
966
 
957
967
  ### M-Exist-10: 大纲 §11 精简段完整性(v2.5.2-dsh.17 新增)
958
968
 
969
+ > **v18.2.2(主人授权的机制修订)**:**寻找「下一标题」时必须跳过围栏代码块**——精简段正文常整体包在 ```` ```markdown ```` 围栏里,围栏内的 `# T5 写手 v1 精简段(≤60 行)` 这类**一级标题**会被 `^#{1,lvl}\s` 命中 → 段落在第 2 行即被截断 → 实测假报「精简段 2 行 / 六要素实到 0/6」P0(真值:围栏内 48 行、六要素齐备)。围栏开合用行首 ``` 计数。
970
+
959
971
  **检查对象**:`analysis/分析大纲.md` 末尾 **§11「写手版精简段」** 的**六要素齐备性**。
960
972
 
961
973
  **为什么必须有这一项**:04/05 卡早已定案「T5 **只读**大纲末尾 §11 写手版精简段(≈60 行),完整大纲按需」——这条把 T5 的**可裁剪读入口**压掉九成(**实测**:大纲全文 → §11 省**中位 85%**,12 个真实项目 n=12;T5 的 cacheRead 占子代理 单项目峰值 76% / 本机聚合 63.6%)。但 §11 自身是否真含那六个要素(**论证主线 / 论点-论据映射表 / 反方规划要点 / 字数预算 / 禁做项 / 承重墙清单**)**从来没被核过**。风险很隐蔽:§11 缺要素时 T5 只能**回退整读大纲**,省 token 的机制**静默失效**,而产物上完全看不出来。
@@ -984,6 +996,8 @@ outline = analysis/分析大纲.md(缺则回退 证据包/分析大纲.md)
984
996
 
985
997
  ### M-Integrity-1: T2.5 完整性门(T2 数据检索 → T4 分析前,v2.2.1 新增 + v2.2.10 时序修正)
986
998
 
999
+ > **v18.2.2(主人授权的机制修订)**:**「需找数据点」计数改为分组取大**——`任务简报-template.md` 自身规定该短语写**两处**(研究问题段逐子问题各一条 + 数据需求段总量一条),旧实现**一律求和** → 实测 3+6+8(子问题)+ 25(总量)= **42**,而作者声明的真实需求是 **25** → 数据卡 32 条被判「32 < 42 条」→ T2.5 步骤 4 触发「T2 重检索」**假 P0**,M 门永不可 exit 0。现规则:`agg` = 不在「子问题」行上的需求量之和;`scoped` = 在「子问题」行上的需求量之和;**需求 = max(agg, scoped)**(取大即按更严一方对账,不产生假通过);两组皆空 → 0。
1000
+
987
1001
  > **v2.2.10 重要修正**:原版逻辑矛盾 — M-Integrity-1 在 T2→T4 之间,大纲(T4 产物)尚不存在却需查「数据条目数 ≥ 大纲 D 列数」。修正为查任务简报(Phase 0 已产物化)子问题的数据需求数。
988
1002
 
989
1003
  ```
@@ -1,4 +1,4 @@
1
- > 版本:v18.2.0(DSH bundle 插件)
1
+ > 版本:v18.2.3(DSH bundle 插件)
2
2
 
3
3
 
4
4
  # 审计员必查项快速参考(v2.2.8 抽离,v2.3.0 改 T5→T7)
@@ -1,4 +1,4 @@
1
- > 版本:v18.2.0(DSH bundle 插件)
1
+ > 版本:v18.2.3(DSH bundle 插件)
2
2
 
3
3
 
4
4
  # 退化场景规范(主人跳过 Phase 3.5 时)
@@ -1,4 +1,4 @@
1
- > 版本:v18.2.0(DSH bundle 插件)
1
+ > 版本:v18.2.3(DSH bundle 插件)
2
2
 
3
3
 
4
4
  # 论衡 F 失败模式防御(v2.2.8 抽离)
@@ -1,4 +1,4 @@
1
- > 版本:v18.2.0(DSH bundle 插件)
1
+ > 版本:v18.2.3(DSH bundle 插件)
2
2
 
3
3
 
4
4
  # 多格式导出(v2.5.0 新增,可选,默认 md)
@@ -1,4 +1,4 @@
1
- > 版本:v18.2.0(DSH bundle 插件)
1
+ > 版本:v18.2.3(DSH bundle 插件)
2
2
 
3
3
 
4
4
  # 中文数据源集成(v2.5.1 修订:基于主人 2026-08-24 国内文献平台 API 实测)
@@ -1,4 +1,4 @@
1
- > 版本:v18.2.0(DSH bundle 插件)
1
+ > 版本:v18.2.3(DSH bundle 插件)
2
2
 
3
3
 
4
4
  # 字数判定表(T7 审计 + T8 终检共用单一真源)
@@ -16,15 +16,22 @@
16
16
  > **核验方法参考**(可执行命令见下方「DSH 可执行核验命令」段;agent 侧跑白名单脚本 `scripts/count-chars.mjs`):纯汉字**以正文区口径为准**(**`## 摘要` 之后 至 第一个文末节之前**,即含「关键词」段与「引言至结语」全部正文);**禁止按字节区间切分统计**(UTF-8 下实测 20 倍失真)。
17
17
 
18
18
  > **正文统计区间(v2.5.2-dsh 补丁统一,教训:善行实战三方口径打架 12,569 / 11,939 / 14,963;v18.0.5 以脚本实现为真源收敛)**:
19
- > **正文区 = `## 摘要` 标题之后 → 第一个文末节(`## 参考文献` / `## 数据来源` / `## 案例来源` / `## 先行者文献` / `## AI 使用声明`)之前**;不含摘要正文、不含文末五节、不含脚注。
19
+ > **正文区 = `## 摘要` 标题之后 → 第一个文末节(`## 参考文献` / `## 数据来源` / `## 案例来源` / `## 先行者文献` / `## AI 使用声明`)之前**;**含摘要正文与关键词段**,不含题名、不含文末五节、不含脚注。
20
+ > ⚠️ **v18.2.3 更正(本行旧文与实现相反)**:旧版写「**不含**摘要正文」,但 `count-chars.mjs` 的起点是 `text.indexOf('## 摘要') + '## 摘要'.length`,即标题之后**立刻**起算 —— **摘要正文被计入**(实测 2026-09-12 那篇论文的摘要为 243 汉字)。紧邻的「v18.0.5 更正」只收敛到「**关键词**」、漏了这一处,故错话延续至今。243 字之差在 §二 的 1% / 5% 阈值上**足以把判定翻档**。
21
+ > ⚠️ **同源告警(v18.2.3 修)**:`count-chars.mjs --summary` 的 `body.hanChars` 曾因用「**含关键词的列表**」求正文终点而只剩摘要正文(**5112 → 243,差 21 倍**,`bodyRatio` 4.1%),而脚本头注释恰恰让 T7/T8 用该模式判字数 → 会把长文判成「仅 4% 篇幅」。现两条路径**共用同一助手**、并由 `tests/scripts.test.mjs` 的**跨路径对账断言**兜底;**若你看到 `--summary` 的 `body.hanChars` 与默认口径不等,即为回归**。
20
22
  > **真源 = `scripts/count-chars.mjs` 的实现**(T5 自报 / T7 复核 / T8 终检**必须用它**,禁止各算各的)。⚠️ **v18.0.5 更正**:本节旧版把区间写成「引言起至结语(不含摘要/**关键词**)」,与脚本实现**不一致**——脚本从 `## 摘要` 之后起算,**包含关键词段**。差值是关键词那几十字,但在 1%/5% 阈值上足以把一个稿子从 P2 翻成 P1(决定是否触发 T5 修订轮),故按脚本收敛;若确实要「引言起」口径,须**先改脚本**再改本节(不得只改文档)。
21
23
  > **DSH 可执行核验命令(pwsh,替代人工 grep;与脚本同区间)**:
24
+ > ⚠️ **v18.2.3 修:必须显式 `-Encoding utf8`**。本机 PowerShell **5.1**(实测 5.1.26100.9472)对**无 BOM 的 UTF-8** 文件用 `Get-Content -Raw` 会**按 ANSI 解码** → 中文全乱 → `'## 摘要'` 匹配不到 → 旧片段**静默返回 0**(实测 0 vs 真值 5112)。这正是本文件反复告诫的「静默退化」,故改用与脚本同构的 IndexOf 切片 + 编码显式声明:
22
25
  > ```powershell
23
- > $t = Get-Content -Raw 'drafts/初稿-vN.md'
24
- > $body = ($t -split '^## 摘要', 2)[1]
25
- > $body = ($body -split '^## (参考文献|数据来源|案例来源|先行者文献|AI 使用声明)', 2)[0]
26
- > ([regex]::Matches($body, '[\u4e00-\u9fff]')).Count # 口径A 纯汉字(摘要后至文末节前,与 count-chars.mjs 同口径)
26
+ > $t = Get-Content -Raw -Encoding utf8 'drafts/初稿-vN.md'
27
+ > $from = $t.IndexOf('## 摘要') + '## 摘要'.Length
28
+ > $to = $t.Length
29
+ > foreach ($m in '## 参考文献','## 数据来源','## 案例来源','## 先行者文献','## AI 使用声明') {
30
+ > $j = $t.IndexOf($m, $from); if ($j -ge 0 -and $j -lt $to) { $to = $j }
31
+ > }
32
+ > ([regex]::Matches($t.Substring($from, $to - $from), '[\u4e00-\u9fff]')).Count # 口径A 纯汉字(摘要后至文末节前,与 count-chars.mjs 同构件同区间)
27
33
  > ```
34
+ > **自检提示**:若结果为 `0`,**先怀疑编码/口径而非「文章没字」**——先确认 `$t.IndexOf('## 摘要') -ge 0`;仍为 0 且文件确实是 UTF-8,再检查是否存在 `## 摘要` 标题。(脚本侧不会踩此坑:`count-chars.mjs` 用 Node `readFileSync(utf8)`,并对 UTF-16 BOM 直接响亮失败。)
28
35
 
29
36
  ## 二、分级判定(超限幅度 → 判定 → 处理)
30
37
 
@@ -1,4 +1,4 @@
1
- > 版本:v18.2.0(DSH bundle 插件)
1
+ > 版本:v18.2.3(DSH bundle 插件)
2
2
 
3
3
 
4
4
  # 期刊匹配算法(v2.5.0 新增)
@@ -1,4 +1,4 @@
1
- > 版本:v18.2.0(DSH bundle 插件)
1
+ > 版本:v18.2.3(DSH bundle 插件)
2
2
 
3
3
 
4
4
  # 论衡内置期刊数据库(v2.5.0 新增,中文期刊审稿反馈处理器)
@@ -16,6 +16,9 @@
16
16
  | 索引段编号 | 索引表内亦须用 `[L01]`/`[D01]`/`[C01]`(**带方括号**) | M-Form-10 判「索引缺 N 条」 |
17
17
  | 头部条数声明 | 「总条数」**只声明本类**正文条目数(如「总条数:18 条」);基线 `[D-基-x-NN]`、先行者 `[先NN]` 等**另列**,勿并入同一「总条数」,**亦勿在别处写「(合计 N 条)」**(脚本 best-effort 会取错数) | M-Form-10 判「头部声明 ≠ 正文条目」 |
18
18
  | 信任级别行(数据卡 / 案例卡) | `- **信任级别**:已发布(备注)`——冒号后**直接跟档位词**,档位词上**不得再加粗**(写 `**信任级别**:**已发布**` 即不匹配) | M-Form-6 判「独立段缺失」→ 连锁 M-Integrity-1 判 **P0** |
19
+ | **信任级别档位词**(v18.2.1 新增) | **只允许三个词**:`已发布` / `主人投喂` / `二手转引`(真源 = `scripts/_lib/trust.mjs` 的 `TRUST_TOKENS`)。**不得自造档位词**——「官方」「机构报告」「正式披露」「上市公司口径」「权威来源」等一律判失败,即使语义上更贴切 | M-Form-6 判「独立段缺失(描述字段仅提及)」→ P2,并连锁 M-Integrity-1 判 **P0**(T2.5 门过不去)。**实战(v18.2.0 短测试)**:T2 把人大平台页/微博财报/腾讯年报写成「官方」→ 8 条数据卡 3 条不合规 |
20
+
21
+ > **档位词的语义边界**(避免「官方」这类词自然冒出来):**已发布** = 已正式公开发布(同行评审论文 / 上市公司财报 / 政府与高校机构公开发布的报告与页面);**主人投喂** = 主人提供的一手数据(问卷/访谈/田野/实验);**二手转引** = 转引他人(含媒体转引、机构报道转引、论文中转引)。**机构官网/财报属「已发布」而非「官方」**——「官方」不是论衡档位词。
19
22
 
20
23
  ## 二、文献卡 `[Lxx]` 专属
21
24
 
@@ -41,11 +44,41 @@
41
44
  | 机检项 | 必须的确切形态 | 违反后果 |
42
45
  |---|---|---|
43
46
  | 研究问题编号 | **必须写成「子问题 A / 子问题 B / 子问题 C …」**(脚本正则 `子问题\s*([A-Z一二三四五六七八九十\d]+)`;亦兼容旧式 `S1/S2` 表行) | M-Integrity-1 判「任务简报未见子问题(研究问题段缺失)」 |
44
- | 数据点需求 | **必须写成「需找数据点 ≥N」**(脚本正则 `需找数据点\s*[≥>]\s*(\d+)`,求和后与数据卡条目数对账) | M-Integrity-1 的 T2.5 对账**短路 → 该门静默失效** |
47
+ | 数据点需求 | **必须写成「需找数据点 ≥N」**(脚本正则 `需找数据点[^\d≥>]{0,4}[≥>]\s*(\d+)`;v18.2.1 起**容忍冒号/破折号**,如「需找数据点:≥ 3」亦可)。**计数口径(v18.2.2 修正)**:模板本身规定该短语写**两处**(研究问题段逐子问题各一条 + 数据需求段总量一条),脚本**不再一律求和**,而是按行归属分两组、**取两组之和的较大者**——`agg`(不在「子问题」行上之和,= 声明的总量)与 `scoped`(在「子问题」行上之和,= 分配量之和),需求 = `max(agg, scoped)` | **v18.2.2 前**:两处写法被**双重计数**(实测 3+6+8 子问题 + 25 总量 = 42,真值 25)→ 数据卡 32 条被判「32 < 42」→ **假 P0**,T2.5 门不可通过、M 门永不可 exit 0(只能写 Acknowledged Limitations)。**v18.2.1 前**:冒号/破折号写法失配 → 报「需求总数 0」假 P0 |
45
48
  | 基线编号清单 | 用 `[D-基-{R/T/C/E}-{NN}]`(glossary §三 正式格式)逐条列出 | 写手传递时易丢失编号 → M-Form-6 / M-Exist-3 报缺失 |
49
+ | **参考文献条目标签形态**(v18.2.2 新增) | 文末**五节**的条目标签一律用**论衡编号**:`[L01]`(参考文献)/ `[Dxx]`(数据来源)/ `[Cxx]`(案例来源)/ `[先NN]`(先行者文献)。**GB/T 7714-2015 只约束「著录格式」**(`[M]/[J]/[R]/[EB/OL]` 标识 + 「作者. 题名[类型]. 出版地: 出版者, 年」著录顺序),**不约束标签形态**。正确:`[L01] Jonas H. …[M]. Chicago: …, 1984.`;错误:`[1] Jonas H. …[M]. …`(**顺序编码制的数字标签**)。**顺序不得重排** | `M-Exist-1` 的编号正则要求**字母前缀**(`\[(L|D|C-主|C|先)\d+\]`)→ `[1]` 一条都扫不到 → 文末字母编号集为空 → **正文全部 `[Lxx]` 被判「漏引」**(实战:v18.2.1「首版无 [Lxx] → 漏引 17」;**v18.2.2 再次踩到**)。v18.2.2 起该门在 detail **前置可操作提示**(但仍须写手按本行产出) |
46
50
  | Phase 1.5 触发字段 | 必须显式写 `trigger: true/false` + 必补关键词(无则写「无」) | T4/T5/T6/T7/T9/T8 六处「触发条件读取」失去真源 |
47
51
 
48
- ## 六、维护规则
52
+ ## 六、审稿报告(T9)
53
+
54
+ | 机检项 | 必须的确切形态 | 违反后果 |
55
+ |---|---|---|
56
+ | 六维名(**逐字,不得改写**) | `原创性` / `方法论` / `证据强度` / `论证结构` / `写作质量` / `引文规范`,每维须写出 `x/5` | M-Exist-6 逐维抓 `x/5`;名字一改(哪怕更贴切)→ 判「未找到该维评分」并连锁「总评分缺失」→ **P0** |
57
+ | 总评分 | 报告内须出现 **`总评分 XX/30`**,且 XX = 六维之和(脚本校验自洽) | M-Exist-6 判「缺总评分 XX/30」→ **P0**;与分项之和不符另判「评分表与总分自相矛盾」 |
58
+ | 建议词区间 | 总评分 ≥26 → `accept`;21–25 → `minor`;16–20 → `major`;<16 → `reject`(报告须含对应词) | 建议与区间不一致 → 软提示 |
59
+ | 期刊匹配表 | 表头须含 **`综合匹配度`**,且**每行**给出 `综合 / 主题 / 风格` 三个**百分比**;`综合 = 0.5×主题 + 0.3×风格 + 0.2×归一化总分`,`归一化总分 = clamp((总评分−16)/14, 0, 1)×100`(容差 ±1.5) | 缺百分比 → **P0**;算不出/超容差 → 判「匹配度不可复算」 |
60
+ | 具体修改建议 | 须有「给作者的具体修改建议」段(投稿适配用) | 软提示(T5/主控无据以做期刊适配修订) |
61
+
62
+ ## 七、阶段闸门记录(T2.5 / T7.5)
63
+
64
+ | 机检项 | 必须的确切形态 | 违反后果 |
65
+ |---|---|---|
66
+ | 检查项表 | 表头须含 **`检查项`** + **`实据`**(或「证据/依据」)+ **`结论`**(或「判定」)三列 | M-Exist-5 判「缺检查项表格」→ **P1** |
67
+ | 检查项齐备 | 逐项照抄 `references/templates/闸门记录-template.md` 的清单(T2.5 共 8 项 / T7.5 共 7 项),**缺项即判失败** | 判「检查项缺 X(模板为真源,逐项都要有行)」 |
68
+ | 实据列 = 机械证据 | 必须是**路径 / `exit N` / `node X.mjs` 命令 / sha256 / 数字+量词**(v18.2.1 起 `exit=2`、`exit: 2` 亦可识别);**纯自述**(「已检查」「已核对」)判失败 | P1;实测踩点:写「exit=2」在 v18.2.0 及以前**不被识别** |
69
+ | 结论词 | 只允许 **`✓` / `✗` / `N/A`**(不得写「≥5 ✓」「部分通过」这类混合词) | 软提示(非固定词) |
70
+
71
+ ## 八、素材加载清单(M-Form-11 输入)
72
+
73
+ | 机检项 | 必须的确切形态 | 违反后果 |
74
+ |---|---|---|
75
+ | 段标题 | `## 已加载`(逐字;「已跳过」等其它段的编号**不计入**加载集) | 判「加载清单缺 `## 已加载` 段标题」→ **P0**(无从定位加载集) |
76
+ | 编号写法 | **逐项列出** `[L01]`;v18.2.1 起也**容忍范围写法** `[D01]-[D08]`(同字母内展开,跨度 ≤30) | 范围写法在 v18.2.0 及以前只命中首尾 → 中间条目被判「引了没读」**假 P0** |
77
+ | 软提示阈值 | 「加载率 >90% 疑似整卡通读」仅在 **卡池 ≥30 条 且 正文 ≥3000 汉字** 时启用(v18.2.1 起) | 短文 + 小卡池场景此前必然误报(短测试 20 条卡、引用 18 条 = 90%) |
78
+ | 比率对账分子口径(v18.2.2 修正) | 分子 = **「已加载」∩「索引段」**;「已加载」中越出索引段的编号(先行者清单 / 基线编号等)**另记一条软提示**、不参与比率 | 实测出现过 `已加载 54 / 索引 52`(分子 > 分母)→ 比率 >100% 仍被判「>90% 整卡通读」,结论不可复算 |
79
+ | 「已跳过」段(v18.2.2 补充) | 允许另设 `## 已跳过` 段解释「读了索引段但为何不引用某条」;**这些编号不计入加载集,也不计入「白读」软提示** | 旧实现把「已加载但未引用」一律报「白读即为上下文浪费」——清单已明示跳过的条目也报,属噪声(实测 4 条命中里 [D12]/[D14] 即此类) |
80
+
81
+ ## 九、维护规则
49
82
 
50
83
  1. **改机检正则 ⇒ 必须同改本表**:本表是「脚本实际扫的字面」的人类可读镜像;`scripts/m-gate-check.mjs` 与 `references/_shared/M-Gate-Algorithm.md` 是另外两处真源(脚本=实现、算法文档=判定语义),三者不一致时以**脚本**为准并把另两处改齐。
51
84
  2. **不得在别处复制本表**:模板 / 运行手册 / 角色卡只留指针(如「机检硬格式见 `_shared/机检硬格式.md` §X」)。历史教训见本文件开头。
@@ -1,6 +1,6 @@
1
1
  # 模型路由(角色 → 模型的能力匹配)— 单一真源
2
2
 
3
- > 版本:v18.2.0(DSH bundle 插件)
3
+ > 版本:v18.2.3(DSH bundle 插件)
4
4
  > 用途:定义「哪些角色需要什么能力」「怎么探测本机可用模型」「怎么把两者匹配起来」,以及**降级路径**。
5
5
  > 实现:`scripts/model-routing.mjs`(只读脚本,按本机 `settings.yaml` 出建议);机制约束在 `cordis.patch.yml` 的三档工具。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # 文档层规范 ↔ 机械门覆盖 对照表
2
2
 
3
- > **版本**:v18.2.0(读者口径)/ v18.0.2(新增)
3
+ > **版本**:v18.2.3(读者口径)/ v18.0.2(新增)
4
4
  > **用途**:逐条勾稽「规范写了什么」与「机械门是否覆盖」,根治教训 **#139「规范从文档层到执行层断链」**——该教训在《观念与理念的关系》实战中**复现 3 次**(文末五节顺序 / 案例来源内容 / 基线编号误判)。
5
5
  > **用法**:每次新增或修改规范时,在本表中加一行;每次版本 review 时逐行勾稽两问。
6
6
  > **读者与时机(v18.0.5 补,冗余审计 §二.7)**:**论衡维护者文档**——改规范 / 加机检门 / 版本 review 时读;**运行期角色不加载本文件**(它刻意不在任何角色卡的「读」清单里:主控与 T1-T9 都不需要它)。入口 = `AGENTS.md` §文件修改操作约束 的验证步 + `references/_shared/M-Gate-Algorithm.md` 的「名实对齐」注。
@@ -41,8 +41,16 @@
41
41
  | 闸门退出码语义(`docs/troubleshooting.md §8` + 各脚本头注释) | `repo-hygiene-check` 规则⑧(v18.0.5 大修) | 静态解析 `process.exit(字面量\|本文件 const\|guard 导出常量)` 的取值 ⊆ 声明集 + 每个读盘脚本必须 import `_lib/exit-guard.mjs`(**边界**:动态计算的退出码静态不可判定,由 `tests/scripts.test.mjs` 异常路径用例兜) |
42
42
  | **文档词预算**(新增规范,v18.1.0) | `repo-hygiene-check` 规则⑨ | ① 技能目录内 ≥12 KB 的 .md **必须登记**(新胖文档不能逃过测量);② 逐文件**棘轮上限**(任何增长须在同 diff 显式抬升上限);③ SKILL.md + AGENTS.md **常驻集合计**上限 |
43
43
  | 随包/仓库脚本语法健全(含 `lib/*.js` 入口与 C 组模块) | `repo-hygiene-check` 规则①(v18.1.0 扩面) | 全量 `.mjs` + `.js` `node --check`;扫描集 = git 跟踪 **∪ 未跟踪未忽略**(`npm pack` 会打包未 add 的新文件,旧规则①看不见它们) |
44
+ | **信任级别档位词白名单**(v18.2.1 补进 `机检硬格式.md §一` + 数据卡/案例卡模板) | M-Form-6 | 只允许 `已发布/主人投喂/二手转引`(真源 `_lib/trust.mjs`);**不得自造**「官方/机构报告」等词。**实战断链**:T2 用「官方」→ 3/8 条不合规 → 连锁 M-Integrity-1 **P0** |
45
+ | **文末编号真值**(v18.2.1 补进 `deliverables.md` 文末白名单节) | M-Exist-1 | 文末 `[Lxx]/[Dxx]/[Cxx]` 必须**沿用素材卡真编号**,**禁止按文末顺序重编**(省略备查条目会整体错位一位)。**实战断链**:首版无 [Lxx] → 漏引 17;顺序重编 → 漏引 2 |
46
+ | **T9 六维契约**(v18.2.1 补进 09 卡 §评审 6 维度 + `机检硬格式.md §六`) | M-Exist-6 | 六维名逐字 = 原创性/方法论/证据强度/论证结构/写作质量/引文规范 + 各 `x/5`;须有 `总评分 XX/30`(=六维和);期刊表须含 `综合匹配度` 且每行给 综合/主题/风格 百分比(按 `0.5×主题+0.3×风格+0.2×归一化` 复算,容差 ±1.5)。**实战断链**:主控派发话术自创六维名 → 判 6 维 0/6 **P0** |
47
+ | **闸门记录实据形态**(v18.2.1 补进 `机检硬格式.md §七`) | M-Exist-5 | 表头须含 `检查项/实据/结论`;逐项照抄模板清单(T2.5 八项 / T7.5 七项);实据须为机械证据(路径 / `exit N` / `node X.mjs` / sha256 / 数字+量词,v18.2.1 起 `exit=N` 亦可);结论词只允许 `✓/✗/N/A` |
48
+ | **素材加载清单编号写法**(v18.2.1 补进 `机检硬格式.md §八` + 清单模板) | M-Form-11 | 须有 `## 已加载` 段;**逐项**写法唯一保证被识别(v18.2.1 起范围写法 `[D01]-[D08]` 亦容忍并展开);「>90% 整卡通读」软提示仅在 卡池 ≥30 且 正文 ≥3000 汉字 时启用 |
44
49
 
45
- ## 二、本轮(v18.0.0)**新补上**的断链(原为「有规范无门」或「门覆盖不全」)
50
+ ## 二、历轮**新补上**的断链(按版本累积:v18.0.0 起;末尾 6 行为 v18.2.2)
51
+
52
+ > **标题修正(v18.2.2)**:本表原写作「本轮(v18.0.0)」,但每轮修订都在此追加,标题**不再随版本漂移**——**逐行看「本轮修法」列里的版本号**即可知该行属哪一轮。
53
+ > **v18.2.2 的 6 行**(末尾):数据点需求计数口径 / §11 精简段可被读到 / 承重墙清单可被读到 / AI 使用声明节可披露 / 证据包未到期的门 / 加载率比率可复算——**性质均为「门反向误判」或「两条规范冲突」**(而非「有规范无门」),即**门本身成了缺陷来源**。
46
54
 
47
55
  | 规范 | 原状态 | 本轮修法 |
48
56
  |---|---|---|
@@ -60,6 +68,12 @@
60
68
  | **M 门 exit 语义** | ❌ 未定义「脚本输出」vs「T8 裁定」→ T8 面临「伪造 or 放行」二选一 | `M-Gate-Algorithm.md` 定义 **`script_exit_raw`** + **`exit`** 双字段 + 证伪证据四件套 + `_t8_conclusion` |
61
69
  | **承重墙超载机检可达**(04 卡) | ⚠️ 表格行无「论点N」标记 → 结构信号缺失 → **超载检测静默失效** | 04 卡要求承重墙清单行**必须带「论点N」标记** |
62
70
  | **Phase 0 决策留痕**(四门模板) | ❌ 启动清单未要求落 Phase 0 确认单 → 交付说明只能标「未留痕」 | SKILL 启动清单规定 **Phase 0 亦须落 `阶段确认-Phase0.md`** |
71
+ | **数据点需求计数口径**(`机检硬格式.md §五`) | ❌ **门反向误判**——M-Integrity-1 对模板规定的「两处写法」一律求和 → 3+6+8+25=42(真值 25)→ 数据卡 32 条判「32<42」**假 P0**,T2.5 门不可通过 | M-Integrity-1 改**分组取大** `max(agg, scoped)` |
72
+ | **§11 精简段可被读到**(04/05 卡) | ❌ **门反向误判**——M-Exist-10 找「下一标题」时不跳过围栏代码块,命中围栏内的 `# T5 写手 v1 精简段` → 段落被截到 2 行 → 假报「六要素实到 0/6」P0 | M-Exist-10 加**围栏感知**(行首 ``` 计数) |
73
+ | **承重墙清单可被读到**(04 卡) | ❌ **门反向误判**——M-Form-8 只认「独立小节 / 行内 top1」,T4 把承重墙做成三角验证表**一列**时锚点落在纪律说明行、收块在空行处停 → 假报「无结构性条目」P1 | M-Form-8 加**表格表头锚点(优先级最高)** + 收块容忍空行 + 锚点跳过围栏 |
74
+ | **AI 使用声明节可披露**(`AI-使用声明-template.md`) | ❌ **两条规范冲突**——该模板要求写披露语,M-Form-4 文末二级扫描却按「内部信息」判 P0(实测命中禁词「承重」) | M-Form-4 **豁免「AI 使用声明」一节**(其余四节照扫) |
75
+ | **证据包未到期的门**(`pipeline-readme` 闸门时序) | ❌ **门在错误阶段判死**——M-Exist-2 在 T7 审计 `drafts/` 时证据包尚由 T8 生成 → 判「0 个文件」P0,T5 修订轮无法关闭 | M-Exist-2 加**阶段感知**(`drafts/` + 空包 → N/A) |
76
+ | **加载率比率可复算**(`机检硬格式.md §八`) | ⚠️ **结论不可复算**——分子用整个已加载集(含索引外编号)→ 出现 `已加载 54 / 索引 52`(分子>分母) | M-Form-11 比率**先取交集** + 「白读」排除 `## 已跳过` |
63
77
 
64
78
  ## 三、**仍无机械门**的规范(人工兜底,登记备查)
65
79
 
@@ -77,6 +91,7 @@
77
91
  | **查重** | 需 CNKI 学术不端检测(订阅) | 主人投稿前自跑 |
78
92
  | **AI 痕迹深度判定**(G14-G 个人辨识度) | 属 LLM 自评类判断,无客观阈值 | G14 检测器 + 主人裁定(本轮 G14 已如实登记 3 项口径分歧) |
79
93
  | **论证实质质量**(F9) | 属语义判断,非形式合规 | T6 批判 + T7 G3 + T9 论证结构维度 |
94
+ | **局限性文档齐备**(`templates/局限性-template.md`,v18.2.2 新增) | **本文件暂无门**——v18.2.2 未实现 `M-Exist-11`(加门会使 M 门项数 22→23,连带改 `SKILL.md` / `AGENTS.md` 的门数表述,而该两文件受词预算棘轮约束、余量仅数百字节) | **T8 终检人工核**:① `final/局限性.md` 是否存在;② 五节(上游缺陷 / 素材约束 / 尚未到期 / 门误判 / 闸门未修订)是否各有 ≥1 条 Acknowledged 条目;③ 末节是否给出「**可投递 / 需修订后投递 / 不可投递**」的明确结论 |
80
95
 
81
96
  ## 四、维护规则
82
97