@topmindspace/topmind-skills 4.13.5 → 4.15.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.
package/README.en.md CHANGED
@@ -43,7 +43,7 @@ topmind-skills/ # pack root = repo root
43
43
  ├── topmind-weread|x/ # optional connectors
44
44
  ├── topmind-ledger/ # optional bookkeeping (memory-plane ledgers)
45
45
  ├── topmind-wechat/ # optional WeChat write sub-skill (not a peer entry)
46
- ├── shared/ # write receipts · degradation · capture …
46
+ ├── shared/ # write receipts · degradation · auto-suggest · capture …
47
47
  ├── install-targets/ # host install shapes
48
48
  ├── evals/evals.json
49
49
  ├── bin/install-skills.mjs # pack-aware installer (shared/ aware)
@@ -71,12 +71,14 @@ Content truth: topmind-workspace
71
71
  Capability model: action-first
72
72
  Save settings: auto | confirm
73
73
  Safety model: reversible by default
74
+ Suggestions: L0 auto-land · L1 auto-prepare · L2 confirm-apply — shared/auto-suggest.md
74
75
  ```
75
76
 
76
77
  Expose only `topmind` as the daily entry. Host session state must not become topmind content truth.
77
78
  **Desktop is not required** for this pack. **UTR is optional** — use host file tools when UTR is absent.
78
79
 
79
80
  Workflow: `收进来 -> 继续做 -> 交付/沉淀 -> 找回/调整`
81
+ **Capture whenever / use whenever:** capture lands with zero questions; classification alternatives, todo extraction, and memory candidates are prepared as L1 suggestions for one-word accept ([`shared/auto-suggest.md`](./shared/auto-suggest.md)). `memory/todo.md` is a satellite — not a sixth concept.
80
82
  (If the user says “capture this”, “note it”, “organize”, “write it up”, or “run a loop”, the router infers category / topic / action.)
81
83
 
82
84
  ---
@@ -133,14 +135,14 @@ Loose note: `{category}/{note}.md` when no topic yet.
133
135
 
134
136
  Do not hardcode absolute paths — infer `workspace_root` from the host or ask.
135
137
 
136
- ### 6 条核心规约
138
+ ### 6 core rules
137
139
 
138
- 1. **大类不重叠**
139
- 2. **专题自然涌现**
140
- 3. **动态类特殊**(默认平铺)
141
- 4. **兜底类清理**(约 30 天)
142
- 5. **参考资料定位**
143
- 6. **大类命名稳定**(rename via migration)
140
+ 1. **Categories never overlap**
141
+ 2. **Topics emerge** (do not force-create)
142
+ 3. **Dynamic/stream category is special** (flat-default)
143
+ 4. **Catch-all cleanup** (~30 days)
144
+ 5. **Reference materials stay reference-only**
145
+ 6. **Category names stay stable** (rename via migration)
144
146
 
145
147
  Full rules: [`shared/project-model-brief.md`](./shared/project-model-brief.md).
146
148
 
@@ -155,7 +157,7 @@ Full rules: [`shared/project-model-brief.md`](./shared/project-model-brief.md).
155
157
  - `source_type`: `user-original` | `external-capture` | `ai-derived`
156
158
  - UTR is optional — host file tools preserve the same contract
157
159
  - Save settings protocol: `writeback_mode: auto | confirm`
158
- - Locked/final files → revision copy (`文章 - 修订版.md`), not in-place auto-edit
160
+ - Locked: editable under auto (task-level first-write snapshot); permanent delete of locked/core is user-only
159
161
  - Desktop is not required for this pack
160
162
  - **Compound discipline (no structure change):** organize leaves synthesis on disk; write reads optional `topic.md` first; memory only on explicit confirm; capture never edits `topic.md`; **no** hard `INDEX.md` / parallel wiki trees (see `shared/project-model-brief.md`)
161
163
 
package/README.md CHANGED
@@ -43,7 +43,7 @@ topmind-skills/ # pack 根 = 仓库根
43
43
  ├── topmind-weread|x/ # 可选连接器
44
44
  ├── topmind-ledger/ # 可选记账(记忆平面账本)
45
45
  ├── topmind-wechat/ # 可选公众号 write 子技能(不是并列入口)
46
- ├── shared/ # 写回回执 · 降级 · 捕获 …
46
+ ├── shared/ # 写回回执 · 降级 · 自动建议 · 捕获 …
47
47
  ├── install-targets/ # Host 安装形状(claude-code / codex / mimocode / …)
48
48
  ├── evals/evals.json
49
49
  ├── bin/install-skills.mjs # pack-aware + agent matrix 安装器
@@ -71,6 +71,7 @@ Content truth: topmind-workspace
71
71
  Capability model: action-first
72
72
  Save settings: auto | confirm
73
73
  Safety model: reversible by default
74
+ Suggestions: L0 auto-land · L1 auto-prepare · L2 confirm-apply — shared/auto-suggest.md
74
75
  ```
