@topmindspace/topmind-skills 4.15.6 → 4.15.7

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 CHANGED
@@ -4,6 +4,14 @@ topmind-skills 的版本记录。GitHub 只保留最近 2 个 Release,本文
4
4
 
5
5
  版本真源:`topmind-pack.json`。`package.json`、每个 `SKILL.md` 的 `metadata.version`、`evals/evals.json` 与之一致。
6
6
 
7
+ ## 4.15.7 — 2026-10-26
8
+
9
+ - 精简入口、捕获与写作流程,按需加载共享参考;不再要求固定回执模板、无意义的分类访谈和重复扫描。
10
+ - 多意图任务按依赖连续完成;用户明确要求的记忆更新直接执行,主动建议仍待接受,不因内部技能切换重复确认。
11
+ - 对齐 Desktop / Obsidian 的分级写闸与技能资源来源,保留路径围栏、锁定内容快照及永久删除授权。
12
+ - 合并重复的授权/路由矩阵,补充自然语言任务与否定意图评估案例;不自动安装外部技能或发布内容。
13
+ - 修复手动草稿发布误用分支标签和 latest.json 标签错误;统一版本校验并增加可执行回归测试,草稿不触发旧正式版本清理。
14
+
7
15
  ## 4.15.6 — 2026-10-24
8
16
 
9
17
  ### 优化
package/README.en.md CHANGED
@@ -76,7 +76,7 @@ topmind-workspace/
76
76
 
77
77
  - **Save first**: unclear items go to the Inbox; imperfect classification never blocks a save.
78
78
  - **Every write has a receipt**: which file, why there, and what you can do next.
79
- - **Save settings**: `writeback_mode: auto | confirm`. auto writes and returns a receipt; confirm lets you review first. High-impact changes such as deleting memory or creating topics always need your OK; see [`shared/auto-suggest.md`](./shared/auto-suggest.md).
79
+ - **Save settings**: `writeback_mode: auto | confirm`. auto writes and returns a receipt; confirm also saves content edits directly and queues deletion/archive for review. Explicitly requested topic or memory changes reuse your authorization; inferred suggestions need acceptance; see [`shared/auto-suggest.md`](./shared/auto-suggest.md).
80
80
  - **Files are the only source of truth**: assistant session state must not become topmind content truth.
81
81
  - **Desktop is not required, UTR is optional**: without topmind Desktop or the UTR CLI, the assistant uses its own file tools under the same conventions.
82
82
  - **Nothing is posted for you**: skills only draft; you publish.
package/README.md CHANGED
@@ -76,7 +76,7 @@ topmind-workspace/
76
76
 
77
77
  - **先存下来再说**:分类不确定时先放 Inbox,不因为分类拦住保存。
78
78
  - **每次写入都有回执**:写了哪个文件、为什么放这里、下一步可以做什么。
79
- - **保存设置**:`writeback_mode: auto | confirm`。auto 直接写并给回执;confirm 先给你审阅。删除记忆、建专题这类高影响操作总要你点头,规则见 [`shared/auto-suggest.md`](./shared/auto-suggest.md)。
79
+ - **保存设置**:`writeback_mode: auto | confirm`。auto 直接写并给回执;confirm 内容编辑也直接写,仅删除/归档进入审阅。明确要求的建专题、记忆更新直接执行;推测的建议需接受,规则见 [`shared/auto-suggest.md`](./shared/auto-suggest.md)。
80
80
  - **文件是唯一的数据来源**:助手自己的会话状态不得成为 topmind 内容真源。
81
81
  - **不要求 Desktop,UTR 可选**:topmind Desktop 和 UTR 命令行都不是必需的,没有时用助手自带的文件工具,遵守同一套约定。
82
82
  - **不代发**:任何技能都只起草,发布由你操作。
package/evals/evals.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "skill_name": "topmind",
3
3
  "daily_entry": "topmind",
