@hawk2048/oh-my-dsh 0.3.2 → 0.3.4
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/CHANGELOG.md +41 -0
- package/README.md +1 -1
- package/README.zh.md +1 -1
- package/package.json +4 -2
- package/skills/omd-autoresearch/CHANGELOG.md +69 -0
- package/skills/omd-autoresearch/SKILL.md +119 -24
- package/skills/omd-autoresearch/references/eval-prompt.md +79 -0
- package/skills/omd-autoresearch/references/report-rules.md +121 -0
- package/skills/omd-autoresearch/references/report-style.md +246 -0
- package/skills/omd-autoresearch/references/report_lint.py +497 -0
- package/skills/omd-autoresearch/references/rubric.md +91 -0
- package/skills/omd-autoresearch/references/skill-survey.md +163 -0
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# 变更记录
|
|
2
|
+
|
|
3
|
+
## 0.3.4 — 2026-11-04
|
|
4
|
+
|
|
5
|
+
按两份独立评审的意见修 omd-autoresearch 的六处问题。
|
|
6
|
+
|
|
7
|
+
- 数字密度不再把引用编号算成数据;表格按块计,不再按行累加。
|
|
8
|
+
- 事实性数据更正不再被判为对偶句;引用他人原话时工程词放行。
|
|
9
|
+
- 缩写统一展开(「机器判」「人判」「判死」等),新增半截词规则一节。
|
|
10
|
+
- 事实检查加回读动作;轮次边界补两条(复核不计轮次、达标后关闭目标)。
|
|
11
|
+
- 评分表标明脚本只覆盖语言与格式层。
|
|
12
|
+
- 调研记录补记三家外部项目的脚本面,并把 huashu-report 的星数更新为 484。
|
|
13
|
+
|
|
14
|
+
## 0.3.3 — 2026-11-04
|
|
15
|
+
|
|
16
|
+
omd-autoresearch 升到 2.0,从纯提示词改成带检查脚本的流程。
|
|
17
|
+
|
|
18
|
+
### 新增
|
|
19
|
+
|
|
20
|
+
- `skills/omd-autoresearch/references/report_lint.py`:可执行的写作检查脚本,覆盖对偶句、生造词、工程词外泄、比喻、句长、段长、破折号、密度、篇幅、标题层级。
|
|
21
|
+
- `skills/omd-autoresearch/references/`:评分模板、评估提示词模板、证据与结构规范、语言规范、外部项目调研记录。
|
|
22
|
+
- 写作阶段的分段检查与字数额度表。
|
|
23
|
+
- 语域规则:给读者的正文不出现工具内部词。
|
|
24
|
+
|
|
25
|
+
### 修正
|
|
26
|
+
|
|
27
|
+
- 破折号重复计数(一处被算成三处)。
|
|
28
|
+
- 同一句被多条规则重复命中。
|
|
29
|
+
- `--scale` 对下限型密度方向相反。
|
|
30
|
+
- 两份文档的篇幅数字不一致。
|
|
31
|
+
- 段落长度口径不一致。
|
|
32
|
+
- 引用他人原话被误判为对偶句。
|
|
33
|
+
- 字面义术语被误判为生造词。
|
|
34
|
+
|
|
35
|
+
### 文档
|
|
36
|
+
|
|
37
|
+
- README 与 README.zh 的 Autoresearch 行补充检查脚本说明。
|
|
38
|
+
|
|
39
|
+
## 0.3.2
|
|
40
|
+
|
|
41
|
+
上一个发布版本。
|
package/README.md
CHANGED
|
@@ -59,7 +59,7 @@ Aligned to OMC **v5.3.0** (the `plan → execute → review → verify` pipeline
|
|
|
59
59
|
| Deep Interview | [`omd-deep-interview`](skills/omd-deep-interview/SKILL.md) | `ask_user_question` |
|
|
60
60
|
| Ralplan | [`omd-ralplan`](skills/omd-ralplan/SKILL.md) | parallel `subagent` drafts + arbitration |
|
|
61
61
|
| Research | [`omd-research`](skills/omd-research/SKILL.md) | `web_search`/`web_fetch` + parallel `subagent` |
|
|
62
|
-
| Autoresearch | [`omd-autoresearch`](skills/omd-autoresearch/SKILL.md) | `goal` + evaluator loop |
|
|
62
|
+
| Autoresearch | [`omd-autoresearch`](skills/omd-autoresearch/SKILL.md) | `goal` + evaluator loop + writing checker (`references/report_lint.py`) |
|
|
63
63
|
| Ultragoal | [`omd-ultragoal`](skills/omd-ultragoal/SKILL.md) | `goal` + `todo_write` + checkpoint artifacts |
|
|
64
64
|
| HUD | [`omd-hud`](skills/omd-hud/SKILL.md) | inline `dsh-ui` dashboard (genui) |
|
|
65
65
|
|
package/README.zh.md
CHANGED
|
@@ -59,7 +59,7 @@ dsh plugin --profile web add @hawk2048/oh-my-dsh
|
|
|
59
59
|
| Deep Interview(需求澄清) | [`omd-deep-interview`](skills/omd-deep-interview/SKILL.md) | `ask_user_question` |
|
|
60
60
|
| Ralplan(共识规划) | [`omd-ralplan`](skills/omd-ralplan/SKILL.md) | 并行 `subagent` 草案 + 仲裁收敛 |
|
|
61
61
|
| Research(有据调研) | [`omd-research`](skills/omd-research/SKILL.md) | `web_search`/`web_fetch` + 并行 `subagent` |
|
|
62
|
-
| Autoresearch(评估驱动改进) | [`omd-autoresearch`](skills/omd-autoresearch/SKILL.md) | `goal` + 评估子代理循环 |
|
|
62
|
+
| Autoresearch(评估驱动改进) | [`omd-autoresearch`](skills/omd-autoresearch/SKILL.md) | `goal` + 评估子代理循环 + 写作检查脚本(`references/report_lint.py`) |
|
|
63
63
|
| Ultragoal(持久多目标) | [`omd-ultragoal`](skills/omd-ultragoal/SKILL.md) | `goal` + `todo_write` + checkpoint 工件 |
|
|
64
64
|
| HUD(状态栏) | [`omd-hud`](skills/omd-hud/SKILL.md) | `dsh-ui` 内联仪表盘(genui) |
|
|
65
65
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hawk2048/oh-my-dsh",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.4",
|
|
4
4
|
"description": "oh-my-dsh: DeepSeek Harness multi-agent orchestration layer — OMC-style workflow skills, slash commands, and an agent preset.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "index.js",
|
|
@@ -21,7 +21,8 @@
|
|
|
21
21
|
"install.sh",
|
|
22
22
|
"install.ps1",
|
|
23
23
|
"README.md",
|
|
24
|
-
"README.zh.md"
|
|
24
|
+
"README.zh.md",
|
|
25
|
+
"CHANGELOG.md"
|
|
25
26
|
],
|
|
26
27
|
"dsh": {
|
|
27
28
|
"bundle": {
|
|
@@ -42,3 +43,4 @@
|
|
|
42
43
|
"url": "git+https://github.com/hawk2048/oh-my-dsh.git"
|
|
43
44
|
}
|
|
44
45
|
}
|
|
46
|
+
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
## 2.1.0 — 2026-11-04
|
|
2
|
+
|
|
3
|
+
按两份独立评审的结果修的六处。
|
|
4
|
+
|
|
5
|
+
### 修正
|
|
6
|
+
|
|
7
|
+
- 数字密度不再把 `[S07]` 里的编号算成数据。
|
|
8
|
+
- 表格与列表按块计,一张六行表算一处,不再按行累加。
|
|
9
|
+
- 事实性数据更正(两侧都带数字)不再被判为对偶句。
|
|
10
|
+
- 引用他人原话时,工程词与缩写一并放行。
|
|
11
|
+
- 规则文档与脚本里的缩写统一展开:「机器判」「人判」「判死」等收进工程词一档,命中判不合格。
|
|
12
|
+
- 语言规则新增一节,讲半截词与内部缩写,附对照表。
|
|
13
|
+
|
|
14
|
+
### 新增
|
|
15
|
+
|
|
16
|
+
- 事实检查加了回读动作:写入或改动后回读被引记录,逐字核对句子在不在记录里。
|
|
17
|
+
- 轮次边界补两条:收尾复核不计入轮次,达标只能由计入轮次的评估给出;达标后关闭目标。
|
|
18
|
+
|
|
19
|
+
### 文档
|
|
20
|
+
|
|
21
|
+
- 评分表第三列改为「谁来查」,并写明脚本目前只覆盖语言与格式层。
|
|
22
|
+
- 外部项目调研补记三家的脚本面:huashu-report 的 `render.py`、industry-research 的 `validate_report.py` 与测试、deep-research-plus 的 89.8 KB 闸门脚本与八个测试文件。
|
|
23
|
+
|
|
24
|
+
# 变更记录 · omd-autoresearch
|
|
25
|
+
|
|
26
|
+
## 2.0.0 — 2026-11-04
|
|
27
|
+
|
|
28
|
+
这一版把「评估器驱动的改进循环」从提示词改成带检查脚本的流程,并补上了语言层面的判定。
|
|
29
|
+
|
|
30
|
+
### 新增
|
|
31
|
+
|
|
32
|
+
- `references/report_lint.py`:可执行的检查脚本,覆盖禁句、句式、句长、段长、破折号、密度、篇幅、标题层级。
|
|
33
|
+
- `references/rubric.md`:五维评分模板,含四条不合格项与差距清单格式。
|
|
34
|
+
- `references/eval-prompt.md`:评估子代理的提示词模板。
|
|
35
|
+
- `references/report-rules.md`:来源分级、证据清单、反面证据写法、结构、篇幅。
|
|
36
|
+
- `references/report-style.md`:语言规范,按处置力度分为三档,含黑话表、语域说明、比喻禁用表。
|
|
37
|
+
- `references/skill-survey.md`:十三个外部项目的调研结论与采纳记录。
|
|
38
|
+
- 写作阶段的分段检查:每写完一节先过四道检查,再写下一节。
|
|
39
|
+
- 字数与结构额度表:按读者需要分三档,先定额度再动笔。
|
|
40
|
+
|
|
41
|
+
### 检查脚本规则
|
|
42
|
+
|
|
43
|
+
- 对偶转折句(不是…而是…,含省略「而」的变体):按篇幅给豁免额度,超出判不合格。
|
|
44
|
+
- 报告正文出现自我更正:判不合格。
|
|
45
|
+
- 生造黑话(`钉死`、`抓手`、`小疤`、`打穿` 等):判不合格,另设字面义白名单。
|
|
46
|
+
- 工程词外泄(报警项、判死、落盘、跑通):判不合格;闸门、拆轮一类只提示。
|
|
47
|
+
- 比喻与借代(`骨架`、`台账`、`三角验证`、`双轴` 等):提示。
|
|
48
|
+
- 超长句、超长段、破折号过密、标题跳级:判不合格。
|
|
49
|
+
- 数字密度、图表密度、AI 腔词密度、加粗密度:严格模式判不合格,默认只提示。
|
|
50
|
+
- 规则文档本身用 `--doc` 跳过工程词与密度检查。
|
|
51
|
+
|
|
52
|
+
### 修正
|
|
53
|
+
|
|
54
|
+
- 「——」被重复计数(一个破折号算成三处)。
|
|
55
|
+
- 同一句被多条正则重复计数,改为按字符位置合并。
|
|
56
|
+
- `--scale` 对下限型密度方向相反,改为上限除以倍数、下限乘以倍数。
|
|
57
|
+
- 两份文档的篇幅表数字不一致,统一到一处。
|
|
58
|
+
- 段落长度口径三处不一致,统一为七行、暂以 300 字近似判定。
|
|
59
|
+
- 引用他人原话(中文引号、直角引号、Markdown 引用块)被误判为对偶句,已放行。
|
|
60
|
+
- 字面义术语(水位、体感温度、资金沉淀、打通最后一公里)被误判为黑话,已放行。
|
|
61
|
+
- 删除陈旧的重复目录 `omd-autoresearch/omd-autoresearch/`。
|
|
62
|
+
|
|
63
|
+
### 兼容
|
|
64
|
+
|
|
65
|
+
- 触发词保留 autoresearch、自动调研改进、边做边评、持续打磨到达标,新增写报告、报告太长、太干、边写边改。
|
|
66
|
+
|
|
67
|
+
## 1.0.0 — 2026-09-12
|
|
68
|
+
|
|
69
|
+
初版:产出、评估、改进三步循环,无评分模板与检查脚本。
|
|
@@ -1,45 +1,140 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: omd-autoresearch
|
|
3
|
-
description: "
|
|
3
|
+
description: "自动调研改进:有界的评估器驱动改进循环——先定额度、分节落笔、一节一闸、独立打分、定点改到达标。产出调研报告/行业研究/方案对比时用它,也用于修掉报告「太长、太干、AI 腔」。触发词:autoresearch / 自动调研改进 / 边做边评 / 持续打磨到达标 / 写报告 / 报告太长 / 太干 / 报告有AI腔 / 边写边改。"
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
# oh-my-dsh · Autoresearch
|
|
6
|
+
# oh-my-dsh · Autoresearch 评估器驱动的有界改进循环
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
一句话:**先定额度,分节落笔,一节一闸,独立打分,定点改到达标。**
|
|
9
|
+
|
|
10
|
+
跑起来:`create_goal` 立标准 → 证据表 → 逐节写(每节四闸)→ 独立评估 → 定点改 → 达标或到上限停。
|
|
9
11
|
|
|
10
12
|
## 何时用
|
|
11
13
|
|
|
12
|
-
-
|
|
13
|
-
-
|
|
14
|
+
- 产出物有明确达标线,第一版通常不够好:调研报告、行业/竞品研究、方案对比、设计文档。
|
|
15
|
+
- 用户抱怨报告「太长」「太干」「像 AI 写的」「通篇对偶句式」——直接用本技能的写作检查,别等写完再润色。
|
|
16
|
+
- 用户说「autoresearch」「自动调研改进」「边做边评」「做到达标为止」。
|
|
14
17
|
|
|
15
|
-
##
|
|
18
|
+
## 旧版(v1)的三个洞
|
|
16
19
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
+
| 洞 | 后果 | 本版补法 |
|
|
21
|
+
|---|---|---|
|
|
22
|
+
| 达标标准是自然语言 | 评分不可复现,两轮分数没法比 | 固定 rubric:5 维 + 硬伤清单(`references/rubric.md`) |
|
|
23
|
+
| 只在「产出当前版」之后评估 | 第一版是废话最多的一版,白烧一轮 | 闸门前移到每一节(第 3 步) |
|
|
24
|
+
| 没有篇幅预算 | 写多少算多少,「太长」无解 | 写前定额度(第 0 步) |
|
|
25
|
+
|
|
26
|
+
## 第 0 步 · 先定额度(别跳)
|
|
27
|
+
|
|
28
|
+
字数上限先定死,再动笔。超了砍,不靠「写得紧凑一点」。
|
|
29
|
+
|
|
30
|
+
| 档位 | 总字数 | 小节 | 每节字数 | 每节图表 | 独立来源下限 | 适用 |
|
|
31
|
+
|---|---|---|---|---|---|---|
|
|
32
|
+
| brief | 600–1500 | 3–5 | 200–300 | 0–1 | 3 | 一页纸结论、决策备忘 |
|
|
33
|
+
| standard | 2000–5600 | 5–8 | 400–700 | ≥1 | 6 | 常规行业/竞品/技术调研 |
|
|
34
|
+
| comprehensive | 6400–14400 | 8–12 | 800–1200 | 1–2 | 12 | 决策级深度报告 |
|
|
35
|
+
|
|
36
|
+
总字数 = 小节数 × 每节字数,区间相乘,别单方面调其中一列。超了砍节或砍字,不靠「写得紧凑一点」。
|
|
37
|
+
|
|
38
|
+
读者没要求深度时,默认 brief 或 standard。写 15 页没人看的报告,是这行最常见的浪费。
|
|
39
|
+
|
|
40
|
+
## 第 1 步 · 立标准(rubric 落盘)
|
|
41
|
+
|
|
42
|
+
1. `create_goal`,objective 写成可验收,例:*8 节 ≤6000 字、每节 ≥1 表、≥12 个独立来源、lint 全绿、独立评估 ≥85 分*。
|
|
43
|
+
2. 把 `references/rubric.md` 和 `references/report_lint.py` **复制到工作区**(脚本不复制,后面所有闸门命令都跑不起来;用技能目录全路径也行)。
|
|
44
|
+
3. 判据分两类。**可以交给脚本的**:字数、图表数量、来源数量、章节完整性、检查脚本报出的数字。**只能靠人看的**:结论有没有洞察、解释是否站得住、反面证据是否诚实。先跑脚本,再请人看,后者只留 2–3 项。
|
|
45
|
+
|
|
46
|
+
## 第 2 步 · 证据表先于正文
|
|
47
|
+
|
|
48
|
+
- 先建 `evidence.md`,一行一条:`编号 | 事实或数字 | 来源URL | 来源级别 | 日期 | 置信度`。
|
|
49
|
+
- 来源分四级,能用的只有前三级:**A** 一手(官方披露、原始数据、公告原文、专利、财报);**B** 权威二手(券商研报、咨询报告、权威媒体调查);**C** 弱线索(转载、榜单、未标口径的市占率、自媒体);**D** 不可用(聚合页、洗稿、AI 生成内容),只能用来找线索。
|
|
50
|
+
- C 级不得单独支撑关键结论;同源转载只算一个来源;超过 180 天的数据按「历史参考」处理。
|
|
51
|
+
- 正文每个数字回指证据编号。回指不上的论断,删掉,或降级成「有说法称……(待核实)」。
|
|
52
|
+
- 先写正文再补证据,一定会出现「这句很顺,但我不确定那个数字的口径」,然后这句就被留下了。
|
|
53
|
+
|
|
54
|
+
## 第 3 步 · 分节写,一节一闸(生成期优化就在这里)
|
|
20
55
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
3. **评估**:派评估子代理**独立**对照达标标准打分,返回「差距清单」(哪里不达标、差在哪、怎么改),只允许"达标 / 具体差距",不允许"差不多"。
|
|
24
|
-
4. **改进**:按差距清单修,回到第 3 步。
|
|
25
|
-
5. **有界退出**:达标 → `update_goal complete`;达到轮次上限仍未达标 → 显式报告剩余差距,别装作完成。
|
|
56
|
+
先出骨架:一句结论 + 3–8 个小节标题(判断句,不写「背景」「分析」这种标签)+ 每节字数预算。
|
|
57
|
+
然后逐节循环:**写第 N 节 → 过四闸 → 过了再写 N+1**。
|
|
26
58
|
|
|
27
|
-
|
|
59
|
+
| 闸 | 通过条件 | 不过怎么改 |
|
|
60
|
+
|---|---|---|
|
|
61
|
+
| 事实闸 | 每个硬结论挂证据编号,置信度标了;写入或改动后回读该编号对应的记录,逐字核对这句话在不在记录里 | 补来源;补不到就降级并标「待核实」;再不行删句 |
|
|
62
|
+
| 结构闸 | 本节首句是判断句;标题是判断句;一节只讲一个主张 | 标签改判断句;首句换成结论;一个主张拆成两节 |
|
|
63
|
+
| 语言闸 | `python report_lint.py 节.md --scale 0.6 --strict --quiet` 返回 PASS,且本节逐句自问「这句话删掉,读者判断会变吗」,不变就删 | 按输出的 fix 就地改,重跑直到 PASS |
|
|
64
|
+
| 篇幅闸 | 本节字数在预算 ±10% 内 | 砍铺垫、砍复述、砍「本节小结」 |
|
|
28
65
|
|
|
29
|
-
|
|
30
|
-
- 每轮把「当前版 + 评估结论」写进工作区文件(如 `AUTORESEARCH.md`),保证会话恢复后能接着改。
|
|
66
|
+
`--strict` 让数字密度和图表密度也参与判死:没有数字、没有表格的段落就是「太干」的直接来源,节级就要拦下来,别等整篇评估。图表密度只对 ≥400 字的节生效,200 字的短节不强制塞表。
|
|
31
67
|
|
|
32
|
-
|
|
68
|
+
**降级规则**:同一节改 2 次仍过不了语言闸 → 保留结论 + 1 条证据,其余删掉,标 `[待补]`。宁可短,别灌水。
|
|
33
69
|
|
|
34
|
-
|
|
35
|
-
|
|
70
|
+
**每节落盘**:写完一节立刻追加进 `REPORT.md`,并在 `AUTORESEARCH.md` 记一行(节号 / 字数 / lint 结果)。断在第 4 节可以接着写第 5 节,不用从头。
|
|
71
|
+
|
|
72
|
+
**为什么要在生成期做**:整篇返工只有两种结局,全篇重写(把已经过闸的部分重新弄坏)或局部打补丁(前后语感断裂)。节级闸门把返工拆成能承受的小步,下一节直接继承上一节的语感。
|
|
73
|
+
|
|
74
|
+
## 第 4 步 · 独立评估(不许自评)
|
|
75
|
+
|
|
76
|
+
- 派评估子代理,输入只有三样:**文档 + rubric + 用户诉求**。不给你的推理过程,不给「我觉得哪里不好」。
|
|
77
|
+
- 派发用的 prompt 模板在 `references/eval-prompt.md`,复制后改路径即可。
|
|
78
|
+
- 输出固定格式:各维度得分 + 证据(引原文)+ 差距清单。
|
|
79
|
+
- 差距清单每条五列:**位置 / 现状 / 目标 / 改法 / 严重度**。缺一列视为不合格评估,退回重评。
|
|
80
|
+
- 能脚本检查的先跑 `report_lint.py` 和字数统计,把数字交给评估者,压低主观漂移。
|
|
81
|
+
- 评估不许写「还行」「建议再丰富一点」。写不出差距项,就是没评估。
|
|
82
|
+
|
|
83
|
+
## 第 5 步 · 定点改,不重写
|
|
84
|
+
|
|
85
|
+
- 只改差距项,改动范围以「节」为单位,不动已过闸的节。
|
|
86
|
+
- 改完重跑 lint,再用同一份 rubric、同一达标线重评。
|
|
87
|
+
- 每轮把「当前版 + 分数 + 差距」写进 `AUTORESEARCH.md`,会话断了能接着改。
|
|
88
|
+
|
|
89
|
+
## 有界退出
|
|
90
|
+
|
|
91
|
+
- 默认上限 **3 轮**,用户指定则从用户。
|
|
92
|
+
- 达标(总分 ≥ 线 且 无硬伤)→ 交付 + HUD。
|
|
93
|
+
- 到上限未达标 → 交付当前最好版本 + 剩余差距清单,明说没达标,不装完成。
|
|
94
|
+
- 停滞(连续两轮同一维度不涨)→ 早停,报「这个维度靠改文字解决不了,需要补证据或换角度」。
|
|
95
|
+
- 收尾复核不计入轮次;达标判定只能由计入轮次的评估给出,不能用一次额外复核把未达标改判为达标。
|
|
96
|
+
- 达标后关闭目标(`update_goal`);轮次用满仍未达标,交付当前版本并写明未达标,目标留待用户决定。
|
|
97
|
+
|
|
98
|
+
## 报告硬规则(交付前逐条过)
|
|
99
|
+
|
|
100
|
+
1. 每个百分比带 N 和来源。删掉形容词代替数据:「显著提升」→「提升 34%(n=210,A 级)」。
|
|
101
|
+
2. 趋势不写成因果,除非做了识别;否则写「与……同时发生」。
|
|
102
|
+
3. 反证必须写:列替代解释 → 各自怎么排除 → 没排除掉的 → 结论降级。找不到反证数据就说找不到,不编风险。
|
|
103
|
+
4. 局限单独成节,不塞进结论最后一句。
|
|
104
|
+
5. 不写工作日志、不写「我是怎么做的」、不写自我更正过程。方法论该写,过程记录不写。
|
|
105
|
+
6. 附录不超过正文 10%。附录是来源表,一条来源一行,不印数据表。
|
|
106
|
+
7. 语言细则见 `references/report-style.md`;它的机器版是 `references/report_lint.py`,整篇收尾用 `python report_lint.py REPORT.md --strict`,不过不交。
|
|
107
|
+
8. 交付前问一句:这份报告我敢不敢直接发给那个最挑的人?不敢的话,问题通常在第 3 条(没有反证)或第 1 条(没有数字)。
|
|
108
|
+
9. 语域:给读者看的正文用日常词;行业术语首次出现加一句白话;工具内部词(`报警项`、`判死`、`落盘`)不出现。判据:读者没装这个工具,也读得懂吗。
|
|
109
|
+
|
|
110
|
+
## 与其它技能的关系
|
|
111
|
+
|
|
112
|
+
- `omd-research` 单趟查证;本技能是多轮 + 闸门 + 达标线。
|
|
113
|
+
- `omd-pyramid` 管结构(结论先行、MECE);`references/report-style.md` 管字面;`report_lint.py` 管机械下限。
|
|
114
|
+
- `omd-ai-slop-cleaner` 是事后清理;本技能把清理放进写作过程,一节一清。
|
|
115
|
+
- 外部报告类技能(huashu-report、industry-research、deep-research-plus 等)的机制吸收记录在 `references/skill-survey.md`。
|
|
36
116
|
|
|
37
117
|
## 收尾:HUD
|
|
38
118
|
|
|
39
|
-
|
|
119
|
+
```dsh-ui
|
|
120
|
+
{"title":"Autoresearch · 报告改进","gap":14,"items":[
|
|
121
|
+
{"type":"row","wrap":true,"items":[
|
|
122
|
+
{"type":"stat","label":"轮次","value":"2 / 3"},
|
|
123
|
+
{"type":"stat","label":"评分","value":"88","delta":"+9"},
|
|
124
|
+
{"type":"stat","label":"未达标项","value":"1"}
|
|
125
|
+
]},
|
|
126
|
+
{"type":"progress","label":"到达标线","value":88},
|
|
127
|
+
{"type":"table","columns":["维度","上一轮","本轮","差距"],
|
|
128
|
+
"rows":[["语言","62","84","对偶句仍有 3 处"],["结构","80","88","—"]]},
|
|
129
|
+
{"type":"callout","tone":"warn","title":"剩余差距","content":"第 3 节仍缺反证段,补完再评一轮"}
|
|
130
|
+
]}
|
|
131
|
+
```
|
|
40
132
|
|
|
41
133
|
## 反模式
|
|
42
134
|
|
|
43
|
-
-
|
|
44
|
-
-
|
|
45
|
-
-
|
|
135
|
+
- 没有轮次上限、没有达标线——v1 的通病,等于没有循环。
|
|
136
|
+
- 让产出者自己打分,或让评估者拿到产出者的自我评价。
|
|
137
|
+
- 评估写成「还行」「可以更丰富」——必须落到差距项。
|
|
138
|
+
- 先写正文再补证据。
|
|
139
|
+
- 用形容词和总结句凑篇幅——这是「太长太干」的直接来源。
|
|
140
|
+
- 在报告正文里表演自我更正(`前面说的有误` / `纠正一下`)——删掉,直接写正确版本。
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
# 评估子代理 prompt 模板(直接复制)
|
|
2
|
+
|
|
3
|
+
评估必须由**另一个 agent** 做。产出者自己判卷,循环就失效了。
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 派发前准备(产出者做,3 件事)
|
|
8
|
+
|
|
9
|
+
1. 把 `rubric.md` 填好:权重、达标线、本轮的特别关注项(例如「本轮重点看第 3 节」)。
|
|
10
|
+
2. 准备好三份输入:文档全文路径、填好的 rubric、用户原始诉求(原话)。
|
|
11
|
+
3. 跑一遍机器闸门,把数字准备好:`python report_lint.py REPORT.md --json`,与字数统计。
|
|
12
|
+
|
|
13
|
+
**不要**把自己的推理过程、自评、「我哪里没写好」交给评估者。
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## 可复制的 prompt
|
|
18
|
+
|
|
19
|
+
```
|
|
20
|
+
你是独立评估者。你评估一份报告,按给定 rubric 打分并给出差距清单。
|
|
21
|
+
你没有看过产出者的推理与自评,也不需要问。
|
|
22
|
+
|
|
23
|
+
输入:
|
|
24
|
+
1. 被评文档:<绝对路径>
|
|
25
|
+
2. rubric:<绝对路径>
|
|
26
|
+
3. 用户原始诉求(原话):<粘贴>
|
|
27
|
+
4. 机器闸门结果(产出者跑的,供参考,不代替你的判断):
|
|
28
|
+
<粘贴 report_lint.py --json 的 metrics 与 fails/warns>
|
|
29
|
+
|
|
30
|
+
要做:
|
|
31
|
+
1. 读完整文档(不要只读开头)。
|
|
32
|
+
2. 按 rubric 的 D1–D5 逐维度打分,每维度必须引 1–3 段原文作为依据。
|
|
33
|
+
不许写「还行」「可以更丰富」,写不出依据就是没读。
|
|
34
|
+
3. 检查硬伤 H1–H4 是否命中。
|
|
35
|
+
4. 输出差距清单,每条五列:位置 | 现状 | 目标 | 改法 | 严重度。
|
|
36
|
+
位置要能定位到节/段/句;严重度只有 高/中/低。
|
|
37
|
+
至少 3 条,最多 12 条;挑能改的,不要凑数。
|
|
38
|
+
|
|
39
|
+
输出格式(严格):
|
|
40
|
+
总分:XX/100 达标:是/否
|
|
41
|
+
硬伤:H1 命中/未命中 ……
|
|
42
|
+
|
|
43
|
+
## D1 来源与事实 (x/25)
|
|
44
|
+
依据:<引原文>
|
|
45
|
+
扣分:<具体>
|
|
46
|
+
|
|
47
|
+
## D2 洞察与机制 (x/25)
|
|
48
|
+
……
|
|
49
|
+
|
|
50
|
+
## D3 语言与可读性 (x/20)
|
|
51
|
+
……
|
|
52
|
+
|
|
53
|
+
## D4 结构 (x/15)
|
|
54
|
+
……
|
|
55
|
+
|
|
56
|
+
## D5 篇幅与呈现 (x/15)
|
|
57
|
+
……
|
|
58
|
+
|
|
59
|
+
## 差距清单
|
|
60
|
+
| # | 位置 | 现状 | 目标 | 改法 | 严重度 |
|
|
61
|
+
|
|
62
|
+
## 一句话裁决
|
|
63
|
+
能交付 / 还需改,以及最该改的那一条。
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
## 拿到结果后(产出者做)
|
|
69
|
+
|
|
70
|
+
1. 逐条判断差距是否成立。不成立的(误判)要在 `AUTORESEARCH.md` 里写清理由,**不许默默忽略**。
|
|
71
|
+
2. 定点改:以「节」为单位,不动已过闸的部分。
|
|
72
|
+
3. 改完重跑 `report_lint.py`,再用同一 rubric 重评。
|
|
73
|
+
4. 记录:轮次 / 总分 / 各维度 / 差距条数 / 本轮改了什么。
|
|
74
|
+
|
|
75
|
+
## 三条防止评估失效的规矩
|
|
76
|
+
|
|
77
|
+
- 评估者不能是产出者,也不能是产出者的子代理。
|
|
78
|
+
- 评分锚点要先看(95+/85–94/70–84/<70),别凭感觉给分。
|
|
79
|
+
- 若两轮总分不涨但差距条数在减少,说明在真改;若总分涨而差距条数不减,大概率是评分放宽了。
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
# 报告证据与结构规范
|
|
2
|
+
|
|
3
|
+
`report-style.md` 管怎么说,本文档管**说了算不算数**。
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 一、证据表(正文之前必须存在)
|
|
8
|
+
|
|
9
|
+
`evidence.md`,一行一条:
|
|
10
|
+
|
|
11
|
+
```
|
|
12
|
+
S07 | 美国户储 2025 新增装机 12.4GWh,同比 +34% | bnef.com/xxx | A | 2026-01-15 | 高
|
|
13
|
+
S08 | 加州 NEM 3.0 余电收购价降至批发电价 | cpuc.ca.gov/xxx | A | 2023-11-02 | 高
|
|
14
|
+
S09 | 某券商测算美国户储 2026 增速 28% | 券商研报 | B | 2026-02-01 | 中
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
字段:编号 / 事实或数字 / 来源 / 级别 / 日期 / 置信度。
|
|
18
|
+
|
|
19
|
+
正文每个数字回指编号(`[S07]`)。回指不上的论断只有两条路:删掉,或降级成「有报道称……(待核实)」。
|
|
20
|
+
|
|
21
|
+
先写正文再补证据,一定会出现「这句很顺,但我不确定那个数字的口径」,然后这句就被留下了。
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## 二、来源分级
|
|
26
|
+
|
|
27
|
+
| 级别 | 定义 | 能不能单独支撑关键结论 |
|
|
28
|
+
|---|---|---|
|
|
29
|
+
| **A** | 一手:官方披露、公告、财报、法律文本、原始数据库、代码/规范、可验证的经营痕迹 | 能 |
|
|
30
|
+
| **B** | 权威二手:署名研报、咨询报告、权威媒体原创调查、专家署名分析 | 能,但需说明分析方 |
|
|
31
|
+
| **C** | 弱线索:转载、榜单、未标口径的市占率/GMV/门店数、自媒体、社区讨论 | 不能;只能证明「有人这样说过」 |
|
|
32
|
+
| **D** | 不可用:聚合页、SEO 内容、无署名洗稿、AI 生成内容 | 只能用来找线索 |
|
|
33
|
+
|
|
34
|
+
三条硬规矩:
|
|
35
|
+
|
|
36
|
+
1. **去重**:多篇转载同一原始报道,算一个来源。
|
|
37
|
+
2. **家族去重**:同一来源体系的多条信号只算一个独立来源(官网 + 官方公众号 + 官方 App 算一家)。
|
|
38
|
+
3. **时效**:超过 180 天的数据按历史参考,不单独支撑「当前状态」判断;必须用时标时滞。
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## 三、主张-证据矩阵
|
|
43
|
+
|
|
44
|
+
把关键结论拆成可核查主张,每条两边对齐:主张 → 证据编号。
|
|
45
|
+
|
|
46
|
+
| 缺口类型 | 标注写法 |
|
|
47
|
+
|---|---|
|
|
48
|
+
| 只有一个来源 | `单一来源` |
|
|
49
|
+
| 来源存在但未交叉 | `未充分交叉验证` |
|
|
50
|
+
| 两个来源打架 | `来源冲突:A 说 X(S03),B 说 Y(S05)` |
|
|
51
|
+
| 找不到一手 | `截至访问日未找到一手来源` |
|
|
52
|
+
|
|
53
|
+
**承重引用要开页核对**:TL;DR 里 3–4 条决策级结论,逐条打开来源页确认「内容确实支撑这句话」,不能只看链接能打开。行业里最常见的引用错误在「链接有效但内容不支撑」这一档,链接失效反倒少见。
|
|
54
|
+
|
|
55
|
+
**决策级结论由 C 级来源单独支撑** → 直接降级,或删。带脚注的谣言仍然是谣言。
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## 四、反证(这是报告与资料汇编的分界线)
|
|
60
|
+
|
|
61
|
+
写完结论,专门写一段「它可能错在哪」:
|
|
62
|
+
|
|
63
|
+
1. 列出所有可能的替代解释(还有哪些原因能解释这个现象)。
|
|
64
|
+
2. 说明各自怎么排除的(控制了什么变量、交叉了哪个数据)。
|
|
65
|
+
3. **诚实说出没排除掉的。**
|
|
66
|
+
4. 主动降级结论(「这是早期描述性指标,不是因果估计」)。
|
|
67
|
+
|
|
68
|
+
第 3、4 步最容易跳过,也最值钱:你主动认领局限,读的人才不用替你找。
|
|
69
|
+
|
|
70
|
+
**找不到反证数据时怎么写**:
|
|
71
|
+
|
|
72
|
+
> 我们尝试查找 X 方面的反证(关键词……,来源范围……),未找到可用数据。因此这条结论的置信度下调为中等,需后续验证。
|
|
73
|
+
|
|
74
|
+
不许为了凑反方而编造风险,也不许把「数据缺失」写成「已被证伪」。
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
## 五、结构骨架(标准六章,缺章即不合格)
|
|
79
|
+
|
|
80
|
+
1. **核心结论**(TL;DR):3–5 条,每条一句,带数字。
|
|
81
|
+
2. **对比总表**:一张能独立读懂的表,标「数据截点」。
|
|
82
|
+
3. **逐项详析**:一节一个主张,首句是判断句。
|
|
83
|
+
4. **冲突与存疑**:来源打架的地方,给最可能解释 + 下一步验证动作。
|
|
84
|
+
5. **未覆盖与限制**:没查的、查不到的、口径不一致的。
|
|
85
|
+
6. **来源清单**:S 编号 + 标题 + 发布方 + 日期 + URL。
|
|
86
|
+
|
|
87
|
+
brief 档可合并 3 与 4;comprehensive 档把 3 拆成多章。缺第 1、4、5、6 章一律不算完成。
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
## 六、篇幅与图表
|
|
92
|
+
|
|
93
|
+
**权威表在 `SKILL.md` 第 0 步**(brief 600–1500 / standard 2000–5600 / comprehensive 6400–14400,总字数 = 小节数 × 每节字数)。两份文件出现分歧时以 SKILL.md 为准。
|
|
94
|
+
|
|
95
|
+
- 附录 ≤ 正文 10%,附录是来源表,一条来源一行,不印数据表。
|
|
96
|
+
- 图表标题写结论,不写主题:`按职能划分的招聘计划` ✗ → `研发与销售扩张,客服与 G&A 收缩` ✓(研报型例外,查数的人要中性索引)。
|
|
97
|
+
- 图表下必须有数据源行:`来源:BNEF 2026.1 | 制图:本文`,区分谁采的数、谁做的图。
|
|
98
|
+
- 百分比一律带分母:`7%(951 家企业,Bain 2026)`。
|
|
99
|
+
- 单段 ≤7 行(约 300 字),超了拆段。
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
## 七、结论要分层
|
|
104
|
+
|
|
105
|
+
- **我们发现**:跟着数据走,可复核。
|
|
106
|
+
- **我们认为**:跟着判断走,标出这是我的判断。
|
|
107
|
+
|
|
108
|
+
两样混在一起写,整段可信度按最弱的那句算。
|
|
109
|
+
|
|
110
|
+
---
|
|
111
|
+
|
|
112
|
+
## 八、交付前自检清单
|
|
113
|
+
|
|
114
|
+
- [ ] 每个硬结论都有 S 编号;每个百分比都有分母和来源。
|
|
115
|
+
- [ ] 有一条讲「没排除掉的替代解释」。
|
|
116
|
+
- [ ] 冲突写进「冲突与存疑」,没拿「综合判断」蒙过去。
|
|
117
|
+
- [ ] 局限单独成节。
|
|
118
|
+
- [ ] 附录 ≤10%,是来源表不是数据表。
|
|
119
|
+
- [ ] 六章齐全(或按档位合并后齐全)。
|
|
120
|
+
- [ ] `report_lint.py --strict` PASS。
|
|
121
|
+
- [ ] 逐句自问过一遍:删掉这句,读者对结论的判断会变吗?不变就删。
|