75
76
 
76
77
  日常入口只暴露 `topmind`。Host 会话状态不得成为 topmind 内容真源。
@@ -79,6 +80,8 @@ Safety model: reversible by default
79
80
  工作流:`收进来 -> 继续做 -> 交付/沉淀 -> 找回/调整`
80
81
  (用户说「收一下」「记一下」「整理」「写成稿」「跑一遍 loop」— router 推断类别 / 专题 / 动作。)
81
82
 
83
+ **想记就记 / 随用随记**:捕获零提问落盘(L0);分类备选 / 待办 / 记忆候选默认 L1 准备——显式行动语待办在 auto 下同轮写入 `memory/todo.md`,其余建议点头再落([`shared/auto-suggest.md`](./shared/auto-suggest.md))。
84
+
82
85
  ---
83
86
 
84
87
  ## SKILL.md frontmatter
@@ -155,7 +158,7 @@ degradation: ../shared/capability-degradation.md
155
158
  - `source_type`: `user-original` | `external-capture` | `ai-derived`
156
159
  - UTR 可选 — Host 文件工具遵守同一契约
157
160
  - 保存设置协议:`writeback_mode: auto | confirm`
158
- - 锁定/定稿文件 → 修订副本(`文章 - 修订版.md`),不要原地自动改
161
+ - locked:auto 下可编辑(任务级首写快照);永久删 locked/core 仅用户
159
162
  - 本 pack 不要求 Desktop
160
163
  - **复合纪律(不改结构):** organize 把综合写回磁盘;write 先读可选 `topic.md`;memory 仅在明确确认后写;capture 从不改 `topic.md`;**不要**硬造 `INDEX.md` / 平行 wiki 树(见 `shared/project-model-brief.md`)
161
164
 
package/README.zh-CN.md CHANGED
@@ -1,4 +1,176 @@
1
- # topmind Skills(简体中文)
1
+ # topmind Skills
2
2
 