4
- "version": "4.15.6",
4
+ "version": "4.15.7",
5
5
  "evals": [
6
6
  {
7
7
  "id": 1,
@@ -237,7 +237,7 @@
237
237
  "prompt": "记一下:明天要交季度报告,别忘了附上数据表。",
238
238
  "primary_skill": "topmind-capture",
239
239
  "extra_skills": [],
240
- "expected_output": "Capture-first: material lands in the stream period note (or topic/Inbox) with provenance + path receipt. Explicit action language also extracts todo item(s) into memory/todo.md (write under writeback auto, or one-word suggest under confirm) per shared/auto-suggest.md. Does not ask the user to choose category/todo/memory modules. Does not write profile.md."
240
+ "expected_output": "Capture-first: material lands in the stream period note (or topic/Inbox) with provenance + path receipt. Explicit action language also extracts todo item(s) into memory/todo.md (direct content write under auto or graded confirm) per shared/auto-suggest.md. Does not ask the user to choose category/todo/memory modules. Does not write profile.md."
241
241
  },
242
242
  {
243
243
  "id": 33,
@@ -274,7 +274,7 @@
274
274
  "prompt": "这周 AI 大厂有什么新的官方动态?顺便看看社区怎么评价。",
275
275
  "primary_skill": "topmind",
276
276
  "extra_skills": [],
277
- "expected_output": "Router splits into ordered steps per shared/trigger-disambiguation.md: official announcements, technical reports and papers → optional external topmind-research (collect); community discussion → optional external last30days. Does not route to topmind-organize 整理本周 (that phrase means the workspace stream category) and does not use TopStream每日精选 unless the user asks for the daily digest. Any skill that is not installed falls back to topmind-organize on saved workspace materials, and the receipt says so. Each step returns its own receipt; no auto chaining."
277
+ "expected_output": "Router splits into ordered steps per shared/trigger-disambiguation.md: official announcements, technical reports and papers → optional external topmind-research (collect); community discussion → optional external last30days. Does not route to topmind-organize 整理本周 (that phrase means the workspace stream category) and does not use TopStream每日精选 unless the user asks for the daily digest. Any skill that is not installed falls back to topmind-organize on saved workspace materials, and the receipt says so. Complete both requested research steps and give their actual sources; do not invent unrequested follow-ups."
278
278
  },
279
279
  {
280
280
  "id": 38,
@@ -335,7 +335,7 @@
335
335
  "topmind-research",
336
336
  "topmind-presentation"
337
337
  ],
338
- "expected_output": "Ordered steps per shared/trigger-disambiguation.md: evidence gathering and fact checking → optional external topmind-research first; the receipt suggests topmind-presentation for the HTML/PPTX deck. No auto chaining. If research is missing → topmind-organize on saved materials; if presentation is missing → topmind-write."
338
+ "expected_output": "Research and verify sources with optional topmind-research, then complete the requested HTML/PPTX deck with optional topmind-presentation in the same authorized task. Do not stop at a suggestion to make slides. If either skill is not installed, complete the feasible research or outline with available host tools, report the missing deliverable honestly, and do not fabricate an exported file."
339
339
  },
340
340
  {
341
341
  "id": 44,
@@ -357,6 +357,54 @@
357
357
  "topmind-poster"
358
358
  ],
359
359
  "expected_output": "Cover / header image → optional external topmind-cover; long vertical poster → optional external topmind-poster; a paged deck would be topmind-presentation. Each step returns its own receipt. Skills that are not installed are reported, not improvised."
360
+ },
361
+ {
362
+ "id": 46,
363
+ "prompt": "收下这个链接,整理重点,再写成一篇稿子。",
364
+ "primary_skill": "topmind",
365
+ "extra_skills": [
366
+ "topmind-capture",
367
+ "topmind-organize",
368
+ "topmind-write"
369
+ ],
370
+ "expected_output": "Save the material, extract relevant points and finish the draft in the same authorized task. Do not stop at a receipt suggesting organize/write. No unsolicited profile mutation."
371
+ },
372
+ {
373
+ "id": 47,
374
+ "prompt": "记住我现在负责产品设计。",
375
+ "primary_skill": "topmind-memory",
376
+ "extra_skills": [],
377
+ "expected_output": "Update the durable profile fact with a real path receipt. The explicit request is authorization; do not ask again whether to remember it. Preserve the workspace write gate."
378
+ },
379
+ {
380
+ "id": 48,
381
+ "prompt": "建一个专题,把这两篇笔记放进去。",
382
+ "primary_skill": "topmind-organize",
383
+ "extra_skills": [],
384
+ "expected_output": "Create the requested content topic and move the specified notes under the real category, subject to the actual write gate. Do not request duplicate authorization or write memory/topics."
385
+ },
386
+ {
387
+ "id": 49,
388
+ "prompt": "只在聊天里总结这段,不要存文件。",
389
+ "primary_skill": "topmind-organize",
390
+ "extra_skills": [],
391
+ "expected_output": "Return a concise summary without writing any file, creating a topic or updating memory."
392
+ },
393
+ {
394
+ "id": 50,
395
+ "prompt": "Write a report from these notes, then export the draft.",
396
+ "primary_skill": "topmind",
397
+ "extra_skills": [
398
+ "topmind-write"
399
+ ],
400
+ "expected_output": "Treat as a task with enough tool budget, finish the requested draft and export if supported, or report the unsupported export. Never classify as light or terminate after routing."
401
+ },
402
+ {
403
+ "id": 51,
404
+ "prompt": "有什么待办?",
405
+ "primary_skill": "topmind",
406
+ "extra_skills": [],
407
+ "expected_output": "Read the actual checklist and answer without creating a note or requiring a write receipt. Empty tool data means no current items, not invented tasks."
360
408
  }
