mirror of
https://git.openapi.site/https://github.com/desirecore/market.git
synced 2026-09-06 02:03:46 +08:00
## 背景 / Background 市场里 25 个 pointer 条目中有 **14 个点安装必然失败**,客户端返回 502「源仓库中未找到 SKILL.md(pointer 指向有误)」。 根因是 `entry.json` 的 `source` 指错:客户端按 `source.path` 定位内容(缺省则取仓库根),而这些条目的 `path` 缺失或 URL 指向了 HTML 页面,`contentDir/SKILL.md` 自然不存在。 Of the 25 pointer entries, **14 always failed to install** with a 502. The `source` pointers were wrong: `path` was missing (so the client looked at the repo root) or `repoUrl` pointed at an HTML page instead of the content. ## 改动 / Changes ### 1. 补 `source.path`(5 个) | 条目 | path | 上游 SKILL.md 实际位置 | |---|---|---| | `impeccable` | `plugin/skills/impeccable` | 根目录没有;`plugin/` 与 `.claude/` 两份内容逐字节一致,取中立的分发目录 | | `ai-news-radar` | `skills/ai-news-radar` | 仓库另有 `skills/radar`,取与条目 id 对应的 | | `taste-skill` | `skills/taste-skill` | 同名子目录 | | `wechatpay-skills` | `wechatpay-payment-integration` | 仓库另有 `wechatpay-product-coupon` 未覆盖,见下方遗留项 | | `luckin-my-coffee` | `my-coffee` | zip 内有一层顶层目录 | ### 2. 修正 web 类条目的源地址(2 个) `amap-jsapi-skill` / `dingtalk-api` 原先指向 ClawHub 的**网页**(`content-type: text/html`),客户端只在 markdown 时才写成 `SKILL.md`,HTML 会落成 `index.html`,校验必失败。 - `amap-jsapi-skill` → 改用 ClawHub 文件 API(返回 `text/markdown`)。该技能在 ClawHub 的发布包 `version.files` 只有一个 `SKILL.md`,单文件抓取正是对的形态。 - `dingtalk-api` → ClawHub 包有 38 个文件(`scripts/*.ts` 等),单文件抓不全,改指内容完整的 GitHub 上游 `ogenes/dingtalk-api` 并锁 ref。 ### 3. 合集条目声明 `children`(7 个,147 个子技能) 这 7 个的上游是「一个仓库装着 N 个平级技能」,没有单一 SKILL.md 可指,靠改 `path` 修不了。配合客户端新增的合集能力(desirecore 主仓库 PR),`entry.json` 现在可声明子技能清单,市场仍是一个条目,安装时由用户勾选装哪几个。 | 条目 | 子技能数 | |---|---| | `marketingskills` | 49 | | `mattpocock-skills` | 35 | | `larksuite-cli` | 27 | | `baoyu-skills` | 21 | | `wecom-cli` | 7 | | `khazix-skills` | 5 | | `netease-skills` | 3 | 新增 `scripts/gen-collection-children.py`:按 `entry.json` 锁定的 ref 克隆上游、扫描子技能、读 frontmatter 生成 `children`。约定「仓库有顶层 `skills/` 就只扫它」——否则会收录 `larksuite/cli` 的 linter 测试夹具 `internal/qualitygate/skillscan/testdata/skills/lark-demo`。 ### 4. `netease-skills` 分支修正 `repoBranch` 写的是 `main`,上游默认分支是 `master`,此前 clone 必然失败(`Could not find main`)。 ### 5. 版本号 `manifest.json` `1.2.24` → `1.2.25`。 ## 验证 / Verification - `uv run scripts/i18n/validate-i18n.py` — OK - `uv run scripts/i18n/validate-i18n.py --online` — OK - **真实运行的 agent-service 上逐个安装**(独立 home + standalone 服务,非模拟):18 个非合集 pointer 条目 **18/18 成功**并完整落盘;7 个合集条目 **7/7 成功**,并验证了部分安装、追加、取消勾选卸载、装到 Agent 私有目录。 ## 遗留项 / Known gaps - `wechatpay-skills` 只覆盖了 `wechatpay-payment-integration`,同仓库的 `wechatpay-product-coupon` 未上架。条目名是复数,后续可拆成两条或改成合集。 - `children[].i18n` 目前只有 `shortDesc`(取自上游 description),**没有中文名**——子技能名沿用上游 id(如 `lark-approval`),以保证与上游文档、Agent 加载路径一致。宝玉 / Matt Pocock / Marketing 三个合集的描述本身就是英文。如需中文化,可接 `i18n-translate.yml` 覆盖 `children` 字段。 - 在线校验目前只查 URL 可达性,**查不出 `path` 指向的目录里有没有 SKILL.md**——这 14 个坏条目当初就是这么一路绿灯合进主干的。建议后续给 `--online` 加这条断言。 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: xieyuanxiang <xieyuanxiang123@gmail.com>
314 lines
11 KiB
JSON
314 lines
11 KiB
JSON
{
|
||
"id": "baoyu-skills",
|
||
"name": "宝玉 Skills",
|
||
"category": "creative",
|
||
"icon": "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M4 5a1 1 0 0 1 1-1h9l6 6v9a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V5Z\" stroke=\"#2563EB\" stroke-width=\"1.7\" stroke-linejoin=\"round\"/><path d=\"M14 4v6h6\" stroke=\"#2563EB\" stroke-width=\"1.7\" stroke-linejoin=\"round\"/><path d=\"m9.5 13.5 1.6 1.6 3.4-3.4\" stroke=\"#2563EB\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></svg>",
|
||
"tags": [
|
||
"baoyu",
|
||
"content-creation",
|
||
"wechat",
|
||
"illustration",
|
||
"productivity"
|
||
],
|
||
"i18n": {
|
||
"zh-CN": {
|
||
"name": "宝玉 Skills",
|
||
"shortDesc": "宝玉分享的 AI Agent 技能集,20+ 技能覆盖封面图、插图、公众号发布、翻译、幻灯片等,适配 Claude Code、Codex 等"
|
||
},
|
||
"en-US": {
|
||
"name": "Baoyu Skills",
|
||
"shortDesc": "Baoyu's 20+ content-creation skills — cover images, illustrations, WeChat publishing, translation and slide decks, for Claude Code and Codex"
|
||
}
|
||
},
|
||
"maintainer": {
|
||
"name": "Baoyu (JimLiu)",
|
||
"verified": false,
|
||
"account": "JimLiu",
|
||
"url": "https://github.com/JimLiu/baoyu-skills"
|
||
},
|
||
"stewardship": "community",
|
||
"license": "MIT",
|
||
"redistribution": "allowed",
|
||
"source": {
|
||
"kind": "git",
|
||
"repoUrl": "https://github.com/JimLiu/baoyu-skills.git",
|
||
"repoBranch": "main",
|
||
"ref": "6b7a2e417500561a5ecdd0b168332f4142584617"
|
||
},
|
||
"children": [
|
||
{
|
||
"id": "baoyu-article-illustrator",
|
||
"path": "skills/baoyu-article-illustrator",
|
||
"version": "1.117.4",
|
||
"i18n": {
|
||
"zh-CN": {
|
||
"shortDesc": "Analyzes article structure, identifies positions requiring visual aids, generates illustrations with Type × Style × Palette three-dimension approach."
|
||
},
|
||
"en-US": {
|
||
"shortDesc": "Analyzes article structure, identifies positions requiring visual aids, generates illustrations with Type × Style × Palette three-dimension approach."
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"id": "baoyu-comic",
|
||
"path": "skills/baoyu-comic",
|
||
"version": "1.117.4",
|
||
"i18n": {
|
||
"zh-CN": {
|
||
"shortDesc": "Knowledge comic creator supporting multiple art styles and tones."
|
||
},
|
||
"en-US": {
|
||
"shortDesc": "Knowledge comic creator supporting multiple art styles and tones."
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"id": "baoyu-compress-image",
|
||
"path": "skills/baoyu-compress-image",
|
||
"version": "1.56.1",
|
||
"i18n": {
|
||
"zh-CN": {
|
||
"shortDesc": "Compresses images to WebP (default) or PNG with automatic tool selection."
|
||
},
|
||
"en-US": {
|
||
"shortDesc": "Compresses images to WebP (default) or PNG with automatic tool selection."
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"id": "baoyu-cover-image",
|
||
"path": "skills/baoyu-cover-image",
|
||
"version": "1.117.5",
|
||
"i18n": {
|
||
"zh-CN": {
|
||
"shortDesc": "Generates article cover images with 5 dimensions (type, palette, rendering, text, mood) combining 11 color palettes and 7 rendering styles."
|
||
},
|
||
"en-US": {
|
||
"shortDesc": "Generates article cover images with 5 dimensions (type, palette, rendering, text, mood) combining 11 color palettes and 7 rendering styles."
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"id": "baoyu-danger-gemini-web",
|
||
"path": "skills/baoyu-danger-gemini-web",
|
||
"version": "1.56.2",
|
||
"i18n": {
|
||
"zh-CN": {
|
||
"shortDesc": "Generates images and text via reverse-engineered Gemini Web API."
|
||
},
|
||
"en-US": {
|
||
"shortDesc": "Generates images and text via reverse-engineered Gemini Web API."
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"id": "baoyu-danger-x-to-markdown",
|
||
"path": "skills/baoyu-danger-x-to-markdown",
|
||
"version": "1.117.3",
|
||
"i18n": {
|
||
"zh-CN": {
|
||
"shortDesc": "Converts X (Twitter) tweets and articles to markdown with YAML front matter."
|
||
},
|
||
"en-US": {
|
||
"shortDesc": "Converts X (Twitter) tweets and articles to markdown with YAML front matter."
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"id": "baoyu-diagram",
|
||
"path": "skills/baoyu-diagram",
|
||
"version": "1.117.3",
|
||
"i18n": {
|
||
"zh-CN": {
|
||
"shortDesc": "Create professional, dark-themed SVG diagrams of any type — architecture diagrams, flowcharts, sequence diagrams, structural diagrams, mind maps, timelines, ill…"
|
||
},
|
||
"en-US": {
|
||
"shortDesc": "Create professional, dark-themed SVG diagrams of any type — architecture diagrams, flowcharts, sequence diagrams, structural diagrams, mind maps, timelines, ill…"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"id": "baoyu-electron-extract",
|
||
"path": "skills/baoyu-electron-extract",
|
||
"version": "1.119.0",
|
||
"i18n": {
|
||
"zh-CN": {
|
||
"shortDesc": "Extracts resources and JavaScript from any installed Electron app (`.asar` bundle), restoring original sources from `.js.map` files when available or formatting…"
|
||
},
|
||
"en-US": {
|
||
"shortDesc": "Extracts resources and JavaScript from any installed Electron app (`.asar` bundle), restoring original sources from `.js.map` files when available or formatting…"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"id": "baoyu-format-markdown",
|
||
"path": "skills/baoyu-format-markdown",
|
||
"version": "1.57.0",
|
||
"i18n": {
|
||
"zh-CN": {
|
||
"shortDesc": "Formats plain text or markdown files with frontmatter, titles, summaries, headings, bold, lists, and code blocks."
|
||
},
|
||
"en-US": {
|
||
"shortDesc": "Formats plain text or markdown files with frontmatter, titles, summaries, headings, bold, lists, and code blocks."
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"id": "baoyu-image-gen",
|
||
"path": "skills/baoyu-image-gen",
|
||
"version": "2.1.0",
|
||
"i18n": {
|
||
"zh-CN": {
|
||
"shortDesc": "AI image generation with OpenAI GPT Image 2, Azure OpenAI, Google, OpenRouter, DashScope, Z.AI GLM-Image, MiniMax, Jimeng, Seedream, Replicate and Agnes APIs."
|
||
},
|
||
"en-US": {
|
||
"shortDesc": "AI image generation with OpenAI GPT Image 2, Azure OpenAI, Google, OpenRouter, DashScope, Z.AI GLM-Image, MiniMax, Jimeng, Seedream, Replicate and Agnes APIs."
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"id": "baoyu-infographic",
|
||
"path": "skills/baoyu-infographic",
|
||
"version": "1.117.4",
|
||
"i18n": {
|
||
"zh-CN": {
|
||
"shortDesc": "Generate professional infographics with 21 layout types and 22 visual styles."
|
||
},
|
||
"en-US": {
|
||
"shortDesc": "Generate professional infographics with 21 layout types and 22 visual styles."
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"id": "baoyu-markdown-to-html",
|
||
"path": "skills/baoyu-markdown-to-html",
|
||
"version": "1.117.3",
|
||
"i18n": {
|
||
"zh-CN": {
|
||
"shortDesc": "Converts Markdown to styled HTML with WeChat-compatible themes."
|
||
},
|
||
"en-US": {
|
||
"shortDesc": "Converts Markdown to styled HTML with WeChat-compatible themes."
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"id": "baoyu-post-to-wechat",
|
||
"path": "skills/baoyu-post-to-wechat",
|
||
"version": "1.118.2",
|
||
"i18n": {
|
||
"zh-CN": {
|
||
"shortDesc": "Posts content to WeChat Official Account (微信公众号) via API or Chrome CDP."
|
||
},
|
||
"en-US": {
|
||
"shortDesc": "Posts content to WeChat Official Account (微信公众号) via API or Chrome CDP."
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"id": "baoyu-post-to-weibo",
|
||
"path": "skills/baoyu-post-to-weibo",
|
||
"version": "1.117.3",
|
||
"i18n": {
|
||
"zh-CN": {
|
||
"shortDesc": "Posts content to Weibo (微博)."
|
||
},
|
||
"en-US": {
|
||
"shortDesc": "Posts content to Weibo (微博)."
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"id": "baoyu-post-to-x",
|
||
"path": "skills/baoyu-post-to-x",
|
||
"version": "1.58.1",
|
||
"i18n": {
|
||
"zh-CN": {
|
||
"shortDesc": "Posts content and articles to X (Twitter)."
|
||
},
|
||
"en-US": {
|
||
"shortDesc": "Posts content and articles to X (Twitter)."
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"id": "baoyu-slide-deck",
|
||
"path": "skills/baoyu-slide-deck",
|
||
"version": "1.117.4",
|
||
"i18n": {
|
||
"zh-CN": {
|
||
"shortDesc": "Generates professional slide deck images from content."
|
||
},
|
||
"en-US": {
|
||
"shortDesc": "Generates professional slide deck images from content."
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"id": "baoyu-translate",
|
||
"path": "skills/baoyu-translate",
|
||
"version": "1.117.3",
|
||
"i18n": {
|
||
"zh-CN": {
|
||
"shortDesc": "This skill should be used when the user asks to \"translate\", \"翻译\", \"精翻\", \"translate article\", \"translate to Chinese\", \"translate to English\", \"改成中文\", \"改成英文\", \"c…"
|
||
},
|
||
"en-US": {
|
||
"shortDesc": "This skill should be used when the user asks to \"translate\", \"翻译\", \"精翻\", \"translate article\", \"translate to Chinese\", \"translate to English\", \"改成中文\", \"改成英文\", \"c…"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"id": "baoyu-url-to-markdown",
|
||
"path": "skills/baoyu-url-to-markdown",
|
||
"version": "1.61.0",
|
||
"i18n": {
|
||
"zh-CN": {
|
||
"shortDesc": "Fetch any URL and convert to markdown using baoyu-fetch CLI (Chrome CDP with site-specific adapters)."
|
||
},
|
||
"en-US": {
|
||
"shortDesc": "Fetch any URL and convert to markdown using baoyu-fetch CLI (Chrome CDP with site-specific adapters)."
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"id": "baoyu-wechat-summary",
|
||
"path": "skills/baoyu-wechat-summary",
|
||
"version": "1.119.0",
|
||
"i18n": {
|
||
"zh-CN": {
|
||
"shortDesc": "Summarizes WeChat group chat highlights into a structured digest using the local wx-cli binary (https://github.com/jackwener/wx-cli)."
|
||
},
|
||
"en-US": {
|
||
"shortDesc": "Summarizes WeChat group chat highlights into a structured digest using the local wx-cli binary (https://github.com/jackwener/wx-cli)."
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"id": "baoyu-xhs-images",
|
||
"path": "skills/baoyu-xhs-images",
|
||
"version": "2.0.1",
|
||
"i18n": {
|
||
"zh-CN": {
|
||
"shortDesc": "Generates infographic image card series with 12 visual styles, 8 layouts, and 3 color palettes."
|
||
},
|
||
"en-US": {
|
||
"shortDesc": "Generates infographic image card series with 12 visual styles, 8 layouts, and 3 color palettes."
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"id": "baoyu-youtube-transcript",
|
||
"path": "skills/baoyu-youtube-transcript",
|
||
"version": "1.1.0",
|
||
"i18n": {
|
||
"zh-CN": {
|
||
"shortDesc": "Downloads YouTube video transcripts/subtitles and cover images by URL or video ID."
|
||
},
|
||
"en-US": {
|
||
"shortDesc": "Downloads YouTube video transcripts/subtitles and cover images by URL or video ID."
|
||
}
|
||
}
|
||
}
|
||
]
|
||
}
|