psyclaw 0.27.4 → 0.27.6

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.
Files changed (55) hide show
  1. package/README.md +11 -5
  2. package/dist/apps/panel/index.html +78 -3449
  3. package/dist/src/adapters/pi/extension.js +388 -77
  4. package/dist/src/adapters/pi/extension.js.map +1 -1
  5. package/dist/src/adapters/pi/rpc.js +7 -4
  6. package/dist/src/adapters/pi/rpc.js.map +1 -1
  7. package/dist/src/branding.js +6 -4
  8. package/dist/src/branding.js.map +1 -1
  9. package/dist/src/chat.js +2 -2
  10. package/dist/src/chat.js.map +1 -1
  11. package/dist/src/core/citations.d.ts +2 -0
  12. package/dist/src/core/citations.js +4 -1
  13. package/dist/src/core/citations.js.map +1 -1
  14. package/dist/src/index.d.ts +3 -0
  15. package/dist/src/index.js +3 -0
  16. package/dist/src/index.js.map +1 -1
  17. package/dist/src/integrations/mcp-runtime.d.ts +13 -0
  18. package/dist/src/integrations/mcp-runtime.js +106 -0
  19. package/dist/src/integrations/mcp-runtime.js.map +1 -0
  20. package/dist/src/literature/archive.d.ts +30 -0
  21. package/dist/src/literature/archive.js +133 -0
  22. package/dist/src/literature/archive.js.map +1 -0
  23. package/dist/src/orchestration/research-agents.d.ts +32 -0
  24. package/dist/src/orchestration/research-agents.js +225 -0
  25. package/dist/src/orchestration/research-agents.js.map +1 -0
  26. package/dist/src/panel/extension.js +0 -52
  27. package/dist/src/panel/extension.js.map +1 -1
  28. package/dist/src/panel/server.js +47 -65
  29. package/dist/src/panel/server.js.map +1 -1
  30. package/dist/src/project/hitl.js +2 -0
  31. package/dist/src/project/hitl.js.map +1 -1
  32. package/dist/src/project/paths.d.ts +2 -6
  33. package/dist/src/project/paths.js +4 -12
  34. package/dist/src/project/paths.js.map +1 -1
  35. package/dist/src/skills/recommended.d.ts +1 -0
  36. package/dist/src/skills/recommended.js +40 -10
  37. package/dist/src/skills/recommended.js.map +1 -1
  38. package/dist/src/telemetry/export.d.ts +32 -0
  39. package/dist/src/telemetry/export.js +102 -1
  40. package/dist/src/telemetry/export.js.map +1 -1
  41. package/dist/src/tui/provider-picker.d.ts +48 -0
  42. package/dist/src/tui/provider-picker.js +115 -0
  43. package/dist/src/tui/provider-picker.js.map +1 -0
  44. package/dist/src/workflows/academic-export.d.ts +14 -0
  45. package/dist/src/workflows/academic-export.js +42 -0
  46. package/dist/src/workflows/academic-export.js.map +1 -0
  47. package/dist/src/workflows/meta-analysis.d.ts +1 -0
  48. package/dist/src/workflows/meta-analysis.js +17 -9
  49. package/dist/src/workflows/meta-analysis.js.map +1 -1
  50. package/dist/src/workflows/publish.js +14 -0
  51. package/dist/src/workflows/publish.js.map +1 -1
  52. package/package.json +1 -1
  53. package/skills/core/academic-grill/SKILL.md +77 -0
  54. package/skills/core/manifest.json +3 -2
  55. package/skills/recommended/catalog.json +56 -9
