@topmindspace/topmind-skills 4.15.3 → 4.15.5
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 +17 -0
- package/INSTALL.md +2 -2
- package/README.en.md +1 -1
- package/README.md +1 -1
- package/README.zh-CN.md +1 -1
- package/bin/install-skills.mjs +81 -11
- package/evals/evals.json +1 -1
- package/package.json +1 -1
- package/shared/long-url-capture.md +2 -0
- package/shared/trigger-disambiguation.md +1 -1
- package/skills.md +2 -2
- package/topmind/SKILL.md +4 -8
- package/topmind-capture/SKILL.md +10 -25
- package/topmind-ledger/SKILL.md +2 -2
- package/topmind-loop/SKILL.md +2 -2
- package/topmind-maintain/SKILL.md +2 -2
- package/topmind-memory/SKILL.md +2 -2
- package/topmind-organize/SKILL.md +2 -2
- package/topmind-pack.json +2 -2
- package/topmind-weread/SKILL.md +2 -2
- package/topmind-write/SKILL.md +2 -2
- package/topmind-x/SKILL.md +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,23 @@ 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.5 — 2026-10-16
|
|
8
|
+
|
|
9
|
+
### 安装器
|
|
10
|
+
|
|
11
|
+
- 默认升级:包里版本更新(或已装版本缺失)就直接覆盖,不备份,打印 `Upgraded <skill> <旧> -> <新>`;同版本跳过,打印 `Already up to date`(`--force` 重装);已装版本比包里新时拒绝降级,需 `--force`。
|
|
12
|
+
- symlink 模式:之前装过的同名 skill 普通目录(SKILL.md name 一致)直接换成软链;无关目录才需要 `--force`,并给一行提示。
|
|
13
|
+
- 新增 `tests/installer-upgrade.test.mjs`;README 中英文、INSTALL.md、帮助文本同步。
|
|
14
|
+
|
|
15
|
+
## 4.15.4 — 2026-10-16
|
|
16
|
+
|
|
17
|
+
### 优化
|
|
18
|
+
|
|
19
|
+
- 捕获说明不再写「待办一律 L1」。建议阶梯只留 `shared/auto-suggest.md`:材料 L0 落盘,显式行动语待办在 auto 下同轮写入,其余建议点头再落。
|
|
20
|
+
- `topmind-capture` 不再复制一套抓取 L1/L2/L3 表。`shared/long-url-capture.md` 标明那些是抓取档,不是建议阶梯。
|
|
21
|
+
- `skills.md` 的包内计数改回 10。公众号 `topmind-wechat-post` 仍在外部写作包,退役的 `topmind-wechat` 不进包。
|
|
22
|
+
- Router 的错误处理改指向 `shared/writeback-receipt.md`,不再留第二份清单。
|
|
23
|
+
|
|
7
24
|
## 4.15.3 — 2026-10-10
|
|
8
25
|
|
|
9
26
|
### 优化
|
package/INSTALL.md
CHANGED
|
@@ -92,7 +92,7 @@ npx @topmindspace/topmind-skills add topmindspace/topmind-skills -p
|
|
|
92
92
|
# 单目录(旧 --dest 仍可用)
|
|
93
93
|
npx @topmindspace/topmind-skills add topmindspace/topmind-skills --dest ~/.claude/skills
|
|
94
94
|
|
|
95
|
-
# 升级(读 receipt
|
|
95
|
+
# 升级(读 receipt):包里更新 → 直接覆盖,不备份,打印 Upgraded <skill> <旧> -> <新>;同版本 → Already up to date;已装更新 → 拒绝降级,需 --force
|
|
96
96
|
npx @topmindspace/topmind-skills update -g
|
|
97
97
|
|
|
98
98
|
# 查看
|
|
@@ -162,7 +162,7 @@ npx @topmindspace/topmind-skills doctor
|
|
|
162
162
|
| `--skill <id>` | 只装列出的 skill id |
|
|
163
163
|
| `--locale en-US` | locale overlay(当前未提供 overlay,回退中文正文) |
|
|
164
164
|
| `-n` / `--dry-run` | 只打印计划 |
|
|
165
|
-
| `--force` | symlink
|
|
165
|
+
| `--force` | 允许降级(已装版本比包里新)、同版本重装、symlink 模式下替换无关目录。之前装过的同名 skill 普通目录(SKILL.md name 一致)在 symlink 模式下会直接换成软链,不需要 --force |
|
|
166
166
|
|
|
167
167
|
### Agents
|
|
168
168
|
|
package/README.en.md
CHANGED
|
@@ -9,7 +9,7 @@ Portable AI skill pack: the same content contract on Claude Code / Codex / OpenC
|
|
|
9
9
|
npx @topmindspace/topmind-skills add topmindspace/topmind-skills -g
|
|
10
10
|
# subset of agents
|
|
11
11
|
npx @topmindspace/topmind-skills add topmindspace/topmind-skills -g -a claude-code -a mimocode
|
|
12
|
-
# upgrade
|
|
12
|
+
# upgrade (default: a newer packaged skill overwrites in place, no backup, "Upgraded <skill> <old> -> <new>"; same version is skipped "Already up to date"; a newer installed version is refused unless --force)
|
|
13
13
|
npx @topmindspace/topmind-skills update -g
|
|
14
14
|
|
|
15
15
|
# 2) Community CLI (fast try; omits shared/ — see INSTALL.md)
|
package/README.md
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
npx @topmindspace/topmind-skills add topmindspace/topmind-skills -g
|
|
10
10
|
# 只装给部分智能体
|
|
11
11
|
npx @topmindspace/topmind-skills add topmindspace/topmind-skills -g -a claude-code -a mimocode
|
|
12
|
-
#
|
|
12
|
+
# 升级(默认:包里更新就直接覆盖,不备份,打印 Upgraded <skill> <旧> -> <新>;同版本跳过 Already up to date;已装更新拒绝降级,需 --force)
|
|
13
13
|
npx @topmindspace/topmind-skills update -g
|
|
14
14
|
|
|
15
15
|
# 2) 社区 CLI(快速试用;不含 shared/ — 见 INSTALL.md)
|
package/README.zh-CN.md
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
npx @topmindspace/topmind-skills add topmindspace/topmind-skills -g
|
|
10
10
|
# 只装给部分智能体
|
|
11
11
|
npx @topmindspace/topmind-skills add topmindspace/topmind-skills -g -a claude-code -a mimocode
|
|
12
|
-
#
|
|
12
|
+
# 升级(默认:包里更新就直接覆盖,不备份,打印 Upgraded <skill> <旧> -> <新>;同版本跳过 Already up to date;已装更新拒绝降级,需 --force)
|
|
13
13
|
npx @topmindspace/topmind-skills update -g
|
|
14
14
|
|
|
15
15
|
# 2) 社区 CLI(快速试用;不含 shared/ — 见 INSTALL.md)
|
package/bin/install-skills.mjs
CHANGED
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
* --skill <id> Only install these skill ids (repeatable / comma-separated)
|
|
33
33
|
* --global / -g Alias: --host claude-code (user-level ~/.claude/skills)
|
|
34
34
|
* --dry-run Print plan only
|
|
35
|
-
* --force
|
|
35
|
+
* --force Downgrade / reinstall same version / replace unrelated folder in symlink mode
|
|
36
36
|
*
|
|
37
37
|
* Examples:
|
|
38
38
|
* # Like `npx skills add topmindspace/topmind-skills -g`
|
|
@@ -250,7 +250,12 @@ Options:
|
|
|
250
250
|
--skill <id> Only install these skill ids (repeatable / comma-separated)
|
|
251
251
|
--locale <code> Install locale overlay (e.g. en-US); falls back to topmind_LOCALE env
|
|
252
252
|
-n, --dry-run Print plan only
|
|
253
|
-
--force
|
|
253
|
+
--force Allow downgrading a newer installed skill, reinstall an up-to-date one,
|
|
254
|
+
or replace an unrelated folder in symlink mode
|
|
255
|
+
Upgrade behaviour: a newer packaged skill overwrites the installed copy in place
|
|
256
|
+
(no backup, "Upgraded <skill> <old> -> <new>"); the same version is skipped
|
|
257
|
+
("Already up to date"); a newer installed version is refused unless --force.
|
|
258
|
+
In symlink mode a previous plain-folder install of the same skill is replaced.
|
|
254
259
|
|
|
255
260
|
Examples:
|
|
256
261
|
node bin/install-skills.mjs add topmindspace/topmind-skills -g
|
|
@@ -701,12 +706,75 @@ async function applyLocaleOverlay(overlayDir, targetDir) {
|
|
|
701
706
|
}
|
|
702
707
|
}
|
|
703
708
|
|
|
704
|
-
|
|
709
|
+
/** Read name + version from <dir>/SKILL.md frontmatter (metadata.version or top-level version). */
|
|
710
|
+
async function readSkillMeta(dir) {
|
|
711
|
+
try {
|
|
712
|
+
const t = await fs.readFile(path.join(dir, "SKILL.md"), "utf8");
|
|
713
|
+
const fm = (t.match(/^---\r?\n([\s\S]*?)\r?\n---/) || [])[1] || "";
|
|
714
|
+
const name = ((fm.match(/^name:\s*(.+?)\s*$/m) || [])[1] || "").replace(/^["']|["']$/g, "");
|
|
715
|
+
const v =
|
|
716
|
+
fm.match(/^metadata:\s*\n(?:[ \t]+.*\n)*?[ \t]+version:\s*(.+?)\s*$/m) || fm.match(/^version:\s*(.+?)\s*$/m);
|
|
717
|
+
return { name, version: v ? v[1].replace(/^["']|["']$/g, "") : "" };
|
|
718
|
+
} catch {
|
|
719
|
+
return null;
|
|
720
|
+
}
|
|
721
|
+
}
|
|
722
|
+
|
|
723
|
+
function parseVer(v) {
|
|
724
|
+
const m = String(v || "").trim().replace(/^v/, "").match(/^(\d+)\.(\d+)\.(\d+)/);
|
|
725
|
+
return m ? m.slice(1, 4).map(Number) : null;
|
|
726
|
+
}
|
|
727
|
+
|
|
728
|
+
/** a vs b: 1 / 0 / -1. Missing or unparseable b counts as oldest (upgrade). */
|
|
729
|
+
function compareVersions(a, b) {
|
|
730
|
+
const pa = parseVer(a);
|
|
731
|
+
const pb = parseVer(b);
|
|
732
|
+
if (!pb) return 1;
|
|
733
|
+
if (!pa) return -1;
|
|
734
|
+
for (let i = 0; i < 3; i++) if (pa[i] !== pb[i]) return pa[i] > pb[i] ? 1 : -1;
|
|
735
|
+
return 0;
|
|
736
|
+
}
|
|
737
|
+
|
|
738
|
+
/** Existing non-symlink dst is a previous install of this skill (same SKILL.md name) or an installer-owned file. */
|
|
739
|
+
async function isPreviousInstall(src, dst) {
|
|
740
|
+
const st = await fs.lstat(dst).catch(() => null);
|
|
741
|
+
if (!st) return false;
|
|
742
|
+
const sst = await fs.lstat(src).catch(() => null);
|
|
743
|
+
if (sst && sst.isFile() && st.isFile()) return true;
|
|
744
|
+
if (!st.isDirectory()) return false;
|
|
745
|
+
const a = await readSkillMeta(src);
|
|
746
|
+
const b = await readSkillMeta(dst);
|
|
747
|
+
return !!(a && b && a.name && a.name === b.name);
|
|
748
|
+
}
|
|
749
|
+
|
|
750
|
+
async function installCopy(skillsRoot, dest, entries, locale, { force = false } = {}) {
|
|
705
751
|
await fs.mkdir(dest, { recursive: true });
|
|
752
|
+
// Pre-pass: never silently downgrade a skill that is newer than the packaged one.
|
|
753
|
+
const plan = new Map();
|
|
754
|
+
const newer = [];
|
|
755
|
+
for (const name of entries) {
|
|
756
|
+
const src = path.join(skillsRoot, name);
|
|
757
|
+
const dst = path.join(dest, name);
|
|
758
|
+
const sm = await readSkillMeta(src);
|
|
759
|
+
if (!sm) continue;
|
|
760
|
+
const dm = (await fs.lstat(dst).catch(() => null))?.isSymbolicLink() ? null : await readSkillMeta(dst);
|
|
761
|
+
if (!dm) continue;
|
|
762
|
+
const cmp = compareVersions(sm.version, dm.version);
|
|
763
|
+
plan.set(name, { cmp, old: dm.version || "unknown", now: sm.version || "unknown" });
|
|
764
|
+
if (cmp < 0) newer.push(`${name} ${dm.version} > ${sm.version}`);
|
|
765
|
+
}
|
|
766
|
+
if (newer.length && !force) {
|
|
767
|
+
fail(`installed version is newer than packaged (${newer.join(", ")}); not downgrading — pass --force to downgrade`);
|
|
768
|
+
}
|
|
706
769
|
for (const name of entries) {
|
|
707
770
|
const src = path.join(skillsRoot, name);
|
|
708
771
|
const dst = path.join(dest, name);
|
|
709
772
|
if (!(await pathExists(src))) continue;
|
|
773
|
+
const pv = plan.get(name);
|
|
774
|
+
if (pv && pv.cmp === 0 && !force) {
|
|
775
|
+
log(` = Already up to date: ${name} ${pv.now}`);
|
|
776
|
+
continue;
|
|
777
|
+
}
|
|
710
778
|
const st = await fs.lstat(src);
|
|
711
779
|
if (await pathExists(dst)) await fs.rm(dst, { recursive: true, force: true });
|
|
712
780
|
if (st.isDirectory()) {
|
|
@@ -727,7 +795,9 @@ async function installCopy(skillsRoot, dest, entries, locale) {
|
|
|
727
795
|
} else {
|
|
728
796
|
await fs.copyFile(src, dst);
|
|
729
797
|
}
|
|
730
|
-
log(`
|
|
798
|
+
if (pv && pv.cmp > 0) log(` ↑ Upgraded ${name} ${pv.old} -> ${pv.now}`);
|
|
799
|
+
else if (pv) log(` + Reinstalled ${name} ${pv.now} (--force)`);
|
|
800
|
+
else log(` + ${name}`);
|
|
731
801
|
}
|
|
732
802
|
}
|
|
733
803
|
|
|
@@ -739,8 +809,8 @@ async function installSymlink(skillsRoot, dest, entries, { force }) {
|
|
|
739
809
|
if (!(await pathExists(src))) continue;
|
|
740
810
|
if (await pathExists(dst)) {
|
|
741
811
|
const st = await fs.lstat(dst);
|
|
742
|
-
if (st.isSymbolicLink() || force) await fs.rm(dst, { recursive: true, force: true });
|
|
743
|
-
else fail(`${dst}
|
|
812
|
+
if (st.isSymbolicLink() || force || (await isPreviousInstall(src, dst))) await fs.rm(dst, { recursive: true, force: true });
|
|
813
|
+
else fail(`${dst} is an unrelated folder (no matching SKILL.md name) — pass --force to replace it`);
|
|
744
814
|
}
|
|
745
815
|
await fs.symlink(src, dst, "junction");
|
|
746
816
|
log(` ~ ${name} → ${src}`);
|
|
@@ -794,9 +864,9 @@ async function linkPackEntries(canonicalRoot, agentRoot, entryNames, { force })
|
|
|
794
864
|
if ((await pathExists(dst)) || (await isBrokenSymlink(dst))) {
|
|
795
865
|
const st = await fs.lstat(dst).catch(() => null);
|
|
796
866
|
if (st && st.isSymbolicLink()) await fs.rm(dst, { recursive: true, force: true });
|
|
797
|
-
else if (force) await fs.rm(dst, { recursive: true, force: true });
|
|
867
|
+
else if (force || (await isPreviousInstall(src, dst))) await fs.rm(dst, { recursive: true, force: true });
|
|
798
868
|
else {
|
|
799
|
-
log(` ! ${dst}
|
|
869
|
+
log(` ! ${dst} is an unrelated folder (no matching SKILL.md name) — skipped; pass --force to replace it`);
|
|
800
870
|
continue;
|
|
801
871
|
}
|
|
802
872
|
}
|
|
@@ -845,7 +915,7 @@ async function installViaMatrix(skillsRoot, plan, opts) {
|
|
|
845
915
|
}
|
|
846
916
|
|
|
847
917
|
// 1) Full pack body → canonical
|
|
848
|
-
await installCopy(skillsRoot, canonical, plan.entries, opts.locale);
|
|
918
|
+
await installCopy(skillsRoot, canonical, plan.entries, opts.locale, opts);
|
|
849
919
|
|
|
850
920
|
// 2) Private agent dirs: symlink entries (default) or copy
|
|
851
921
|
for (const t of targets) {
|
|
@@ -854,7 +924,7 @@ async function installViaMatrix(skillsRoot, plan, opts) {
|
|
|
854
924
|
continue;
|
|
855
925
|
}
|
|
856
926
|
if (linkMode === "copy") {
|
|
857
|
-
await installCopy(skillsRoot, t.root, plan.entries, opts.locale);
|
|
927
|
+
await installCopy(skillsRoot, t.root, plan.entries, opts.locale, opts);
|
|
858
928
|
} else {
|
|
859
929
|
await linkPackEntries(canonical, t.root, plan.entries, opts);
|
|
860
930
|
}
|
|
@@ -1014,7 +1084,7 @@ async function cmdAdd(opts, sourceOverride) {
|
|
|
1014
1084
|
}
|
|
1015
1085
|
await installSymlink(skillsRoot, dest, plan.entries, opts);
|
|
1016
1086
|
} else {
|
|
1017
|
-
await installCopy(skillsRoot, dest, plan.entries, opts.locale);
|
|
1087
|
+
await installCopy(skillsRoot, dest, plan.entries, opts.locale, opts);
|
|
1018
1088
|
}
|
|
1019
1089
|
|
|
1020
1090
|
await writeInstallReceipt(dest, {
|
package/evals/evals.json
CHANGED
package/package.json
CHANGED
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
| X 长文 / 推特长文 | topmind-x-article(外部可选)vs write vs x | 写 X Articles 长文与一键复制 → `topmind-x-article`;未安装 → `topmind-write`。短帖不走 x-article |
|
|
37
37
|
| 研究报告 / 调研报告 | organize vs topmind-research vs topmind-presentation | 要找证据、核事实 → `topmind-research`;对工作区已有材料做分析 → `topmind-organize`;要做成可翻页 HTML / PPTX → `topmind-presentation`。「做一份 X 的研究报告」先 research,回执建议 presentation,不自动链式;对应技能未安装 → organize / write |
|
|
38
38
|
| 复盘 / 汇报材料 | loop vs organize vs topmind-presentation | 工作区巡检 → loop;本周动态 → organize「整理本周」;要出汇报幻灯片 → `topmind-presentation`(未安装 → `topmind-write`) |
|
|
39
|
-
| 交接 / 导出记忆 / 记忆同步 | topmind-handoff(外部可选)vs memory vs write |
|
|
39
|
+
| 交接 / Handoff / 做个交接 / 工作交接 / 导出记忆 / 记忆同步 | topmind-handoff(外部可选)vs memory vs write | 只说做个handoff、做个交接、工作交接、Handoff、交接、记忆同步 → `topmind-handoff` 的一轮(先整合再写回)。点名导出或接收仍只做那一件。更新本工作区「我的情况」→ `topmind-memory`;导出稿件 → `topmind-write`。handoff 未安装 → 回执说明,不自动打包 |
|
|
40
40
|
| 配图 / 封面 / 长图 / 海报 | topmind-cover vs topmind-poster vs topmind-presentation(均外部可选) | 文章头图、封面、单张配图 → `topmind-cover`;长图、信息海报、多段竖版 → `topmind-poster`;可翻页演示 → `topmind-presentation`;均未安装 → 回执说明,不硬生成 |
|
|
41
41
|
|
|
42
42
|
**原则**:动作动词定 action;修饰词定 confidence。无法判定 → capture(先存后整)。
|
package/skills.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# topmind Skills Package Index (包索引)
|
|
2
2
|
|
|
3
3
|
> [!NOTE]
|
|
4
|
-
> **每日唯一入口**:`topmind` (router)
|
|
4
|
+
> **每日唯一入口**:`topmind` (router)。包内还有 6 个 action、2 个 optional connector、1 个 optional 记账(连 router 共 10 个目录)。公众号 `topmind-wechat-post` 在外部写作包,不计入本包。
|
|
5
5
|
> **通用与可移植**:兼容 Claude Code / OpenCode / Codex / Hermes 等 Agent Host。
|
|
6
6
|
> **版本真源**:`topmind-pack.json`(可执行 `npm run versions` 查看完整版本号)。
|
|
7
7
|
> 详见权威说明:[Skills README](./README.md)(简体中文) · [English](./README.en.md) · [安装与部署指南 (INSTALL.md)](./INSTALL.md)。
|
|
@@ -32,7 +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.
|
|
35
|
+
5. **自动建议阶梯**:真源 [`shared/auto-suggest.md`](./shared/auto-suggest.md)(材料 L0 落盘;显式行动语待办在 auto 下同轮写入;其余建议点头再落;L2 才动记忆/删档/建专题)。待办是 `memory/todo.md` 卫星,不是第六概念。
|
|
36
36
|
|
|
37
37
|
👉 **详细架构、Frontmatter Schema 与安装方法请参阅**:
|
|
38
38
|
- [Skills README](./README.md)(简体中文) · [English](./README.en.md)
|
package/topmind/SKILL.md
CHANGED
|
@@ -9,14 +9,14 @@ compatibility: >-
|
|
|
9
9
|
topmind workspace with {NN-Name}/ categories. Host file tools primary; UTR optional.
|
|
10
10
|
Install with shared/ sibling for progressive disclosure links.
|
|
11
11
|
metadata:
|
|
12
|
-
version: "4.15.
|
|
12
|
+
version: "4.15.5"
|
|
13
13
|
action_category: "router"
|
|
14
14
|
entrypoint: "true"
|
|
15
15
|
triggers: "topmind, 知识库, 工作区, 待办, 有什么要做的, 要做的事, todo, todo list"
|
|
16
16
|
tags: "router, entrypoint, topmind"
|
|
17
17
|
author: "TopMindSpace"
|
|
18
18
|
homepage: "https://github.com/topmindspace/topmind-skills"
|
|
19
|
-
updated: "2026-10-
|
|
19
|
+
updated: "2026-10-16"
|
|
20
20
|
degradation: "../shared/capability-degradation.md"
|
|
21
21
|
---
|
|
22
22
|
|
|
@@ -100,7 +100,7 @@ Which category? Which topic (or loose note)? Which object? Which action? Which s
|
|
|
100
100
|
- 高信心类别、无专题 → `{大类}/*.md`,建议是否升级专题
|
|
101
101
|
- 低信心类别 → **role:buffer**(常为 `00-Inbox/`)+ L1 分类备选(最多 3)
|
|
102
102
|
- 跳过 `hidden` 类别
|
|
103
|
-
- 行动语 / 稳定个人信息 →
|
|
103
|
+
- 行动语 / 稳定个人信息 → 不打断落盘;写入或建议只按 [`../shared/auto-suggest.md`](../shared/auto-suggest.md)
|
|
104
104
|
|
|
105
105
|
### Minimum Context
|
|
106
106
|
|
|
@@ -149,11 +149,7 @@ UTR 可选(MCP primary+danger 共 29;注册表 38 = 8 域 / 38 命令,见
|
|
|
149
149
|
|
|
150
150
|
## Error Handling
|
|
151
151
|
|
|
152
|
-
|
|
153
|
-
- 磁盘满 / 权限不足 → 报错 + 已备回复制位置;不静默丢数据
|
|
154
|
-
- 路径过长 / 非法字符 → 提示用户缩短专题名
|
|
155
|
-
- protection:locked → 内容编辑允许(任务级首写快照);可恢复删/归档允许;永久删 locked 仅用户
|
|
156
|
-
- 工作区不存在 topmind.yaml → 按默认契约解释 + 回执标注「默认契约」
|
|
152
|
+
写入失败不得静默丢数据。优先级与 locked 语义见 [`../shared/writeback-receipt.md`](../shared/writeback-receipt.md)。工作区没有 `topmind.yaml` 时按默认契约解释,回执标注「默认契约」。
|
|
157
153
|
|
|
158
154
|
|
|
159
155
|
|
package/topmind-capture/SKILL.md
CHANGED
|
@@ -8,21 +8,21 @@ description: >-
|
|
|
8
8
|
license: MIT
|
|
9
9
|
compatibility: topmind workspace. Host file tools or optional UTR capture-note.
|
|
10
10
|
metadata:
|
|
11
|
-
version: "4.15.
|
|
11
|
+
version: "4.15.5"
|
|
12
12
|
action_category: "capture"
|
|
13
13
|
entrypoint: "false"
|
|
14
14
|
triggers: "收集, 收进, 保存, 剪藏, 记一下, 临时存放, 随手记, 想法, 灵感, 暂存沉淀, 记录, 备忘, 存一下, 暂存, 笔记, 抄下来, 摘录, 记一下要做, 别忘了, 要做, capture, note, save, Note it"
|
|
15
15
|
tags: "capture, inbox, note, material"
|
|
16
16
|
author: "TopMindSpace"
|
|
17
17
|
homepage: "https://github.com/topmindspace/topmind-skills"
|
|
18
|
-
updated: "2026-10-
|
|
18
|
+
updated: "2026-10-16"
|
|
19
19
|
degradation: "../shared/capability-degradation.md"
|
|
20
20
|
---
|
|
21
21
|
|
|
22
22
|
# topmind Capture
|
|
23
23
|
|
|
24
24
|
先存材料(用户动词:**记一下**)。不负责重塑、交付、诊断或外部连接。
|
|
25
|
-
**想记就记 /
|
|
25
|
+
**想记就记 / 随用随记**:材料默认零提问落盘。分类、待办、记忆的写入或建议只按 [`../shared/auto-suggest.md`](../shared/auto-suggest.md),本文件不另写一套阶梯,也不弹多选。
|
|
26
26
|
|
|
27
27
|
## Activation checklist
|
|
28
28
|
|
|
@@ -31,7 +31,7 @@ metadata:
|
|
|
31
31
|
3. 按内容性质选 **真实目录名**(role;禁止写死编号)
|
|
32
32
|
4. **日常/动态** → 追加到当前周期本;专题明确 → 专题根;不清 → Inbox
|
|
33
33
|
5. 写 frontmatter;白话回执(如「已记到每周一本」);**不**自动 organize/write
|
|
34
|
-
6.
|
|
34
|
+
6. **同轮建议阶梯**:行动语 / 稳定个人信息 / 低信心分类只按 [`../shared/auto-suggest.md`](../shared/auto-suggest.md)(不在这里复述)
|
|
35
35
|
|
|
36
36
|
## When NOT to use
|
|
37
37
|
|
|
@@ -71,18 +71,11 @@ low cat → role:buffer(Inbox)
|
|
|
71
71
|
|
|
72
72
|
**低信心时不要只丢 Inbox 就完事**:仍落 buffer,回执附分类备选(最多 3 个,真实目录名),如「更像 ① 20-研究 ② 10-动态,说一声即可移」。详见 [`../shared/auto-suggest.md`](../shared/auto-suggest.md)。
|
|
73
73
|
|
|
74
|
-
###
|
|
74
|
+
### 待办与记忆(不打断捕获)
|
|
75
75
|
|
|
76
|
-
|
|
76
|
+
捕获正文只写材料。待办、记忆、分类备选的 L0/L1/L2 只以 [`../shared/auto-suggest.md`](../shared/auto-suggest.md) 为准,**不**为分类/待办向用户提问。
|
|
77
77
|
|
|
78
|
-
|
|
79
|
-
|------|----|----|
|
|
80
|
-
| 显式行动语(要做 / 记得 / 别忘 / 待办 / 截止 / todo) | 材料照常落盘 | 同轮提取到 `memory/todo.md`(auto 可直接写+回执;confirm 则建议) |
|
|
81
|
-
| 隐含行动语(「周三截止」「下周要交」) | 材料照常落盘 | 建议提取 1–N 条待办,点头再写 |
|
|
82
|
-
| 稳定个人信息(偏好 / 目标 / 进行中) | 材料照常落盘 | 建议进「我的情况」(写入仍须确认) |
|
|
83
|
-
| 低信心类别 | Inbox | 分类备选 |
|
|
84
|
-
|
|
85
|
-
清单是语义平面卫星(`memory/todo.md`),**不是**新概念、**不**新建顶层 `todo/`。去重按文本;拒绝过的条目不要反复再提。
|
|
78
|
+
清单是语义平面卫星(`memory/todo.md`),**不是**新概念、**不**新建顶层 `todo/`。去重按文本;拒绝过的条目不要反复再提。**禁止**静默写 `memory/profile.md` 或 `memory/topics/`。
|
|
86
79
|
|
|
87
80
|
UTR:`capture-note`(自动识别周期本)。Desktop:`ingestInbox` dest.mode=`stream`(默认)。
|
|
88
81
|
|
|
@@ -101,17 +94,9 @@ route_reason: …
|
|
|
101
94
|
status: todo
|
|
102
95
|
```
|
|
103
96
|
|
|
104
|
-
长 URL / 网页:[`../shared/long-url-capture.md`](../shared/long-url-capture.md)
|
|
105
|
-
|
|
106
|
-
| 层 | 谁 | 能力 |
|
|
107
|
-
|----|----|------|
|
|
108
|
-
| L1 | Desktop `fetchUrl` / host fetch | Mozilla Readability + 启发式 |
|
|
109
|
-
| L1-GH | 同上 · GitHub md/README | raw 直取 + 相对图改写(`lib/github-md.mjs`) |
|
|
110
|
-
| L2 | Desktop 增强渲染 | SPA 空壳(ephemeral Chromium) |
|
|
111
|
-
| L3 | 手动粘贴 | 永远可用 |
|
|
112
|
-
| L3+ | 浏览器扩展 Clip Bridge | 活 DOM Readability → Desktop 清洗落盘 |
|
|
97
|
+
长 URL / 网页:[`../shared/long-url-capture.md`](../shared/long-url-capture.md)。那里的 L1/L2/L3 是**抓取档**,不是建议阶梯。
|
|
113
98
|
|
|
114
|
-
Agent host 能 fetch 则提取正文,否则保留 URL +
|
|
99
|
+
Agent host 能 fetch 则提取正文,否则保留 URL + 摘录。GitHub 仓库 / Markdown 文件优先走 raw/README,不 HTML scrape。
|
|
115
100
|
|
|
116
101
|
### 本地文档 / Office / 邮件 / 统一捕获
|
|
117
102
|
|
|
@@ -132,7 +117,7 @@ Agent host 能 fetch 则提取正文,否则保留 URL + 摘录;推荐日常
|
|
|
132
117
|
3. 保留 provenance;长文标注截断
|
|
133
118
|
4. 按保存设置写入(见 [`../shared/writeback-receipt.md`](../shared/writeback-receipt.md))
|
|
134
119
|
5. 回执:路径、目标、信心、下一步(不自动触发其他 skill)
|
|
135
|
-
6.
|
|
120
|
+
6. 待办 / 记忆 / 分类备选:只按 [`../shared/auto-suggest.md`](../shared/auto-suggest.md),不在回执外再写一套阶梯
|
|
136
121
|
|
|
137
122
|
**边界**:只写材料笔记。**禁止**改 `topic.md`、禁止自动 organize、禁止静默写 memory/profile 或 memory/topics。存完可在回执**建议**「需要时整理 / 记入待办 / 更新我的情况」——仅用户面,不自动链式。
|
|
138
123
|
|
package/topmind-ledger/SKILL.md
CHANGED
|
@@ -6,14 +6,14 @@ description: >-
|
|
|
6
6
|
license: MIT
|
|
7
7
|
compatibility: Host file tools or Kernel writeback. Desktop optional mini-app. Feishu/lark-cli is not required.
|
|
8
8
|
metadata:
|
|
9
|
-
version: "4.15.
|
|
9
|
+
version: "4.15.5"
|
|
10
10
|
action_category: "memory"
|
|
11
11
|
entrypoint: "false"
|
|
12
12
|
triggers: "记账, 记一笔, 花了, 存入, 查看账单, 账户余额, bookkeeping, log expense"
|
|
13
13
|
tags: "ledger, bookkeeping, memory, optional"
|
|
14
14
|
author: "TopMindSpace"
|
|
15
15
|
homepage: "https://github.com/topmindspace/topmind-skills"
|
|
16
|
-
updated: "2026-10-
|
|
16
|
+
updated: "2026-10-16"
|
|
17
17
|
degradation: "../shared/capability-degradation.md"
|
|
18
18
|
---
|
|
19
19
|
|
package/topmind-loop/SKILL.md
CHANGED
|
@@ -6,14 +6,14 @@ description: >-
|
|
|
6
6
|
license: MIT
|
|
7
7
|
compatibility: topmind workspace. Progress under .topmind/loop/*. Host LLM runs the walk; UTR optional.
|
|
8
8
|
metadata:
|
|
9
|
-
version: "4.15.
|
|
9
|
+
version: "4.15.5"
|
|
10
10
|
action_category: "loop"
|
|
11
11
|
entrypoint: "false"
|
|
12
12
|
triggers: "跑一遍 loop, loop 一下, 整体体检, 工作区复盘, 把工作区跑一遍, 巡检, 继续 loop, 从断点继续, 全面检查, 复盘, review, audit, walk"
|
|
13
13
|
tags: "loop, audit, walk, resumable, cyclic"
|
|
14
14
|
author: "TopMindSpace"
|
|
15
15
|
homepage: "https://github.com/topmindspace/topmind-skills"
|
|
16
|
-
updated: "2026-10-
|
|
16
|
+
updated: "2026-10-16"
|
|
17
17
|
degradation: "../shared/capability-degradation.md"
|
|
18
18
|
---
|
|
19
19
|
|
|
@@ -6,14 +6,14 @@ description: >-
|
|
|
6
6
|
license: MIT
|
|
7
7
|
compatibility: topmind engine and/or workspace. Prefer read-only diagnostics first.
|
|
8
8
|
metadata:
|
|
9
|
-
version: "4.15.
|
|
9
|
+
version: "4.15.5"
|
|
10
10
|
action_category: "maintain"
|
|
11
11
|
entrypoint: "false"
|
|
12
12
|
triggers: "快速体检, 体检, 诊断, doctor, 健康检查, 清理, 修复, 快速检查, 检查, 状态, workspace check, scan, fix, maintain"
|
|
13
13
|
tags: "maintain, doctor, cleanup, audit, health-check"
|
|
14
14
|
author: "TopMindSpace"
|
|
15
15
|
homepage: "https://github.com/topmindspace/topmind-skills"
|
|
16
|
-
updated: "2026-10-
|
|
16
|
+
updated: "2026-10-16"
|
|
17
17
|
degradation: "../shared/capability-degradation.md"
|
|
18
18
|
---
|
|
19
19
|
|
package/topmind-memory/SKILL.md
CHANGED
|
@@ -6,14 +6,14 @@ description: >-
|
|
|
6
6
|
license: MIT
|
|
7
7
|
compatibility: workspace core profile (memory/profile.md) + periodic reflections.
|
|
8
8
|
metadata:
|
|
9
|
-
version: "4.15.
|
|
9
|
+
version: "4.15.5"
|
|
10
10
|
action_category: "memory"
|
|
11
11
|
entrypoint: "false"
|
|
12
12
|
triggers: "写入专题记忆, 更新我的情况, stable memory, 追加确认结论, 记住这个, 记住我, 加到专题记忆, 沉淀结论, 提炼到记忆, update profile, memory"
|
|
13
13
|
tags: "memory, stable, core-profile, 我的情况"
|
|
14
14
|
author: "TopMindSpace"
|
|
15
15
|
homepage: "https://github.com/topmindspace/topmind-skills"
|
|
16
|
-
updated: "2026-10-
|
|
16
|
+
updated: "2026-10-16"
|
|
17
17
|
degradation: "../shared/capability-degradation.md"
|
|
18
18
|
---
|
|
19
19
|
|
|
@@ -6,14 +6,14 @@ description: >-
|
|
|
6
6
|
license: MIT
|
|
7
7
|
compatibility: topmind workspace with stream period notes, topics, or Inbox.
|
|
8
8
|
metadata:
|
|
9
|
-
version: "4.15.
|
|
9
|
+
version: "4.15.5"
|
|
10
10
|
action_category: "organize"
|
|
11
11
|
entrypoint: "false"
|
|
12
12
|
triggers: "整理本周, 理顺本周, 周复盘, 整理, 组织, 研究, 分析, 对比, 提取, 梳理, 归纳, 证据, 实体, 质量审查, 总结, 概括, 汇总, 提纲, 分类整理, 找关联, 总结成笔记要点, organize, summarize, analyze, weekly review"
|
|
13
13
|
tags: "organize, research, analyze, stream, weekly-review"
|
|
14
14
|
author: "TopMindSpace"
|
|
15
15
|
homepage: "https://github.com/topmindspace/topmind-skills"
|
|
16
|
-
updated: "2026-10-
|
|
16
|
+
updated: "2026-10-16"
|
|
17
17
|
degradation: "../shared/capability-degradation.md"
|
|
18
18
|
---
|
|
19
19
|
|
package/topmind-pack.json
CHANGED
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
"label": "topmind",
|
|
5
5
|
"description": "topmind skill pack: single daily entry topmind + progressive disclosure (shared/ + references/), Agent Skills spec-valid frontmatter (custom fields under metadata, checked by agentskills validate), capture-first template-driven categories, optional connectors topmind-weread and topmind-x, optional topmind-ledger (记账). None of the optional skills is an extra user concept. WeChat (公众号) and other writing skills live in the external topmind-writing-skills pack (topmind-wechat-post etc.) and are routed only when installed. File-system-first content truth; UTR optional.",
|
|
6
6
|
"daily_entry": "topmind",
|
|
7
|
-
"version": "4.15.
|
|
8
|
-
"updated": "2026-10-
|
|
7
|
+
"version": "4.15.5",
|
|
8
|
+
"updated": "2026-10-16",
|
|
9
9
|
"license": "MIT",
|
|
10
10
|
"locales": {
|
|
11
11
|
"default": "zh-CN",
|
package/topmind-weread/SKILL.md
CHANGED
|
@@ -6,14 +6,14 @@ description: >-
|
|
|
6
6
|
license: MIT
|
|
7
7
|
compatibility: Requires WeRead Skill API key (wrk-*). Desktop WereadService preferred; host may call gateway manually.
|
|
8
8
|
metadata:
|
|
9
|
-
version: "4.15.
|
|
9
|
+
version: "4.15.5"
|
|
10
10
|
action_category: "connector"
|
|
11
11
|
entrypoint: "false"
|
|
12
12
|
triggers: "微信读书, weread, 划线同步, 读书笔记, 阅读统计, 书架, weread sync, sync highlights"
|
|
13
13
|
tags: "weread, reading, highlights, sync, capture"
|
|
14
14
|
author: "TopMindSpace"
|
|
15
15
|
homepage: "https://github.com/topmindspace/topmind-skills"
|
|
16
|
-
updated: "2026-10-
|
|
16
|
+
updated: "2026-10-16"
|
|
17
17
|
degradation: "../shared/capability-degradation.md"
|
|
18
18
|
---
|
|
19
19
|
|
package/topmind-write/SKILL.md
CHANGED
|
@@ -6,14 +6,14 @@ description: >-
|
|
|
6
6
|
license: MIT
|
|
7
7
|
compatibility: topmind workspace. Delivery role category (often 88-交付 / 88-Delivery).
|
|
8
8
|
metadata:
|
|
9
|
-
version: "4.15.
|
|
9
|
+
version: "4.15.5"
|
|
10
10
|
action_category: "write"
|
|
11
11
|
entrypoint: "false"
|
|
12
12
|
triggers: "写, 写作, 起草, 续写, 修订, 润色, 交付, 改写, de-AI, 输出, 出稿, 定稿, 发布, 导出, 排版, write, draft, deliver, publish, export"
|
|
13
13
|
tags: "write, draft, revise, polish, deliver"
|
|
14
14
|
author: "TopMindSpace"
|
|
15
15
|
homepage: "https://github.com/topmindspace/topmind-skills"
|
|
16
|
-
updated: "2026-10-
|
|
16
|
+
updated: "2026-10-16"
|
|
17
17
|
degradation: "../shared/capability-degradation.md"
|
|
18
18
|
---
|
|
19
19
|
|
package/topmind-x/SKILL.md
CHANGED
|
@@ -6,14 +6,14 @@ description: >-
|
|
|
6
6
|
license: MIT
|
|
7
7
|
compatibility: Desktop needs Bearer (read) and/or xurl (post). Agent hosts use official X MCP + xurl bridge.
|
|
8
8
|
metadata:
|
|
9
|
-
version: "4.15.
|
|
9
|
+
version: "4.15.5"
|
|
10
10
|
action_category: "connector"
|
|
11
11
|
entrypoint: "false"
|
|
12
12
|
triggers: "发推, 推特, twitter, x.com, 发帖, 推文, post tweet, x platform"
|
|
13
13
|
tags: "x, twitter, social, mcp, agent"
|
|
14
14
|
author: "TopMindSpace"
|
|
15
15
|
homepage: "https://github.com/topmindspace/topmind-skills"
|
|
16
|
-
updated: "2026-10-
|
|
16
|
+
updated: "2026-10-16"
|
|
17
17
|
degradation: "../shared/capability-degradation.md"
|
|
18
18
|
---
|
|
19
19
|
|