3
- 中文文档请直接看 **[README.md](./README.md)**。
4
- English: [README.en.md](./README.en.md) · Install & publish: [INSTALL.md](./INSTALL.md)
3
+ 可移植 AI 技能包:在 Claude Code / Codex / OpenCode / Hermes 等 Host 上使用同一套内容约定。
4
+
5
+ [简体中文](README.md) · [English](README.en.md) · [产品总览](https://github.com/topmindspace/topmind) · [安装与发布](./INSTALL.md) · [npm](https://www.npmjs.com/package/@topmindspace/topmind-skills)
6
+
7
+ ```bash
8
+ # 1) npm(推荐 · pack-aware · 含 shared/ · canonical .agents + 多智能体)
9
+ npx @topmindspace/topmind-skills add topmindspace/topmind-skills -g
10
+ # 只装给部分智能体
11
+ npx @topmindspace/topmind-skills add topmindspace/topmind-skills -g -a claude-code -a mimocode
12
+ # 升级
13
+ npx @topmindspace/topmind-skills update -g
14
+
15
+ # 2) 社区 CLI(快速试用;不含 shared/ — 见 INSTALL.md)
16
+ npx skills add topmindspace/topmind-skills -g -y
17
+
18
+ # 3) Pack-aware 安装器(源码仓内)
19
+ npm run add -- topmindspace/topmind-skills -g
20
+ npm run update -- -g
21
+
22
+ # 4) 从 GitHub Release 装(离线/固定版本)
23
+ node bin/install-skills.mjs add release:latest -g
24
+
25
+ # 查看矩阵 / 修断链
26
+ node bin/install-skills.mjs agents
27
+ node bin/install-skills.mjs doctor --repair
28
+ ```
29
+
30
+ 安装模型:**canonical `.agents/skills` 一份真身** + 私有目录(Claude Code / MiMoCode…)相对软链;与 [`npx skills`](https://github.com/vercel-labs/skills) / `@topmindspace/tms-skills` 一致。详见 [INSTALL.md](./INSTALL.md)。
31
+
32
+ **版本与清单真源:** [`topmind-pack.json`](./topmind-pack.json)(`npm run versions`)。
33
+ 各 `SKILL.md` 的 `version` **必须**等于 pack 版本。
34
+
35
+ ---
36
+
37
+ ## 结构
38
+
39
+ ```text
40
+ topmind-skills/ # pack 根 = 仓库根
41
+ ├── topmind/ # 唯一日常入口(router)
42
+ ├── topmind-capture|organize|write|memory|maintain|loop/
43
+ ├── topmind-weread|x/ # 可选连接器
44
+ ├── topmind-ledger/ # 可选记账(记忆平面账本)
45
+ ├── topmind-wechat/ # 可选公众号 write 子技能(不是并列入口)
46
+ ├── shared/ # 写回回执 · 降级 · 自动建议 · 捕获 …
47
+ ├── install-targets/ # Host 安装形状(claude-code / codex / mimocode / …)
48
+ ├── evals/evals.json
49
+ ├── bin/install-skills.mjs # pack-aware + agent matrix 安装器
50
+ ├── scripts/build-pack.mjs
51
+ └── topmind-pack.json # 版本真源
52
+ ```
53
+
54
+ | 类型 | 模块 |
55
+ |------|------|
56
+ | **入口** | `topmind` only |
57
+ | **动作** | capture · organize · write · memory · maintain · loop |
58
+ | **连接器** | weread · x(可选) |
59
+ | **可选** | wechat(公众号 write 子技能)· ledger(记账 · 记忆平面账本) |
60
+
61
+ > 子 skill 触发词只服务 Host 路由,**不是**第二前台入口。
62
+
63
+ ---
64
+
65
+ ## 产品契约
66
+
67
+ ```text
68
+ User experience: capture-first
69
+ Data organization: category-first + topic-emerges
70
+ Content truth: topmind-workspace
71
+ Capability model: action-first
72
+ Save settings: auto | confirm
73
+ Safety model: reversible by default
74
+ Suggestions: L0 auto-land · L1 auto-prepare · L2 confirm-apply — shared/auto-suggest.md
75
+ ```
76
+
77
+ 日常入口只暴露 `topmind`。Host 会话状态不得成为 topmind 内容真源。
78
+ 本 pack **不要求 Desktop**。**UTR 可选** — 没有 UTR 时用 Host 文件工具。
79
+
80
+ 工作流:`收进来 -> 继续做 -> 交付/沉淀 -> 找回/调整`
81
+ (用户说「收一下」「记一下」「整理」「写成稿」「跑一遍 loop」— router 推断类别 / 专题 / 动作。)
82
+
83
+ **想记就记 / 随用随记**:捕获零提问落盘(L0);分类备选 / 待办 / 记忆候选默认 L1 准备——显式行动语待办在 auto 下同轮写入 `memory/todo.md`,其余建议点头再落([`shared/auto-suggest.md`](./shared/auto-suggest.md))。
84
+
85
+ ---
86
+
87
+ ## SKILL.md frontmatter
88
+
89
+ ```yaml
90
+ ---
91
+ name: <kebab-case-id> # required; matches directory name
92
+ version: <pack.version> # required; = topmind-pack.json version
93
+ description: >- # required; Use when + Do not use
94
+ …
95
+ action_category: capture # skill taxonomy (not user note category)
96
+ triggers: [...]
97
+ entrypoint: false # only topmind router is true
98
+ author: TopMindSpace
99
+ license: MIT
100
+ homepage: https://github.com/topmindspace/topmind-skills
101
+ degradation: ../shared/capability-degradation.md
102
+ ---
103
+ ```
104
+
105
+ 由 `tests/package-manifest.test.mjs` 强制校验。一个 pack JSON([`topmind-pack.json`](./topmind-pack.json)),无 per-skill 第二清单。
106
+
107
+ ---
108
+
109
+ ## 工作区契约
110
+
111
+ ```text
112
+ {workspace-root}/
113
+ ├── topmind.yaml # contract v4
114
+ ├── memory/ # profile.md · periodic/ · topics/ · todo.md · 可选 ledgers/
115
+ ├── .topmind/ # rebuildable machine state
116
+ ├── 00-Inbox/ # role: buffer (live dir name)
117
+ ├── 10-动态/ … # categories (template-driven)
118
+ ├── 88-交付/ or 88-Delivery/ # role: delivery
119
+ └── 99-归档/ or 99-Archive/ # role: system
120
+ ```
121
+
122
+ 专题:
123
+
124
+ ```text
125
+ {category}/{YYYY-theme}/
126
+ ├── topic.md # optional
127
+ ├── *.md # notes at topic root
128
+ └── images/ # optional
129
+ ```
130
+
131
+ 尚无专题时,散篇放在 `{category}/{note}.md`。
132
+
133
+ **不要创建(已废弃):** 默认 `outline.md` / `setting.md` / `style.md`;`project_type` frontmatter;专题内嵌套 `notes/` 或 `outputs/`;顶层 `projects/`;`YYYY-类型-项目名` 命名。
134
+
135
+ **类别:** 运行时发现 `{NN-Name}/` + `topmind.yaml` v4(`categories.extensions` / `categories.overrides` 含 `hidden`)。共享解析器:引擎 `lib/workspace-model.mjs`。优先按角色路由,不要写死 `10-` / `20-` 编号。
136
+
137
+ 不要硬编码绝对路径 — 从 Host 推断 `workspace_root`,或向用户询问。
138
+
139
+ ### 6 条核心规约
140
+
141
+ 1. **大类不重叠**
142
+ 2. **专题自然涌现**
143
+ 3. **动态类特殊**(默认平铺)
144
+ 4. **兜底类清理**(约 30 天)
145
+ 5. **参考资料定位**
146
+ 6. **大类命名稳定**(rename via migration)
147
+
148
+ 完整规则:[`shared/project-model-brief.md`](./shared/project-model-brief.md)。
149
+
150
+ ---
151
+
152
+ ## 行为规则
153
+
154
+ - 先捕获;不要因为分类不完美而挡住简单保存
155
+ - 信号足够强时自动路由;否则走 **role:buffer**(现场 Inbox 目录,不要只写死 `00-Inbox/`)
156
+ - 专题不清时,散篇放在大类根
157
+ - 每次写入返回回执(路径、路由原因、下一步)
158
+ - `source_type`: `user-original` | `external-capture` | `ai-derived`
159
+ - UTR 可选 — Host 文件工具遵守同一契约
160
+ - 保存设置协议:`writeback_mode: auto | confirm`
161
+ - locked:auto 下可编辑(任务级首写快照);永久删 locked/core 仅用户
162
+ - 本 pack 不要求 Desktop
163
+ - **复合纪律(不改结构):** organize 把综合写回磁盘;write 先读可选 `topic.md`;memory 仅在明确确认后写;capture 从不改 `topic.md`;**不要**硬造 `INDEX.md` / 平行 wiki 树(见 `shared/project-model-brief.md`)
164
+
165
+ ---
166
+
167
+ ## 安装目标
168
+
169
+ 已打包的 skill 目录(7 个核心 + 2 个可选连接器 + 可选记账 + 可选公众号 `topmind-wechat`)可以符号链接或复制到 Claude Code、Codex、OpenCode、Hermes 等。
170
+ 优先使用 npm / pack-aware 安装器,保证 `shared/` 与 `topmind-pack.json` 完整 — 见 [`INSTALL.md`](./INSTALL.md)。
171
+
172
+ ```bash
173
+ npx @topmindspace/topmind-skills add topmindspace/topmind-skills -g
174
+ ```
175
+
176
+ Host 适配器**不得**改变内容真源、新增并列日常入口,或把内容存进 agent 运行态。见 [`shared/capability-degradation.md`](./shared/capability-degradation.md)。
package/evals/evals.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "skill_name": "topmind",
3
3
  "daily_entry": "topmind",
4
- "version": "4.13.5",
4
+ "version": "4.15.0",
5
5
  "evals": [
6
6
  {
7
7
  "id": 1,
@@ -231,6 +231,27 @@
231
231
  "primary_skill": "topmind-ledger",
232
232
  "extra_skills": [],
233
233
  "expected_output": "Routes through topmind-ledger as 收入 into the default Personal/自己 book. Does not create ClassFund. Writes via writeback to memory/ledgers/."
234
+ },
235
+ {
236
+ "id": 32,
237
+ "prompt": "记一下:明天要交季度报告,别忘了附上数据表。",
238
+ "primary_skill": "topmind-capture",
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."
241
+ },
242
+ {
243
+ "id": 33,
244
+ "prompt": "有什么要做的?",
245
+ "primary_skill": "topmind",
246
+ "extra_skills": [],
247
+ "expected_output": "Router reads memory/todo.md active checklist items (todo satellite, not a 6th concept) and lists them with paths. Does not invent a top-level todo/ directory, does not run organize, does not ask the user which skill to use."
248
+ },
249
+ {
250
+ "id": 34,
251
+ "prompt": "整理本周,顺便看看待办有没有要更新的。",
252
+ "primary_skill": "topmind-organize",
253
+ "extra_skills": [],
254
+ "expected_output": "Organize 整理本周 on the activity window: tidies the period note in place, then L1-suggests todo maintain diff (add/complete/update vs memory/todo.md) and optional memory/topic candidates per shared/auto-suggest.md. User accepts before writing todo/memory changes. No auto memory writes, no INDEX.md."
234
255
  }
235
256
  ]
236
257
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@topmindspace/topmind-skills",
3
- "version": "4.13.5",
3
+ "version": "4.15.0",
4
4
  "description": "topmind Agent Skills pack — portable markdown skills for capture, organize, write, memory, maintain, loop.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -0,0 +1,122 @@
1
+ # Auto-Suggest Ladder(自动建议阶梯 · Skills 共享)
2
+
3
+ > 产品北极星:**记下来尽可能简单;系统默默准备建议;你点头后再沉淀;文件永远是你的。**
4
+ > 与 Desktop「自动准备建议(默认开)· 高影响确认后执行」同一语义。Host 无 Desktop 时由 Agent 自己扮演建议生成器。
5
+ > 真源对齐:`docs/ARCHITECTURE-RESET.md` §D · `PRODUCT-BOUNDARIES.md`。
6
+
7
+ 用户**不需要**知道内部模块名,也**不需要**在落盘前做分类/记忆/待办的多选题。Agent 默认走阶梯,只在 L2 停下来问一句。
8
+
9
+ ## 三级阶梯
10
+
11
+ ```text
12
+ L0 自动(无询问,直接做)
13
+ 路由落盘 + 路径回执 · frontmatter/provenance · 周期本 append
14
+ —— 「想记就记 / 随用随记」的主路径
15
+
16
+ L1 自动准备建议(默认生成并展示;一键接受;不静默写)
17
+ 分类备选 · 待办提取 · 记忆候选 · 专题升级 · 整理本周下一步
18
+ —— 「自动分类或分类建议 / 提取 todo / 记忆机制」的主路径
19
+
20
+ L2 确认后执行(高影响;一句话确认即可)
21
+ 写 memory/profile.md 或 memory/topics/ · 创建/合并专题
22
+ 删除/归档(confirm 模式)· 批量改待办状态 · 永久删
23
+ ```
24
+
25
+ **纪律**:
26
+
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))。
32
+
33
+ ## L1 建议类型(按触发)
34
+
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 | 无 |
42
+
43
+ ### 待办提取细则(todo satellite)
44
+
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 建议不给路径、不给一键接受话术
@@ -30,6 +30,7 @@ Level 3(最低): 仅对话
30
30
  | 看专题 | 列出类别下专题目录 + 根层单篇 `.md` |