361
409
  ]
362
410
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@topmindspace/topmind-skills",
3
- "version": "4.15.6",
3
+ "version": "4.15.7",
4
4
  "description": "topmind Agent Skills pack: one daily entry (topmind) routing to capture, organize, write, memory, maintain and loop, plus optional WeRead, X and ledger skills.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -0,0 +1,23 @@
1
+ import { readFileSync, appendFileSync } from "node:fs";
2
+ import path from "node:path";
3
+ import { pathToFileURL } from "node:url";
4
+
5
+ export function resolveRelease({ eventName, refName, inputTag, version, packageVersion }) {
6
+ if (!/^\d+\.\d+\.\d+$/.test(version) || version !== packageVersion) {
7
+ throw new Error("Pack and npm package must have the same numeric release version");
8
+ }
9
+ const tag = eventName === "workflow_dispatch" ? inputTag : refName;
10
+ if (tag !== `v${version}`) throw new Error(`Release tag must equal v${version}`);
11
+ return { version, tag };
12
+ }
13
+
14
+ if (process.argv[1] && import.meta.url === pathToFileURL(path.resolve(process.argv[1])).href) {
15
+ const result = resolveRelease({
16
+ eventName: process.env.GITHUB_EVENT_NAME,
17
+ refName: process.env.GITHUB_REF_NAME,
18
+ inputTag: process.env.INPUT_RELEASE_TAG,
19
+ version: JSON.parse(readFileSync("topmind-pack.json", "utf8")).version,
20
+ packageVersion: JSON.parse(readFileSync("package.json", "utf8")).version,
21
+ });
22
+ appendFileSync(process.env.GITHUB_OUTPUT, `version=${result.version}\ntag=${result.tag}\n`);
23
+ }
@@ -1,122 +1,33 @@
1
- # Auto-Suggest Ladder(自动建议阶梯 · Skills 共享)
1
+ # 请求授权与主动建议
2
2
 
3
- > 产品北极星:**记下来尽可能简单;系统默默准备建议;你点头后再沉淀;文件永远是你的。**
4
- > 与 Desktop「自动准备建议(默认开)· 高影响确认后执行」同一语义。Host 无 Desktop 时由 Agent 自己扮演建议生成器。
5
- > 真源对齐:`docs/ARCHITECTURE-RESET.md` §D · `PRODUCT-BOUNDARIES.md`。
3
+ 先完成用户请求,再按价值决定是否建议延伸。用户不需要学习模块名,不为分类、待办、记忆弹一组选择题。
6
4
 
7
- 用户**不需要**知道内部模块名,也**不需要**在落盘前做分类/记忆/待办的多选题。Agent 默认走阶梯,只在 L2 停下来问一句。
5
+ ## 三种情况
8
6
 
9
- ## 三级阶梯
7
+ | 情况 | 行为 |
8
+ |---|---|
9
+ | 用户明确要求的动作 | 在当前工作区和授权范围内执行,沿用本轮与既有授权;技能切换不重新询问 |
10
+ | 从材料推测的后续动作 | 只提案;用户接受后执行。分类、记忆、专题升级不因模型自信而获得授权 |
11
+ | 写闸/外部服务要求确认 | 遵守真实工具的权限与 pending 流程;既有授权不能绕过路径围栏或程序限制 |
10
12
 
11
- ```text
12
- L0 自动(无询问,直接做)
13
- 路由落盘 + 路径回执 · frontmatter/provenance · 周期本 append
14
- —— 「想记就记 / 随用随记」的主路径
13
+ 例如“收这个链接,整理重点,再写成稿”应完成三步;“收这个链接”只完成捕获,可附有价值的整理建议。明确说“记住我换工作了”或“建个专题”已表达该项授权,不额外问“要不要写”。未明确要记住的个人信息仍是候选,禁止静默更新 profile。
15
14
 
16
- L1 自动准备建议(默认生成并展示;一键接受;不静默写)
17
- 分类备选 · 待办提取 · 记忆候选 · 专题升级 · 整理本周下一步
18
- —— 「自动分类或分类建议 / 提取 todo / 记忆机制」的主路径
15
+ 这是对旧 L0/L1/L2 阶梯的简化:决定依据是用户目标、真实影响和实际权限,不是技能名或固定流程层级。
19
16
 
20
- L2 确认后执行(高影响;一句话确认即可)
21
- 写 memory/profile.md 或 memory/topics/ · 创建/合并专题
22
- 删除/归档(confirm 模式)· 批量改待办状态 · 永久删
23
- ```
17
+ ## 待办与记忆
24
18
 
