技能马维斯化器
元技能。输入一个 GitHub 技能仓库 URL,自动执行马维斯化流水线。
触发条件
用户发送 GitHub URL 且该仓库为 agent skill 格式(存在 SKILL.md / README.md 等),或用户明确要求"马维斯化"。
四步流水线
GitHub URL → 拉取(Pull) → 内化(Internalize) → 注册(Register) → 补图(Cover) → skills/market/<slug>/
步骤 1:拉取(Pull)
目标:获取源仓库所有关键文件内容。
操作:
- 从 GitHub URL 提取
owner/repo,拼接 raw 文件 URL - 并行调用
web_fetch拉取以下文件(优先拉取顺序):
-SKILL.md(主技能文件,必拉)
-README.md(了解技能全貌)
- 子引用文件:检查 SKILL.md 中是否有文件引用(如./typography.md、docs/xxx.md等),一并拉取
-LICENSE(获取许可证类型) - 如果
web_fetch返回login_required/needs_browser_retry,改用browserSub Agent
产出:所有源文件的原始内容
步骤 2:内化(Internalize)
目标:将源文件转化为 Marvis 标准格式的单一 SKILL.md。
操作:
2.1 合并子文件
若源仓库存在多个子文件(如 typography.md / surfaces.md / animations.md),将其内容合并到主 SKILL.md 中。原则:
- 保留子文件内容作为 SKILL.md 的章节
- 去除原始文件引用链接(如 [typography.md](./typography.md)),改为章节内联
2.2 适配 Marvis 工具环境
检查源文件中是否有外部依赖,做适配:
- CLI 工具(如 uv tool install specify-cli)→ 抽象为核心方法论,用 Marvis 工具替代(write_file / shell_executor / python_executor)
- 特定 Agent 引用(如 "Claude" / "Cursor" / "Copilot")→ 替换为 Marvis 通用表述
- 外部 API 依赖→ 保留但注明需用户自行配置
2.3 补充 Marvis 标准 Frontmatter
在 SKILL.md 头部补充 YAML frontmatter,包含以下字段:
---
name: <kebab-case slug,如 make-interfaces-feel-better>
displayName: <中文显示名,如 界面打磨>
slug: <与 name 一致>
summary: <一句话摘要(50字以内)>
description: |
马维斯化自 <源仓库 URL>(<许可证> 许可<, <原作者> 官方>)。
<原始定位简述>。
经马维斯化<内化/抽象为><核心能力描述>,<适配说明>。
<核心功能段落(可多段)>。
tags: [<3-8 个中英文标签>]
license: <源仓库许可证,如 MIT / Apache-2.0 / CC-BY-4.0>
version: 1.0.0
created: <YYYY-MM-DD>
updated: <YYYY-MM-DD>
sources:
- name: <源仓库名>
url: <源仓库 URL>
version: main
author: <原作者/组织>
note: <补充说明>
---
Frontmatter 填写规则:
| 字段 | 规则 |
|---|---|
| name / slug | 从源仓库名提取,kebab-case,去除非字母数字的修饰词 |
| displayName | 中文展示名,简洁准确描述技能用途 |
| summary | 一句话,包含"马维斯化自 <源>(<许可证>)" |
| description | 第一段说明来源和马维斯化做了什么;后续段落描述核心能力 |
| tags | 3-8 个,中英文混排,覆盖领域/功能/适用场景 |
| license | 从源仓库 LICENSE 文件提取;无 LICENSE 文件则默认 MIT |
| sources.note | 说明内化方式(合并子文件 / 抽象 CLI 为方法论等) |
2.4 决定 skill 类型
根据技能内容,判定 type 字段(用于 meta.json):
| 类型 | 典型特征 |
|---|---|
| 设计工具 | UI/UX、界面美化、色彩/排版/动效 |
| 开发工具 | 代码生成、框架、工作流、CI/CD |
| 写作 | 文案、文章、营销内容生成 |
| 分析 | 数据/代码/需求/竞品分析 |
| 项目管理 | 需求/任务/流程管理 |
| 信息检索 | 搜索/爬取/知识库查询 |
| 效率工具 | 自动化/批处理/文件操作 |
| 其他 | 无法归入以上类别 |
步骤 3:注册(Register)
目标:生成 meta.json 并同步到腾讯技能商店。
操作:
3.1 生成 meta.json
{
"name": "<slug>",
"display_name": "<中文展示名,8 字以内>",
"slug": "<slug>",
"description": "<summary 的扩展版,100 字以内>",
"display_description": "<一句话中文简介,20 字以内>",
"author": "<源仓库作者/组织>",
"type": "<类型>",
"version": "1.0.0",
"license": "<源仓库许可证>",
"source_url": "<源仓库 URL>",
"md5": "<SKILL.md 的 MD5 哈希>",
"scope": "global",
"tags": ["<与 frontmatter 一致,中英文混排 4-8 个>"],
"use_cases": ["<4 条中文触发语,用户可能说的原话>"],
"cover": "cover.svg"
}
字段规则(全部必填):
| 字段 | 规则 |
|---|---|
| name / slug | kebab-case,从源仓库名提取,去除非字母数字的修饰词 |
| display_name | 中文展示名,精炼准确,≤8 字 |
| description | 扩展摘要,100 字以内,涵盖核心能力和马维斯化处理方式 |
| display_description | 一句话中文简介,≤20 字,用于商店列表卡片 |
| author | 源仓库作者或组织名(从 GitHub owner 提取) |
| type | 见 §2.4 分类表 |
| version | 初始为 1.0.0 |
| license | 从源仓库 LICENSE 文件提取;无 LICENSE 文件则填 "MIT" |
| source_url | 源仓库完整 URL(https://github.com/owner/repo) |
| md5 | 从已写入的 SKILL.md 通过 md5sum 计算,确保与文件一致 |
| scope | 固定为 "global" |
| tags | 4-8 个,中英文混排,覆盖领域/功能/适用场景 |
| use_cases | 4 条,用中文写用户可能说的自然语言触发语 |
| cover | 固定为 "cover.svg",步骤 4 生成后回填 |
3.2 同步到商店
mkdir -p skills/market/<slug>/
cp <temp>/SKILL.md skills/market/<slug>/SKILL.md
cp <temp>/meta.json skills/market/<slug>/meta.json
skills/market/ 即腾讯技能商店的本地注册目录,同步即完成上传。
步骤 4:补图(Cover)
目标:为技能生成 400×240 卡片式 SVG 封面,写入 cover.svg 并更新 meta.json。
操作:
-
用 Python 生成
cover.svg,卡片规格 400×240,包含以下要素:
- 半透明网格背景纹理
- 按项目主题定制的几何图标(magnifier / gears / book / network / sparkle 等)
- 技能英文标题(26px font-weight 800)和 slogan(12px 400)
- 配色与图标 motif 匹配项目身份 -
写入
skills/market/<slug>/cover.svg -
更新
meta.json的cover字段为"cover.svg",同时刷新md5字段 -
参考配色示例:
| 技能类型 | 配色方案 |
|---|---|
| 开发工具 | 深蓝 (#0f172a) + 天蓝 (#38bdf8) |
| 设计工具 | 深黑 (#0a0a0f) + 紫色 (#a78bfa) |
| 效率工具 | 深灰 (#18181b) + 橙色 (#f97316) |
| 写作 | 深灰 (#1a1a2e) + 青色 (#22d3ee) |
| 分析 | 深蓝 (#0c1222) + 绿色 (#34d399) |
SVG 体积控制在 1.8-2.4KB,轻量可直接入库。
产出物清单
完成马维斯化后,用 yyb-product 卡片声明全部产出:
skills/market/<slug>/SKILL.md (SKILL.md,XX KB)
skills/market/<slug>/meta.json (meta.json,XX B)
skills/market/<slug>/cover.svg (封面图,SVG)
示例:make-interfaces-feel-better
- 源仓库:https://github.com/jakubkrehel/make-interfaces-feel-better(MIT)
- 拉取:SKILL.md + 5 个子文件(typography / surfaces / animations / icons / performance)
- 内化:合并 6 文件为单 SKILL.md,补充 frontmatter(author=jakubkrehel,type=设计工具)
- 注册:meta.json(author=jakubkrehel, license=MIT, type=设计工具, display_name=界面质感打磨, display_description, slug, scope=global, 4 条 use_cases)
- 补图:紫色 sparkle 图标封面(400×240 SVG),更新 cover 字段
示例:spec-kit
- 源仓库:https://github.com/github/spec-kit(MIT)
- 判定:非独立 agent skill,而是 CLI 工具(specify-cli)
- 抽象链路:提取 SDD 八阶段核心方法论,去除 CLI 依赖,适配 Marvis 工具环境
- 内化:生成 285 行 SKILL.md(type=开发工具)
- 注册:meta.json(author=github/spec-kit, license=MIT, type=开发工具, display_name=规格驱动开发, display_description, scope=global)
- 补图:天蓝色 route 图标封面
meta.json 必填字段速查
| 字段 | 示例 |
|---|---|
| name/slug | make-interfaces-feel-better |
| display_name | 界面质感打磨(≤8 字) |
| description | 100 字以内扩展摘要 |
| display_description | 审查前端界面细节,让界面质感更好(≤20 字) |
| author | jakubkrehel |
| type | 设计工具 / 开发工具 / 效率工具 / 写作 / 分析 / 项目管理 / 信息检索 / 其他 |
| version | 1.0.0 |
| license | MIT / Apache-2.0 / CC-BY-NC-SA-4.0 |
| source_url | https://github.com/owner/repo |
| scope | global |
| tags | ["设计", "UI", "前端", "animation", "typography"](4-8 个中英文混排) |
| use_cases | ["帮我审查 UI 细节", "用 full 模式审查"](4 条) |
| cover | cover.svg |
| (内容由AI生成,仅供参考) |