31
31
  | 检视专题 | 读 `topic.md`(若有)+ 专题根 `.md` |
32
32
  | 捕获 | 写带 frontmatter 的 `.md` 到专题根 / 大类根 / role:buffer |
33
+ | 待办 | 读写 `memory/todo.md` checklist(卫星);从周期本/活动窗口识别行动语提取 |
33
34
  | 交付 | 写到 role:delivery(常为 `88-交付/`) |
34
35
  | 追加记忆 | 默认 `memory/profile.md`(主)或 `memory/periodic/{YYYY}/`(周期反思);**开专题**写内容大类 `{YYYY-主题}/`;仅用户明说才写 `memory/topics/{slug}.md` |
35
36
  | 健康检查 | 遍历结构、报告缺失 / 垃圾;自定义类合法 |
@@ -43,9 +44,10 @@ Level 3(最低): 仅对话
43
44
  |------|------|
44
45
  | 类别 / 专题 | `list-categories`(WorkspaceModel Descriptor)· `list-topics` · `inspect-topic` · `list-topic-files` · `list-inbox` |
45
46
  | 捕获 / 创建 | `create-topic` · `capture-note` · `save-output` |
46
- | 记忆 | `memory.append-profile` · `memory.append-topic` · `memory.promote` · `memory.digest` |
47
+ | 待办 | `memory.list-todos` · `memory.add-todo` · `memory.toggle-todo` |
48
+ | 记忆 | `memory.append-profile` · `memory.append-topic` · `memory.promote` · `memory.digest` · `memory.retire-profile` · `memory.update-profile` · `memory.compact-history` · `memory.restore-profile` |
47
49
  | Inbox 路由 | `plan-inbox-routing`(primary;整理 inbox 前规划) |
