@openschool_01/skills 0.1.4 → 0.1.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.
@@ -63,8 +63,13 @@ function loadRegistry() {
63
63
  const registryPath = fs.existsSync(BUNDLED_REGISTRY_PATH)
64
64
  ? BUNDLED_REGISTRY_PATH
65
65
  : WORKSPACE_REGISTRY_PATH;
66
-
67
- return JSON.parse(fs.readFileSync(registryPath, "utf8"));
66
+ const raw = fs.readFileSync(registryPath, "utf8").replace(/^\uFEFF/u, "");
67
+ try {
68
+ return JSON.parse(raw);
69
+ } catch (error) {
70
+ const message = error instanceof Error ? error.message : String(error);
71
+ throw new Error(`技能注册表解析失败 (${registryPath}): ${message}`);
72
+ }
68
73
  }
69
74
 
70
75
  function getRegistryEntry(slug) {
@@ -295,6 +300,13 @@ function installFromClawHub(entry, workspaceDir) {
295
300
  }
296
301
 
297
302
  const targetDir = path.join(workspaceDir, "skills", entry.slug);
303
+ const normalizedInstalledSlug = clawhubSlug.includes("/") ? clawhubSlug.split("/").pop() : clawhubSlug;
304
+ const installedDir = path.join(workspaceDir, "skills", normalizedInstalledSlug || clawhubSlug);
305
+
306
+ if (!fs.existsSync(targetDir) && fs.existsSync(installedDir)) {
307
+ ensureDirectory(path.dirname(targetDir));
308
+ fs.renameSync(installedDir, targetDir);
309
+ }
298
310
 
299
311
  if (!fs.existsSync(targetDir)) {
300
312
  throw new Error(`ClawHub 安装完成后未找到技能目录: ${targetDir}`);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openschool_01/skills",
3
- "version": "0.1.4",
3
+ "version": "0.1.5",
4
4
  "description": "OpenSchool curated skills installer CLI.",
5
5
  "license": "MIT",
6
6
  "bin": {
@@ -3,12 +3,12 @@
3
3
  "slug": "clawdhub",
4
4
  "name": "clawdhub",
5
5
  "tagline": "技能市场入口,帮你搜索、安装、更新和发布技能。",
6
- "category": "office",
6
+ "category": "starter",
7
7
  "badge": "OpenSchool 推荐",
8
8
  "status": "已上线",
9
9
  "difficulty": "入门",
10
10
  "installCommand": "npx @openschool_01/skills install clawdhub",
11
- "packageName": "OpenSchool 安装器(内部接入 ClawHub)",
11
+ "packageName": "OpenSchool Installer",
12
12
  "summary": "适合作为新手接触技能生态的第一步,把技能的搜索、安装和更新入口先统一起来。",
13
13
  "outcomes": [
14
14
  "搜索技能",
@@ -39,7 +39,7 @@
39
39
  "status": "已上线",
40
40
  "difficulty": "入门",
41
41
  "installCommand": "npx @openschool_01/skills install skill-vetter",
42
- "packageName": "OpenSchool 安装器(内部接入 ClawHub)",
42
+ "packageName": "OpenSchool Installer",
43
43
  "summary": "适合新手在安装技能前先做基础安全检查,降低来源不明和权限过高带来的风险。",
44
44
  "outcomes": [
45
45
  "来源检查",
@@ -70,7 +70,7 @@
70
70
  "status": "已上线",
71
71
  "difficulty": "入门",
72
72
  "installCommand": "npx @openschool_01/skills install automation-workflows",
73
- "packageName": "OpenSchool 安装器(内部接入 ClawHub)",
73
+ "packageName": "OpenSchool Installer",
74
74
  "summary": "适合刚开始梳理自动化场景的人,用更清晰的方式把重复工作变成流程。",
75
75
  "outcomes": [
76
76
  "发现重复工作",
@@ -101,7 +101,7 @@
101
101
  "status": "已上线",
102
102
  "difficulty": "入门",
103
103
  "installCommand": "npx @openschool_01/skills install openclaw-tavily-search",
104
- "packageName": "OpenSchool 安装器(内部接入 ClawHub)",
104
+ "packageName": "OpenSchool Installer",
105
105
  "summary": "适合作为联网搜索的备用能力,在常规检索失效时继续兜底。",
106
106
  "outcomes": [
107
107
  "联网兜底",
@@ -132,7 +132,7 @@
132
132
  "status": "已上线",
133
133
  "difficulty": "入门",
134
134
  "installCommand": "npx @openschool_01/skills install multi-search-engine",
135
- "packageName": "OpenSchool 安装器(内部接入 ClawHub)",
135
+ "packageName": "OpenSchool Installer",
136
136
  "summary": "适合需要更稳搜索结果的人,通过多引擎对照减少单一来源偏差。",
137
137
  "outcomes": [
138
138
  "多源检索",
@@ -163,7 +163,7 @@
163
163
  "status": "已上线",
164
164
  "difficulty": "入门",
165
165
  "installCommand": "npx @openschool_01/skills install self-improving",
166
- "packageName": "OpenSchool 安装器(内部接入 ClawHub)",
166
+ "packageName": "OpenSchool Installer",
167
167
  "summary": "适合作为长期使用中的自我优化工具,把一次次踩坑变成后续少走弯路的经验。",
168
168
  "outcomes": [
169
169
  "错误复盘",
@@ -194,7 +194,7 @@
194
194
  "status": "已上线",
195
195
  "difficulty": "入门",
196
196
  "installCommand": "npx @openschool_01/skills install obsidian",
197
- "packageName": "OpenSchool 安装器(内部接入 ClawHub)",
197
+ "packageName": "OpenSchool Installer",
198
198
  "summary": "适合想把零散知识长期积累下来的人,让知识管理和工作过程更连贯。",
199
199
  "outcomes": [
200
200
  "笔记协作",
@@ -225,7 +225,7 @@
225
225
  "status": "已上线",
226
226
  "difficulty": "入门",
227
227
  "installCommand": "npx @openschool_01/skills install ontology",
228
- "packageName": "OpenSchool 安装器(内部接入 ClawHub)",
228
+ "packageName": "OpenSchool Installer",
229
229
  "summary": "适合希望把信息关系理清楚的人,让知识图谱和任务结构更清晰。",
230
230
  "outcomes": [
231
231
  "结构化关系",
@@ -256,7 +256,7 @@
256
256
  "status": "已上线",
257
257
  "difficulty": "入门",
258
258
  "installCommand": "npx @openschool_01/skills install markdown-converter",
259
- "packageName": "OpenSchool 安装器(内部接入 ClawHub)",
259
+ "packageName": "OpenSchool Installer",
260
260
  "summary": "适合把各类文件整理成统一 Markdown 工作流的人,方便后续复用和再加工。",
261
261
  "outcomes": [
262
262
  "文档转换",
@@ -282,12 +282,12 @@
282
282
  "slug": "summarize",
283
283
  "name": "summarize",
284
284
  "tagline": "快速总结网页、视频、PDF 等内容,方便继续加工。",
285
- "category": "office",
285
+ "category": "starter",
286
286
  "badge": "OpenSchool 推荐",
287
287
  "status": "已上线",
288
288
  "difficulty": "入门",
289
289
  "installCommand": "npx @openschool_01/skills install summarize",
290
- "packageName": "OpenSchool 安装器(内部接入 ClawHub)",
290
+ "packageName": "OpenSchool Installer",
291
291
  "summary": "适合作为高频总结工具,把信息先快速收拢,再继续整理和输出。",
292
292
  "outcomes": [
293
293
  "网页总结",
@@ -306,8 +306,8 @@
306
306
  "部分场景需要额外 API Key 或本地 CLI"
307
307
  ],
308
308
  "sourceType": "clawhub",
309
- "clawhubSlug": "summarize",
310
- "clawhubUrl": "https://clawhub.ai/steipete/summarize"
309
+ "clawhubSlug": "summarize-pro",
310
+ "clawhubUrl": "https://clawhub.ai/mkpareek0315/summarize-pro"
311
311
  },
312
312
  {
313
313
  "slug": "web-access",
@@ -352,7 +352,7 @@
352
352
  "status": "已上线",
353
353
  "difficulty": "进阶",
354
354
  "installCommand": "npx @openschool_01/skills install word-docx",
355
- "packageName": "OpenSchool 安装器(内部接入 ClawHub)",
355
+ "packageName": "OpenSchool Installer",
356
356
  "summary": "适合需要稳定处理 Word 文档的人,能更可靠地生成、检查和修改 DOCX 文件,尤其适合正式文档、方案和交付稿。",
357
357
  "outcomes": [
358
358
  "生成 DOCX 文档",
@@ -384,7 +384,7 @@
384
384
  "status": "已上线",
385
385
  "difficulty": "进阶",
386
386
  "installCommand": "npx @openschool_01/skills install powerpoint-pptx",
387
- "packageName": "OpenSchool 安装器(内部接入 ClawHub)",
387
+ "packageName": "OpenSchool Installer",
388
388
  "summary": "适合要稳定做演示文稿的人,可以围绕版式、模板、占位符、备注和图表来处理 PPTX,比只生成一堆页面更适合正式办公场景。",
389
389
  "outcomes": [
390
390
  "生成 PPTX 演示稿",
@@ -416,7 +416,7 @@
416
416
  "status": "已上线",
417
417
  "difficulty": "进阶",
418
418
  "installCommand": "npx @openschool_01/skills install excel-xlsx",
419
- "packageName": "OpenSchool 安装器(内部接入 ClawHub)",
419
+ "packageName": "OpenSchool Installer",
420
420
  "summary": "适合经常处理表格的人,能更稳定地创建和修改 Excel 工作簿,适用于公式、格式、日期类型和模板保留这类办公高频需求。",
421
421
  "outcomes": [
422
422
  "生成 XLSX 表格",
@@ -448,7 +448,7 @@
448
448
  "status": "已上线",
449
449
  "difficulty": "进阶",
450
450
  "installCommand": "npx @openschool_01/skills install pdf-processing",
451
- "packageName": "OpenSchool 安装器(内部接入 ClawHub)",
451
+ "packageName": "OpenSchool Installer",
452
452
  "summary": "适合日常办公里处理 PDF 的场景,能做提取、表格读取、表单填写和文档合并,比较贴近真实文档流转需求。",
453
453
  "outcomes": [
454
454
  "提取 PDF 文本",
@@ -532,67 +532,5 @@
532
532
  ],
533
533
  "sourceType": "official",
534
534
  "localPackageDir": "packages/skills/xiaohongshu-assistant"
535
- },
536
- {
537
- "slug": "nano-banana-pro",
538
- "name": "Nano Banana Pro",
539
- "tagline": "把海报、封面和宣传图需求整理成更稳的生图提示词。",
540
- "category": "content",
541
- "badge": "OpenSchool 推荐",
542
- "status": "已上线",
543
- "difficulty": "进阶",
544
- "installCommand": "npx @openschool_01/skills install nano-banana-pro",
545
- "packageName": "@openschool_01/skill-nano-banana-pro",
546
- "summary": "适合做海报、封面、宣传图和产品视觉的提示词整理,把模糊需求补成更容易出图的一版完整提示词。",
547
- "outcomes": [
548
- "主提示词生成",
549
- "风格变体提示词",
550
- "负面提示词",
551
- "封面图需求整理"
552
- ],
553
- "fitFor": [
554
- "公众号封面",
555
- "小红书配图",
556
- "宣传海报",
557
- "需要稳定生图提示词的内容团队"
558
- ],
559
- "updatedAt": "2026-04-10",
560
- "prerequisites": [
561
- "当前版本是提示词版,不直接调用生图网站",
562
- "适合先产出成品提示词再去即梦、可灵、Midjourney 等工具使用"
563
- ],
564
- "sourceType": "official",
565
- "localPackageDir": "packages/skills/nano-banana-pro"
566
- },
567
- {
568
- "slug": "human-writing",
569
- "name": "Human Writing",
570
- "tagline": "把 AI 文案改成更像真人写的版本,少一点模板味,多一点判断感。",
571
- "category": "content",
572
- "badge": "OpenSchool 推荐",
573
- "status": "已上线",
574
- "difficulty": "进阶",
575
- "installCommand": "npx @openschool_01/skills install human-writing",
576
- "packageName": "@openschool_01/skill-human-writing",
577
- "summary": "适合给公众号、小红书、口播稿和说明文去掉 AI 味,保留信息结构,但把表达变得更顺、更像真人写的。",
578
- "outcomes": [
579
- "去 AI 味改写",
580
- "平台语气调优",
581
- "两版改写输出",
582
- "套话与空话清理"
583
- ],
584
- "fitFor": [
585
- "公众号润色",
586
- "小红书文案优化",
587
- "视频口播改写",
588
- "需要更自然表达的内容团队"
589
- ],
590
- "updatedAt": "2026-04-10",
591
- "prerequisites": [
592
- "适合基于已有文案精修",
593
- "当前版本不负责事实核查,只负责表达优化"
594
- ],
595
- "sourceType": "official",
596
- "localPackageDir": "packages/skills/human-writing"
597
535
  }
598
536
  ]