@topmindspace/topmind-skills 4.13.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/INSTALL.md +295 -0
- package/LICENSE +21 -0
- package/README.en.md +162 -0
- package/README.md +162 -0
- package/README.zh-CN.md +162 -0
- package/bin/install-skills.mjs +693 -0
- package/evals/evals.json +236 -0
- package/install-targets/claude-code.json +62 -0
- package/install-targets/codex.json +60 -0
- package/install-targets/hermes.json +60 -0
- package/install-targets/opencode.json +63 -0
- package/integrations/codex/README.md +20 -0
- package/integrations/hermes/README.md +19 -0
- package/integrations/opencode/README.md +33 -0
- package/integrations/opencode/commands/topmind-capture.md +15 -0
- package/integrations/opencode/commands/topmind-doctor.md +11 -0
- package/integrations/opencode/opencode.example.json +20 -0
- package/integrations/opencode/plugins/topmind-plugin.ts +17 -0
- package/integrations/opencode/tests/opencode-config-shape.test.mjs +63 -0
- package/package.json +70 -0
- package/scripts/build-pack.mjs +463 -0
- package/shared/capability-degradation.md +82 -0
- package/shared/document-ingest.md +117 -0
- package/shared/host-loading.md +140 -0
- package/shared/long-url-capture.md +60 -0
- package/shared/output-language.md +32 -0
- package/shared/project-model-brief.md +132 -0
- package/shared/trigger-disambiguation.md +58 -0
- package/shared/writeback-receipt.md +73 -0
- package/skills.md +39 -0
- package/topmind/SKILL.md +170 -0
- package/topmind/references/connector-resolution.md +11 -0
- package/topmind/references/multi-intent.md +17 -0
- package/topmind/references/template-categories.md +45 -0
- package/topmind-capture/SKILL.md +148 -0
- package/topmind-ledger/SKILL.md +86 -0
- package/topmind-loop/DESIGN.md +82 -0
- package/topmind-loop/SKILL.md +111 -0
- package/topmind-loop/references/scopes-and-walk.md +56 -0
- package/topmind-loop/references/state-file.md +52 -0
- package/topmind-maintain/SKILL.md +104 -0
- package/topmind-memory/SKILL.md +117 -0
- package/topmind-organize/SKILL.md +144 -0
- package/topmind-pack.json +418 -0
- package/topmind-wechat/DESIGN.md +50 -0
- package/topmind-wechat/SKILL.md +218 -0
- package/topmind-wechat/assets/themes/amber-review.json +35 -0
- package/topmind-wechat/assets/themes/graphite.json +35 -0
- package/topmind-wechat/assets/themes/minimal-ink.json +35 -0
- package/topmind-wechat/assets/themes/newsprint.json +35 -0
- package/topmind-wechat/assets/themes/tech-blue.json +35 -0
- package/topmind-wechat/references/element-spec.md +162 -0
- package/topmind-wechat/references/known-pits.md +86 -0
- package/topmind-wechat/references/theme-map.md +139 -0
- package/topmind-wechat/references/typography-rules.md +62 -0
- package/topmind-wechat/references/wechat-constraints.md +106 -0
- package/topmind-wechat/references/workflow.md +102 -0
- package/topmind-wechat/references/writing-quality.md +129 -0
- package/topmind-wechat/scripts/lint-wechat.py +446 -0
- package/topmind-wechat/scripts/md2wechat.py +1599 -0
- package/topmind-wechat/scripts/new-article.py +183 -0
- package/topmind-wechat/scripts/push-to-topstream.py +226 -0
- package/topmind-wechat/scripts/scan_ai_flavor.py +464 -0
- package/topmind-wechat/scripts/sync-mapping.py +220 -0
- package/topmind-wechat/scripts/sync-status.py +187 -0
- package/topmind-weread/SKILL.md +97 -0
- package/topmind-write/SKILL.md +116 -0
- package/topmind-x/SKILL.md +97 -0
package/evals/evals.json
ADDED
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
{
|
|
2
|
+
"skill_name": "topmind",
|
|
3
|
+
"daily_entry": "topmind",
|
|
4
|
+
"version": "4.13.0",
|
|
5
|
+
"evals": [
|
|
6
|
+
{
|
|
7
|
+
"id": 1,
|
|
8
|
+
"prompt": "把这段链接和摘录收进 20-研究/2026-示例研究 专题,保留来源,后面再整理。",
|
|
9
|
+
"primary_skill": "topmind-capture",
|
|
10
|
+
"extra_skills": [],
|
|
11
|
+
"expected_output": "Routes through topmind-capture, identifies target category (20-研究) and topic (2026-示例研究), preserves provenance, writes according to writeback_mode, returns a saved-path receipt with category+topic, and does NOT edit topic.md or auto-chain organize/memory."
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
"id": 2,
|
|
15
|
+
"prompt": "整理 10-动态/2026-示例记录 专题最近几条笔记,提炼出可以写入 topic.md 的稳定结论候选。",
|
|
16
|
+
"primary_skill": "topmind-organize",
|
|
17
|
+
"extra_skills": [
|
|
18
|
+
"topmind-memory"
|
|
19
|
+
],
|
|
20
|
+
"expected_output": "Routes through topmind-organize first: synthesizes notes, defaults to leaving a topic-root summary note per writeback_mode (not chat-only), and lists memory candidates only. Does not auto-edit topic.md unless the user then confirms via topmind-memory."
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"id": 3,
|
|
24
|
+
"prompt": "基于 30-阅读/2026-示例阅读笔记 专题的材料,写一版适合视频脚本的输出草稿。",
|
|
25
|
+
"primary_skill": "topmind-write",
|
|
26
|
+
"extra_skills": [],
|
|
27
|
+
"expected_output": "Routes through topmind-write, reads topic.md first when present then necessary notes, drafts an output, and saves or previews under delivery (role:delivery / 88-Delivery) according to writeback_mode. Does not force-create topic.md."
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"id": 4,
|
|
31
|
+
"prompt": "检查 40-创作/2026-示例创作 专题的对象清单、关键点和当前段落是否有矛盾。",
|
|
32
|
+
"primary_skill": "topmind-organize",
|
|
33
|
+
"extra_skills": [],
|
|
34
|
+
"expected_output": "Routes through topmind-organize (quality review), scopes review to the topic, reports consistency findings with file evidence."
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"id": 5,
|
|
38
|
+
"prompt": "对 20-研究/2026-示例研究 专题做一次资料证据梳理,输出关键 claims 和来源表。",
|
|
39
|
+
"primary_skill": "topmind-organize",
|
|
40
|
+
"extra_skills": [],
|
|
41
|
+
"expected_output": "Routes through topmind-organize (research + evidence synthesis), preserves provenance, separates claims/evidence/open questions, and defaults to writing synthesis to a topic-root note per writeback_mode (leave-a-trace), without auto memory writes."
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"id": 6,
|
|
45
|
+
"prompt": "跑一下 topmind 的系统健康检查,并告诉我下一步该清理什么。",
|
|
46
|
+
"primary_skill": "topmind-maintain",
|
|
47
|
+
"extra_skills": [],
|
|
48
|
+
"expected_output": "Routes through topmind-maintain, uses UTR diagnostics, reports evidence and cleanup recommendations, and applies cleanup only according to writeback_mode."
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"id": 7,
|
|
52
|
+
"prompt": "把这条已经确认的结论追加到 10-动态/2026-示例记录 专题的 Stable Memory,保留原来的 topic.md 内容,不要整页替换。",
|
|
53
|
+
"primary_skill": "topmind-memory",
|
|
54
|
+
"extra_skills": [],
|
|
55
|
+
"expected_output": "Routes through topmind-memory, uses memory.append-topic with category+topic fields, follows writeback_mode, and keeps existing topic.md content intact."
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
"id": 8,
|
|
59
|
+
"prompt": "审查 topmind 的 skills 和 UTR 动作,找出旧入口、旧术语、重复能力和应该删除的废弃实现。",
|
|
60
|
+
"primary_skill": "topmind-maintain",
|
|
61
|
+
"extra_skills": [
|
|
62
|
+
"topmind-organize"
|
|
63
|
+
],
|
|
64
|
+
"expected_output": "Routes through topmind-maintain and topmind-organize (quality review), reads current contracts before broad search, flags legacy residues, and reports evidence."
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
"id": 9,
|
|
68
|
+
"prompt": "从 20-研究/2026-示例研究 专题的 notes 里提炼可以进入 Stable Memory 的候选,但先不要写回。",
|
|
69
|
+
"primary_skill": "topmind-organize",
|
|
70
|
+
"extra_skills": [
|
|
71
|
+
"topmind-memory"
|
|
72
|
+
],
|
|
73
|
+
"expected_output": "Routes through topmind-organize (primary): produces candidate memory entries with evidence only; does not edit topic.md in this turn. topmind-memory runs only if user later confirms; never write memory when user said 先不要写回."
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
"id": 10,
|
|
77
|
+
"prompt": "整理一下 20-研究/2026-示例研究 专题最近的研究笔记,理出结构。",
|
|
78
|
+
"primary_skill": "topmind-organize",
|
|
79
|
+
"extra_skills": [],
|
|
80
|
+
"expected_output": "Routes through topmind-organize for structure organization, reads topic topic.md (if any) and relevant notes, clusters and extracts structure, marks source_type appropriately, defaults to leaving a structured note on disk per writeback_mode, suggests memory candidates without over-organizing or creating INDEX.md."
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
"id": 11,
|
|
84
|
+
"prompt": "研究分析一下这几个 AI Agent 框架的对比,整理证据和来源。",
|
|
85
|
+
"primary_skill": "topmind-organize",
|
|
86
|
+
"extra_skills": [],
|
|
87
|
+
"expected_output": "Routes through topmind-organize for research analysis, builds evidence chains with provenance, uses tables for comparison, separates confirmed facts from unverified claims, marks external captures with source_type: external-capture."
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
"id": 12,
|
|
91
|
+
"prompt": "从这些研究材料里提取关键人物和核心概念。",
|
|
92
|
+
"primary_skill": "topmind-organize",
|
|
93
|
+
"extra_skills": [],
|
|
94
|
+
"expected_output": "Routes through topmind-organize for entity extraction (requires explicit user request), extracts entities with evidence references, marks source_type: ai-derived, and separates AI extraction from original content."
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
"id": 13,
|
|
98
|
+
"prompt": "我有个想法:能不能用 Agent 做自动化测试?先记下来。",
|
|
99
|
+
"primary_skill": "topmind-capture",
|
|
100
|
+
"extra_skills": [],
|
|
101
|
+
"expected_output": "Routes through topmind-capture (not organize), saves as a quick note with source_type: user-original, uses 00-Inbox/ if category unclear, does not block on classification."
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
"id": 14,
|
|
105
|
+
"prompt": "把这几条笔记的 source_type 和 topic 补全,frontmatter 缺的都加上。",
|
|
106
|
+
"primary_skill": "topmind-maintain",
|
|
107
|
+
"extra_skills": [],
|
|
108
|
+
"expected_output": "Routes through topmind-maintain, uses workspace-transform.normalize-note-metadata, marks source_type and topic where inferable, applies or previews according to writeback_mode. Uses UTR workspace-transform.normalize-note-metadata command."
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
"id": 15,
|
|
112
|
+
"prompt": "跑一遍 topmind-loop,做整体巡检。",
|
|
113
|
+
"primary_skill": "topmind-loop",
|
|
114
|
+
"extra_skills": [],
|
|
115
|
+
"expected_output": "Routes through topmind-loop (independent skill, not a maintain sub-action), walks all topics/inbox/archive scopes, applies well-defined fixes via UTR commands, writes decisions to .loop/topics.md, and flags architecture drift signals."
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
"id": 16,
|
|
119
|
+
"prompt": "继续 loop,从上次断点恢复。",
|
|
120
|
+
"primary_skill": "topmind-loop",
|
|
121
|
+
"extra_skills": [],
|
|
122
|
+
"expected_output": "Routes through topmind-loop, reads cursor from .loop/{scope}.md state files, resumes walk at the cursor item, updates done/total and cursor after each item, and appends new decisions."
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
"id": 17,
|
|
126
|
+
"prompt": "loop 一下 20-研究 大类下的所有专题。",
|
|
127
|
+
"primary_skill": "topmind-loop",
|
|
128
|
+
"extra_skills": [],
|
|
129
|
+
"expected_output": "Routes through topmind-loop with scoped walk (only 20-研究 category topics), writes scoped progress to .loop/topics.md, applies UTR fixes for well-defined issues, escalates ambiguous decisions to Errors/Blockers."
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
"id": 18,
|
|
133
|
+
"prompt": "[schema validation] Verify all SKILL.md files have required frontmatter fields: name, version, description, action_category, triggers. Verify action_category values are within the enum. Verify name matches directory name in kebab-case.",
|
|
134
|
+
"primary_skill": "topmind-maintain",
|
|
135
|
+
"extra_skills": [],
|
|
136
|
+
"expected_output": "Validates frontmatter schema across all SKILL.md files (10 total: 7 core + 2 connector + 1 optional ledger). Reports any missing required fields, invalid action_category values, or name/directory mismatches."
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
"id": 19,
|
|
140
|
+
"prompt": "[degradation reachability] Verify each SKILL.md's degradation field points to shared/capability-degradation.md and that the degradation table covers all UTR commands referenced in the skill body.",
|
|
141
|
+
"primary_skill": "topmind-maintain",
|
|
142
|
+
"extra_skills": [],
|
|
143
|
+
"expected_output": "Checks that every SKILL.md frontmatter has degradation: ../shared/capability-degradation.md. Cross-references UTR commands mentioned in each skill body against the degradation table."
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
"id": 20,
|
|
147
|
+
"prompt": "[semantic disambiguation] Verify no SKILL.md frontmatter uses 'category' key (should be 'action_category'). Verify user note frontmatter examples use 'category' for physical category directory name only.",
|
|
148
|
+
"primary_skill": "topmind-maintain",
|
|
149
|
+
"extra_skills": [],
|
|
150
|
+
"expected_output": "Confirms zero SKILL.md files use frontmatter key 'category' (all must use 'action_category'). Confirms note frontmatter examples in skills use 'category' only for physical directory names."
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
"id": 21,
|
|
154
|
+
"prompt": "帮我整理一下 inbox 里的东西,该分类的分类。",
|
|
155
|
+
"primary_skill": "topmind-organize",
|
|
156
|
+
"extra_skills": [],
|
|
157
|
+
"expected_output": "Routes through topmind-organize (NOT maintain, NOT loop). Uses workspace-transform.plan-inbox-routing to analyze Inbox content, suggests target category and topic for each item, applies or previews according to writeback_mode."
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
"id": 22,
|
|
161
|
+
"prompt": "同步一下微信读书的划线。",
|
|
162
|
+
"primary_skill": "topmind-weread",
|
|
163
|
+
"extra_skills": [],
|
|
164
|
+
"expected_output": "Routes through topmind-weread connector skill, performs incremental sync of WeRead highlights, creates/updates topics under 30-阅读/, uses source_type: external-capture with synced_at and weread_book_id."
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
"id": 23,
|
|
168
|
+
"prompt": "帮我发一条推文,内容是关于 AI Agent 的最新思考。",
|
|
169
|
+
"primary_skill": "topmind-x",
|
|
170
|
+
"extra_skills": [
|
|
171
|
+
"topmind-write"
|
|
172
|
+
],
|
|
173
|
+
"expected_output": "Routes through topmind-x connector skill, uses topmind-write to draft tweet content, always requires user confirmation before posting (even in auto writeback_mode), archives posted tweet."
|
|
174
|
+
},
|
|
175
|
+
{
|
|
176
|
+
"id": 24,
|
|
177
|
+
"prompt": "把这个链接记下来,顺便把要点加到专题记忆里。",
|
|
178
|
+
"primary_skill": "topmind-capture",
|
|
179
|
+
"extra_skills": [
|
|
180
|
+
"topmind-memory"
|
|
181
|
+
],
|
|
182
|
+
"expected_output": "Multi-intent: capture + memory. First routes through topmind-capture to save the link as a note, then routes through topmind-memory to append key points to topic.md. Two separate operations with two receipts."
|
|
183
|
+
},
|
|
184
|
+
{
|
|
185
|
+
"id": 25,
|
|
186
|
+
"prompt": "基于最近的研究笔记写一份分析报告,然后导出。",
|
|
187
|
+
"primary_skill": "topmind-organize",
|
|
188
|
+
"extra_skills": [
|
|
189
|
+
"topmind-write"
|
|
190
|
+
],
|
|
191
|
+
"expected_output": "Multi-intent: organize + write. First routes through topmind-organize to synthesize research notes, then routes through topmind-write to produce and deliver the report to 88-Delivery/. Runs Delivery Checklist before saving output."
|
|
192
|
+
},
|
|
193
|
+
{
|
|
194
|
+
"id": 26,
|
|
195
|
+
"prompt": "写完了,帮我导出到 88-Delivery。",
|
|
196
|
+
"primary_skill": "topmind-write",
|
|
197
|
+
"extra_skills": [],
|
|
198
|
+
"expected_output": "Routes through topmind-write (deliver entry point). Runs Delivery Checklist, uses workspace-write.save-output to save to 88-Delivery/ with YYYY-MM-DD-描述 naming. Returns receipt with saved path."
|
|
199
|
+
},
|
|
200
|
+
{
|
|
201
|
+
"id": 27,
|
|
202
|
+
"prompt": "总结一下这些研究笔记的要点。",
|
|
203
|
+
"primary_skill": "topmind-organize",
|
|
204
|
+
"extra_skills": [],
|
|
205
|
+
"expected_output": "Negative-disambiguation: '总结要点' defaults to topmind-organize (NOT topmind-memory) unless user explicitly asks to write into topic.md / 专题记忆. Organize leave-a-trace: write a topic-root summary note per writeback_mode rather than chat-only; do not create INDEX.md."
|
|
206
|
+
},
|
|
207
|
+
{
|
|
208
|
+
"id": 28,
|
|
209
|
+
"prompt": "快速体检一下工作区。",
|
|
210
|
+
"primary_skill": "topmind-maintain",
|
|
211
|
+
"extra_skills": [],
|
|
212
|
+
"expected_output": "Routes to topmind-maintain (deterministic doctor), NOT topmind-loop. Loop is reserved for 整体体检/巡检/audit/walk."
|
|
213
|
+
},
|
|
214
|
+
{
|
|
215
|
+
"id": 29,
|
|
216
|
+
"prompt": "把这篇很长的博客 URL 收进来,正文可能超过 4 万字。",
|
|
217
|
+
"primary_skill": "topmind-capture",
|
|
218
|
+
"extra_skills": [],
|
|
219
|
+
"expected_output": "Routes through topmind-capture with external-capture provenance. Follows shared/long-url-capture.md: mark truncation if any, keep cleaned URL, do not invent SPA body content."
|
|
220
|
+
},
|
|
221
|
+
{
|
|
222
|
+
"id": 30,
|
|
223
|
+
"prompt": "花了 50 买羽毛球拍",
|
|
224
|
+
"primary_skill": "topmind-ledger",
|
|
225
|
+
"extra_skills": [],
|
|
226
|
+
"expected_output": "Routes through topmind-ledger (NOT topmind-capture). Default personal/自己 book under {memory.dir}/ledgers/. Append-only write via Kernel writeback with a path receipt. Does not invent ClassFund/Giggs/Mom. Daily entry remains topmind."
|
|
227
|
+
},
|
|
228
|
+
{
|
|
229
|
+
"id": 31,
|
|
230
|
+
"prompt": "存入 523",
|
|
231
|
+
"primary_skill": "topmind-ledger",
|
|
232
|
+
"extra_skills": [],
|
|
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
|
+
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema_version": 1,
|
|
3
|
+
"package": "topmind",
|
|
4
|
+
"target": "claude-code",
|
|
5
|
+
"daily_entry": "topmind",
|
|
6
|
+
"metadata": {
|
|
7
|
+
"license": "MIT",
|
|
8
|
+
"authors": [
|
|
9
|
+
"TopMindSpace"
|
|
10
|
+
],
|
|
11
|
+
"repository": "https://github.com/topmindspace/topmind-skills",
|
|
12
|
+
"homepage": "https://github.com/topmindspace/topmind-skills#readme"
|
|
13
|
+
},
|
|
14
|
+
"skills": [
|
|
15
|
+
"topmind",
|
|
16
|
+
"topmind-capture",
|
|
17
|
+
"topmind-organize",
|
|
18
|
+
"topmind-write",
|
|
19
|
+
"topmind-memory",
|
|
20
|
+
"topmind-maintain",
|
|
21
|
+
"topmind-loop",
|
|
22
|
+
"topmind-weread",
|
|
23
|
+
"topmind-x",
|
|
24
|
+
"topmind-ledger",
|
|
25
|
+
"topmind-wechat"
|
|
26
|
+
],
|
|
27
|
+
"install_strategy": "symlink-or-copy",
|
|
28
|
+
"target_root_hint": "claude-code-skills-root",
|
|
29
|
+
"capabilities": [
|
|
30
|
+
"skills",
|
|
31
|
+
"mcp"
|
|
32
|
+
],
|
|
33
|
+
"content_truth": "topmind-workspace/categories-and-topics",
|
|
34
|
+
"host_must_not": [
|
|
35
|
+
"change-content-truth",
|
|
36
|
+
"add-daily-entrypoints",
|
|
37
|
+
"fork-skill-semantics",
|
|
38
|
+
"persist-content-in-agent-state",
|
|
39
|
+
"introduce-legacy-project-naming",
|
|
40
|
+
"introduce-project_type-field"
|
|
41
|
+
],
|
|
42
|
+
"config_shape": {
|
|
43
|
+
"skills_root": "host-provided",
|
|
44
|
+
"workspace_root": "host-provided",
|
|
45
|
+
"utr": "optional",
|
|
46
|
+
"mcp": "optional"
|
|
47
|
+
},
|
|
48
|
+
"notes": [
|
|
49
|
+
"Claude Code exposes topmind via the Skill tool (look for SKILL.md / skills.md in the dropped pack).",
|
|
50
|
+
"v4.3 progressive disclosure: host indexes name+description for all packaged skills; load SKILL.md body on activation; load shared/ and skill references/ only when linked.",
|
|
51
|
+
"Single daily user entry remains topmind. Sub-skill descriptions are discovery aids — not parallel products. Keep Action Map + trigger-disambiguation contract.",
|
|
52
|
+
"MCP integration is optional — enable topmind-mcp if the user wants deterministic UTR commands surfaced as tools.",
|
|
53
|
+
"Categories use NN-Name spaced number prefix (dynamic discovery); topics use YYYY-主题 kebab-case; do not introduce YYYY-类型-项目名.",
|
|
54
|
+
"Claude Code is case-insensitive on macOS / Windows by default — the canonical lowercase `skills.md` covers both `skills.md` and `SKILLS.md` lookups."
|
|
55
|
+
],
|
|
56
|
+
"install": {
|
|
57
|
+
"script": "bin/install-skills.mjs",
|
|
58
|
+
"docs": "skills/INSTALL.md",
|
|
59
|
+
"from_git": "node bin/install-skills.mjs --from-git --host claude-code",
|
|
60
|
+
"from_release": "node bin/install-skills.mjs --from-release latest --host claude-code"
|
|
61
|
+
}
|
|
62
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema_version": 1,
|
|
3
|
+
"package": "topmind",
|
|
4
|
+
"target": "codex",
|
|
5
|
+
"daily_entry": "topmind",
|
|
6
|
+
"metadata": {
|
|
7
|
+
"license": "MIT",
|
|
8
|
+
"authors": [
|
|
9
|
+
"TopMindSpace"
|
|
10
|
+
],
|
|
11
|
+
"repository": "https://github.com/topmindspace/topmind-skills",
|
|
12
|
+
"homepage": "https://github.com/topmindspace/topmind-skills#readme"
|
|
13
|
+
},
|
|
14
|
+
"skills": [
|
|
15
|
+
"topmind",
|
|
16
|
+
"topmind-capture",
|
|
17
|
+
"topmind-organize",
|
|
18
|
+
"topmind-write",
|
|
19
|
+
"topmind-memory",
|
|
20
|
+
"topmind-maintain",
|
|
21
|
+
"topmind-loop",
|
|
22
|
+
"topmind-weread",
|
|
23
|
+
"topmind-x",
|
|
24
|
+
"topmind-ledger",
|
|
25
|
+
"topmind-wechat"
|
|
26
|
+
],
|
|
27
|
+
"install_strategy": "symlink-or-copy",
|
|
28
|
+
"target_root_hint": "codex-skills-root",
|
|
29
|
+
"capabilities": [
|
|
30
|
+
"skills",
|
|
31
|
+
"cli",
|
|
32
|
+
"mcp"
|
|
33
|
+
],
|
|
34
|
+
"content_truth": "topmind-workspace/categories-and-topics",
|
|
35
|
+
"host_must_not": [
|
|
36
|
+
"change-content-truth",
|
|
37
|
+
"add-daily-entrypoints",
|
|
38
|
+
"fork-skill-semantics",
|
|
39
|
+
"persist-content-in-agent-state",
|
|
40
|
+
"introduce-legacy-project-naming",
|
|
41
|
+
"introduce-project_type-field"
|
|
42
|
+
],
|
|
43
|
+
"config_shape": {
|
|
44
|
+
"skills_root": "host-provided",
|
|
45
|
+
"workspace_root": "host-provided",
|
|
46
|
+
"utr": "optional"
|
|
47
|
+
},
|
|
48
|
+
"notes": [
|
|
49
|
+
"Codex should expose only topmind as the daily entry.",
|
|
50
|
+
"Action subskills remain internal routing modules.",
|
|
51
|
+
"Categories use 10-60/88/99 spaced number prefix (dynamic discovery); topics use YYYY-主题 kebab-case; do not introduce YYYY-类型-项目名.",
|
|
52
|
+
"v4.3 progressive disclosure: name+description discovery; SKILL.md on activation; shared/ and references/ on demand. Single daily entry topmind."
|
|
53
|
+
],
|
|
54
|
+
"install": {
|
|
55
|
+
"script": "bin/install-skills.mjs",
|
|
56
|
+
"docs": "skills/INSTALL.md",
|
|
57
|
+
"from_git": "node bin/install-skills.mjs --from-git --host codex",
|
|
58
|
+
"from_release": "node bin/install-skills.mjs --from-release latest --host codex"
|
|
59
|
+
}
|
|
60
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema_version": 1,
|
|
3
|
+
"package": "topmind",
|
|
4
|
+
"target": "hermes",
|
|
5
|
+
"daily_entry": "topmind",
|
|
6
|
+
"metadata": {
|
|
7
|
+
"license": "MIT",
|
|
8
|
+
"authors": [
|
|
9
|
+
"TopMindSpace"
|
|
10
|
+
],
|
|
11
|
+
"repository": "https://github.com/topmindspace/topmind-skills",
|
|
12
|
+
"homepage": "https://github.com/topmindspace/topmind-skills#readme"
|
|
13
|
+
},
|
|
14
|
+
"skills": [
|
|
15
|
+
"topmind",
|
|
16
|
+
"topmind-capture",
|
|
17
|
+
"topmind-organize",
|
|
18
|
+
"topmind-write",
|
|
19
|
+
"topmind-memory",
|
|
20
|
+
"topmind-maintain",
|
|
21
|
+
"topmind-loop",
|
|
22
|
+
"topmind-weread",
|
|
23
|
+
"topmind-x",
|
|
24
|
+
"topmind-ledger",
|
|
25
|
+
"topmind-wechat"
|
|
26
|
+
],
|
|
27
|
+
"install_strategy": "symlink-or-copy",
|
|
28
|
+
"target_root_hint": "hermes-skills-root",
|
|
29
|
+
"capabilities": [
|
|
30
|
+
"skills",
|
|
31
|
+
"cli",
|
|
32
|
+
"mcp"
|
|
33
|
+
],
|
|
34
|
+
"content_truth": "topmind-workspace/categories-and-topics",
|
|
35
|
+
"host_must_not": [
|
|
36
|
+
"change-content-truth",
|
|
37
|
+
"add-daily-entrypoints",
|
|
38
|
+
"fork-skill-semantics",
|
|
39
|
+
"persist-content-in-agent-state",
|
|
40
|
+
"introduce-legacy-project-naming",
|
|
41
|
+
"introduce-project_type-field"
|
|
42
|
+
],
|
|
43
|
+
"config_shape": {
|
|
44
|
+
"skills_root": "host-provided",
|
|
45
|
+
"workspace_root": "host-provided",
|
|
46
|
+
"utr": "optional"
|
|
47
|
+
},
|
|
48
|
+
"notes": [
|
|
49
|
+
"Keep topmind skills as portable Markdown bundles.",
|
|
50
|
+
"Hermes may call UTR through CLI or MCP, but the skill pack must still work with host file tools.",
|
|
51
|
+
"Categories use 10-60/88/99 spaced number prefix (dynamic discovery); topics use YYYY-主题 kebab-case; do not introduce YYYY-类型-项目名.",
|
|
52
|
+
"v4.3 progressive disclosure: name+description discovery; SKILL.md on activation; shared/ and references/ on demand. Single daily entry topmind."
|
|
53
|
+
],
|
|
54
|
+
"install": {
|
|
55
|
+
"script": "bin/install-skills.mjs",
|
|
56
|
+
"docs": "skills/INSTALL.md",
|
|
57
|
+
"from_git": "node bin/install-skills.mjs --from-git --host hermes",
|
|
58
|
+
"from_release": "node bin/install-skills.mjs --from-release latest --host hermes"
|
|
59
|
+
}
|
|
60
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schema_version": 1,
|
|
3
|
+
"package": "topmind",
|
|
4
|
+
"target": "opencode",
|
|
5
|
+
"daily_entry": "topmind",
|
|
6
|
+
"metadata": {
|
|
7
|
+
"license": "MIT",
|
|
8
|
+
"authors": [
|
|
9
|
+
"TopMindSpace"
|
|
10
|
+
],
|
|
11
|
+
"repository": "https://github.com/topmindspace/topmind-skills",
|
|
12
|
+
"homepage": "https://github.com/topmindspace/topmind-skills#readme"
|
|
13
|
+
},
|
|
14
|
+
"skills": [
|
|
15
|
+
"topmind",
|
|
16
|
+
"topmind-capture",
|
|
17
|
+
"topmind-organize",
|
|
18
|
+
"topmind-write",
|
|
19
|
+
"topmind-memory",
|
|
20
|
+
"topmind-maintain",
|
|
21
|
+
"topmind-loop",
|
|
22
|
+
"topmind-weread",
|
|
23
|
+
"topmind-x",
|
|
24
|
+
"topmind-ledger",
|
|
25
|
+
"topmind-wechat"
|
|
26
|
+
],
|
|
27
|
+
"install_strategy": "symlink-or-copy",
|
|
28
|
+
"target_root_hint": "opencode-skills-root",
|
|
29
|
+
"capabilities": [
|
|
30
|
+
"skills",
|
|
31
|
+
"mcp",
|
|
32
|
+
"commands",
|
|
33
|
+
"plugin"
|
|
34
|
+
],
|
|
35
|
+
"content_truth": "topmind-workspace/categories-and-topics",
|
|
36
|
+
"host_must_not": [
|
|
37
|
+
"change-content-truth",
|
|
38
|
+
"add-daily-entrypoints",
|
|
39
|
+
"fork-skill-semantics",
|
|
40
|
+
"persist-content-in-agent-state",
|
|
41
|
+
"introduce-legacy-project-naming",
|
|
42
|
+
"introduce-project_type-field"
|
|
43
|
+
],
|
|
44
|
+
"config_shape": {
|
|
45
|
+
"skills": {
|
|
46
|
+
"paths": []
|
|
47
|
+
},
|
|
48
|
+
"mcp": {},
|
|
49
|
+
"plugin": []
|
|
50
|
+
},
|
|
51
|
+
"notes": [
|
|
52
|
+
"Use the host tool's discovered OpenCode config root.",
|
|
53
|
+
"Expose the skill pack first; add MCP and plugin adapters only when the host environment enables them.",
|
|
54
|
+
"Categories use 10-60/88/99 spaced number prefix (dynamic discovery); topics use YYYY-主题 kebab-case; do not introduce YYYY-类型-项目名.",
|
|
55
|
+
"v4.3 progressive disclosure: name+description discovery; SKILL.md on activation; shared/ and references/ on demand. Single daily entry topmind."
|
|
56
|
+
],
|
|
57
|
+
"install": {
|
|
58
|
+
"script": "bin/install-skills.mjs",
|
|
59
|
+
"docs": "skills/INSTALL.md",
|
|
60
|
+
"from_git": "node bin/install-skills.mjs --from-git --host opencode",
|
|
61
|
+
"from_release": "node bin/install-skills.mjs --from-release latest --host opencode"
|
|
62
|
+
}
|
|
63
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# topmind · Codex Integration
|
|
2
|
+
|
|
3
|
+
[简体中文](../../README.md) · [English](../../README.en.md) · [Skills install](../../skills/INSTALL.md)
|
|
4
|
+
|
|
5
|
+
Codex consumes topmind through the same portable skill pack as other hosts.
|
|
6
|
+
|
|
7
|
+
## Recommended route
|
|
8
|
+
|
|
9
|
+
1. Install or symlink the skills declared in `skills/topmind-pack.json` (10 modules: 7 core + 2 connectors + 1 ledger).
|
|
10
|
+
2. **Expose only `topmind`** as the daily user-facing entry; sub-skills are internal.
|
|
11
|
+
3. Use `topmind-cli` or MCP when available; **UTR is optional** — otherwise host file tools with the same filesystem contract.
|
|
12
|
+
4. Keep all user data under `topmind-workspace/categories-and-topics`. Codex session state must not become topmind content truth.
|
|
13
|
+
|
|
14
|
+
## Portable contract
|
|
15
|
+
|
|
16
|
+
- Content truth is `topmind-workspace/categories-and-topics`.
|
|
17
|
+
- Daily entry is `topmind`; no parallel daily entrypoints.
|
|
18
|
+
- **Desktop is not required** for the skill pack.
|
|
19
|
+
- Naming and frontmatter follow `PROJECT-MODEL.md` / `TOOLS.md`.
|
|
20
|
+
- Bulk structure fixes may use `workspace-transform.migrate-v4` (UTR advanced).
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# topmind · Hermes Integration
|
|
2
|
+
|
|
3
|
+
[简体中文](../../README.md) · [English](../../README.en.md) · [Skills install](../../skills/INSTALL.md)
|
|
4
|
+
|
|
5
|
+
Hermes consumes topmind as a portable skill pack, not a second workspace model.
|
|
6
|
+
|
|
7
|
+
## Recommended route
|
|
8
|
+
|
|
9
|
+
1. Install or symlink the skills declared in `skills/topmind-pack.json`.
|
|
10
|
+
2. **Expose only `topmind`** as the daily entry; sub-skills route internally.
|
|
11
|
+
3. **UTR is optional** — use CLI/MCP when available; otherwise host file tools with the same filesystem contract.
|
|
12
|
+
4. Keep user data under `topmind-workspace/categories-and-topics`. Hermes-specific state must not become topmind content truth.
|
|
13
|
+
|
|
14
|
+
## Portable contract
|
|
15
|
+
|
|
16
|
+
- Content truth is `topmind-workspace/categories-and-topics`.
|
|
17
|
+
- Daily entry is `topmind`; no parallel daily entrypoints.
|
|
18
|
+
- **Desktop is not required** for the skill pack.
|
|
19
|
+
- Naming and frontmatter follow `PROJECT-MODEL.md` / `TOOLS.md`.
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# topmind · OpenCode Integration
|
|
2
|
+
|
|
3
|
+
[简体中文](../../README.md) · [English](../../README.en.md) · [Skills install](../../skills/INSTALL.md)
|
|
4
|
+
|
|
5
|
+
topmind should not fork OpenCode by default. Prefer a thin adapter layer.
|
|
6
|
+
|
|
7
|
+
## Recommended route
|
|
8
|
+
|
|
9
|
+
1. Install the portable skill pack (`skills/topmind-pack.json` / pack-aware installer).
|
|
10
|
+
2. **Expose only `topmind`** as the daily user-facing entry — sub-skills are internal.
|
|
11
|
+
3. Expose UTR through MCP when available; **UTR is optional** otherwise use host file tools.
|
|
12
|
+
4. Optional OpenCode commands for common capture and doctor flows (`commands/`).
|
|
13
|
+
5. Keep content truth in `topmind-workspace/categories-and-topics`. OpenCode state must not become topmind content truth.
|
|
14
|
+
|
|
15
|
+
## Config shape
|
|
16
|
+
|
|
17
|
+
`opencode.example.json` mirrors the observed OpenCode shape:
|
|
18
|
+
|
|
19
|
+
- `skills.paths.paths`
|
|
20
|
+
- `mcp.{server}.type` / `command`
|
|
21
|
+
- `plugin`
|
|
22
|
+
|
|
23
|
+
Use the host’s discovered config root. Do not hardcode machine-specific paths.
|
|
24
|
+
Repo root `opencode.json` is machine-local (gitignored); share shapes via this example.
|
|
25
|
+
|
|
26
|
+
**Desktop is not required** for the skill pack.
|
|
27
|
+
|
|
28
|
+
## Must not
|
|
29
|
+
|
|
30
|
+
- Change content truth or add parallel daily entrypoints
|
|
31
|
+
- Introduce naming/command surfaces outside `PROJECT-MODEL.md` / `TOOLS.md`
|
|
32
|
+
- Treat `topmind-loop` as a `topmind-maintain` sub-action (loop is independent)
|
|
33
|
+
- Treat OpenCode state as workspace content truth
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# topmind Capture (v4)
|
|
2
|
+
|
|
3
|
+
> v4
|
|
4
|
+
|
|
5
|
+
Use when the user wants to save a link, excerpt, loose note, idea, or temporary thought.
|
|
6
|
+
|
|
7
|
+
Route through the `topmind` daily entry and prefer:
|
|
8
|
+
|
|
9
|
+
```text
|
|
10
|
+
capture -> auto route when confident -> inbox when unclear -> receipt
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
When UTR is available, use `workspace-write.capture-note` with the configured `writebackMode`. Otherwise use host file tools and preserve the same workspace contract.
|
|
14
|
+
|
|
15
|
+
Category routing: dynamic discovery (`{NN-Name}/` or `{NN Name}/`) + `topmind.yaml` schema v4 (`categories.extensions` / `categories.overrides` / roles). Prefer `list-categories` (UTR) or scan workspace; skip `hidden`. Roles: buffer / loose-stream / deep-work / fallback / reference / delivery / system — do not hardcode slot numbers.
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# topmind Doctor
|
|
2
|
+
|
|
3
|
+
Use when the user asks to check topmind health, UTR status, MCP exposure, skill drift, or cleanup candidates.
|
|
4
|
+
|
|
5
|
+
Preferred command:
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
node utr/bin/topmind-cli.mjs doctor --json --mcp
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
Report evidence and recommended follow-up. Apply cleanup only according to `writebackMode`.
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://opencode.ai/config.json",
|
|
3
|
+
"skills": {
|
|
4
|
+
"paths": [
|
|
5
|
+
"${topmind_ENGINE_ROOT}/skills"
|
|
6
|
+
]
|
|
7
|
+
},
|
|
8
|
+
"mcp": {
|
|
9
|
+
"topmind": {
|
|
10
|
+
"type": "local",
|
|
11
|
+
"command": [
|
|
12
|
+
"node",
|
|
13
|
+
"${topmind_ENGINE_ROOT}/utr/server/topmind-mcp.mjs"
|
|
14
|
+
]
|
|
15
|
+
}
|
|
16
|
+
},
|
|
17
|
+
"plugin": [
|
|
18
|
+
"${topmind_ENGINE_ROOT}/integrations/opencode/plugins/topmind-plugin.ts"
|
|
19
|
+
]
|
|
20
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
type OpenCodeApp = {
|
|
2
|
+
log?: {
|
|
3
|
+
info?: (message: string) => void;
|
|
4
|
+
};
|
|
5
|
+
};
|
|
6
|
+
|
|
7
|
+
export default async function topmindPlugin(app?: OpenCodeApp) {
|
|
8
|
+
app?.log?.info?.("topmind skill pack loaded");
|
|
9
|
+
|
|
10
|
+
return {
|
|
11
|
+
name: "topmind",
|
|
12
|
+
contentTruth: "topmind-workspace/categories-and-topics",
|
|
13
|
+
dailyEntry: "topmind",
|
|
14
|
+
writesContent: false,
|
|
15
|
+
capabilities: ["skills", "mcp", "commands", "plugin"],
|
|
16
|
+
};
|
|
17
|
+
}
|