48
- | 检查 / 维护 | `doctor-workspace` · `archive-topic` · `archive-stream-year` · `restore-safety-receipt` · `contract.reseed` |
50
+ | 检查 / 维护 | `doctor-workspace` · `archive-topic` · `archive-stream-year` · `restore-safety-receipt` · `contract.validate` · `contract.reseed` |
49
51
 
50
52
  扩展面见 `TOOLS.md` §Current Command Surface。输入用独立字段 `category` + `topic`。
51
53
 
@@ -9,7 +9,7 @@
9
9
  ## 分层策略
10
10
 
11
11
  ```text
12
- L1 静态 HTTP fetch + Readability / 启发式 ← 默认
12
+ L1 静态 HTTP fetch + Readability / 启发式 / GitHub raw ← 默认
13
13
  L2 Desktop 增强渲染(隐藏 Chromium offscreen) ← SPA 空壳 / 「增强渲染」
14
14
  L3 用户粘贴 / 浏览器复制 ← 永远可用
15
15
  L3+ 浏览器扩展 → Bridge 和/或 工作区直写 ← 推荐日常剪藏
@@ -18,20 +18,42 @@ L3+ 浏览器扩展 → Bridge 和/或 工作区直写 ← 推荐日常
18
18
  | 层 | 入口 | 说明 |
19
19
  |----|------|------|
20
20
  | L1 | `fetchUrl({ url })` | `@mozilla/readability` + `html-to-markdown`;无第二窗口 |
21
+ | L1-GH | 同上,GitHub md/README | `lib/github-md.mjs`:blob/raw 直取 raw + 相对图改写;仓库根/tree 解析 README |
21
22
  | L2 | `fetchUrl({ url, render: true })` | `fetch-render.mjs` + ephemeral 窗(不占 Dock) |
22
23
  | L3 | 手动 | 失败回退 |
23
24
  | L3+ | Extension | 页内 Readability + **预览 / 选区 / 高亮 / 模板 / 落点**;**Bridge**(高质量 MD + 图片本地化 + destinations)或 **工作区目录**(FS Access,无 Desktop)。见 ADR · `browser-extension/` · `docs/capture-clip-matrix.md` |
24
25
 
25
- **复用原则**:扩展负责活 DOM 正文与高亮;Bridge 与工作区直写共用 Desktop `html-to-markdown` 与同一 frontmatter 规约。Bridge 另走落点 API 与写闸;工作区直写是用户手势确认的 companion 路径。落点:Inbox / 类别 / 专题(Bridge 在线时 popup 可选)。
26
+ **复用原则**:扩展负责活 DOM 正文与高亮;Bridge 与工作区直写共用 Desktop `html-to-markdown` 与同一 frontmatter 规约。GitHub URL 语义(解析 / raw / 图片改写)单源在 Kernel `lib/github-md.mjs`,不维护第二套。Bridge 另走落点 API 与写闸;工作区直写是用户手势确认的 companion 路径。落点:Inbox / 类别 / 专题(Bridge 在线时 popup 可选)。
26
27
 
27
28
  Agent host 无 Electron 时停在 L1/L3;扩展 **不强制** Desktop 在线(可配置工作区直写)。
28
29
 
30
+ ## GitHub 专用路径
31
+
32
+ | 输入 | 行为 | `fetch_method` |
33
+ |------|------|----------------|
34
+ | `github.com/.../blob\|raw/<ref>/<path>.md` | 直取 `raw.githubusercontent.com` | `github-raw` |
35
+ | `raw.githubusercontent.com/.../<path>.md` | 直取并改写相对图 | `github-raw` |
36
+ | `github.com/<owner>/<repo>` · `.../tree/<ref>[/subdir]` | README 解析(API `/readme`,失败 raw 探测) | `github-readme` |
37
+ | 其他 GitHub 页(issues / pulls…) | 按普通网页提取 | `readability` / `heuristic` |
38
+
39
+ 相对图片路径改写为 `raw.githubusercontent.com/...`,避免笔记内裂图。标题优先 H1,否则文件名。
40
+
41
+ ## URL 类型提示(UI)
42
+
43
+ 粘贴 / 输入 URL 时提示将抓取什么(不弹多选):
44
+
45
+ - GitHub Markdown 文件 · 将抓取原文
46
+ - GitHub 仓库 · 将抓取 README
47
+ - X 动态 / X 文章 · 将按网页提取
48
+ - 网页 · 将提取正文
49
+
29
50
  ## 长度与截断
30
51
 
31
52
  | 模式 | 上限 |
32
53
  |------|------|
33
54
  | 默认 | 40k 字符 |
34
55
  | 完整抓取 | 200k 字符 |
56
+ | GitHub raw/README | 400KB 字节(与 raw 文件上限一致) |
35
57
 
36
58
  **必须**在 UI 或 frontmatter 标明:截断、约字数、提取方法、清洗后 URL。用户不可见截断 = 产品缺陷。
37
59
 
@@ -41,7 +63,7 @@ Agent host 无 Electron 时停在 L1/L3;扩展 **不强制** Desktop 在线(
41
63
  source_type: external-capture
42
64
  source: https://example.com/article
43
65
  captured_at: 2026-07-13T12:00:00+08:00
44
- fetch_method: readability # readability | heuristic | render | selection | manual
66
+ fetch_method: readability # readability | heuristic | render | github-raw | github-readme | selection | manual
45
67
  fetch_truncated: false
46
68
  word_count: 1200
47
69
  ```
