psyclaw 0.29.12 → 0.29.13

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.
@@ -14,8 +14,12 @@ const DEFAULT_ITEMS = [
14
14
  { id: "key-claim", label: "关键主张有结果支撑、无过度因果", kind: "requirements", phase: "post-analysis" },
15
15
  { id: "citations", label: "引文 DOI / 字段交叉核验", kind: "citations", phase: "general" },
16
16
  ];
17
- const VALID_STATUS = new Set(["unverified", "verified", "flagged", "skipped"]);
17
+ const VALID_STATUS = new Set(["unverified", "ai-checked", "verified", "flagged", "skipped"]);
18
18
  const VALID_KIND = new Set(["citations", "format", "requirements", "stats", "general"]);
19
+ const SCOPE_PHASES = {
20
+ "analysis-complete": ["pre-analysis", "post-analysis"],
21
+ "academic-finalize": ["pre-analysis", "post-analysis", "general"],
22
+ };
19
23
  export function defaultVerifyChecklist(now = new Date().toISOString()) {
20
24
  return {
21
25
  schemaVersion: VERIFY_CHECKLIST_SCHEMA,
@@ -30,7 +34,8 @@ function isVerifyItem(item) {
30
34
  return typeof row.id === "string"
31
35
  && typeof row.label === "string"
32
36
  && VALID_STATUS.has(row.status)
33
- && (row.kind === undefined || VALID_KIND.has(row.kind));
37
+ && (row.kind === undefined || VALID_KIND.has(row.kind))
38
+ && (row.approvedBy === undefined || row.approvedBy === "ai" || row.approvedBy === "human");
34
39
  }
35
40
  export async function loadVerifyChecklist(root) {
36
41
  const path = await assertSafeProjectPath(root, VERIFY_CHECKLIST_PATH);
@@ -62,6 +67,23 @@ export async function saveVerifyChecklist(root, checklist) {
62
67
  const path = await assertSafeProjectPath(root, VERIFY_CHECKLIST_PATH);
63
68
  await atomicWriteFile(path, `${JSON.stringify(checklist, null, 2)}\n`);
64
69
  }
70
+ /** Ensure default analysis/academic gate items exist before completion checks. */
71
+ export async function ensureDefaultVerifyChecklist(root) {
72
+ const checklist = await loadVerifyChecklist(root);
73
+ const now = new Date().toISOString();
74
+ let changed = false;
75
+ for (const proposed of DEFAULT_ITEMS) {
76
+ if (checklist.items.some((item) => item.id === proposed.id))
77
+ continue;
78
+ checklist.items.push({ ...proposed, status: "unverified", updatedAt: now });
79
+ changed = true;
80
+ }
81
+ if (changed || checklist.items.length === 0) {
82
+ checklist.updatedAt = now;
83
+ await saveVerifyChecklist(root, checklist);
84
+ }
85
+ return checklist;
86
+ }
65
87
  /** Create only the checklist items explicitly proposed by a checklist tool call. */
66
88
  export async function createVerifyItems(root, items) {
67
89
  const checklist = await loadVerifyChecklist(root);
@@ -87,13 +109,37 @@ export async function createVerifyItems(root, items) {
87
109
  }
88
110
  return checklist;
89
111
  }
90
- export async function markVerifyItem(root, id, status, notes, kind) {
112
+ /**
113
+ * Resolve the status that will be persisted.
114
+ * AI `/crosscheck <id> verified` becomes `ai-checked` so human approval remains mandatory.
115
+ */
116
+ export function resolveVerifyMark(requested, source = "ai") {
117
+ if (requested === "human") {
118
+ return { status: "verified", approvedBy: "human" };
119
+ }
120
+ if (requested === "verified") {
121
+ if (source === "human")
122
+ return { status: "verified", approvedBy: "human" };
123
+ return { status: "ai-checked", approvedBy: "ai" };
124
+ }
125
+ if (requested === "ai-checked") {
126
+ return { status: "ai-checked", approvedBy: "ai" };
127
+ }
128
+ return { status: requested, approvedBy: source };
129
+ }
130
+ export async function markVerifyItem(root, id, status, notes, kind, options) {
131
+ const source = options?.source ?? "ai";
132
+ const resolved = resolveVerifyMark(status, source);
91
133
  const checklist = await loadVerifyChecklist(root);
92
134
  const now = new Date().toISOString();
93
135
  const existing = checklist.items.find((item) => item.id === id);
94
136
  if (existing) {
95
- existing.status = status;
137
+ existing.status = resolved.status;
96
138
  existing.updatedAt = now;
139
+ if (resolved.approvedBy !== undefined)
140
+ existing.approvedBy = resolved.approvedBy;
141
+ else
142
+ delete existing.approvedBy;
97
143
  if (notes !== undefined)
98
144
  existing.notes = notes;
99
145
  if (kind !== undefined)
@@ -103,8 +149,9 @@ export async function markVerifyItem(root, id, status, notes, kind) {
103
149
  const item = {
104
150
  id,
105
151
  label: id,
106
- status,
152
+ status: resolved.status,
107
153
  updatedAt: now,
154
+ ...(resolved.approvedBy !== undefined ? { approvedBy: resolved.approvedBy } : {}),
108
155
  ...(kind ? { kind } : {}),
109
156
  ...(notes !== undefined ? { notes } : {}),
110
157
  };
@@ -114,37 +161,78 @@ export async function markVerifyItem(root, id, status, notes, kind) {
114
161
  await saveVerifyChecklist(root, checklist);
115
162
  return checklist;
116
163
  }
117
- /** Mark remaining unverified items as skipped with an explicit disclosure note. */
164
+ /** Mark remaining open items as skipped with an explicit disclosure note. Does not satisfy the human gate. */
118
165
  export async function skipUnverifiedItems(root, reason = "用户跳过核对") {
119
166
  const checklist = await loadVerifyChecklist(root);
120
167
  const now = new Date().toISOString();
121
168
  for (const item of checklist.items) {
122
- if (item.status === "unverified") {
169
+ if (item.status === "unverified" || item.status === "ai-checked") {
123
170
  item.status = "skipped";
124
171
  item.updatedAt = now;
125
- item.notes = item.notes ? `${item.notes}; ${reason}` : `${reason}(未经人核对)`;
172
+ item.approvedBy = "human";
173
+ item.notes = item.notes ? `${item.notes}; ${reason}` : `${reason}(未经人核对;analysis/academic 收尾仍须人核实)`;
126
174
  }
127
175
  }
128
176
  checklist.updatedAt = now;
129
177
  await saveVerifyChecklist(root, checklist);
130
178
  return checklist;
131
179
  }
180
+ function itemPhase(item) {
181
+ return item.phase ?? "general";
182
+ }
183
+ function isHumanVerified(item) {
184
+ return item.status === "verified" && item.approvedBy !== "ai";
185
+ }
186
+ /**
187
+ * Hard gate for analysis handoff and academic finalization.
188
+ * Only human-approved `verified` items pass; AI checks and skips do not.
189
+ */
190
+ export function evaluateHumanVerifyGate(checklist, scope) {
191
+ const phases = new Set(SCOPE_PHASES[scope]);
192
+ const relevant = checklist.items.filter((item) => phases.has(itemPhase(item)));
193
+ const pending = relevant.filter((item) => !isHumanVerified(item));
194
+ if (pending.length === 0 && relevant.length > 0) {
195
+ return { ok: true, checklist };
196
+ }
197
+ const scopeLabel = scope === "analysis-complete" ? "分析收尾 / HANDOFF" : "学术定稿";
198
+ const pendingText = pending.length > 0
199
+ ? pending.map((item) => `${item.id}(${item.status})`).join(", ")
200
+ : "清单为空或缺少默认项";
201
+ return {
202
+ ok: false,
203
+ checklist,
204
+ pending,
205
+ message: [
206
+ `人审硬门禁(${scopeLabel}):须先由 AI /crosscheck,再由人在 Panel「核实」或 /crosscheck <id> human。`,
207
+ `未过人审:${pendingText}`,
208
+ "跳过/AI 已核不算通过。打开 /panel → 核对清单。",
209
+ ].join("\n"),
210
+ };
211
+ }
212
+ export async function assertHumanVerifyGate(root, scope) {
213
+ const checklist = await ensureDefaultVerifyChecklist(root);
214
+ return evaluateHumanVerifyGate(checklist, scope);
215
+ }
132
216
  export function formatVerifyChecklist(checklist) {
133
217
  const lines = [
134
- "交叉核验清单(模型提出项 + 人在 Panel/对话中勾选;跳过须标注未经核对)",
218
+ "交叉核验清单(AI /crosscheck 核查 → 人在 Panel 核实;analysis/academic 收尾强制人审)",
135
219
  `更新:${checklist.updatedAt}`,
136
220
  ];
137
221
  for (const item of checklist.items) {
138
222
  const mark = item.status === "verified" ? "[x]"
139
- : item.status === "flagged" ? "[!]"
140
- : item.status === "skipped" ? "[~]"
141
- : "[ ]";
223
+ : item.status === "ai-checked" ? "[A]"
224
+ : item.status === "flagged" ? "[!]"
225
+ : item.status === "skipped" ? "[~]"
226
+ : "[ ]";
142
227
  const kind = item.kind ? `/${item.kind}` : "";
143
228
  const phase = item.phase ? ` · ${item.phase}` : "";
144
- lines.push(`${mark} ${item.id}${kind}${phase}: ${item.label}${item.notes ? ` ${item.notes}` : ""}`);
229
+ const who = item.approvedBy ? ` · ${item.approvedBy}` : "";
230
+ lines.push(`${mark} ${item.id}${kind}${phase}${who}: ${item.label}${item.notes ? ` — ${item.notes}` : ""}`);
145
231
  }
146
- lines.push("用法:/crosscheck list | /crosscheck <id> verified|unverified|flagged|skipped [备注]");
147
- lines.push("也可:/crosscheck skip(其余未核项标为未经核对)| /crosscheck kind <citations|format|requirements|stats>");
232
+ lines.push("用法:/crosscheck list | /crosscheck kind <citations|format|requirements|stats>");
233
+ lines.push("AI 记核:/crosscheck <id> verified|ai-checked|flagged [备注](记为 AI 已核,不替代人审)");
234
+ lines.push("人审通过:Panel「核实」或 /crosscheck <id> human [备注]");
235
+ lines.push("也可:/crosscheck skip(标未经核对;不解除 analysis/academic 人审门禁)");
148
236
  return lines.join("\n");
149
237
  }
150
238
  export function isNaturalPlanConfirm(text) {
@@ -1 +1 @@
1
- {"version":3,"file":"checklist.js","sourceRoot":"","sources":["../../../src/verify/checklist.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"checklist.js","sourceRoot":"","sources":["../../../src/verify/checklist.ts"],"names":[],"mappings":"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"}
@@ -56,7 +56,7 @@ export async function applyWakeVerifySync(root, prompt, selectedIds) {
56
56
  const selected = new Set(selectedIds);
57
57
  for (const option of prompt.options) {
58
58
  const status = selected.has(option.id) ? "verified" : "unverified";
59
- await markVerifyItem(root, option.id, status, `wake-options:${prompt.id}`, undefined);
59
+ await markVerifyItem(root, option.id, status, `wake-options:${prompt.id}`, undefined, { source: "human" });
60
60
  }
61
61
  return true;
62
62
  }
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../../src/wake-options/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAqB,MAAM,wBAAwB,CAAC;AAC9F,OAAO,EACL,QAAQ,GAKT,MAAM,iBAAiB,CAAC;AAuBzB,SAAS,gBAAgB,CAAC,OAAyB;IACjD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,GAAG,GAAqB,EAAE,CAAC;IACjC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;QAC5B,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAClC,IAAI,CAAC,EAAE,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAAE,SAAS;QAC5C,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACb,GAAG,CAAC,IAAI,CAAC;YACP,EAAE;YACF,KAAK;YACL,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACjF,GAAG,CAAC,MAAM,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACtD,CAAC,CAAC;IACL,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,OAA2B,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;IAC3E,MAAM,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAClD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAClF,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAC1B,MAAM,aAAa,GAAG,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,KAAK,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IAC9G,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,IAAI,OAAO,EAAE,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC;IACnF,MAAM,EAAE,GAAG,QAAQ,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;IAC9C,OAAO;QACL,EAAE;QACF,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,KAAK;QACpC,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACpE,IAAI;QACJ,OAAO;QACP,aAAa;QACb,aAAa,EAAE,OAAO,CAAC,aAAa,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACnE,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,IAAI,KAAK,WAAW;QACtD,SAAS,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE;QACtC,SAAS,EAAE,IAAI,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC,CAAC,WAAW,EAAE;KACnD,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,IAAY,EACZ,MAAyB;IAEzB,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW;QAAE,OAAO,KAAK,CAAC;IACpE,MAAM,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC5D,EAAE,EAAE,MAAM,CAAC,EAAE;QACb,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,KAAK,EAAE,SAAkB;KAC1B,CAAC,CAAC,CAAC,CAAC;IACL,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,IAAY,EACZ,MAAyB,EACzB,WAAqB;IAErB,IAAI,CAAC,MAAM,CAAC,UAAU;QAAE,OAAO,KAAK,CAAC;IACrC,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC;IACtC,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACpC,MAAM,MAAM,GAAiB,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC;QACjF,MAAM,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,gBAAgB,MAAM,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC;IACxF,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CAAC,MAAyB,EAAE,SAAiB;IACjF,OAAO,QAAQ,CAAC,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,MAAyB;IAC9D,OAAO,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,MAAyB;IACxD,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,aAAa,EAAE,gCAAgC,EAAE,GAAG,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACjG,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,MAAyB,EAAE,GAAa;IAChE,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACzE,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;AAC5C,CAAC"}
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../../src/wake-options/runtime.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "psyclaw",
3
- "version": "0.29.12",
3
+ "version": "0.29.13",
4
4
  "description": "A standalone, evidence-grounded social-science research agent with research contracts, evidence gates, and recoverable workflows",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -1,10 +1,19 @@
1
1
  {
2
2
  "schemaVersion": "psyclaw/recommended-skills/v1",
3
- "documentVersion": "0.7.6",
3
+ "documentVersion": "0.7.8",
4
4
  "syncedAt": "2026-09-07",
5
5
  "sourceDocument": "学术AI_Skill分享资料.pdf",
6
6
  "sourceRef": "local-user-curated",
7
7
  "items": [
8
+ {
9
+ "id": "mac-computer-use",
10
+ "name": "Mac Computer Use",
11
+ "kind": "skill",
12
+ "stage": "电脑操控",
13
+ "description": "操控 macOS 上无 API 的原生应用(截图、键鼠、窗口),每步留取证;仅在用户明确授权操控本机 UI 时启用。",
14
+ "sourceRef": "https://github.com/alchaincyf/huashu-mac-use",
15
+ "installHint": "git clone 完整仓库到 skills 目录;启用前须本机辅助功能/屏幕录制权限,并经用户明确批准。"
16
+ },
8
17
  {
9
18
  "id": "scientific-visualization",
10
19
  "name": "Scientific Visualization",
@@ -41,22 +50,6 @@
41
50
  "sourceRef": "https://github.com/preordinary/science-plot-formatter",
42
51
  "installHint": "安装仓库中的 .codex/skills/beautify-chart 完整目录;若该路径不存在,再采用 .claude/skills/beautify-chart。"
43
52
  },
44
- {
45
- "id": "markitdown-bilibili",
46
- "name": "MarkItDown + Bilibili",
47
- "kind": "skill",
48
- "stage": "材料转换",
49
- "description": "字幕优先、转录回退,把 B 站课程和讲座转成带来源状态的 Markdown。",
50
- "sourceRef": "https://github.com/LHT666-hub/markItdown-pro"
51
- },
52
- {
53
- "id": "session-handoff",
54
- "name": "Session Handoff",
55
- "kind": "skill",
56
- "stage": "任务接力",
57
- "description": "把长任务的目标、进度、阻塞和下一步写成可核验的交接状态。",
58
- "sourceRef": "https://github.com/LHT666-hub/session-handoff"
59
- },
60
53
  {
61
54
  "id": "zotero-translators",
62
55
  "name": "Zotero Translators",
@@ -97,22 +90,6 @@
97
90
  "description": "覆盖研究构思、调研、写作、图表、评审和投稿前检查的科研工作流。",
98
91
  "sourceRef": "https://github.com/HKUSTDial/Supervisor-Skills"
99
92
  },
100
- {
101
- "id": "openkb",
102
- "name": "OpenKB",
103
- "kind": "skill",
104
- "stage": "知识库",
105
- "description": "把异构资料编译成可链接、可检索、可持续更新的知识库。",
106
- "sourceRef": "https://github.com/VectifyAI/OpenKB"
107
- },
108
- {
109
- "id": "corpus2skill",
110
- "name": "Corpus2Skill",
111
- "kind": "skill",
112
- "stage": "知识库",
113
- "description": "将大规模语料编译成可导航的 Skill 树和文档索引。",
114
- "sourceRef": "https://github.com/dukesun99/Corpus2Skill"
115
- },
116
93
  {
117
94
  "id": "academic-reference-matcher",
118
95
  "name": "Academic Reference Matcher",
@@ -121,22 +98,6 @@
121
98
  "description": "逐条拆分 Claim、检索来源并输出 Claim–Reference 对照表。",
122
99
  "sourceRef": "https://github.com/keros68/academic-reference-matcher"
123
100
  },
124
- {
125
- "id": "pskoett-ai-skills",
126
- "name": "pskoett AI Skills",
127
- "kind": "skill",
128
- "stage": "经验沉淀",
129
- "description": "把失败和纠正沉淀为候选经验,经过验证后晋升为规则或回归测试。",
130
- "sourceRef": "https://github.com/pskoett/pskoett-ai-skills"
131
- },
132
- {
133
- "id": "omnidistill",
134
- "name": "OmniDistill",
135
- "kind": "skill",
136
- "stage": "知识蒸馏",
137
- "description": "以证据账本统一知识、启发式规则、工作流、反模式和边界。",
138
- "sourceRef": "https://github.com/LHT666-hub/OmniDistill"
139
- },
140
101
  {
141
102
  "id": "journal-frontier-radar",
142
103
  "name": "Journal Frontier Radar",
@@ -155,94 +116,36 @@
155
116
  "sourceRef": "https://github.com/kingfly51/manuscript-statistical-forensics",
156
117
  "installHint": "安装仓库根目录的 SKILL.md 及配套文件;使用时必须提供可读取的论文 PDF。"
157
118
  },
158
- {
159
- "id": "huashu-mac-use",
160
- "name": "Huashu Mac Use",
161
- "kind": "skill",
162
- "stage": "电脑操控",
163
- "description": "花叔:让 agent 操控 Mac 上无 API 的原生应用(computer use),每步留取证。",
164
- "sourceRef": "https://github.com/alchaincyf/huashu-mac-use",
165
- "installHint": "git clone 完整仓库到 skills 目录;仅在用户明确授权操控本机 UI 时启用。"
166
- },
167
- {
168
- "id": "huashu-design",
169
- "name": "Huashu Design",
170
- "kind": "skill",
171
- "stage": "设计与视觉",
172
- "description": "花叔:HTML 原生高保真原型 / 幻灯片 / 动画设计系统。",
173
- "sourceRef": "https://github.com/alchaincyf/huashu-design"
174
- },
175
119
  {
176
120
  "id": "huashu-excel",
177
- "name": "Huashu Excel",
121
+ "name": "Excel Research Data",
178
122
  "kind": "skill",
179
123
  "stage": "数据与文档",
180
- "description": "花叔:Excel/数据分析全流程(体检→清洗→口径→对账→报告)。",
124
+ "description": "Excel/表格数据体检、清洗、口径对齐、对账与分析报告,面向研究数据整理。",
181
125
  "sourceRef": "https://github.com/alchaincyf/huashu-excel"
182
126
  },
183
127
  {
184
128
  "id": "huashu-md-html",
185
- "name": "Huashu MD/HTML",
129
+ "name": "Markdown Publishing",
186
130
  "kind": "skill",
187
131
  "stage": "数据与文档",
188
- "description": "花叔:万物转 Markdown,以及 md→出版级 HTML/DOCX 流水线。",
132
+ "description": "将研究材料转为 Markdown,并导出出版级 HTML/DOCX",
189
133
  "sourceRef": "https://github.com/alchaincyf/huashu-md-html"
190
134
  },
191
- {
192
- "id": "huashu-weread",
193
- "name": "Huashu WeRead",
194
- "kind": "skill",
195
- "stage": "阅读",
196
- "description": "花叔:微信读书顾问(书架/笔记/荐书/复盘)。",
197
- "sourceRef": "https://github.com/alchaincyf/huashu-weread"
198
- },
199
135
  {
200
136
  "id": "huashu-report",
201
- "name": "Huashu Report",
137
+ "name": "Research Report Pipeline",
202
138
  "kind": "skill",
203
139
  "stage": "研究与写作",
204
- "description": "花叔:机构级研究报告生产流水线。",
140
+ "description": "研究报告生产流水线:结构、证据、图表与成稿导出。",
205
141
  "sourceRef": "https://github.com/alchaincyf/huashu-report"
206
142
  },
207
- {
208
- "id": "darwin-skill",
209
- "name": "Darwin Skill",
210
- "kind": "skill",
211
- "stage": "Skill 工程",
212
- "description": "花叔:进化/优化已有 Skill。学者/期刊蒸馏请用推荐的 distill-scholar / distill-journal(非随包 nuwa)。",
213
- "sourceRef": "https://github.com/alchaincyf/darwin-skill"
214
- },
215
- {
216
- "id": "freud-skill",
217
- "name": "Freud Skill (prompt debugger)",
218
- "kind": "skill",
219
- "stage": "Skill 工程",
220
- "description": "花叔:诊断 prompt/skill 为何不好使(不是西格蒙德精神分析镜头;精神分析用随包 freud-perspective)。",
221
- "sourceRef": "https://github.com/alchaincyf/freud-skill"
222
- },
223
- {
224
- "id": "skills-guide",
225
- "name": "Skills Guide",
226
- "kind": "skill",
227
- "stage": "Skill 工程",
228
- "description": "花叔:如何编写 Agent Skill。",
229
- "sourceRef": "https://github.com/alchaincyf/skills-guide"
230
- },
231
- {
232
- "id": "huashu-skills-index",
233
- "name": "Huashu Skills Index",
234
- "kind": "skill",
235
- "stage": "Skill 工程",
236
- "description": "花叔开源 Skills 总目录(旗舰+人物+内置);按需挑选安装,勿整仓塞进核心。",
237
- "sourceRef": "https://github.com/alchaincyf/huashu-skills",
238
- "installHint": "优先读仓库 skills.json;只安装用户选中的子 skill / 旗舰仓库。"
239
- },
240
143
  {
241
144
  "id": "distill-scholar",
242
145
  "name": "Distill Scholar",
243
146
  "kind": "skill",
244
- "stage": "Skill 工程",
245
- "description": "PsyClaw Distill: distill a scholar/school into a methodological lens skill (not upstream nuwa). Install distill-scholar/ from the repo.",
147
+ "stage": "方法蒸馏",
148
+ "description": "将学者/学派蒸馏为可调用的方法论镜头 Skill。安装仓库中的 distill-scholar/ 目录。",
246
149
  "sourceRef": "https://github.com/Exekiel179/distill-skills",
247
150
  "installHint": "Install only the distill-scholar directory (SKILL.md + references)."
248
151
  },
@@ -250,8 +153,8 @@
250
153
  "id": "distill-journal",
251
154
  "name": "Distill Journal",
252
155
  "kind": "skill",
253
- "stage": "Skill 工程",
254
- "description": "PsyClaw Distill: distill journal/venue writing style. Hard gate: ≥3 local full texts; recommend 8–12.",
156
+ "stage": "方法蒸馏",
157
+ "description": "蒸馏目标期刊/会议的写作风格。硬门槛:本地至少 3 篇全文;建议 8–12 篇。",
255
158
  "sourceRef": "https://github.com/Exekiel179/distill-skills",
256
159
  "installHint": "Install only distill-journal/. Prepare ≥3 target-venue full texts under literature/pdfs or a user path before distilling."
257
160
  }
@@ -288,13 +191,13 @@
288
191
  "externalTools": [
289
192
  {
290
193
  "id": "markitdown",
291
- "name": "Microsoft MarkItDown",
194
+ "name": "MarkItDown",
292
195
  "kind": "external-tool",
293
196
  "installable": true,
294
197
  "stage": "材料转换",
295
- "description": "微软开源的文档转 Markdown 工具,可处理 PDF、Word、PPT、Excel、HTML 等材料,并供文档读取类 Skill 调用。",
198
+ "description": "文档转 Markdown 工具,可处理 PDF、Word、PPT、Excel、HTML 等研究材料,并供文档读取类 Skill 调用。",
296
199
  "sourceRef": "https://github.com/microsoft/markitdown",
297
- "installHint": "由当前模型按微软仓库的官方说明安装 MarkItDown,并验证 markitdown 命令可用。微软仓库本身不含 SKILL.md;PsyClaw 将它作为 Skill 可调用的外部工具推荐,不冒充微软官方 Skill。"
200
+ "installHint": "按仓库官方说明安装 MarkItDown,并验证 markitdown 命令可用。该仓库本身不含 SKILL.md;PsyClaw 将其作为可调用的外部工具推荐。"
298
201
  },
299
202
  {
300
203
  "id": "nirapost",
@@ -303,43 +206,10 @@
303
206
  "stage": "网络分析",
304
207
  "description": "用于横断面心理网络模拟干预、置换检验和稳定性分析的 R 工具及复现材料;不是 PsyClaw Skill。",
305
208
  "sourceRef": "https://github.com/kingfly51/NIRA_post",
306
- "installHint": "请按仓库说明安装 NIRApost,并同时安装依赖 https://github.com/JasperNaberman/nodeIdentifyR。该条目仅作为外部 R 工具推荐,不代表 kingfly51 发布了 PsyClaw Skill。"
209
+ "installHint": "请按仓库说明安装 NIRApost,并同时安装依赖 https://github.com/JasperNaberman/nodeIdentifyR。该条目仅作为外部 R 工具推荐。"
307
210
  }
308
211
  ],
309
212
  "installPrep": [
310
- {
311
- "id": "markitdown-bilibili",
312
- "sourceKind": "github",
313
- "sourceUrl": "https://github.com/LHT666-hub/markItdown-pro.git",
314
- "ref": "a601bb294f57dc03a681d2b9fa91d4bb5627bd2f",
315
- "skillPath": "markitdown-bilibili",
316
- "skillName": "markitdown-bilibili",
317
- "license": "MIT",
318
- "target": ".psyclaw/imports/recommended/markitdown-bilibili",
319
- "dependencies": [
320
- "Python >=3.10",
321
- "markitdown[all]",
322
- "yt-dlp",
323
- "FFmpeg (optional for transcription)"
324
- ],
325
- "status": "review-required",
326
- "requiresApproval": true,
327
- "blockedReason": "Runtime dependencies are installed separately and must pass the Skill doctor before conversion."
328
- },
329
- {
330
- "id": "session-handoff",
331
- "sourceKind": "github",
332
- "sourceUrl": "https://github.com/LHT666-hub/session-handoff.git",
333
- "ref": "e18e41900953e0126b6beb0b24387bbaf2178f44",
334
- "skillPath": "session-handoff",
335
- "skillName": "session-handoff",
336
- "license": "MIT",
337
- "target": ".psyclaw/imports/recommended/session-handoff",
338
- "dependencies": [],
339
- "status": "review-required",
340
- "requiresApproval": true,
341
- "blockedReason": "Install manifest and content hash must pass validation before activation."
342
- },
343
213
  {
344
214
  "id": "academic-reference-matcher",
345
215
  "sourceKind": "github",
@@ -1,14 +1,25 @@
1
1
  {
2
2
  "schemaVersion": "psyclaw/recommended-mcp/v1",
3
- "documentVersion": "0.3.0",
3
+ "documentVersion": "0.3.2",
4
4
  "sourceDocument": "学术AI_Skill分享资料.pdf + curated research MCP review",
5
5
  "sourceRef": "user-curated",
6
6
  "items": [
7
+ {
8
+ "id": "computer-use-mcp",
9
+ "name": "Computer Use MCP",
10
+ "stage": "电脑操控",
11
+ "description": "本机桌面控制(Windows / macOS / Linux):截图、键鼠、剪贴板、窗口与应用管理。高风险副作用;默认 discover-only,执行须显式授权。macOS 无 API 原生应用也可另装 Mac Computer Use Skill。",
12
+ "sourceRef": "https://github.com/zavora-ai/computer-use-mcp",
13
+ "transport": "stdio",
14
+ "risk": "desktop-control",
15
+ "writeEffects": true,
16
+ "status": "discover-only"
17
+ },
7
18
  {
8
19
  "id": "markitdown-mcp",
9
- "name": "Microsoft MarkItDown MCP",
20
+ "name": "MarkItDown MCP",
10
21
  "stage": "材料转换",
11
- "description": "微软官方 MarkItDown MCP,通过本机 stdio 提供 convert_to_markdown 工具,把文件或 URI 转换为 Markdown。",
22
+ "description": "MarkItDown MCP,通过本机 stdio 提供 convert_to_markdown 工具,把文件或 URI 转换为 Markdown。",
12
23
  "sourceRef": "https://github.com/microsoft/markitdown/tree/main/packages/markitdown-mcp",
13
24
  "transport": "stdio",
14
25
  "risk": "local-file-and-network-read",
@@ -83,7 +94,7 @@
83
94
  },
84
95
  {
85
96
  "id": "playwright-mcp",
86
- "name": "Microsoft Playwright MCP",
97
+ "name": "Playwright MCP",
87
98
  "stage": "机构全文",
88
99
  "description": "通过浏览器访问出版社、机构代理和登录后的页面;下载动作必须单独人工确认。",
89
100
  "sourceRef": "https://github.com/microsoft/playwright-mcp",
@@ -116,6 +127,7 @@
116
127
  }
117
128
  ],
118
129
  "installPrep": [
130
+ {"id":"computer-use-mcp","sourceKind":"github","ref":"latest","license":"MIT","command":"npx -y @zavora-ai/computer-use-mcp","target":".psyclaw/mcp/computer-use-mcp.json","dependencies":["Node.js >=18","npm","OS accessibility / screen permissions"],"status":"review-required","requiresApproval":true,"blockedReason":"Desktop control is high-risk; pin package version and require explicit per-action approval before enabling write effects."},
119
131
  {"id":"markitdown-mcp","sourceKind":"pypi","ref":"latest-stable","license":"MIT","command":"python -m pip install markitdown-mcp","target":".psyclaw/mcp/markitdown-mcp.json","dependencies":["Python >=3.10","pip","markitdown-mcp"],"status":"installable","requiresApproval":true},
120
132
  {"id":"paper-search-mcp","sourceKind":"github","ref":"c8b642183bb725f0a7faec89e58b558df09079d1","license":"MIT","command":"git clone https://github.com/openags/paper-search-mcp .psyclaw/mcp-src/paper-search-mcp && git -C .psyclaw/mcp-src/paper-search-mcp checkout c8b642183bb725f0a7faec89e58b558df09079d1","target":".psyclaw/mcp/paper-search-mcp.json","dependencies":["Git","Python/uv per repository metadata"],"status":"review-required","requiresApproval":true,"blockedReason":"Verify package entrypoint and lockfile before registering a stdio server."},
121
133
  {"id":"scientific-papers-mcp","sourceKind":"github","ref":"646da8d8af653f6b833f3725bae4cafc38a9428e","license":"unknown","command":"git clone https://github.com/benedict2310/Scientific-Papers-MCP .psyclaw/mcp-src/scientific-papers-mcp && git -C .psyclaw/mcp-src/scientific-papers-mcp checkout 646da8d8af653f6b833f3725bae4cafc38a9428e","target":".psyclaw/mcp/scientific-papers-mcp.json","dependencies":["Git","repository runtime requirements"],"status":"blocked","requiresApproval":true,"blockedReason":"License metadata is not verified."},