@@ -0,0 +1,115 @@
1
+ import { matchesKey, truncateToWidth } from "@earendil-works/pi-tui";
2
+ const MAX_VISIBLE = 9;
3
+ export class ProviderPickerComponent {
4
+ title;
5
+ items;
6
+ tui;
7
+ theme;
8
+ keybindings;
9
+ done;
10
+ focused = false;
11
+ selectedIndex;
12
+ constructor(title, items, tui, theme, keybindings, done) {
13
+ this.title = title;
14
+ this.items = items;
15
+ this.tui = tui;
16
+ this.theme = theme;
17
+ this.keybindings = keybindings;
18
+ this.done = done;
19
+ this.selectedIndex = Math.max(0, items.findIndex((item) => item.current));
20
+ }
21
+ invalidate() { }
22
+ render(width) {
23
+ const contentWidth = Math.max(24, width - 4);
24
+ const start = Math.min(Math.max(0, this.selectedIndex - Math.floor(MAX_VISIBLE / 2)), Math.max(0, this.items.length - MAX_VISIBLE));
25
+ const visible = this.items.slice(start, start + MAX_VISIBLE);
26
+ const lines = [this.theme.fg("accent", this.theme.bold(this.title)), ""];
27
+ for (const [offset, item] of visible.entries()) {
28
+ const selected = start + offset === this.selectedIndex;
29
+ const marker = selected ? this.theme.fg("accent", ">") : " ";
30
+ const current = item.current ? this.theme.fg("success", " [当前]") : "";
31
+ const label = `${marker} ${item.label}${current}`;
32
+ lines.push(selected ? this.theme.bold(truncateToWidth(label, contentWidth)) : truncateToWidth(label, contentWidth));
33
+ if (selected && item.description)
34
+ lines.push(this.theme.fg("dim", truncateToWidth(` ${item.description}`, contentWidth)));
35
+ }
36
+ if (this.items.length > MAX_VISIBLE) {
37
+ lines.push(this.theme.fg("dim", ` ${this.selectedIndex + 1}/${this.items.length}`));
38
+ }
39
+ lines.push("", this.theme.fg("dim", "↑/↓ 移动 · Enter 确认 · Esc 关闭"));
40
+ return lines;
41
+ }
42
+ handleInput(data) {
43
+ if (this.keybindings.matches(data, "tui.select.cancel")) {
44
+ this.done({ type: "close" });
45
+ return;
46
+ }
47
+ if (this.items.length === 0)
48
+ return;
49
+ if (this.keybindings.matches(data, "tui.select.up") || matchesKey(data, "k")) {
50
+ this.selectedIndex = (this.selectedIndex - 1 + this.items.length) % this.items.length;
51
+ this.tui.requestRender();
52
+ return;
53
+ }
54
+ if (this.keybindings.matches(data, "tui.select.down") || matchesKey(data, "j")) {
55
+ this.selectedIndex = (this.selectedIndex + 1) % this.items.length;
56
+ this.tui.requestRender();
57
+ return;
58
+ }
59
+ if (this.keybindings.matches(data, "tui.select.confirm")) {
60
+ this.done({ type: "select", id: this.items[this.selectedIndex].id });
61
+ }
62
+ }
63
+ }
64
+ export class SecretInputComponent {
65
+ title;
66
+ envName;
67
+ tui;
68
+ theme;
69
+ keybindings;
70
+ done;
71
+ focused = false;
72
+ value = "";
73
+ constructor(title, envName, tui, theme, keybindings, done) {
74
+ this.title = title;
75
+ this.envName = envName;
76
+ this.tui = tui;
77
+ this.theme = theme;
78
+ this.keybindings = keybindings;
79
+ this.done = done;
80
+ }
81
+ invalidate() { }
82
+ render(width) {
83
+ const contentWidth = Math.max(24, width - 4);
84
+ const mask = this.value ? "•".repeat(Math.min(this.value.length, Math.max(8, contentWidth - 8))) : "(留空则使用已有本地 Key)";
85
+ return [
86
+ this.theme.fg("accent", this.theme.bold(this.title)),
87
+ "",
88
+ truncateToWidth(`API Key: ${mask}`, contentWidth),
89
+ this.theme.fg("dim", `凭据名称:${this.envName}`),
90
+ "",
91
+ this.theme.fg("dim", "直接输入或粘贴 · Enter 保存 · Esc 返回"),
92
+ ];
93
+ }
94
+ handleInput(data) {
95
+ if (this.keybindings.matches(data, "tui.select.cancel")) {
96
+ this.done({ type: "close" });
97
+ return;
98
+ }
99
+ if (this.keybindings.matches(data, "tui.input.submit") || data === "\n" || data === "\r") {
100
+ this.done({ type: "submit", value: this.value });
101
+ return;
102
+ }
103
+ if (this.keybindings.matches(data, "tui.editor.deleteCharBackward")) {
104
+ this.value = [...this.value].slice(0, -1).join("");
105
+ this.tui.requestRender();
106
+ return;
107
+ }
108
+ const pasted = data.replaceAll("\x1b[200~", "").replaceAll("\x1b[201~", "").replace(/[\r\n]/g, "");
109
+ if (pasted && !/[\u0000-\u001f\u007f]/u.test(pasted)) {
110
+ this.value += pasted;
111
+ this.tui.requestRender();
112
+ }
113
+ }
114
+ }
115
+ //# sourceMappingURL=provider-picker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-picker.js","sourceRoot":"","sources":["../../../src/tui/provider-picker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ export type AcademicExportResult = {
2
+ kind: "manuscript";
3
+ markdownPath: string;
4
+ docxPath: string | null;
5
+ docxSha256: string | null;
6
+ } | {
7
+ kind: "analysis-report";
8
+ markdownPath: string;
9
+ docxPath: string;
10
+ docxSha256: string;
11
+ notice: string;
12
+ };
13
+ /** Export a real manuscript through its evidence gate, or explicitly export only an academic analysis report. */
14
+ export declare function exportAcademicDocument(root: string): Promise<AcademicExportResult>;
@@ -0,0 +1,42 @@
1
+ import { basename, dirname, extname } from "node:path";
2
+ import { markdownToDocx } from "../core/docx.js";
3
+ import { sha256File } from "../core/hash.js";
4
+ import { atomicWriteFile } from "../project/jsonl.js";
5
+ import { assertSafeProjectPath } from "../project/paths.js";
6
+ import { readManuscript } from "../project/manuscript.js";
7
+ import { findReferenceDoc, publishManuscript } from "./publish.js";
8
+ /** Export a real manuscript through its evidence gate, or explicitly export only an academic analysis report. */
9
+ export async function exportAcademicDocument(root) {
10
+ const document = await readManuscript(root);
11
+ if (!document.exists || !document.path || !document.markdown.trim())
12
+ throw new Error("没有可导出的 Markdown 文档");
13
+ const isManuscript = document.path === "notes/manuscript.md" || document.path.startsWith("paper/") || document.path.startsWith("docs/");
14
+ if (isManuscript) {
15
+ const result = await publishManuscript(root, { name: basename(document.path, extname(document.path)), exportDocx: true });
16
+ return { kind: "manuscript", markdownPath: result.markdownPath, docxPath: result.docxPath, docxSha256: result.docxSha256 };
17
+ }
18
+ const source = await assertSafeProjectPath(root, document.path);
19
+ const directory = dirname(document.path).replaceAll("\\", "/");
20
+ const stem = basename(document.path, extname(document.path));
21
+ const docxPath = `${directory}/${stem}_APA7.docx`;
22
+ const target = await assertSafeProjectPath(root, docxPath);
23
+ const reference = await findReferenceDoc(root);
24
+ await markdownToDocx(source, target, reference ? await assertSafeProjectPath(root, reference) : undefined);
25
+ const docxSha256 = await sha256File(target);
26
+ await atomicWriteFile(await assertSafeProjectPath(root, ".psyclaw/analysis-report-export.json"), `${JSON.stringify({
27
+ schemaVersion: "psyclaw/analysis-report-export/v1",
28
+ markdownPath: document.path,
29
+ docxPath,
30
+ docxSha256,
31
+ classification: "academic-analysis-report-not-manuscript",
32
+ exportedAt: new Date().toISOString(),
33
+ }, null, 2)}\n`);
34
+ return {
35
+ kind: "analysis-report",
36
+ markdownPath: document.path,
37
+ docxPath,
38
+ docxSha256,
39
+ notice: "前置的文献调研、全文写作和同行评审尚未完成;本文件仅为遵循学术报告规范的分析报告,不是论文。",
40
+ };
41
+ }
42
+ //# sourceMappingURL=academic-export.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"academic-export.js","sourceRoot":"","sources":["../../../src/workflows/academic-export.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ export interface MetaStudy {
5
5
  id: string;