@@ -49,8 +71,12 @@ word_count: 1200
49
71
  ## Desktop UX
50
72
 
51
73
  - QuickCapture:截断 → 完整抓取;SPA → 增强渲染;保存后打开落盘路径
74
+ - URL 类型提示(GitHub README / GitHub 原文 / X / 网页)
52
75
  - Inbox:按 `source_type` 筛选「网页/摘录」
53
- - AI `fetch_url` 支持 `maxLen` + `render`
76
+ - AI `fetch_url` 支持 `maxLen` + `render`;Obsidian `fetch_url` 对 GitHub md 自动走 raw
77
+ - AI `capture_url`:一键抓取并入库(带 source URL + 标题);Desktop 与 Obsidian 对齐(`forceInbox` / `forceAtom`)
78
+ - AI `web_search`:无需 Key 的网络搜索短列表(域名打分 + 同域去重);命中后 `fetch_url` / `capture_url`
79
+ - 工具失败会返回**一条**具体恢复步骤(如 edit 失败 → 先 read_file 刷 contentHash)
54
80
 
55
81
  ## 不要做的事
56
82
 
@@ -58,3 +84,4 @@ word_count: 1200
58
84
  - 不静默丢弃后半篇
59
85
  - 不把抓取失败写成「已成功 capture」