25
- **纪律**:
19
+ - 显式行动语(“记一下要做 X”“别忘了 X”):材料照常落盘,同轮把明确行动写入 `memory/todo.md`,语义去重;writeback auto 可直接写,confirm 的内容编辑也直接落盘。
20
+ - 隐含行动、推断完成状态:给出 diff 建议;用户只说“看看有没有要更新的”不等于授权批量改状态。明确说“同步这些已完成项”则执行。
21
+ - 我的情况只存稳定事实、偏好、目标等;普通进度与过程日志留在动态/专题。记忆新事实融合,变化原位更新,过时事实退到历史,避免重复追加。
22
+ - 专题升级是内容大类下的目录;不是默认 `memory/topics/`。用户没要求时只建议;不升专题也健康。
23
+ - 用户已拒绝的候选不要在无新证据时反复提出。
26
24
 
27
- 1. L1 **只是建议卡片/回执附言**,不改内容真源;用户说「好 / 记上 / 移过去」即接受。
28
- 2. L2 **不问细节**,只问「要不要写」;接受后一次做完并给路径回执。
29
- 3. **禁止**为了「更智能」把 L2 静默升成 L0。**禁止**把 L1 做成一长串选择题。
30
- 4. 子 skill **不**自动 dispatch 下一 skill;L1 的「下一步」是用户面建议,不是链式调用。
31
- 5. 建议输出语言:用户本轮要求 → 宿主 UI → 工作区 locale(见 [`output-language.md`](./output-language.md))。
25
+ ## 保存设置
32
26
 
33
- ## L1 建议类型(按触发)
27
+ `writeback.mode: auto | confirm` 不改变上述意图判断。两种模式下内容创建/编辑均直接写;confirm 删除/归档走待确认队列。locked 首写快照、永久删除、路径围栏及工具证据统一见 [writeback-receipt.md](writeback-receipt.md),本页不复述另一套写闸。
34
28
 
35
- | 建议 | 何时准备 | 接受后写到 | 拒绝 |
36
- |------|----------|------------|------|
37
- | **分类备选** | capture 低信心类别 | 用户点名的大类 / 真实目录名 | 留在 Inbox |
38
- | **待办提取** | 正文含行动语(要做/记得/别忘/截止/待办/todo/need to) | `memory/todo.md`(语义平面卫星) | 只留周期本原文 |
39
- | **记忆候选** | 稳定个人信息(偏好/目标/关系/进行中/周期洞察) | `memory/profile.md` 或 `memory/periodic/` | 不写 memory |
40
- | **专题升级** | 同主题反复出现(≥2 次)且尚无专题 | 内容大类 `{YYYY-主题}/` | 流水永远只是流水 |
41
- | **整理下一步** | capture 完成 / 周期本变脏 | 用户说「整理」再走 organize | 无 |
29
+ ## 回执
42
30
 
43
- ### 待办提取细则(todo satellite)
31
+ 回复结果与真实路径;只有能帮助用户时附建议,一般 0–3 条即可。不要求每次自动生成候选,也不要求逐步输出长回执。用户一次授权的连续任务可合并给最终交付清单。
44
32
 