6
6
  title: string;
7
7
  authors: string[];
8
+ abstract?: string;
8
9
  year?: number;
9
10
  venue?: string;
10
11
  doi?: string;
@@ -27,15 +27,23 @@ export async function searchOpenAlex(target, nStudies, fetchFn = fetch) {
27
27
  if (!response.ok)
28
28
  throw new Error(`OpenAlex 检索失败 (${response.status})`);
29
29
  const body = await response.json();
30
- return (body.results ?? []).slice(0, nStudies).map((item, index) => ({
31
- id: `study_${index + 1}`,
32
- title: item.title ?? "untitled",
33
- authors: (item.authorships ?? []).map((entry) => entry.author?.display_name ?? "?").slice(0, 10),
34
- ...(item.publication_year === undefined ? {} : { year: item.publication_year }),
35
- ...(item.host_venue?.display_name ? { venue: item.host_venue.display_name } : {}),
36
- ...(item.doi ? { doi: item.doi } : {}),
37
- ...(item.cited_by_count === undefined ? {} : { citations: item.cited_by_count }),
38
- }));
30
+ return (body.results ?? []).slice(0, nStudies).map((item, index) => {
31
+ const abstract = Object.entries(item.abstract_inverted_index ?? {})
32
+ .flatMap(([word, positions]) => positions.map((position) => ({ word, position })))
33
+ .sort((left, right) => left.position - right.position)
34
+ .map((entry) => entry.word)
35
+ .join(" ");
36
+ return {
37
+ id: item.id ?? `study_${index + 1}`,
38
+ title: item.title ?? "untitled",
39
+ authors: (item.authorships ?? []).map((entry) => entry.author?.display_name ?? "?").slice(0, 10),
40
+ ...(abstract ? { abstract } : {}),
41
+ ...(item.publication_year === undefined ? {} : { year: item.publication_year }),
42
+ ...(item.host_venue?.display_name ? { venue: item.host_venue.display_name } : {}),
43
+ ...(item.doi ? { doi: item.doi } : {}),
44
+ ...(item.cited_by_count === undefined ? {} : { citations: item.cited_by_count }),
45
+ };
46
+ });
39
47
  }