60
86
  - 不用常驻第二 BrowserWindow 占 Dock(仅 ephemeral 隐藏窗)
87
+ - 不对 GitHub md 再走 HTML scrape(raw 更干净)
@@ -82,10 +82,10 @@ memory:
82
82
 
83
83
  | 动作 | 纪律 |
84
84
  |------|------|
85
- | organize | 整理/总结默认落盘专题根笔记(按 writeback);不只回话;可建议 memory 候选,不自动写 topic.md |
85
+ | organize | 整理/总结默认落盘专题根笔记(按 writeback);不只回话;L1 建议 memory/todo/专题候选,不自动写 topic.md |
86
86
  | write | 有 `topic.md` 先读再写;无则不强制创建 |
87
- | memory | 仅用户明确沉淀;禁止 capture 自动改 memory/topics/ |
88
- | capture | 只写材料笔记;不改 topic.md、不自动链式 |
87
+ | memory | 写入仅用户明确沉淀(L2);L1 默认准备候选;禁止 capture 自动改 memory/topics/ |
88
+ | capture | 只写材料笔记;不改 topic.md、不自动链式;行动语 → `memory/todo.md`(显式可写,隐含建议) |
89
89
  | loop | 材料多而首页空时只**建议** organize/memory,不代写记忆/不建 INDEX |