45
- `memory/todo.md` 是**语义平面卫星**(与 `todo-engine` 同契约),**不是**第 6 个用户概念。用户话术仍是「记一下 / 待办」。
46
-
47
- ```text
48
- 显式行动语(「记一下要做 X」「别忘了 X」「待办:X」)
49
- → L0:材料照常落盘
50
- → L0/L1:同轮把 X 写入 memory/todo.md(writeback auto 可直接写 + 回执;
51
- confirm 则建议后写)。语义重复按文本去重。
52
-
53
- 隐含行动语(「周三截止」「下周要交」)
54
- → L1:建议提取 1–N 条,用户点头再写
55
-
56
- 「有什么要做的 / 待办 / todo list」
57
- → 读 memory/todo.md 活跃项;不新建概念
58
-
59
- 「X 做完了 / 这条不用了」
60
- → 勾掉/归档对应 todo(可恢复);同时可在周期本留一行状态(organize 语义)
61
- ```
62
-
63
- Host 能力映射:
64
-
65
- | 能力 | Desktop | UTR | 纯 Host Agent |
66
- |------|---------|-----|---------------|
67
- | 提取 | `add_todo` · `todo_maintain` | `memory.add-todo` | 读活动窗口 → 识别行动语 → 写 checklist |
68
- | 维护 | `toggle_todo` · `update_todo` · `set_todo_due` · `delete_todo` · `maintainTodos` | `memory.toggle-todo` | 对照周期本与 todo.md 做 diff 建议 |
69
- | 列表 | `list_todos` · Todo 面板 | `memory.list-todos` | 读 `memory/todo.md` 活跃段 |
70
- | 动态查询 | `list_recent_stream` | `workspace-read.list-recent-captures` | 读最近周期本日段 |
71
- | 记忆查询 | `list_recent_memories` | `memory.list-profile` 等 | 读 `memory/` 活跃段(勿整库倾倒) |
72
- | 分类/专题建议 | `topic_classify`(确认后 `create_topic`) | 文件工具 + role 路由 | 按 role + 内容性质给最多 3 候选 |
73
- | 记忆建议 | `memory_organize`(append/update/retire 建议) | `memory.append-profile` 等(确认后) | 识别稳定事实 → L1 候选 |
74
-
75
- 写入格式:markdown checklist(`- [ ]` / `- [x]`),可带截止日期;保持简单可编辑。详见引擎 `lib/todo-engine.mjs`。
76
-
77
- ### 分类备选细则
78
-
79
- 高信心 → 直接落盘(L0)。低信心 → 仍落 **role:buffer**(L0 不丢数据),回执附 L1:
80
-
81
- ```text
82
- 已收进 Inbox。更像是:① 20-研究 ② 10-动态 —— 说「移到研究」即可。
83
- ```
84
-
85
- **不要**弹出多选表单;最多 3 个候选,按角色 + 内容性质排序。
86
-
87
- ### 记忆候选细则
88
-
89
- - **写**仍属 L2(须用户确认或明说「记住 / 更新我的情况」)。
90
- - **准备**属 L1:capture / organize / 整理本周 之后,识别稳定事实就附一句候选。
91
- - 禁止因剪藏/导入自动改 `memory/profile.md` 或 `memory/topics/`(见 [`trigger-disambiguation.md`](./trigger-disambiguation.md))。
92
-
93
- ## 回执中的建议(统一形状)
94
-
95
- ```text
96
- 已记到:10-动态 → 本周动态
97
- 位置:10-动态/2026/2026-W39.md
98
- ——
99
- 顺手建议(说一声即可):
100
- · 待办:周三前交报告 → 记入清单?
101
- · 更像 20-研究?可移过去
102
- · 「换工作了」可进「我的情况」
103
- ```
104
-
105
- 一条回执最多 3 条建议;超过的丢弃或留给 loop。建议可整体忽略,不影响 L0 结果。
106
-
107
- ## 与保存设置
108
-
109
- | writeback | L0 | L1 | L2 |
110
- |-----------|----|----|-----|
111
- | `auto` | 直接写 | **显式行动语的待办可直接写** + 回执;其余仍建议 | 仍须确认(memory / 删档 / 建专题) |
112
- | `confirm` | 内容直接写(分级) | 全部建议后写 | 确认后写 |
113
-
114
- 高影响(locked 覆盖、删/归档、永久删)永远走写闸,与本阶梯无关(见 [`writeback-receipt.md`](./writeback-receipt.md))。
115
-
116
- ## 反模式
117
-
118
- - 让用户先选「你要 capture 还是 organize 还是 memory?」
119
- - 记一条笔记弹出分类树 / 标签多选 / 记忆层级选择
120
- - 静默把整段聊天写进 profile
121
- - 为提取待办再造一个顶层 `todo/` 目录或第六概念
122
- - L1 建议不给路径、不给一键接受话术
33
+ 建议、待办的输出语言见 [output-language.md](output-language.md)。写作/发布仍遵守相应技能和连接器授权。
@@ -1,6 +1,6 @@
1
1
  # Host Loading & Progressive Disclosure
2
2
 