40
48
  /** Parse a CSV with at least `study_id,effect_size,standard_error`. */
41
49
  export function parseEffectCsv(text) {
@@ -1 +1 @@
1
- {"version":3,"file":"meta-analysis.js","sourceRoot":"","sources":["../../../src/workflows/meta-analysis.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"meta-analysis.js","sourceRoot":"","sources":["../../../src/workflows/meta-analysis.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@ import { atomicWriteFile, appendJsonlIfMissing, readJsonl } from "../project/jso
7
7
  import { assertSafeProjectPath, projectPaths } from "../project/paths.js";
8
8
  import { readManuscript } from "../project/manuscript.js";
9
9
  import { allocateProjectVersion } from "../project/versions.js";
10
+ import { auditCitationFulltexts } from "../literature/archive.js";
10
11
  export async function readPublishedVersions(root) {
11
12
  return readJsonl(await assertSafeProjectPath(root, ".psyclaw/publish.jsonl"));
12
13
  }
@@ -50,6 +51,19 @@ export async function publishManuscript(root, options = {}) {
50
51
  if (!markdown.trim()) {
51
52
  throw new Error("没有可发布的手稿内容:请先在编辑器写入内容,或先运行工作流生成论文初稿");
52
53
  }
54
+ const isManuscript = sourcePath === "notes/manuscript.md" || sourcePath?.startsWith("paper/") || sourcePath?.startsWith("docs/");
55
+ if (isManuscript || options.markdown !== undefined) {
56
+ const citationAudit = await auditCitationFulltexts(root);
57
+ if (!citationAudit.ok) {
58
+ const missing = citationAudit.missingPdfs.map((item) => `${item.doi} -> ${item.doiUrl}(下载到 ${item.expectedPath})`);
59
+ throw new Error([
60
+ "论文发布已被引用证据门禁阻断。",
61
+ citationAudit.citedDois.length === 0 ? "尚未登记任何正文引用。" : "",
62
+ citationAudit.missingVerification.length ? `未完成双源核验:${citationAudit.missingVerification.join(", ")}` : "",
63
+ missing.length ? `本地缺少引用论文 PDF:${missing.join(";")}` : "",
64
+ ].filter(Boolean).join(" "));
65
+ }
66
+ }
53
67
  const markdownPath = `paper/${name}.md`;
54
68
  const markdownTarget = await assertSafeProjectPath(root, markdownPath);
55
69
  const written = markdown.endsWith("\n") ? markdown : `${markdown}\n`;
@@ -1 +1 @@
1
- {"version":3,"file":"publish.js","sourceRoot":"","sources":["../../../src/workflows/publish.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"publish.js","sourceRoot":"","sources":["../../../src/workflows/publish.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "psyclaw",
3
- "version": "0.27.4",
3
+ "version": "0.27.6",
4
4
  "description": "A standalone, evidence-grounded social-science research agent — a conversation-driven agent that bundles the Pi runtime with psyclaw's research contracts, evidence gates, and workflows",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -0,0 +1,77 @@
1
+ ---
2
+ name: academic-grill
3
+ description: Stress-test an academic research question, proposal, study design, analysis plan, manuscript claim, review protocol, or AI research project through a one-question-at-a-time interview until its consequential decisions, evidence boundaries, and reporting commitments are explicit. Use when the user invokes /grill or asks for rigorous academic questioning.
4
+ license: MIT
5
+ ---
6
+
7
+ # Academic Grill
8
+
9
+ Interrogate the user's academic plan until both sides share a precise, defensible research specification. Be rigorous about the reasoning while remaining constructive toward the researcher.
10
+
11
+ ## Interaction Contract
12
+
13
+ - Ask exactly one substantive question per turn.
14
+ - Give a concise recommended answer or decision with every question, including the reason and main trade-off. Clearly distinguish that recommendation from facts established by evidence.
15
+ - Resolve upstream decisions before downstream ones. Do not ask about an analysis technique while the construct, estimand, comparison, or data-generating process is still unclear.
16
+ - If the answer can be established from files, project state, registered evidence, code, or prior conversation, inspect those sources instead of asking the user.
17
+ - Use the user's latest answer to choose the next unresolved branch. Do not dump a static questionnaire.
18
+ - When the user's answer creates a contradiction or leaves a consequential ambiguity, resolve it before advancing.
19
+ - Challenge unsupported assumptions, vague constructs, convenience samples, post-hoc outcomes, causal overreach, missing uncertainty, undisclosed researcher degrees of freedom, non-falsifiable claims, and conclusions that exceed the evidence.
20
+ - Never invent a citation, result, sample characteristic, measure, preregistration, ethical approval, or completed analysis.
21
+ - Do not imply that completing the interview validates the study.
22
+
23
+ ## Dependency Order
24
+
25
+ Move through only the branches relevant to the request:
26
+
27
+ 1. research purpose, intended contribution, audience, and decision the work should inform;
28
+ 2. research question, construct definitions, unit of analysis, population or corpus, context, scope, and falsifiability;
29
+ 3. theoretical mechanism, prior evidence, competing explanations, and hypotheses or propositions;
30
+ 4. research paradigm, exploratory versus confirmatory status, preregistration boundary, primary versus secondary outcomes, and multiplicity;
31
+ 5. design, sampling, inclusion and exclusion, comparison or counterfactual, timing, ethics, consent, access rights, and data governance;
32
+ 6. operationalization, measurement validity, reliability, manipulation, confounds, missingness, bias, and data quality;
33
+ 7. target estimand or interpretive aim, analysis strategy, assumptions, effect size, uncertainty, robustness or sensitivity analysis, and stopping rule;
34
+ 8. evidence-to-claim alignment, alternative interpretations, generalizability or transferability, limitations, reproducibility, and reporting commitments.
35
+
36
+ Adapt these branches to the study rather than forcing an experimental template:
37
+
38
+ - For qualitative research, examine positionality, reflexivity, sampling logic, saturation or information power, coding and interpretation, negative cases, and credibility.
39
+ - For evidence synthesis, examine the review question, protocol, databases, search strategy, screening, extraction, risk of bias, heterogeneity, and certainty of evidence.
40
+ - For AI-system research, examine task and construct validity, baselines, data provenance and leakage, evaluation-set independence, ablations, uncertainty, reproducibility, human evaluation, safety, and the boundary between system capability and empirical claim.
41
+ - For mixed-methods research, examine why integration is needed, where strands connect, and how disagreement between strands will be interpreted.
42
+
43
+ ## Completion
44
+
45
+ Do not stop merely because every branch was mentioned. Stop when the consequential decisions are either resolved or explicitly assigned to the researcher, and contradictions have been surfaced. Then provide a compact research specification with:
46
+
47
+ - confirmed decisions;
48
+ - unresolved decisions and their owners;
49
+ - evidence, data, or approvals still required;
50
+ - exploratory and confirmatory boundaries;
51
+ - principal validity and ethics risks;
52
+ - analysis and reporting commitments;
53
+ - claims the current design may support and claims it may not support;
54
+ - the next concrete action.
55
+
56
+ Label the specification as a planning artifact, not evidence that the study is valid or complete.
57
+
58
+ ## Project Persistence
59
+
60
+ The command invocation specifies one persistence mode. Follow it exactly.
61
+
62
+ ### Init mode
63
+
64
+ After the interview is complete, update the initialized project without asking for another confirmation:
65
+
66
+ - `.psyclaw/project.json`: keep its schema and identity fields; update only the goal and paradigm when the confirmed specification changed them;
67
+ - `notes/goal.md`: confirmed purpose, research question, scope, population or corpus, and exclusions;
68
+ - `notes/research-spec.md`: the complete confirmed research specification and claims boundary;
69
+ - `notes/decisions.md`: consequential decisions, rationale, alternatives, owner, and status;
70
+ - `notes/plan.md`: dependency-ordered tasks derived from the confirmed specification, with inputs, outputs, approvals, status, and stop conditions;
71
+ - `notes/decision_request.md`: unresolved decisions that require the researcher, or an explicit `Status: none` when there are none.
72
+
73
+ Preserve valid frontmatter and existing unrelated user content. Do not mark evidence, ethics approval, preregistration, data access, analysis, or review as completed unless project records establish it.
74
+
75
+ ### Review mode
76
+
77
+ After the interview is complete, do not change project files immediately. Show a concise proposed-update summary naming every affected file, then ask one explicit question: whether to apply the updates. Write the same project documents as init mode only after the researcher confirms. If no initialized project exists, offer to return the specification in the conversation without creating project state.
@@ -1,14 +1,15 @@
1
1
  {
2
2
  "schemaVersion": "psyclaw/skill-pack/v1",
3
3
  "id": "psyclaw-core",
4
- "version": "0.1.0",
4
+ "version": "0.2.0",
5
5
  "skills": [
6
+ "academic-grill",
6
7
  "research-intake",
7
8
  "evidence-capture",
8
9
  "citation-audit",
9
10
  "research-brief"
10
11
  ],
11
- "enabledByDefault": ["research-intake", "evidence-capture", "citation-audit", "research-brief"],
12
+ "enabledByDefault": ["academic-grill", "research-intake", "evidence-capture", "citation-audit", "research-brief"],
12
13
  "source": {"kind": "workspace", "ref": "initial-mvp"},
13
14
  "license": {"spdx": "MIT", "evidenceRef": "../../LICENSE"},
14
15
  "dependencyStatus": "ready"
@@ -1,10 +1,65 @@
1
1
  {
2
2
  "schemaVersion": "psyclaw/recommended-skills/v1",
3
- "documentVersion": "0.5.0",
3
+ "documentVersion": "0.6.0",
4
4
  "syncedAt": "2026-08-30",
5
5
  "sourceDocument": "学术AI_Skill分享资料.pdf",
6
6
  "sourceRef": "local-user-curated",
7
7
  "items": [
8
+ {
9
+ "id": "academic-research-suite",
10
+ "name": "ARS Academic Research Suite",
11
+ "kind": "skill",
12
+ "stage": "研究全流程",
13
+ "description": "面向文献研究、论文写作、同行评审与修订的端到端 Academic Research Skills 套件。",
14
+ "sourceRef": "https://github.com/Imbad0202/academic-research-skills-codex",
15
+ "installHint": "安装仓库中的 skills/academic-research-suite 完整目录,目标目录根部必须是该目录的 SKILL.md。"
16
+ },
17
+ {
18
+ "id": "nature-skills",
19
+ "name": "Nature Skills Suite",
20
+ "kind": "skill",
21
+ "skillLayout": "collection",
22
+ "stage": "研究全流程",
23
+ "description": "完整安装 Nature Skills 套件,覆盖检索、精读、数据、统计、实验记录、写作、绘图、引用核验、评审回复与演示文稿等研究任务。",
24
+ "sourceRef": "https://github.com/Yuan1z0825/nature-skills",
25
+ "installHint": "这是多 Skill 套件。将仓库 skills 目录中的全部 nature-* Skill(包括 nature-shared)原样安装到目标目录,保留每个子目录的 SKILL.md、references、scripts、assets、tests 和相对路径;不要只挑选单个 Skill,也不要在套件根目录伪造 SKILL.md。"
26
+ },
27
+ {
28
+ "id": "scientific-visualization",
29
+ "name": "Scientific Visualization",
30
+ "kind": "skill",
31
+ "stage": "科研绘图",
32
+ "description": "创建并审计真实、可访问、可投稿的 Matplotlib、Seaborn 或 Plotly 科研图表。",
33
+ "sourceRef": "https://github.com/K-Dense-AI/scientific-agent-skills",
34
+ "installHint": "只安装仓库中的 skills/scientific-visualization 完整目录,包含其 scripts、assets 与 references。"
35
+ },
36
+ {
37
+ "id": "academic-figure-skill",
38
+ "name": "Academic Figure Skill",
39
+ "kind": "skill",
40
+ "stage": "科研绘图",
41
+ "description": "围绕 Nature、Cell、Science 图稿规范和常用图型生成出版级矢量图,并进行多轮视觉质检。",
42
+ "sourceRef": "https://github.com/TingxiYu/academic-figure-skill",
43
+ "installHint": "安装仓库根目录的完整 Skill 包,保留 SKILL.md、references、assets 和脚本。"
44
+ },
45
+ {
46
+ "id": "figure-generation",
47
+ "name": "Scientific Figure Generation",
48
+ "kind": "skill",
49
+ "stage": "科研绘图",
50
+ "description": "通过查询扩展、可执行绘图代码和视觉反馈生成论文常见的柱状图、热图、消融图、训练曲线等。",
51
+ "sourceRef": "https://github.com/lingzhi227/agent-research-skills",
52
+ "installHint": "只安装仓库中的 skills/figure-generation 完整目录,包含 scripts 和 references。"
53
+ },
54
+ {
55
+ "id": "beautify-chart",
56
+ "name": "Science Plot Formatter",
57
+ "kind": "skill",
58
+ "stage": "图表美化",
59
+ "description": "审查并改造已有 Matplotlib 脚本,使其达到论文投稿所需的排版、配色、字体和导出质量。",
60
+ "sourceRef": "https://github.com/preordinary/science-plot-formatter",
61
+ "installHint": "安装仓库中的 .codex/skills/beautify-chart 完整目录;若该路径不存在,再采用 .claude/skills/beautify-chart。"
62
+ },
8
63
  {
9
64
  "id": "markitdown-bilibili",
10
65
  "name": "MarkItDown + Bilibili",
@@ -110,14 +165,6 @@
110
165
  "stage": "材料转换",
111
166
  "description": "把 PDF、Word、PPT、Excel、HTML 等转换为结构化 Markdown。它是独立 Python 工具,不作为 PsyClaw Skill 安装。",
112
167
  "sourceRef": "https://github.com/microsoft/markitdown"
113
- },
114
- {
115
- "id": "smartplot",
116
- "name": "SmartPlot",
117
- "kind": "external-tool",
118
- "stage": "科研绘图",
119
- "description": "科研绘图、样式统一、多面板组图和可见确认工具。它不是 PsyClaw Skill。",
120
- "sourceRef": "https://smartplot.app"
121
168
  }
122
169
  ],
123
170
  "installPrep": [