90
90
 
91
91
  ## source_type
@@ -9,6 +9,11 @@
9
9
  |--------|--------------|------|
10
10
  | 总结要点 | organize vs memory | 默认 → `topmind-organize`。仅「更新我的情况 / 加到专题记忆 / 沉淀到记忆」→ memory |
11
11
  | 沉淀 | capture vs memory | 默认 → `topmind-capture`。仅「沉淀成稳定结论 / 更新我的情况」→ memory |
12
+ | **记一下 / Note it** | capture 主入口 | **完整捕获**(笔记 / 链接 / 附件)→ `topmind-capture` |
13
+ | **记下 / Log it** | capture(追加) | **写入当前周期本**(动态追加,同文件续写)→ `topmind-capture`,默认平铺到当前周期;不弹分类访谈 |
14
+ | 记一下要做 X / 别忘了 X | capture vs todo | → `topmind-capture`(材料落盘)+ 待办写入/建议 `memory/todo.md`(见 `auto-suggest.md`) |
15
+ | 待办 / 有什么要做的 | router 直达 | 读 `memory/todo.md` 活跃项;不新建概念、不进 organize |
16
+ | X 做完了 / 这条不用了 | todo vs organize | 清单项 → 勾掉/归档 `memory/todo.md`;整周事项状态 → organize「整理本周」 |
12
17
  | 体检 / 检查 | maintain vs loop | 「快速体检 / 体检 / 检查 / doctor」→ maintain。「整体体检 / 全面检查 / 巡检 / audit / review」→ loop |
13
18
  | 审计 / audit | maintain vs loop | 默认 → loop。maintain 用 doctor / 诊断 / 快速体检 |
14
19
  | 整理 | organize | 「整理 inbox」→ organize + `plan-inbox-routing`。其它 → organize |
@@ -24,9 +29,10 @@
24
29
 
25
30
  | 动作 | 默认写什么 | 禁止 |
26
31
  |------|------------|------|
27
- | capture | 材料笔记 | 改 `topic.md`;自动 organize/memory |
28
- | organize | 专题根综合/结构笔记(留痕) | 自动写稳定记忆;建 `INDEX.md` / entities 树 |
32
+ | capture | 材料笔记;显式行动语可写/建议 `memory/todo.md` | 改 `topic.md`;自动 organize;静默写 memory/profile 或 memory/topics |
33
+ | organize | 专题根综合/结构笔记(留痕);L1 待办/记忆/专题建议 | 自动写稳定记忆;建 `INDEX.md` / entities 树 |
29
34
  | memory | 仅 confirmed stable → `memory/profile.md` 或 `memory/periodic/`(用户明说才写 `memory/topics/`) | 因 capture/整理顺手刷写;把 `topic.md` 当记忆默认落点 |
35
+ | todo(卫星) | `memory/todo.md` checklist | 新建顶层 `todo/`;当第六用户概念 |
30
36
  | write | 稿件 / delivery | 为「补结构」空建 `topic.md` |
31
37
  | loop | 状态 / 可逆修复 | 代写记忆;建硬索引 |
32
38
  | ledger | `{memory.dir}/ledgers/` 追加一行 | 改 `topic.md`;发明 ClassFund/Giggs/Mom;当第六用户概念 |
package/skills.md CHANGED
@@ -32,6 +32,7 @@
32
32
  2. **渐进式披露 (Progressive Disclosure)**:Discovery (`name+description`) → Activation (`SKILL.md`) → Deep Procedures (`shared/` / `references/`)。
33
33
  3. **文件系统即真源**:不引入独立的数据库或 Agent state 依赖。
34
34
  4. **遵从 6 条核心规约**:见 [`shared/project-model-brief.md`](./shared/project-model-brief.md)。
35
+ 5. **自动建议阶梯**:L0 零提问落盘 · L1 默认准备建议(分类/待办/记忆/专题)· L2 确认后写。见 [`shared/auto-suggest.md`](./shared/auto-suggest.md)。待办是 `memory/todo.md` 卫星,不是第六概念。
35
36
 
36
37
  👉 **详细架构、Frontmatter Schema 与安装方法请参阅**:
37
38
  - [Skills README](./README.md)(简体中文) · [English](./README.en.md)