3
- > 给 **Agent Host / 安装器** 的加载契约。人类安装见 [`../INSTALL.md`](../INSTALL.md)。
3
+ > 给 **Agent Host / 安装器** 的加载契约。人类安装见 [`../INSTALL.md`](../INSTALL.md)。
4
4
  > 对齐 [Agent Skills Open Standard](https://agentskills.io/specification) 三级披露。
5
5
 
6
6
  ## 三级加载(必须遵守)
@@ -56,10 +56,10 @@ topmind-skills-<ver>/ ← Release zip 顶层
56
56
 
57
57
  ### 错误形状
58
58
 
59
- - 只拷了 skill 目录、**没有** `shared/` → 渐进链接 404
60
- - 把 monorepo 整仓当 skill 根 → host 扫到无关目录
61
- - 只装 `topmind` 却期望 weread/x 触发 → connector 未装
62
- - Host 报 `SKILL.md not found`:请用 `topmind-skills-*.zip`(含根 `SKILL.md`),或装到 `{skillsRoot}/topmind/SKILL.md`
59
+ - 只拷了 skill 目录、**没有** `shared/` → 渐进链接 404
60
+ - 把 monorepo 整仓当 skill 根 → host 扫到无关目录
61
+ - 只装 `topmind` 却期望 weread/x 触发 → connector 未装
62
+ - Host 报 `SKILL.md not found`:请用 `topmind-skills-*.zip`(含根 `SKILL.md`),或装到 `{skillsRoot}/topmind/SKILL.md`
63
63
 
64
64
 
65
65
  ## 两套安装器
@@ -92,28 +92,28 @@ cp -R shared ~/.agents/skills/shared
92
92
 
93
93
  ## description 写作规范(本 pack 已遵循)
94
94
 
95
- 1. **What** — 做什么(含 topmind / category·topic 心智)
96
- 2. **Use when** — 用户真实中英短语
97
- 3. **Do NOT use** — 负向边界(降误触发)
98
- 4. ≤ **1024** 字符(Agent Skills 硬限)
99
- 5. Router 不得写「any knowledge task」一类过宽句,以免淹没子 skill
95
+ 1. **What** — 做什么(含 topmind / category·topic 心智)
96
+ 2. **Use when** — 用户真实中英短语
97
+ 3. 相邻技能容易误选时简述负向边界;不必在正文重复完整 When NOT 清单
98
+ 4. ≤ **1024** 字符(Agent Skills 硬限)
99
+ 5. Router 不得写「any knowledge task」一类过宽句,以免淹没子 skill
100
100
 
101
101
  ## 工作区前提(Host 须满足)
102
102
 
103
- - 用户数据在 **workspace root**(含 `{NN-Name}/`),不是 engine 仓
104
- - Skills **不**写 engine 代码
105
- - 可选 UTR:有则加速,无则 Host 文件工具(见 capability-degradation)
106
- - 类别解析语义:`list-categories` 或扫盘 + `topmind.yaml` v4
103
+ - 用户数据在 **workspace root**(含 `{NN-Name}/`),不是 engine 仓
104
+ - Skills **不**写 engine 代码
105
+ - 可选 UTR:有则加速,无则 Host 文件工具(见 capability-degradation)
106
+ - 类别解析语义:`list-categories` 或扫盘 + `topmind.yaml` v4
107
107
 
108
108
  ## Desktop 内置
109
109
 
110
110
  topmind Desktop 从 engine `skills/` 加载同一 pack(`skills-runtime.mjs`),默认 **skill-first**:
111
111
 
112
- - Discovery 注入 system prompt
113
- - `list_skills` / `load_skill` / `load_skill_resource`
114
- - 设置 → Skills:总开关 · 清单勾选 · 扩展目录 · 安装回执;AI 面板可钉选
112
+ - Discovery 注入 system prompt
113
+ - `list_skills` / `load_skill` / `load_skill_resource`
114
+ - 设置 → Skills:总开关 · 清单勾选 · 扩展目录 · 安装回执;AI 面板可钉选
115
115
 
116
- **扩展 roots 合并顺序**:`ai.extraSkillsRoots`(设置)→ 已同步的配置缓存 → 环境变量 `topmind_SKILLS_EXTRA`(`:` / Windows `;`)。同名 skill 以后加载的 external 覆盖 bundled。
116
+ **扩展 roots 合并顺序**:`ai.extraSkillsRoots`(设置)→ 已同步的配置缓存 → 环境变量 `topmind_SKILLS_EXTRA`(`:` / Windows `;`)。同名 skill 以后加载的 external 覆盖 bundled。激活与资源必须沿用选中来源;`load_skill_resource` 推荐传 skillId,再以技能目录解析 references/* 或 ../shared/*,缺资源不能静默换包。
117
117
 
118
118
  ```bash
119
119
  export topmind_SKILLS_EXTRA="$HOME/my-extra-skills:$HOME/other-skills"
@@ -82,10 +82,10 @@ memory:
82
82
 
83
83
  | 动作 | 纪律 |
84
84
  |------|------|
85
- | organize | 整理/总结默认落盘专题根笔记(按 writeback);不只回话;L1 建议 memory/todo/专题候选,不自动写 topic.md |
85
+ | organize | 持久整理写回专题根;临时问答不强存;额外 memory/todo/专题候选只提案,不自动写 topic.md |
86
86
  | write | 有 `topic.md` 先读再写;无则不强制创建 |
87
- | memory | 写入仅用户明确沉淀(L2);L1 默认准备候选;禁止 capture 自动改 memory/topics/ |
88
- | capture | 只写材料笔记;不改 topic.md、不自动链式;行动语 → `memory/todo.md`(显式可写,隐含建议) |
87
+ | memory | 明确请求或接受提案时写入;有价值时准备候选;禁止 capture 自动改 memory/topics/ |
88
+ | capture | 只写材料笔记;不因捕获擅改 topic.md,用户已要求的后续动作连续完成;行动语 → `memory/todo.md`(显式可写,隐含建议) |
89
89
  | loop | 材料多而首页空时只**建议** organize/memory,不代写记忆/不建 INDEX |
90
90
 
91
91
  ## source_type
@@ -118,7 +118,7 @@ source: fs+config | fs+template | fs-only | …
118
118
  ### 智能体入口协议
119
119
 
120
120
  ```text
121
- 任何 capture / organize / write / maintain / loop 开始前:
121
+ 需要路由写入时(已有本轮上下文则复用):
122
122
  1) 解析类别表(list-categories 或 扫盘 + 读 config)
123
123
  2) 跳过 hidden;按 role / specialBehavior 路由
124
124
  3) 再写回
@@ -1,7 +1,7 @@
1
1
  # Trigger Disambiguation(路由消歧真源)
2
2
 
3
- > Router(`topmind`)与各子 skill 的「When NOT」必须与本表一致。
4
- > 子 skill **不得**自动链式 dispatch 下一 skill;「下一步」仅用户面建议。
3
+ > Router(`topmind`)与各子 skill 的「When NOT」必须与本表一致。
4
+ > 用户已要求的多意图按依赖连续完成;未请求的延伸仅建议。授权以 [auto-suggest](auto-suggest.md) 为准。
5
5
  > 外部可选技能不随本包发布:仅在宿主已安装时按表路由;未安装按该行写明的回退处理,回执可提示可选安装,不报错。当前清单:
6
6
  > - 写作包 topmind-writing-skills:`topmind-wechat-post`(公众号)、`topmind-x-article`(X 长文)、`topmind-briefs`(干货短文)、`topmind-viral-posts`(引流短帖)、`topmind-cover`(封面 / 配图)、`topmind-poster`(长图 / 海报)
7
7
  > - 独立技能:`topmind-research`(对外检索与研究报告)、`topmind-presentation`(HTML / PPTX 演示稿)、`topmind-handoff`(跨工具交接包)
@@ -45,39 +45,27 @@
45
45
 
46
46
  | 动作 | 默认写什么 | 禁止 |
47
47
  |------|------------|------|
48
- | capture | 材料笔记;显式行动语可写/建议 `memory/todo.md` | 改 `topic.md`;自动 organize;静默写 memory/profile 或 memory/topics |
48
+ | capture | 材料笔记;显式行动语可写/建议 `memory/todo.md` | 改 `topic.md`;未请求的 organize;静默写 memory/profile 或 memory/topics |
49
49
  | organize | 专题根综合/结构笔记(留痕);L1 待办/记忆/专题建议 | 自动写稳定记忆;建 `INDEX.md` / entities 树 |
50
50
  | memory | 仅 confirmed stable → `memory/profile.md` 或 `memory/periodic/`(用户明说才写 `memory/topics/`) | 因 capture/整理顺手刷写;把 `topic.md` 当记忆默认落点 |
51
51
  | todo(卫星) | `memory/todo.md` checklist | 新建顶层 `todo/`;当第六用户概念 |
52
52
  | write | 稿件 / delivery | 为「补结构」空建 `topic.md` |
53
53
  | loop | 状态 / 可逆修复 | 代写记忆;建硬索引 |
54
54
  | ledger | `{memory.dir}/ledgers/` 追加一行 | 改 `topic.md`;发明 ClassFund/Giggs/Mom;当第六用户概念 |
55
- | topmind-research(外部可选) | 研究报告、周报、已核验事实表,按 `writeback-receipt.md` 落专题或 Inbox(frontmatter `source_type: ai-derived`) | 自动写记忆;自动改它自带的 `config/sources.yaml`;未经用户点名自动深挖;自动链式 briefs / write |
55
+ | topmind-research(外部可选) | 研究报告、周报、已核验事实表,按 `writeback-receipt.md` 落专题或 Inbox(frontmatter `source_type: ai-derived`) | 自动写记忆;自动改它自带的 `config/sources.yaml`;未经用户点名自动深挖;未请求的 briefs / write |
56
56
 
57
57
  ## 多意图顺序
58
58
 
59
- | 意图组合 | 裁决 |
60
- |---------|------|
61
- | capture + organize | 先 capture,回执建议 organize(不自动链式) |
62
- | capture + memory | 先 capture,回执建议 memory(须用户再确认才写 profile / periodic) |
63
- | organize + write | 先 organize(落盘综合),再 write |
64
- | organize + memory | 先 organize 候选与综合笔记,**用户接受建议后再** memory |
65
- | write + memory | 先 write,回执建议 memory |
66
- | research + write | 先 research 出报告与事实表,回执建议 briefs / write(不自动链式) |
67
- | research + memory | 先 research 落盘,回执建议 memory(须用户再确认才写) |
68
- | 整理 inbox | organize + plan-inbox-routing(不是 maintain/loop) |
69
- | 清理工作区 | maintain |
70
-
71
- 三个以上意图:拆成顺序步骤,每步回执。
59
+ 按 [multi-intent](../topmind/references/multi-intent.md) 连续完成用户已授权的整项任务,不再复制第二份裁决矩阵。明确任务的跨技能执行与主动追加工作分开;研究+写稿应交付稿件,不能只建议去写。
72
60
 
73
61
  ## Action unsure
74
62
 
75
- - 记账 / 记一笔 / 花了 / 存入 / 查看账单 / 账户余额 → ledger
76
- - 内容动词(写/存/记一下)且无修复/巡检 → capture
77
- - 修复 / 清理 / 重建 → maintain
78
- - 巡检 / 整体 / 断点 → loop
79
- - 整理 / 分析 / 总结 → organize
80
- - 写 / 发布 / 出稿 → write
81
- - 记忆 / 更新我的情况 / 周期反思 → memory
82
- - 仅类别名 → capture 到该类别根
83
- - 全不像 → capture 到 Inbox(buffer)
63
+ - 记账 / 记一笔 / 花了 / 存入 / 查看账单 / 账户余额 → ledger
64
+ - 内容动词(写/存/记一下)且无修复/巡检 → capture
65
+ - 修复 / 清理 / 重建 → maintain
66
+ - 巡检 / 整体 / 断点 → loop
67
+ - 整理 / 分析 / 总结 → organize
68
+ - 写 / 发布 / 出稿 → write
69
+ - 记忆 / 更新我的情况 / 周期反思 → memory
70
+ - 仅类别名 → capture 到该类别根
71
+ - 全不像 → capture 到 Inbox(buffer)
@@ -1,7 +1,7 @@
1
1
  # Writeback & Receipt(Skills 共享)
2
2
 
3
3
  > 完整契约:`TOOLS.md` §Writeback Contract。耐久主写统一 `lib/writeback-engine`(Desktop WorkspaceService / UTR / AI → Kernel 写闸 **Done**,见 `docs/ARCHITECTURE-RESET.md` §2.2)。
4
- > **2026-09-17 授权模型**:工作区围栏绝对;围栏内 agent 会话即授权;`locked` = 重要内容需**任务级首写快照**,不是 AI 禁区。
4
+ > **2026-09-17 授权模型**:工作区围栏绝对;围栏内按用户请求范围授权;`locked` = 重要内容需**任务级首写快照**,不是 AI 禁区。
5
5
 
6
6
  ## 保存设置
7
7
 
@@ -24,16 +24,9 @@ writeback:
24
24
 
25
25
  **locked 语义(2026-09-17c)**:`auto` 下 AI **可以**写 locked —— 本任务对该文件的**首次**覆盖做一次快照+YAML 回执,同任务后续编辑原地更新。**删除/归档 locked 也可在 auto 进行**(走 trash/归档目的地,可恢复+回执);**永久删除** locked/core 仍须用户。`confirm` 为分级:内容编辑直接落盘;删/归档待确认。用户写 locked 始终可以(同样任务级快照)。
26
26
 
27
- ## 回执最小字段
27
+ ## 回执
28
28
 
29
- ```text
30
- 已收进/已更新:大类 → 专题(或单篇 / Inbox)
31
- 位置:relative/path.md
32
- 操作:create | update | delete | archive | restore
33
- 保存模式:auto | confirm
34
- 判断:信心与理由(如有)
35
- 下一步:继续写 / 整理 / 写入专题记忆 / 手动移动
36
- ```
29
+ 面向用户只需结果与真实路径;影响多个文件时列实际变更。理由、模式、信心、下一步仅在有用时补充,不固定填模板。
37
30
 
38
31
  写入必须返回 **target path + affected files**(UTR 时见 WritebackEvidence)。
39
32
 
package/skills.md CHANGED
@@ -27,4 +27,4 @@
27
27
  2. 按需加载:先读技能名和描述,触发后读 `SKILL.md`,需要细节时再读 `shared/` 和 `references/`。
28
28
  3. 文件就是数据来源,不依赖数据库或助手会话状态。
29
29
  4. 遵守 6 条工作区规约,见 [`shared/project-model-brief.md`](./shared/project-model-brief.md)。
30
- 5. 自动建议分级见 [`shared/auto-suggest.md`](./shared/auto-suggest.md):材料直接落盘;明确说了要做的事,auto 模式下同轮写入待办;其余建议等你点头;动记忆、删档、建专题要确认。待办放在 `memory/todo.md`。
30
+ 5. 自动建议分级见 [`shared/auto-suggest.md`](./shared/auto-suggest.md):材料直接落盘;明确说了要做的事,auto 模式下同轮写入待办;其余建议等你点头;明确请求沿用授权,额外记忆/专题建议需接受,删档按写闸确认。待办放在 `memory/todo.md`。