Explorar o código

v1.0.3: 元数据规范 + awesome 技能看板

新增 SKILL.md §3 元数据规范
- 14 个元数据字段表(slug/displayName/version/summary/description/tags/
  platform/level/category/icon/homepage/license/author/changelog)
- 三维标签分类体系:平台标签 × 层级标签 × 行业类别标签
- SEO 四原则(summary 前 15 字含关键词、中英双语、tags 三类齐全、版本+changelog)
- 章节重编号:原 §3-§9 → §4-§10,全文 §x.y 交叉引用同步更新
- 母技能自持:SKILL.md frontmatter 按新规范补齐全部 13 个字段

新增 awesome.md — 全生态 16 个技能清单
- 按系统级/服务级/应用级分层,含安装命令、版本、平台、直达链接
- 版本经实测校准(npm registry + 仓库 HEAD 双向核对)
- 明确标注 npm 版本落后于仓库 HEAD 的 5 个技能,避免误导

新增 browser/awesome.html — 可发布 CDN 的技能看板
- 复用 fmode-studio website 蓝紫色主题 token(明暗双主题)
- 响应式卡片网格、层级筛选、关键词搜索、一键复制安装命令
- 已发布 https://fmode.cn/skills/awesome.html(CDN 已刷新,200 校验通过)

版本号三处对齐 1.0.3:package.json / lib/index.mjs / browser/index.mjs
测试 22/22 通过;六项质检 6 通过 / 0 失败 / 0 未验证

Co-Authored-By: Claude Code <noreply@anthropic.com>
liuyuyang hai 1 día
pai
achega
7d0ca06b35
Modificáronse 11 ficheiros con 1145 adicións e 68 borrados
  1. 1 1
      README.md
  2. 148 52
      SKILL.md
  3. 108 0
      awesome.md
  4. 2 2
      bin/skill-core.mjs
  5. 875 0
      browser/awesome.html
  6. 1 1
      browser/index.mjs
  7. 1 1
      lib/index.mjs
  8. 5 7
      package.json
  9. 1 1
      skill-package-manifest.json
  10. 1 1
      skills/skill-core-guide/SKILL.md
  11. 2 2
      test/smoke.mjs

+ 1 - 1
README.md

@@ -139,7 +139,7 @@ cp -r skill-core-guide/skills/skill-core-guide <你的工具技能目录>/skill-
 
 ### npm / skillhub
 ```bash
-npm install @fmode/skill-core-guide
+npm install skill-core-guide
 skillhub install fmode-skill-core-guide   # ⚠️ 待 key 补发,见下方渠道现状
 ```
 

+ 148 - 52
SKILL.md

@@ -1,11 +1,17 @@
 ---
 slug: fmode-skill-core-guide
 displayName: skill-core-guide
-version: 0.1.0
-summary: Fmode Harness 平台母技能标准指南 —— 平台端点真值表、ESM-first 四端标准、四渠道分发、六项自动质检、一键凭证供给、新技能脚手架。
+version: 1.0.3
+summary: Fmode Harness 平台母技能标准指南 —— 平台端点真值表、ESM-first 四端标准、元数据规范、四渠道分发、六项自动质检、一键凭证供给、新技能脚手架。
+description: "Fmode 技能生态的宪法级规范文档。定义平台端点真值表(live/planned/deprecated 三态)、ESM-first 四端等价打包标准、元数据与标签规范、Gogs/GitHub/npm/skillhub 四渠道分发、六项自动质检(skip≠pass)、5 级诚实凭据链与新技能脚手架。读它不需要先读任何别的文档。The constitution of the Fmode skill ecosystem — platform endpoint truth table, ESM-first packaging standard, metadata spec, four-channel distribution, six-point quality gate."
+platform: HermesAgent
+level: 系统级
+category: 平台基础设施
+icon: "emoji: 📐"
+homepage: https://git.fmode.cn/fmode/skill-core-guide
 license: MIT
 author: Yuyang001 (FmodeAgent)
-tags: [fmode, harness, skill, standard, spec, esm, scaffold, meta]
+tags: [HermesAgent, FmodeAgent, 系统级, 平台基础设施, 规范, standard, spec, meta, scaffold, harness, esm, quality-check]
 ---
 
 # skill-core-guide · Fmode Harness 平台母技能标准指南
@@ -24,13 +30,14 @@ tags: [fmode, harness, skill, standard, spec, esm, scaffold, meta]
 - [零、给 Agent 的 60 秒速览](#零给-agent-的-60-秒速览)
 - [一、Fmode Harness 平台基础设施规范](#一fmode-harness-平台基础设施规范)
 - [二、技能分类体系](#二技能分类体系)
-- [三、ESM-first 多端可用打包标准](#三esm-first-多端可用打包标准)
-- [四、多渠道分发机制](#四多渠道分发机制)
-- [五、自动质检与看板机制](#五自动质检与看板机制)
-- [六、一键凭证供给机制](#六一键凭证供给机制)
-- [七、新技能开发 SOP](#七新技能开发-sop)
-- [八、事故复盘:本规范为什么这么写](#八事故复盘本规范为什么这么写)
-- [九、附录](#九附录)
+- [三、元数据规范](#三元数据规范)
+- [四、ESM-first 多端可用打包标准](#四esm-first-多端可用打包标准)
+- [五、多渠道分发机制](#五多渠道分发机制)
+- [六、自动质检与看板机制](#六自动质检与看板机制)
+- [七、一键凭证供给机制](#七一键凭证供给机制)
+- [八、新技能开发 SOP](#八新技能开发-sop)
+- [九、事故复盘:本规范为什么这么写](#九事故复盘本规范为什么这么写)
+- [十、附录](#十附录)
 
 ---
 
@@ -124,10 +131,10 @@ npx --yes skill-core-guide@latest publish . --apply
 | 4 | `server.fmode.cn/api/fmode/voc-skill/install-prompt` | POST | ✅ **live** | `x-parse-session-token` | **凭据自举唯一通道**:sessionToken → API token |
 | 5 | `server.fmode.cn/api/apig/deploy/huaweicloud` | POST | ✅ **live** | Bearer sessionToken | 签发项目隔离 OBS STS |
 | 6 | `server.fmode.cn/api/storage/upload` | POST | 🕓 planned | Bearer `sk-` | 对象存储上传(未上线,走 obsutil 直传) |
-| 7 | `server.fmode.cn/api/storage/credentials` | POST | ✗ **deprecated** | Bearer sessionToken | 从未上线(恒 404),见 §8.1 事故复盘 |
+| 7 | `server.fmode.cn/api/storage/credentials` | POST | ✗ **deprecated** | Bearer sessionToken | 从未上线(恒 404),见 §9.1 事故复盘 |
 | 8 | `server.fmode.cn/api/image/generate` | POST | 🕓 planned | Bearer `sk-` | 网关侧图像生成(未上线,用 #2 代替) |
 | 9 | `server.fmode.cn/api/vision/analyze` | POST | 🕓 planned | Bearer `sk-` | 网关侧视觉识别(未上线,用 #1 多模态代替) |
-| 10 | `server.fmode.cn/api/fmode/verifycode` | POST | 🕓 planned | 无 | 手机号验证码(未上线,见 §6) |
+| 10 | `server.fmode.cn/api/fmode/verifycode` | POST | 🕓 planned | 无 | 手机号验证码(未上线,见 §7) |
 
 **统计**:5 live / 4 planned / 1 deprecated。
 
@@ -248,7 +255,89 @@ Fmode 基础服务的客户端封装。**一个技能封装一个平台能力**
 
 ---
 
-## 三、ESM-first 多端可用打包标准
+## 三、元数据规范
+
+技能元数据是**分发渠道的检索面**:skillhub.cn / npm / GitHub 的搜索排名、
+Agent 的技能选择、看板页面的渲染,全部读同一份字段。字段缺失或写法随意,
+技能就等于「发布即隐身」。
+
+> 本规范是**母技能自持**的:本章定义的字段,`skill-core-guide` 自己必须满足。
+> 全生态 17 个技能的当前取值见 [`inventory.md`](inventory.md) 与
+> [`awesome.md`](awesome.md)。
+
+### 3.1 每个技能的元数据字段
+
+| 字段 | 必填 | 说明 | 举例 |
+|------|------|------|------|
+| **slug** | ✅ | 全网唯一标识(skillhub 主键) | `fmode-skill-heterarchy` |
+| **displayName** | ✅ | 对外展示名(= 仓库名) | `skill-heterarchy` |
+| **version** | ✅ | 语义化版本(小步迭代) | `0.0.11` |
+| **summary** | ✅ | 一句话简介(中英文双语) | `内异层认知协同 — 单一Agent主体内部分化多心智并行…` |
+| **description** | ✅ | 详细描述(3-5 句) | 讲清「是什么 / 解决什么问题 / 怎么用」 |
+| **tags** | ✅ | 关键词标签数组 | `[HermesAgent, FmodeAgent, 系统级, cognition, parallel]` |
+| **platform** | ✅ | 目标平台 | `HermesAgent` | `FmodeCode/ClaudeCode` | `Both` |
+| **level** | ✅ | 能力层级 | `系统级` | `服务级` | `应用级` |
+| **category** | ✅ | 应用类别 / 行业 | `工具效率` | `内容创作` | `图像视觉` | `音频处理` | `平台基础设施` |
+| **icon** | ✅ | 图标标识 | `emoji: 🤖` |
+| **homepage** | 可选 | 项目主页 | `https://git.fmode.cn/fmode/skill-xxx` |
+| **license** | ✅ | 开源协议 | `MIT` |
+| **author** | ✅ | 维护者 | `Yuyang001 (FmodeAgent)` |
+| **changelog** | ✅ | 变更说明 | 每次发布必须更新 |
+
+**与 §3.5 frontmatter 的关系**:上表是**逻辑字段全集**,§3.5 的三种 frontmatter
+是它在各渠道的**物理落位**——Hermes 本地技能用 `name/description/version/tags`,
+仓库根 `SKILL.md` 用 `slug/displayName/version/summary/license`,
+看板/清单用 `level/category/icon/platform`。字段名可随渠道变化,**语义不可变**。
+
+### 3.2 标签分类体系
+
+`tags` 不是自由发挥的关键词堆,而是**三个正交维度**的组合。任意技能的 tags
+都应能拆成「平台 + 层级 + 行业/类别」三类。
+
+#### 平台标签
+
+| 标签 | 含义 |
+|------|------|
+| `HermesAgent` | 运行在 Hermes Agent 上,利用其工具 / 通道 / 记忆 / 技能体系 |
+| `FmodeAgent` | Fmode 品牌通用标签 |
+| `FmodeCode` | 为 Claude Code / FmodeCode CLI 设计 |
+| `ClaudeCode` | 兼容 Claude Code 执行端 |
+
+#### 层级标签
+
+| 标签 | 含义 | 代表技能 |
+|------|------|----------|
+| `系统级` | 底层运行、消息机制、基础功能 | `skill-heterarchy`、`skill-core-guide` |
+| `服务级` | 云资源、模型、拓展能力 | `skill-vision`、`skill-image`、`skill-storage` |
+| `应用级` | 具体业务场景、SOP、行业应用 | `skill-product-lab`、`skill-study-report` |
+
+#### 行业 / 类别标签
+
+`工具效率`、`内容创作`、`图像视觉`、`音频处理`、`平台基础设施`、
+`数据管理`、`学习复盘`、`新品研发`
+
+> 📌 层级标签与 §2 的三层分类体系(`system` / `service` / `application`)
+> 是同一件事的两种写法:中文标签给人看,英文 `tier` 给机器读
+> (见 `lib/inventory.mjs` 的 `TIERS`)。
+
+### 3.3 SEO 优化原则(用于 skillhub.cn 等平台搜索排名)
+
+平台搜索按「标题 / summary 命中 + 标签匹配 + 更新活跃度」排序。四条硬规则:
+
+1. **summary 前 15 个字必须包含核心关键词** —— 搜索结果只截前 15 字,
+   把「做什么」写在最前面,不要写「一款…」「基于…」这类铺垫。
+2. **中英文双语描述** —— 中文为主体,英文辅助检索
+   (`summary` 中文 + `description` 内附英文段落)。
+3. **tags 至少包含三类各一个** —— 一个分类标签 + 一个平台标签 + 一个层级标签。
+4. **每次发布必须更新 `version` + `changelog`** —— 活跃度是排名因子,
+   版本不动的技能会持续掉权。
+
+> ⚠️ **反面案例**:`summary: 一款基于大模型的技能` —— 前 15 字无关键词、
+> 无平台、无层级、无行业标签,在 skillhub 搜索里等同于不存在。
+
+---
+
+## 四、ESM-first 多端可用打包标准
 
 ### 3.1 包结构模板
 
@@ -445,9 +534,9 @@ tags: [tag1, tag2]
 
 ---
 
-## 、多渠道分发机制
+## 、多渠道分发机制
 
-### 4.1 四渠道定位
+### 5.1 四渠道定位
 
 | 渠道 | 定位 | 同步方向 | 凭据位置 |
 |------|------|----------|----------|
@@ -458,7 +547,7 @@ tags: [tag1, tag2]
 
 **工作流**:日常迭代在 Gogs 进行 → 版本稳定后推 GitHub → 同时发 npm 与 skillhub。
 
-### 4.2 发布清单
+### 5.2 发布清单
 
 ```bash
 # ---------- Gogs(主仓)----------
@@ -481,7 +570,7 @@ skillhub publish <dir> --changelog "<msg>"
 
 > 💡 一条命令生成完整计划:`skill-core publish .`(加 `--apply` 实际执行)。
 
-### 4.3 建仓注意事项(实测)
+### 5.3 建仓注意事项(实测)
 
 | 渠道 | 建仓方式 | 实测结论 |
 |------|----------|----------|
@@ -500,7 +589,7 @@ curl -X POST -H "Authorization: Bearer $GH_TOKEN" \
      -d '{"name":"skill-my-thing","description":"...","private":false,"license_template":"mit"}'
 ```
 
-### 4.4 发布前检查清单
+### 5.4 发布前检查清单
 
 - [ ] `npm test` 通过
 - [ ] `skill-core check .` 六项无失败
@@ -513,9 +602,9 @@ curl -X POST -H "Authorization: Bearer $GH_TOKEN" \
 
 ---
 
-## 、自动质检与看板机制
+## 、自动质检与看板机制
 
-### 5.1 六项检查
+### 6.1 六项检查
 
 技能开发完成后**必须**跑六项质检。用 `skill-core check .` 一键执行。
 
@@ -528,7 +617,7 @@ curl -X POST -H "Authorization: Bearer $GH_TOKEN" \
 | 5 | **Loop 迭代能力** | `loop` | `npm view <name>`(轻量)/ `npx --yes <name>@latest`(`--deep`) | 用户装不上 |
 | 6 | **多端可用性** | `multiRuntime` | 实测 ESM `import` + CLI `--help`,扫描 browser 的 `node:` 依赖 | 某端不可用 |
 
-### 5.2 结果语义(关键设计)
+### 6.2 结果语义(关键设计)
 
 质检结果有三种状态,**语义严格区分**:
 
@@ -545,7 +634,7 @@ curl -X POST -H "Authorization: Bearer $GH_TOKEN" \
 每项检查都会输出 **evidence**(可复核的证据:命令、退出码、HTTP 码、输出片段)。
 没有 evidence 的 pass 是不允许的。
 
-### 5.3 常用命令
+### 6.3 常用命令
 
 ```bash
 skill-core check .                              # 全量六项
@@ -556,7 +645,7 @@ skill-core check . --json                       # 机器可读(CI 集成)
 skill-core check . --allow-skip                 # 有 skip 也返回 0(慎用)
 ```
 
-### 5.4 看板机制
+### 6.4 看板机制
 
 **数据源**:`skill-package-manifest.json`(每仓库根目录一个)。
 
@@ -578,7 +667,7 @@ skill-core check . --allow-skip                 # 有 skip 也返回 0(慎用
 配套的运行时上报能力见 `skill-task-progress`(四态上报 `ack→running→done/failed` +
 30s 心跳 + 交付物入库)。
 
-### 5.5 Loop 迭代能力
+### 6.5 Loop 迭代能力
 
 **定义**:技能必须能通过 `npx --yes <skill>@latest` 被拉到并运行,形成
 「开发 → 发布 → 用户拉取 → 反馈 → 再开发」的闭环。
@@ -594,9 +683,9 @@ skill-core check . --allow-skip                 # 有 skip 也返回 0(慎用
 
 ---
 
-## 、一键凭证供给机制
+## 、一键凭证供给机制
 
-### 6.1 诚实声明(先读这段)
+### 7.1 诚实声明(先读这段)
 
 任务书描述的「手机号 + 验证码 → 自动创建 `~/.fmode/`」路径依赖端点:
 
@@ -608,7 +697,7 @@ POST https://server.fmode.cn/api/fmode/verifycode
 因此本技能的 `lib/bootstrap.mjs` **不会伪造短信流程假装成功** ——
 它会探测端点,未上线时明确返回 `{ ok: false, planned: true }` 并给出可执行的替代路径。
 
-### 6.2 当前真实可用的自举路径
+### 7.2 当前真实可用的自举路径
 
 **sessionToken → API token 自举**(生产实测,与 `skill-listen` / `skill-vision` 同源):
 
@@ -629,7 +718,7 @@ fmode API token(sk- 开头)—— 仅内存持有,不落盘、不进日志
 > ⚠️ 服务端**唯一**以 session 鉴权并返回 token 本体的端点是 `voc-skill/install-prompt`。
 > token 内嵌在返回的 prompt 文本中,必须用正则提取。
 
-### 6.3 标准 5 级凭据解析链
+### 7.3 标准 5 级凭据解析链
 
 **所有技能必须实现这条链**(命中即用,逐级回落):
 
@@ -651,7 +740,7 @@ fmode API token(sk- 开头)—— 仅内存持有,不落盘、不进日志
 
 **全链失败时**:打印初始化向导 + **退出码 2**。绝不伪装成功。
 
-### 6.4 目录供给(幂等)
+### 7.4 目录供给(幂等)
 
 ```javascript
 import { ensureFmodeDir, writeConfig } from 'skill-core-guide';
@@ -668,7 +757,7 @@ writeConfig({ storageProjectId: 'proj-xxx', obsBucket: 'my-bucket' });
 > `sessionToken` / `apiKey` / `apiKeys` / `githubToken` / `password` / `secret`。
 > 这些值必须由用户自己写,避免技能代写导致泄露。
 
-### 6.5 检查凭据状态
+### 7.5 检查凭据状态
 
 ```bash
 npx --yes skill-core-guide@latest bootstrap
@@ -687,7 +776,7 @@ npx --yes skill-core-guide@latest bootstrap
   结果:✅ 凭据可用(sessionToken 自举,sk-abc...wxyz)
 ```
 
-### 6.6 端点上线后的启用方式
+### 7.6 端点上线后的启用方式
 
 `/api/fmode/verifycode` 上线后,**只需改一处**:
 
@@ -703,9 +792,9 @@ verifyCode: {
 
 ---
 
-## 、新技能开发 SOP
+## 、新技能开发 SOP
 
-### 7.1 完整流程
+### 8.1 完整流程
 
 ```bash
 # ---------- 1. 从母技能创建脚手架 ----------
@@ -766,7 +855,7 @@ skillhub login --key <API_KEY> --host https://api.skillhub.cn
 skillhub publish . --changelog "首版"
 ```
 
-### 7.2 脚手架生成的结构
+### 8.2 脚手架生成的结构
 
 ```
 skill-my-thing/
@@ -781,7 +870,7 @@ skill-my-thing/
 └── test/smoke.mjs                 # 冒烟测试
 ```
 
-### 7.3 开发纪律(写给 Agent)
+### 8.3 开发纪律(写给 Agent)
 
 | 纪律 | 说明 |
 |------|------|
@@ -795,11 +884,11 @@ skill-my-thing/
 
 ---
 
-## 、事故复盘:本规范为什么这么写
+## 、事故复盘:本规范为什么这么写
 
 规范里的每条「⚠️」都对应一次真实事故。理解事故才能理解规范。
 
-### 8.1 「伪自举」事故 —— skip ≠ pass 的由来
+### 9.1 「伪自举」事故 —— skip ≠ pass 的由来
 
 **背景**:`skill-storage` 0.2.x 实现了「登录即可上传」:用 sessionToken 调
 `POST /api/storage/credentials` 换 OBS STS。
@@ -817,10 +906,10 @@ skill-my-thing/
 
 **沉淀为规范**:
 - 端点真值表区分 `live` / `planned` / `deprecated`(§1.3)
-- 质检的 `skip` 状态**不算通过**,且导致 CI 失败(§5.2)
-- 每项检查必须给出 evidence(§5.2)
+- 质检的 `skip` 状态**不算通过**,且导致 CI 失败(§6.2)
+- 每项检查必须给出 evidence(§6.2)
 
-### 8.2 「看不见 token」事故 —— 第 4 级凭据的由来
+### 9.2 「看不见 token」事故 —— 第 4 级凭据的由来
 
 **问题**:用户按 Claude Code 的正常方式配好了 SK(写在 `~/.claude/settings.json` 的
 `env.ANTHROPIC_AUTH_TOKEN`),但技能只读进程环境变量,**从不读这个文件** →
@@ -828,35 +917,35 @@ skill-my-thing/
 
 **关键认知**:**fmode 的 newapi SK 默认就是 Claude Code 的 `ANTHROPIC_AUTH_TOKEN`**。
 
-**沉淀为规范**:凭据链第 4 级必须读 Claude Code settings(§6.3),
+**沉淀为规范**:凭据链第 4 级必须读 Claude Code settings(§7.3),
 且要覆盖 `.local` 与项目级文件。
 
-### 8.3 「BOM 解析失败」事故
+### 9.3 「BOM 解析失败」事故
 
 **问题**:用户手工保存的 `config.json` 带 UTF-8 BOM(`EF BB BF`),
 `JSON.parse` 直接抛错,技能判为「配置损坏」。
 
 **沉淀为规范**:解析任何用户可能手改的 JSON 前必须剥 BOM(§1.2)。
 
-### 8.4 「假成功」事故 —— ESM 空日志
+### 9.4 「假成功」事故 —— ESM 空日志
 
 **问题**:spawn 子进程执行命令,日志为空、exit 0,被当成成功。
 实际是 `command not found` 被 shell 吞掉,或用了相对路径而 cwd 不对。
 
 **沉淀为规范**:用绝对路径调用可执行文件;判断成功要看**产物**(文件存在、
-HTTP 200、内容非空),不看退出码 alone(§7.3)。
+HTTP 200、内容非空),不看退出码 alone(§8.3)。
 
-### 8.5 「双包危害」—— 为什么 ESM only
+### 9.5 「双包危害」—— 为什么 ESM only
 
 **问题**:同时提供 CJS 与 ESM 入口时,同一模块可能被加载两份,单例状态分裂。
 
-**沉淀为规范**:ESM only,不提供 CJS 入口;CJS 场景用动态 `import()`(§3.3)。
+**沉淀为规范**:ESM only,不提供 CJS 入口;CJS 场景用动态 `import()`(§4.3)。
 
 ---
 
-## 、附录
+## 、附录
 
-### 9.1 CLI 命令参考
+### 10.1 CLI 命令参考
 
 ```bash
 skill-core --help                   # 帮助
@@ -871,7 +960,7 @@ skill-core spec                     # 平台规范摘要
 skill-core endpoints                # 端点真值表
 ```
 
-### 9.2 SDK API 参考
+### 10.2 SDK API 参考
 
 ```javascript
 import {
@@ -895,13 +984,13 @@ import {
 } from 'skill-core-guide';
 ```
 
-### 9.3 浏览器端 API
+### 10.3 浏览器端 API
 
 ```javascript
 import { PLATFORM, ENDPOINTS, validatePackageJson, checkApiConnectivity } from 'skill-core-guide/browser';
 ```
 
-### 9.4 相关技能
+### 10.4 相关技能
 
 | 技能 | 关系 |
 |------|------|
@@ -911,7 +1000,7 @@ import { PLATFORM, ENDPOINTS, validatePackageJson, checkApiConnectivity } from '
 | `skill-storage` | 存储接入的权威参考实现 |
 | `skill-listen` / `skill-vision` | 凭据链与自举的生产参考实现 |
 
-### 9.5 变更记录
+### 10.5 变更记录
 
 #### 1.0.0
 - 首版:平台端点真值表(实测 2026-09-22)、技能分层清单、ESM-first 四端标准、
@@ -922,6 +1011,13 @@ import { PLATFORM, ENDPOINTS, validatePackageJson, checkApiConnectivity } from '
 - 真实端点补充:`/v1/images/generations`(live)、`/api/apig/deploy/huaweicloud`(live)、
   `/api/fmode/voc-skill/install-prompt`(live,凭据自举唯一通道)
 
+#### 1.0.2
+- 新增 **§3 元数据规范**:14 个元数据字段、三维标签分类体系、SEO 四原则
+- 章节重编号:原 §3-§9 → §4-§10,全文 `§x.y` 交叉引用同步更新
+- 新增 [`awesome.md`](awesome.md)(全生态技能清单)与
+  [`browser/awesome.html`](browser/awesome.html)(可发布 CDN 的技能看板)
+- 版本号三处对齐:`package.json` / `lib/index.mjs` / `browser/index.mjs`
+
 ## License
 
 MIT © 2026 Fmode (未来飞马)

+ 108 - 0
awesome.md

@@ -0,0 +1,108 @@
+# Awesome Fmode Skills
+
+> Fmode Harness 平台技能生态全家桶
+> 四渠道直达:Gogs / GitHub / npm / skillhub.cn
+
+[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
+[![Skills](https://img.shields.io/badge/skills-16-6C5CE7.svg)](inventory.md)
+
+**在线看板**:<https://fmode.cn/skills/awesome.html> | **机器可读清单**:`skill-core inventory` | **收录规则**:[`SKILL.md` §3 元数据规范](SKILL.md#三元数据规范)
+
+---
+
+## 系统级(平台基础设施)
+
+> 底层运行、消息机制、基础功能。**不依赖任何业务场景**,是其他技能的地基。
+
+| 技能 | 说明 | 安装 | 版本 | 平台 |
+|------|------|------|------|------|
+| [skill-heterarchy](https://git.fmode.cn/fmode/skill-heterarchy) | 🧠 内异层认知协同 — 单主体内多心智分化 | `npx --yes skill-heterarchy@latest` | 0.0.11 | HermesAgent |
+| [skill-core-guide](https://git.fmode.cn/fmode/skill-core-guide) | 📐 母技能标准指南 — 平台真值表/ESM 四端/元数据规范/六项质检 | `npx --yes skill-core-guide@latest` | 1.0.3 | HermesAgent |
+| [skill-multi-branch](https://git.fmode.cn/fmode/skill-multi-branch) | 🌿 沟通/执行分层编排 — Hermes 沟通,CC/Codex 干活 | `git clone https://git.fmode.cn/fmode/skill-multi-branch.git` | 0.1.1 | HermesAgent |
+| [skill-bypass-permission](https://git.fmode.cn/fmode/skill-bypass-permission) | 🛡️ YOLO 模式体检 — 幂等修复免确认自主执行配置 | `git clone https://git.fmode.cn/fmode/skill-bypass-permission.git` | 0.1.1 | HermesAgent |
+| [skill-task-progress](https://git.fmode.cn/fmode/skill-task-progress) | 📊 任务进度 4 态跟踪(ack/running/done/failed + health) | `git clone https://git.fmode.cn/fmode/skill-task-progress.git` | 0.1.0 | HermesAgent |
+| [skill-agent-clone](https://git.fmode.cn/fmode/skill-agent-clone) | 🧬 数字生命克隆 — 配置/SOUL/记忆/会话分级同步 | `git clone https://git.fmode.cn/fmode/skill-agent-clone.git` | 0.1.1 | FmodeAgent |
+| [plugin-wecom-fix](https://git.fmode.cn/fmode/plugin-wecom-fix) | 🔧 企微通道自检修复 — 四项接收缺陷幂等补丁 | `git clone https://github.com/fmodecn/plugin-wecom-fix.git && python3 plugin-wecom-fix/patch.py --apply` | — | HermesAgent plugin |
+
+## 服务级(云资源 / 模型 / 拓展能力)
+
+> 一个技能封装一个平台能力。接口稳定、无业务假设。
+
+| 技能 | 说明 | 安装 | 版本 | 平台 |
+|------|------|------|------|------|
+| [skill-image](https://github.com/fmodecn/fmode-image) | 🎨 AI 图像生成 — 7 种模式(app/arch/explode/product/scene/portrait/ui) | `npx --yes fmode-image@latest --arch "系统架构图"` | 0.2.0 | FmodeCode/ClaudeCode |
+| [skill-vision](https://github.com/fmodecn/skill-vision) | 👁️ 视觉识别 — 宿主多模态优先 + Fmode API 回落 | `npx --yes fmode-vision@latest --image ./a.png` | 0.1.1 | FmodeCode/ClaudeCode |
+| [skill-listen](https://github.com/fmodecn/skill-listen) | 🎤 录音转写 — 讯飞 LFASR × Fmode 网关,多语种/方言 | `npx --yes fmode-listen@latest transcribe -- meeting.mp3` | 0.1.2 | FmodeCode/ClaudeCode |
+| [skill-ffmpeg](https://github.com/fmodecn/fmode-ffmpeg) | 🎬 FFmpeg 音视频处理 — 转换/压缩/裁剪/提取音频帧 | `npx --yes fmode-ffmpeg@latest extract-audio -- in.mp4` | 0.1.1 | FmodeCode/ClaudeCode |
+| [skill-storage](https://git.fmode.cn/fmode/skill-storage) | 💾 对象存储与公开分享 — 大文件上 OBS,本地零占用 | `git clone https://git.fmode.cn/fmode/skill-storage.git` | 0.3.0 | FmodeCode/ClaudeCode |
+| [fmode-qiwei](https://www.npmjs.com/package/fmode-qiwei) | 🔌 企微网关 SDK — 消息收发/通讯录/应用管理 | `npx --yes fmode-qiwei@latest workspace` | 0.5.2 | FmodeCode/ClaudeCode |
+
+## 应用级(业务场景 / SOP / 行业)
+
+> 面向具体业务场景的端到端技能。可以依赖服务级,但不应被服务级依赖。
+
+| 技能 | 说明 | 安装 | 版本 | 平台 |
+|------|------|------|------|------|
+| [skill-product-lab](https://www.npmjs.com/package/fmode-product-lab) | 🔬 新品研发全案生成器 — VOC+KANO+市场+竞争+定位 | `npx --yes fmode-product-lab@latest --task "抗氧化软糖"` | 0.2.0 | FmodeCode/ClaudeCode |
+| [skill-study-report](https://git.fmode.cn/fmode/skill-study-report) | 📝 学习复盘报告 — 48h 多 Agent 采集 + 三问追问 + HTML PPT | `git clone https://git.fmode.cn/fmode/skill-study-report.git` | 0.1.0 | FmodeCode/ClaudeCode |
+| skill-present | 📽️ HTML 演讲系统 — 课件/报告演讲系统(含 43 条 Claude 规则) | 私有仓(Gogs,未公开) | — | FmodeCode/ClaudeCode |
+
+---
+
+## 版本说明(读这张表前先看)
+
+上表「版本」列给出的是**安装命令实际交付的版本**,取值优先级:
+
+1. **npm 渠道技能** → `registry.npmjs.org` 上的最新版本(`npx` 拉到的就是它)
+2. **仅仓库分发技能** → 仓库 HEAD 的 `package.json` version
+
+> ⚠️ **npm 版本可能落后于仓库 HEAD**。实测差异(2026-09-22):
+> `skill-image` / `skill-vision` / `skill-listen` / `skill-product-lab` 仓库为 `0.2.1`、npm 为 `0.2.0`/`0.1.1`;
+> `skill-ffmpeg` 仓库 `0.1.2`、npm `0.1.1`。**需要仓库最新代码时请用 `git clone` 列**。
+> `skill-task-progress` 的 CLI(`fmode-task-progress`)**未发布到 npm**,仅能 clone。
+
+## 元数据规范速查
+
+每个技能的元数据遵循 [`SKILL.md` §3](SKILL.md#三元数据规范)。最小合规写法:
+
+```yaml
+---
+slug: fmode-skill-xxx          # 全网唯一标识
+displayName: skill-xxx         # 对外展示名
+version: 1.0.0                 # 语义化版本,小步迭代
+summary: 核心关键词放前15字 —— 一句话说清做什么
+description: "3-5 句详细描述(中文为主 + 英文辅助检索)"
+tags: [HermesAgent, 系统级, 平台基础设施, xxx]   # 平台 + 层级 + 类别 各至少一个
+platform: HermesAgent          # HermesAgent | FmodeCode/ClaudeCode | Both
+level: 系统级                   # 系统级 | 服务级 | 应用级
+category: 平台基础设施           # 工具效率 | 内容创作 | 图像视觉 | 音频处理 | 平台基础设施 | 数据管理 | 学习复盘 | 新品研发
+icon: "emoji: 📐"
+homepage: https://git.fmode.cn/fmode/skill-xxx
+license: MIT
+author: Yuyang001 (FmodeAgent)
+changelog: 每次发布必须更新
+---
+```
+
+**SEO 四原则**:① summary 前 15 字含核心关键词 ② 中英双语 ③ tags 三类齐全 ④ 每次发布更新 version + changelog。
+
+---
+
+## 收录新技能
+
+1. 按 [`SKILL.md` §3](SKILL.md#三元数据规范) 补齐元数据(14 个字段)
+2. 在 `lib/inventory.mjs` 的 `INVENTORY` 追加条目(**真值源**)
+3. 在本文件对应层级下追加一行
+4. 跑 `npm test`(校验字段完整性、分层合法性、npm 渠道必须有 `npmName`)
+5. 更新 `browser/awesome.html` 看板并发布到 CDN
+
+## 渠道索引
+
+- **Gogs(主仓)**:<https://git.fmode.cn/fmode/>
+- **GitHub(镜像)**:<https://github.com/fmodecn/>
+- **npm**:<https://www.npmjs.com/search?q=fmode>
+- **skillhub.cn**:<https://skillhub.cn/>(当前仅 `fmode-skill-heterarchy` 在册;`fmode-skill-core-guide` 因企业 key 失效待补发)
+
+## License
+
+MIT © 2026 Fmode (未来飞马)

+ 2 - 2
bin/skill-core.mjs

@@ -218,7 +218,7 @@ async function cmdInit(flags, positional) {
 
   if (!fs.existsSync(TEMPLATE_DIR)) {
     console.error(c(C.red, `✗ 脚手架模板缺失:${TEMPLATE_DIR}`));
-    console.error('  请重新安装:npm install @fmode/skill-core-guide@latest');
+    console.error('  请重新安装:npm install skill-core-guide@latest');
     process.exit(2);
   }
 
@@ -234,7 +234,7 @@ async function cmdInit(flags, positional) {
     skillName,
     cliName,
     displayName: flags.display || skillName,
-    summary: flags.summary || `${skillName} —— 由 @fmode/skill-core-guide 脚手架生成`,
+    summary: flags.summary || `${skillName} —— 由 skill-core-guide 脚手架生成`,
   });
 
   const rel = written.map((f) => path.relative(abs, f)).sort();

+ 875 - 0
browser/awesome.html

@@ -0,0 +1,875 @@
+<!DOCTYPE html>
+<html lang="zh-CN" data-theme="dark">
+<head>
+<meta charset="UTF-8">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<title>Awesome Fmode Skills · Fmode Harness 平台技能看板</title>
+<meta name="description" content="Fmode Harness 平台技能生态全家桶:系统级 / 服务级 / 应用级共 16 个技能,含安装命令、版本与标签。Gogs / GitHub / npm / skillhub.cn 四渠道直达。">
+<meta name="keywords" content="Fmode,Harness,Skill,技能,Agent,HermesAgent,FmodeAgent,ClaudeCode,skillhub,awesome">
+<meta property="og:title" content="Awesome Fmode Skills · 技能看板">
+<meta property="og:description" content="Fmode Harness 平台技能生态全家桶 — 16 个技能,按层级分类,一键复制安装命令。">
+<meta property="og:type" content="website">
+<link rel="icon" href="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'><text y='.9em' font-size='90'>🧩</text></svg>">
+<style>
+/* ===== Theme tokens — 与 fmode-studio website 同源 (src/styles/theme.css) ===== */
+:root {
+  --color-purple: #6C5CE7;
+  --color-purple-light: #A78BFA;
+  --color-purple-dark: #4C3FB8;
+  --color-blue: #4A90D9;
+  --color-blue-light: #60A5FA;
+  --color-cyan: #00D2FF;
+  --gradient-primary: linear-gradient(135deg, var(--color-purple), var(--color-blue));
+  --gradient-hero: linear-gradient(135deg, #1a0533 0%, #0d1b3e 50%, #060d24 100%);
+  --gradient-card: linear-gradient(135deg, rgba(108, 92, 231, 0.15), rgba(74, 144, 217, 0.1));
+  --gradient-border: linear-gradient(135deg, var(--color-purple), var(--color-cyan));
+  --gradient-text: linear-gradient(135deg, var(--color-purple-light), var(--color-cyan));
+
+  --bg-deep: #060913;
+  --bg-page: #060913;
+  --bg-card: rgba(15, 15, 40, 0.6);
+  --bg-card-hover: rgba(25, 25, 60, 0.8);
+  --bg-section-alt: rgba(10, 10, 30, 0.4);
+  --bg-nav: rgba(6, 9, 19, 0.9);
+  --bg-code: rgba(6, 9, 19, 0.7);
+
+  --text-primary: #F0F0FF;
+  --text-secondary: #A0A0C0;
+  --text-muted: #606080;
+  --text-heading: #F0F0FF;
+
+  --border-subtle: rgba(108, 92, 231, 0.15);
+  --border-card: rgba(108, 92, 231, 0.2);
+  --glass-bg: rgba(15, 15, 40, 0.5);
+  --glass-border: rgba(108, 92, 231, 0.2);
+  --glass-blur: blur(20px);
+
+  --shadow-card: 0 20px 60px rgba(0, 0, 0, 0.3);
+  --shadow-nav: 0 4px 30px rgba(0, 0, 0, 0.3);
+
+  --font-heading: 'PingFang SC', 'Microsoft YaHei', 'Noto Sans SC', system-ui, sans-serif;
+  --font-body: 'PingFang SC', 'Microsoft YaHei', 'Noto Sans SC', system-ui, sans-serif;
+  --font-mono: 'JetBrains Mono', 'Fira Code', ui-monospace, monospace;
+
+  --content-width: 1200px;
+  --ease-out-expo: cubic-bezier(0.16, 1, 0.3, 1);
+}
+
+[data-theme="light"] {
+  --color-purple-light: #7C3AED;
+  --color-blue: #3B82F6;
+  --color-cyan: #0891B2;
+  --gradient-hero: linear-gradient(135deg, #EEF2FF 0%, #E0E7FF 50%, #F8F9FC 100%);
+  --gradient-card: linear-gradient(135deg, rgba(108, 92, 231, 0.06), rgba(59, 130, 246, 0.04));
+  --gradient-text: linear-gradient(135deg, #6C5CE7, #0891B2);
+  --bg-deep: #F8F9FC;
+  --bg-page: #F8F9FC;
+  --bg-card: rgba(255, 255, 255, 0.85);
+  --bg-card-hover: rgba(255, 255, 255, 0.95);
+  --bg-section-alt: #F1F5F9;
+  --bg-nav: rgba(248, 249, 252, 0.9);
+  --bg-code: rgba(241, 245, 249, 0.9);
+  --text-primary: #1A1A2E;
+  --text-secondary: #4A4A6A;
+  --text-muted: #6B7280;
+  --text-heading: #0F0F23;
+  --border-subtle: rgba(108, 92, 231, 0.12);
+  --border-card: rgba(108, 92, 231, 0.15);
+  --glass-bg: rgba(255, 255, 255, 0.75);
+  --glass-border: rgba(108, 92, 231, 0.15);
+  --shadow-card: 0 4px 24px rgba(0, 0, 0, 0.06);
+  --shadow-nav: 0 2px 20px rgba(0, 0, 0, 0.06);
+}
+
+*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }
+html { scroll-behavior: smooth; -webkit-font-smoothing: antialiased; }
+body {
+  font-family: var(--font-body);
+  background: var(--bg-page);
+  color: var(--text-primary);
+  line-height: 1.6;
+  overflow-x: hidden;
+  transition: background-color .3s ease, color .3s ease;
+}
+h1, h2, h3 { font-family: var(--font-heading); font-weight: 700; line-height: 1.2; }
+a { color: var(--color-purple-light); text-decoration: none; transition: color .3s; }
+a:hover { color: var(--color-cyan); }
+.wrap { max-width: var(--content-width); margin: 0 auto; padding: 0 24px; }
+
+/* ===== Hero ===== */
+.hero {
+  position: relative; overflow: hidden;
+  background: var(--gradient-hero);
+  padding: 88px 0 64px;
+  border-bottom: 1px solid var(--border-subtle);
+}
+.hero::before {
+  content: ''; position: absolute; inset: 0;
+  background:
+    radial-gradient(700px 340px at 12% 0%, rgba(108, 92, 231, .30), transparent 65%),
+    radial-gradient(600px 300px at 88% 15%, rgba(0, 210, 255, .18), transparent 65%);
+  pointer-events: none;
+}
+.hero .wrap { position: relative; z-index: 1; }
+.badge-row { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 20px; }
+.pill {
+  display: inline-flex; align-items: center; gap: 6px;
+  font-size: 12px; font-weight: 600; letter-spacing: .3px;
+  padding: 5px 12px; border-radius: 999px;
+  border: 1px solid var(--border-card);
+  background: var(--glass-bg); backdrop-filter: var(--glass-blur);
+  color: var(--text-secondary);
+}
+.pill b { color: var(--color-purple-light); }
+.hero h1 {
+  font-size: clamp(2rem, 5vw, 3.4rem);
+  background: var(--gradient-text); -webkit-background-clip: text; background-clip: text;
+  -webkit-text-fill-color: transparent; color: transparent;
+  margin-bottom: 14px;
+}
+.hero p.lead { font-size: clamp(.95rem, 1.6vw, 1.15rem); color: var(--text-secondary); max-width: 720px; }
+.hero .meta { margin-top: 22px; font-size: 13px; color: var(--text-muted); font-family: var(--font-mono); }
+.hero .meta a { color: var(--color-purple-light); }
+
+/* ===== Toolbar ===== */
+.toolbar {
+  position: sticky; top: 0; z-index: 50;
+  background: var(--bg-nav); backdrop-filter: var(--glass-blur);
+  border-bottom: 1px solid var(--border-subtle);
+  box-shadow: var(--shadow-nav);
+}
+.toolbar .wrap { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; padding-top: 12px; padding-bottom: 12px; }
+.search {
+  flex: 1 1 240px; min-width: 180px;
+  display: flex; align-items: center; gap: 8px;
+  background: var(--bg-code); border: 1px solid var(--border-card);
+  border-radius: 10px; padding: 8px 12px;
+}
+.search input {
+  flex: 1; background: none; border: none; outline: none;
+  color: var(--text-primary); font-family: var(--font-body); font-size: 14px;
+}
+.search input::placeholder { color: var(--text-muted); }
+.filters { display: flex; flex-wrap: wrap; gap: 6px; }
+.chip {
+  cursor: pointer; font-size: 12.5px; font-weight: 600;
+  padding: 7px 13px; border-radius: 8px;
+  border: 1px solid var(--border-card); background: transparent;
+  color: var(--text-secondary); font-family: var(--font-body);
+  transition: all .2s var(--ease-out-expo);
+}
+.chip:hover { color: var(--text-primary); border-color: var(--color-purple-light); }
+.chip.active { background: var(--gradient-primary); color: #fff; border-color: transparent; }
+.theme-btn {
+  cursor: pointer; width: 38px; height: 38px; flex: 0 0 auto;
+  border-radius: 10px; border: 1px solid var(--border-card);
+  background: transparent; color: var(--text-secondary); font-size: 16px;
+  transition: all .2s;
+}
+.theme-btn:hover { color: var(--text-primary); border-color: var(--color-purple-light); }
+
+/* ===== Sections ===== */
+main { padding: 8px 0 72px; }
+section.tier { padding: 44px 0 8px; }
+.tier-head { display: flex; align-items: baseline; flex-wrap: wrap; gap: 12px; margin-bottom: 6px; }
+.tier-head h2 { font-size: clamp(1.35rem, 2.6vw, 1.9rem); }
+.tier-head .count {
+  font-size: 12px; font-weight: 700; padding: 3px 10px; border-radius: 999px;
+  background: var(--gradient-card); border: 1px solid var(--border-card);
+  color: var(--color-purple-light);
+}
+.tier-desc { color: var(--text-secondary); font-size: 14.5px; margin-bottom: 22px; max-width: 780px; }
+
+.grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 18px; }
+
+/* ===== Card ===== */
+.card {
+  position: relative; display: flex; flex-direction: column;
+  background: var(--bg-card); backdrop-filter: var(--glass-blur);
+  border: 1px solid var(--border-card); border-radius: 16px;
+  padding: 20px; box-shadow: var(--shadow-card);
+  transition: transform .35s var(--ease-out-expo), border-color .35s, background-color .35s;
+}
+.card::before {
+  content: ''; position: absolute; inset: 0; border-radius: 16px;
+  background: var(--gradient-card); opacity: 0; transition: opacity .35s;
+  pointer-events: none;
+}
+.card:hover { transform: translateY(-4px); border-color: var(--color-purple-light); background: var(--bg-card-hover); }
+.card:hover::before { opacity: 1; }
+.card > * { position: relative; z-index: 1; }
+.card-top { display: flex; align-items: flex-start; gap: 12px; margin-bottom: 10px; }
+.icon { font-size: 26px; line-height: 1; flex: 0 0 auto; }
+.card-title { flex: 1; min-width: 0; }
+.card-title h3 { font-size: 1.05rem; word-break: break-word; }
+.card-title .cn { font-size: 12.5px; color: var(--text-muted); }
+.ver {
+  flex: 0 0 auto; font-family: var(--font-mono); font-size: 11.5px;
+  padding: 3px 8px; border-radius: 6px;
+  background: var(--gradient-card); border: 1px solid var(--border-card);
+  color: var(--color-cyan);
+}
+.card p.desc { font-size: 13.5px; color: var(--text-secondary); margin-bottom: 14px; }
+.tags { display: flex; flex-wrap: wrap; gap: 5px; margin-bottom: 16px; }
+.tag {
+  font-size: 11px; padding: 3px 8px; border-radius: 6px;
+  background: var(--bg-section-alt); border: 1px solid var(--border-subtle);
+  color: var(--text-muted);
+}
+.tag.lv { color: var(--color-purple-light); border-color: var(--border-card); }
+
+.install { margin-top: auto; }
+.install-label { font-size: 11px; color: var(--text-muted); margin-bottom: 6px; letter-spacing: .4px; }
+.install-row { display: flex; gap: 8px; align-items: stretch; }
+.install code {
+  flex: 1; min-width: 0;
+  font-family: var(--font-mono); font-size: 12px;
+  background: var(--bg-code); border: 1px solid var(--border-card); border-radius: 9px;
+  padding: 9px 11px; color: var(--text-primary);
+  overflow-x: auto; white-space: nowrap; scrollbar-width: thin;
+}
+.copy {
+  cursor: pointer; flex: 0 0 auto;
+  padding: 0 13px; border-radius: 9px; border: 1px solid transparent;
+  background: var(--gradient-primary); color: #fff;
+  font-size: 12.5px; font-weight: 600; font-family: var(--font-body);
+  transition: filter .2s, transform .2s;
+}
+.copy:hover { filter: brightness(1.12); }
+.copy:active { transform: scale(.96); }
+.copy.done { background: linear-gradient(135deg, #10B981, #059669); }
+.card-links { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 12px; font-size: 12px; }
+.card-links a { color: var(--text-muted); }
+.card-links a:hover { color: var(--color-purple-light); }
+
+/* ===== Notice / footer ===== */
+.notice {
+  margin: 40px 0 0; padding: 18px 20px; border-radius: 14px;
+  background: var(--gradient-card); border: 1px solid var(--border-card);
+  font-size: 13.5px; color: var(--text-secondary);
+}
+.notice strong { color: var(--text-primary); }
+.notice code {
+  font-family: var(--font-mono); font-size: 12px; color: var(--color-cyan);
+  background: var(--bg-code); padding: 1px 6px; border-radius: 5px;
+}
+footer {
+  border-top: 1px solid var(--border-subtle);
+  padding: 32px 0 48px; font-size: 13px; color: var(--text-muted);
+}
+footer .wrap { display: flex; flex-wrap: wrap; gap: 8px 24px; justify-content: space-between; }
+footer a { color: var(--text-secondary); }
+
+.empty { display: none; padding: 48px 0; text-align: center; color: var(--text-muted); }
+.empty.show { display: block; }
+
+/* ===== Toast ===== */
+#toast {
+  position: fixed; left: 50%; bottom: 32px; transform: translate(-50%, 20px);
+  background: var(--gradient-primary); color: #fff;
+  padding: 11px 22px; border-radius: 999px; font-size: 13.5px; font-weight: 600;
+  box-shadow: 0 12px 40px rgba(108, 92, 231, .45);
+  opacity: 0; pointer-events: none; transition: opacity .28s, transform .28s var(--ease-out-expo);
+  z-index: 100;
+}
+#toast.show { opacity: 1; transform: translate(-50%, 0); }
+
+@media (max-width: 640px) {
+  .hero { padding: 60px 0 44px; }
+  .grid { grid-template-columns: 1fr; }
+  .toolbar .wrap { padding-top: 10px; padding-bottom: 10px; }
+  .search { order: 3; flex-basis: 100%; }
+  section.tier { padding: 32px 0 4px; }
+}
+@media (prefers-reduced-motion: reduce) {
+  * { animation: none !important; transition: none !important; }
+  html { scroll-behavior: auto; }
+}
+</style>
+</head>
+<body>
+
+<header class="hero">
+  <div class="wrap">
+    <div class="badge-row">
+      <span class="pill">🧩 <b>16</b> 个技能</span>
+      <span class="pill">🏗️ 系统级 <b>7</b></span>
+      <span class="pill">☁️ 服务级 <b>6</b></span>
+      <span class="pill">🚀 应用级 <b>3</b></span>
+      <span class="pill">📦 四渠道分发</span>
+      <span class="pill">📄 <a href="https://git.fmode.cn/fmode/skill-core-guide/blob/master/awesome.md" target="_blank" rel="noopener" style="color:inherit">awesome.md</a></span>
+    </div>
+    <h1>Awesome Fmode Skills</h1>
+    <p class="lead">
+      Fmode Harness 平台技能生态全家桶 —— 按能力层级分类,一键复制安装命令。
+      Gogs / GitHub / npm / skillhub.cn 四渠道直达。
+    </p>
+    <p class="meta">
+      元数据规范 SKILL.md §3 | 机器可读清单 <code>skill-core inventory</code> | 更新 2026-09-22
+    </p>
+  </div>
+</header>
+
+<div class="toolbar">
+  <div class="wrap">
+    <label class="search">
+      <span aria-hidden="true">🔍</span>
+      <input id="q" type="search" placeholder="搜索技能名 / 说明 / 标签…" aria-label="搜索技能">
+    </label>
+    <div class="filters" role="group" aria-label="按层级筛选">
+      <button class="chip active" data-tier="all">全部</button>
+      <button class="chip" data-tier="system">系统级</button>
+      <button class="chip" data-tier="service">服务级</button>
+      <button class="chip" data-tier="application">应用级</button>
+    </div>
+    <button class="theme-btn" id="theme" title="切换明暗主题" aria-label="切换明暗主题">🌙</button>
+  </div>
+</div>
+
+<main class="wrap">
+  <section class="tier" data-tier="system">
+    <div class="tier-head">
+      <h2>🏗️ 系统级 · 平台基础设施</h2>
+      <span class="count">7 个技能</span>
+    </div>
+    <p class="tier-desc">底层运行、消息机制、基础功能。不依赖任何业务场景,是其他技能的地基。</p>
+    <div class="grid">
+
+      <article class="card" data-tags="skill-heterarchy 内异层认知协同 认知协作 parallel cognition orchestration HermesAgent FmodeAgent 系统级 平台基础设施">
+        <div class="card-top">
+          <span class="icon">🧠</span>
+          <div class="card-title"><h3>skill-heterarchy</h3><div class="cn">内异层认知协同</div></div>
+          <span class="ver">0.0.11</span>
+        </div>
+        <p class="desc">单一 Agent 主体内部多心智分化与自治协商。Delegate 是对外派活,Heterarchy 是对内分思。</p>
+        <div class="tags">
+          <span class="tag lv">系统级</span><span class="tag">HermesAgent</span><span class="tag">平台基础设施</span><span class="tag">cognition</span><span class="tag">parallel</span>
+        </div>
+        <div class="install">
+          <div class="install-label">安装 / 运行</div>
+          <div class="install-row">
+            <code>npx --yes skill-heterarchy@latest</code>
+            <button class="copy" data-copy="npx --yes skill-heterarchy@latest">复制</button>
+          </div>
+        </div>
+        <div class="card-links">
+          <a href="https://git.fmode.cn/fmode/skill-heterarchy" target="_blank" rel="noopener">Gogs</a>
+          <a href="https://github.com/fmodecn/skill-heterarchy" target="_blank" rel="noopener">GitHub</a>
+          <a href="https://www.npmjs.com/package/skill-heterarchy" target="_blank" rel="noopener">npm</a>
+        </div>
+      </article>
+
+      <article class="card" data-tags="skill-core-guide 母技能标准指南 规范 standard spec meta scaffold harness HermesAgent FmodeAgent 系统级 平台基础设施">
+        <div class="card-top">
+          <span class="icon">📐</span>
+          <div class="card-title"><h3>skill-core-guide</h3><div class="cn">母技能标准指南</div></div>
+          <span class="ver">1.0.2</span>
+        </div>
+        <p class="desc">Fmode Harness 平台母技能标准指南 —— 平台端点真值表、ESM-first 四端标准、元数据规范、四渠道分发、六项自动质检、新技能脚手架。</p>
+        <div class="tags">
+          <span class="tag lv">系统级</span><span class="tag">HermesAgent</span><span class="tag">平台基础设施</span><span class="tag">standard</span><span class="tag">scaffold</span>
+        </div>
+        <div class="install">
+          <div class="install-label">安装 / 运行</div>
+          <div class="install-row">
+            <code>npx --yes skill-core-guide@latest</code>
+            <button class="copy" data-copy="npx --yes skill-core-guide@latest">复制</button>
+          </div>
+        </div>
+        <div class="card-links">
+          <a href="https://git.fmode.cn/fmode/skill-core-guide" target="_blank" rel="noopener">Gogs</a>
+          <a href="https://github.com/fmodecn/skill-core-guide" target="_blank" rel="noopener">GitHub</a>
+          <a href="https://www.npmjs.com/package/skill-core-guide" target="_blank" rel="noopener">npm</a>
+        </div>
+      </article>
+
+      <article class="card" data-tags="skill-multi-branch 多任务工作框架 编排 orchestration multi-agent dispatch HermesAgent FmodeAgent 系统级 平台基础设施">
+        <div class="card-top">
+          <span class="icon">🌿</span>
+          <div class="card-title"><h3>skill-multi-branch</h3><div class="cn">多任务工作框架</div></div>
+          <span class="ver">0.1.1</span>
+        </div>
+        <p class="desc">沟通 / 执行分层编排 —— Hermes 负责沟通,专业任务派发 Claude Code / Codex 执行层。</p>
+        <div class="tags">
+          <span class="tag lv">系统级</span><span class="tag">HermesAgent</span><span class="tag">平台基础设施</span><span class="tag">orchestration</span><span class="tag">multi-agent</span>
+        </div>
+        <div class="install">
+          <div class="install-label">安装 / 运行</div>
+          <div class="install-row">
+            <code>git clone https://git.fmode.cn/fmode/skill-multi-branch.git</code>
+            <button class="copy" data-copy="git clone https://git.fmode.cn/fmode/skill-multi-branch.git">复制</button>
+          </div>
+        </div>
+        <div class="card-links">
+          <a href="https://git.fmode.cn/fmode/skill-multi-branch" target="_blank" rel="noopener">Gogs</a>
+          <a href="https://github.com/fmodecn/skill-multi-branch" target="_blank" rel="noopener">GitHub</a>
+        </div>
+      </article>
+
+      <article class="card" data-tags="skill-bypass-permission YOLO模式体检 权限 permission yolo HermesAgent 系统级 平台基础设施">
+        <div class="card-top">
+          <span class="icon">🛡️</span>
+          <div class="card-title"><h3>skill-bypass-permission</h3><div class="cn">YOLO 模式体检器</div></div>
+          <span class="ver">0.1.1</span>
+        </div>
+        <p class="desc">校验并幂等修复 Agent 免确认自主执行配置 —— Hermes approvals.mode=off/yolo 与 Claude Code skip-permissions。</p>
+        <div class="tags">
+          <span class="tag lv">系统级</span><span class="tag">HermesAgent</span><span class="tag">平台基础设施</span><span class="tag">permission</span><span class="tag">yolo</span>
+        </div>
+        <div class="install">
+          <div class="install-label">安装 / 运行</div>
+          <div class="install-row">
+            <code>git clone https://git.fmode.cn/fmode/skill-bypass-permission.git</code>
+            <button class="copy" data-copy="git clone https://git.fmode.cn/fmode/skill-bypass-permission.git">复制</button>
+          </div>
+        </div>
+        <div class="card-links">
+          <a href="https://git.fmode.cn/fmode/skill-bypass-permission" target="_blank" rel="noopener">Gogs</a>
+          <a href="https://github.com/fmodecn/skill-bypass-permission" target="_blank" rel="noopener">GitHub</a>
+        </div>
+      </article>
+
+      <article class="card" data-tags="skill-task-progress 任务进度与成果上报 进度 progress tracking heartbeat HermesAgent 系统级 平台基础设施">
+        <div class="card-top">
+          <span class="icon">📊</span>
+          <div class="card-title"><h3>skill-task-progress</h3><div class="cn">任务进度与成果上报</div></div>
+          <span class="ver">0.1.0</span>
+        </div>
+        <p class="desc">任务进度 4 态跟踪(ack / running / done / failed + health 心跳),交付链接幂等入库,App 看板实时可见。</p>
+        <div class="tags">
+          <span class="tag lv">系统级</span><span class="tag">HermesAgent</span><span class="tag">平台基础设施</span><span class="tag">progress</span><span class="tag">tracking</span>
+        </div>
+        <div class="install">
+          <div class="install-label">安装 / 运行</div>
+          <div class="install-row">
+            <code>git clone https://git.fmode.cn/fmode/skill-task-progress.git</code>
+            <button class="copy" data-copy="git clone https://git.fmode.cn/fmode/skill-task-progress.git">复制</button>
+          </div>
+        </div>
+        <div class="card-links">
+          <a href="https://git.fmode.cn/fmode/skill-task-progress" target="_blank" rel="noopener">Gogs</a>
+          <a href="https://github.com/fmodecn/skill-task-progress" target="_blank" rel="noopener">GitHub</a>
+        </div>
+      </article>
+
+      <article class="card" data-tags="skill-agent-clone 数字生命克隆 克隆 clone lifecycle backup soul memory FmodeAgent 系统级 平台基础设施">
+        <div class="card-top">
+          <span class="icon">🧬</span>
+          <div class="card-title"><h3>skill-agent-clone</h3><div class="cn">数字生命克隆</div></div>
+          <span class="ver">0.1.1</span>
+        </div>
+        <p class="desc">克隆 Hermes 配置 / SOUL / 记忆 / 会话到新 Agent。按 L1-L4 分级同步,密钥只记位置索引不入仓。</p>
+        <div class="tags">
+          <span class="tag lv">系统级</span><span class="tag">FmodeAgent</span><span class="tag">平台基础设施</span><span class="tag">clone</span><span class="tag">lifecycle</span>
+        </div>
+        <div class="install">
+          <div class="install-label">安装 / 运行</div>
+          <div class="install-row">
+            <code>git clone https://git.fmode.cn/fmode/skill-agent-clone.git</code>
+            <button class="copy" data-copy="git clone https://git.fmode.cn/fmode/skill-agent-clone.git">复制</button>
+          </div>
+        </div>
+        <div class="card-links">
+          <a href="https://git.fmode.cn/fmode/skill-agent-clone" target="_blank" rel="noopener">Gogs</a>
+          <a href="https://github.com/fmodecn/skill-agent-clone" target="_blank" rel="noopener">GitHub</a>
+        </div>
+      </article>
+
+      <article class="card" data-tags="plugin-wecom-fix 企微通道自检修复 wecom plugin patch channel-fix HermesAgent 系统级 平台基础设施">
+        <div class="card-top">
+          <span class="icon">🔧</span>
+          <div class="card-title"><h3>plugin-wecom-fix</h3><div class="cn">企微通道自检修复</div></div>
+          <span class="ver">plugin</span>
+        </div>
+        <p class="desc">修复官方 wecom 插件四项接收缺陷:大视频收不到、合并转发不识别、批量图片丢失、长文件名 Errno 36。幂等 patch.py。</p>
+        <div class="tags">
+          <span class="tag lv">系统级</span><span class="tag">HermesAgent</span><span class="tag">平台基础设施</span><span class="tag">plugin</span><span class="tag">wecom</span>
+        </div>
+        <div class="install">
+          <div class="install-label">安装 / 运行</div>
+          <div class="install-row">
+            <code>git clone https://github.com/fmodecn/plugin-wecom-fix.git && python3 plugin-wecom-fix/patch.py --apply</code>
+            <button class="copy" data-copy="git clone https://github.com/fmodecn/plugin-wecom-fix.git && python3 plugin-wecom-fix/patch.py --apply">复制</button>
+          </div>
+        </div>
+        <div class="card-links">
+          <a href="https://github.com/fmodecn/plugin-wecom-fix" target="_blank" rel="noopener">GitHub</a>
+        </div>
+      </article>
+
+    </div>
+  </section>
+
+  <section class="tier" data-tier="service">
+    <div class="tier-head">
+      <h2>☁️ 服务级 · 云资源 / 模型 / 拓展能力</h2>
+      <span class="count">6 个技能</span>
+    </div>
+    <p class="tier-desc">一个技能封装一个平台能力。接口稳定、无业务假设。</p>
+    <div class="grid">
+
+      <article class="card" data-tags="skill-image AI图像生成 图像 image generation AI绘图 app arch explode product scene FmodeCode ClaudeCode 服务级 图像视觉">
+        <div class="card-top">
+          <span class="icon">🎨</span>
+          <div class="card-title"><h3>skill-image</h3><div class="cn">AI 图像生成器</div></div>
+          <span class="ver">0.2.0</span>
+        </div>
+        <p class="desc">AI 图像生成器 —— 7 种模式(app / arch / explode / product / scene / portrait / ui),白底 PNG 场景图,约 ¥0.3-0.5/张。</p>
+        <div class="tags">
+          <span class="tag lv">服务级</span><span class="tag">FmodeCode</span><span class="tag">图像视觉</span><span class="tag">image</span><span class="tag">generation</span>
+        </div>
+        <div class="install">
+          <div class="install-label">安装 / 运行</div>
+          <div class="install-row">
+            <code>npx --yes fmode-image@latest --arch "系统架构图"</code>
+            <button class="copy" data-copy='npx --yes fmode-image@latest --arch "系统架构图"'>复制</button>
+          </div>
+        </div>
+        <div class="card-links">
+          <a href="https://github.com/fmodecn/fmode-image" target="_blank" rel="noopener">GitHub</a>
+          <a href="https://www.npmjs.com/package/fmode-image" target="_blank" rel="noopener">npm</a>
+        </div>
+      </article>
+
+      <article class="card" data-tags="skill-vision 视觉识别 视觉 vision AI识别 OCR multimodal image-analysis FmodeCode ClaudeCode 服务级 图像视觉">
+        <div class="card-top">
+          <span class="icon">👁️</span>
+          <div class="card-title"><h3>skill-vision</h3><div class="cn">视觉识别</div></div>
+          <span class="ver">0.1.1</span>
+        </div>
+        <p class="desc">视觉识别 —— 宿主多模态模型优先(零额外成本),否则回落 Fmode API 分析图片 / 视频帧,支持结构化 JSON 输出。</p>
+        <div class="tags">
+          <span class="tag lv">服务级</span><span class="tag">FmodeCode</span><span class="tag">图像视觉</span><span class="tag">vision</span><span class="tag">OCR</span>
+        </div>
+        <div class="install">
+          <div class="install-label">安装 / 运行</div>
+          <div class="install-row">
+            <code>npx --yes fmode-vision@latest --image ./a.png</code>
+            <button class="copy" data-copy="npx --yes fmode-vision@latest --image ./a.png">复制</button>
+          </div>
+        </div>
+        <div class="card-links">
+          <a href="https://github.com/fmodecn/skill-vision" target="_blank" rel="noopener">GitHub</a>
+          <a href="https://www.npmjs.com/package/fmode-vision" target="_blank" rel="noopener">npm</a>
+        </div>
+      </article>
+
+      <article class="card" data-tags="skill-listen 录音转写 音频 transcribe ASR 语音 iflytek lfasr FmodeCode ClaudeCode 服务级 音频处理">
+        <div class="card-top">
+          <span class="icon">🎤</span>
+          <div class="card-title"><h3>skill-listen</h3><div class="cn">录音转写</div></div>
+          <span class="ver">0.1.2</span>
+        </div>
+        <p class="desc">录音转写 —— 讯飞 LFASR × Fmode 网关,中英多语种 / 方言转文字,支持说话人分离,凭据仅服务端持有。</p>
+        <div class="tags">
+          <span class="tag lv">服务级</span><span class="tag">FmodeCode</span><span class="tag">音频处理</span><span class="tag">transcribe</span><span class="tag">ASR</span>
+        </div>
+        <div class="install">
+          <div class="install-label">安装 / 运行</div>
+          <div class="install-row">
+            <code>npx --yes fmode-listen@latest transcribe -- meeting.mp3</code>
+            <button class="copy" data-copy="npx --yes fmode-listen@latest transcribe -- meeting.mp3">复制</button>
+          </div>
+        </div>
+        <div class="card-links">
+          <a href="https://git.fmode.cn/fmode/skill-listen" target="_blank" rel="noopener">Gogs</a>
+          <a href="https://github.com/fmodecn/skill-listen" target="_blank" rel="noopener">GitHub</a>
+          <a href="https://www.npmjs.com/package/fmode-listen" target="_blank" rel="noopener">npm</a>
+        </div>
+      </article>
+
+      <article class="card" data-tags="skill-ffmpeg FFmpeg音视频处理 音视频 ffmpeg media transcode extract FmodeCode ClaudeCode 服务级 音频处理">
+        <div class="card-top">
+          <span class="icon">🎬</span>
+          <div class="card-title"><h3>skill-ffmpeg</h3><div class="cn">FFmpeg 音视频处理</div></div>
+          <span class="ver">0.1.1</span>
+        </div>
+        <p class="desc">FFmpeg 音视频处理 —— 转换 / 压缩 / 裁剪 / 提取音频帧。常与 skill-listen 配合(视频先抽音轨再转写)。</p>
+        <div class="tags">
+          <span class="tag lv">服务级</span><span class="tag">FmodeCode</span><span class="tag">音频处理</span><span class="tag">FFmpeg</span><span class="tag">media</span>
+        </div>
+        <div class="install">
+          <div class="install-label">安装 / 运行</div>
+          <div class="install-row">
+            <code>npx --yes fmode-ffmpeg@latest extract-audio -- in.mp4</code>
+            <button class="copy" data-copy="npx --yes fmode-ffmpeg@latest extract-audio -- in.mp4">复制</button>
+          </div>
+        </div>
+        <div class="card-links">
+          <a href="https://www.npmjs.com/package/fmode-ffmpeg" target="_blank" rel="noopener">npm</a>
+        </div>
+      </article>
+
+      <article class="card" data-tags="skill-storage 对象存储与公开分享 存储 storage OBS CDN share-link upload FmodeCode ClaudeCode 服务级 数据管理">
+        <div class="card-top">
+          <span class="icon">💾</span>
+          <div class="card-title"><h3>skill-storage</h3><div class="cn">对象存储与公开分享</div></div>
+          <span class="ver">0.3.0</span>
+        </div>
+        <p class="desc">对象存储与公开分享 —— 二进制大文件上 OBS,本地零占用,上传即得公开分享链接。诚实 4 级凭据链。</p>
+        <div class="tags">
+          <span class="tag lv">服务级</span><span class="tag">FmodeCode</span><span class="tag">数据管理</span><span class="tag">storage</span><span class="tag">OBS</span>
+        </div>
+        <div class="install">
+          <div class="install-label">安装 / 运行</div>
+          <div class="install-row">
+            <code>git clone https://git.fmode.cn/fmode/skill-storage.git</code>
+            <button class="copy" data-copy="git clone https://git.fmode.cn/fmode/skill-storage.git">复制</button>
+          </div>
+        </div>
+        <div class="card-links">
+          <a href="https://git.fmode.cn/fmode/skill-storage" target="_blank" rel="noopener">Gogs</a>
+          <a href="https://github.com/fmodecn/skill-storage" target="_blank" rel="noopener">GitHub</a>
+        </div>
+      </article>
+
+      <article class="card" data-tags="fmode-qiwei 企微网关SDK wecom qiwei sdk gateway messaging FmodeCode ClaudeCode 服务级 平台基础设施">
+        <div class="card-top">
+          <span class="icon">🔌</span>
+          <div class="card-title"><h3>fmode-qiwei</h3><div class="cn">企微网关 SDK</div></div>
+          <span class="ver">0.5.2</span>
+        </div>
+        <p class="desc">企业微信网关 SDK —— 消息收发、通讯录、应用管理封装。与 plugin-wecom-fix 互补(SDK vs 插件补丁)。</p>
+        <div class="tags">
+          <span class="tag lv">服务级</span><span class="tag">FmodeCode</span><span class="tag">平台基础设施</span><span class="tag">qiwei</span><span class="tag">sdk</span>
+        </div>
+        <div class="install">
+          <div class="install-label">安装 / 运行</div>
+          <div class="install-row">
+            <code>npx --yes fmode-qiwei@latest workspace</code>
+            <button class="copy" data-copy="npx --yes fmode-qiwei@latest workspace">复制</button>
+          </div>
+        </div>
+        <div class="card-links">
+          <a href="https://www.npmjs.com/package/fmode-qiwei" target="_blank" rel="noopener">npm</a>
+        </div>
+      </article>
+
+    </div>
+  </section>
+
+  <section class="tier" data-tier="application">
+    <div class="tier-head">
+      <h2>🚀 应用级 · 业务场景 / SOP / 行业</h2>
+      <span class="count">3 个技能</span>
+    </div>
+    <p class="tier-desc">面向具体业务场景的端到端技能。可以依赖服务级,但不应被服务级依赖。</p>
+    <div class="grid">
+
+      <article class="card" data-tags="skill-product-lab 新品研发全案生成器 产品研发 market KANO VOC 新品 FmodeCode ClaudeCode 应用级 新品研发">
+        <div class="card-top">
+          <span class="icon">🔬</span>
+          <div class="card-title"><h3>skill-product-lab</h3><div class="cn">新品研发全案生成器</div></div>
+          <span class="ver">0.2.0</span>
+        </div>
+        <p class="desc">新品研发全案生成器 —— VOC + KANO + 市场 + 竞争 + 定位分析,一句话需求出 HTML 长页方案。</p>
+        <div class="tags">
+          <span class="tag lv">应用级</span><span class="tag">FmodeCode</span><span class="tag">新品研发</span><span class="tag">KANO</span><span class="tag">market</span>
+        </div>
+        <div class="install">
+          <div class="install-label">安装 / 运行</div>
+          <div class="install-row">
+            <code>npx --yes fmode-product-lab@latest --task "抗氧化软糖"</code>
+            <button class="copy" data-copy='npx --yes fmode-product-lab@latest --task "抗氧化软糖"'>复制</button>
+          </div>
+        </div>
+        <div class="card-links">
+          <a href="https://www.npmjs.com/package/fmode-product-lab" target="_blank" rel="noopener">npm</a>
+        </div>
+      </article>
+
+      <article class="card" data-tags="skill-study-report 学习复盘报告 学习 report 复盘 ppt html multi-agent FmodeCode ClaudeCode 应用级 学习复盘">
+        <div class="card-top">
+          <span class="icon">📝</span>
+          <div class="card-title"><h3>skill-study-report</h3><div class="cn">学习复盘报告</div></div>
+          <span class="ver">0.1.0</span>
+        </div>
+        <p class="desc">学习复盘报告 —— 48h 多 Agent 采集 + 三问追问 + PPT 级 HTML 报告(≥10 屏),Storage 主 + Gogs 降级双通道发布。</p>
+        <div class="tags">
+          <span class="tag lv">应用级</span><span class="tag">FmodeCode</span><span class="tag">学习复盘</span><span class="tag">report</span><span class="tag">复盘</span>
+        </div>
+        <div class="install">
+          <div class="install-label">安装 / 运行</div>
+          <div class="install-row">
+            <code>git clone https://git.fmode.cn/fmode/skill-study-report.git</code>
+            <button class="copy" data-copy="git clone https://git.fmode.cn/fmode/skill-study-report.git">复制</button>
+          </div>
+        </div>
+        <div class="card-links">
+          <a href="https://git.fmode.cn/fmode/skill-study-report" target="_blank" rel="noopener">Gogs</a>
+          <a href="https://github.com/fmodecn/skill-study-report" target="_blank" rel="noopener">GitHub</a>
+        </div>
+      </article>
+
+      <article class="card" data-tags="skill-present HTML演讲系统 演示 presentation slides deck courseware 课件 FmodeCode ClaudeCode 应用级 内容创作">
+        <div class="card-top">
+          <span class="icon">📽️</span>
+          <div class="card-title"><h3>skill-present</h3><div class="cn">HTML 演讲系统</div></div>
+          <span class="ver">私有</span>
+        </div>
+        <p class="desc">HTML 演讲系统 —— 课程课件 / 报告演讲系统,含 43 条 Claude 规则,数字动画与交付物墙 iframe 嵌套。</p>
+        <div class="tags">
+          <span class="tag lv">应用级</span><span class="tag">FmodeCode</span><span class="tag">内容创作</span><span class="tag">slides</span><span class="tag">deck</span>
+        </div>
+        <div class="install">
+          <div class="install-label">分发方式</div>
+          <div class="install-row">
+            <code>私有仓 · 未公开发布(Gogs 内网)</code>
+            <button class="copy" data-copy="私有仓 · 未公开发布(Gogs 内网)">复制</button>
+          </div>
+        </div>
+        <div class="card-links">
+          <span style="color:var(--text-muted)">暂无可公开链接</span>
+        </div>
+      </article>
+
+    </div>
+  </section>
+
+  <p class="empty" id="empty">没有匹配的技能,换个关键词试试。</p>
+
+  <div class="notice">
+    <strong>版本说明</strong>:卡片上的版本是<strong>安装命令实际交付的版本</strong>——npm 渠道取
+    <code>registry.npmjs.org</code> 最新版,仅仓库分发取仓库 <code>package.json</code>。
+    <br>⚠️ <strong>npm 版本可能落后于仓库 HEAD</strong>(实测 <code>skill-image</code> / <code>skill-vision</code> /
+    <code>skill-listen</code> / <code>skill-product-lab</code> / <code>skill-ffmpeg</code> 均有差异),
+    需要仓库最新代码请用 <code>git clone</code>。
+    <br>📋 元数据规范见 <a href="https://git.fmode.cn/fmode/skill-core-guide/blob/master/SKILL.md" target="_blank" rel="noopener">SKILL.md §3</a>;
+    <code>skill-present</code> 未公开分发,仅列名以保持清单完整性。
+  </div>
+</main>
+
+<footer>
+  <div class="wrap">
+    <span>MIT © 2026 Fmode (未来飞马) · Awesome Fmode Skills</span>
+    <span>
+      <a href="https://git.fmode.cn/fmode/skill-core-guide" target="_blank" rel="noopener">Gogs</a> ·
+      <a href="https://github.com/fmodecn/skill-core-guide" target="_blank" rel="noopener">GitHub</a> ·
+      <a href="https://www.npmjs.com/package/skill-core-guide" target="_blank" rel="noopener">npm</a>
+    </span>
+  </div>
+</footer>
+
+<div id="toast" role="status" aria-live="polite">已复制</div>
+
+<script>
+(function () {
+  'use strict';
+
+  // ---------- 复制安装命令 ----------
+  var toast = document.getElementById('toast');
+  var toastTimer = null;
+
+  function showToast(msg) {
+    toast.textContent = msg;
+    toast.classList.add('show');
+    clearTimeout(toastTimer);
+    toastTimer = setTimeout(function () { toast.classList.remove('show'); }, 1800);
+  }
+
+  function fallbackCopy(text) {
+    var ta = document.createElement('textarea');
+    ta.value = text;
+    ta.setAttribute('readonly', '');
+    ta.style.position = 'fixed';
+    ta.style.opacity = '0';
+    document.body.appendChild(ta);
+    ta.select();
+    var ok = false;
+    try { ok = document.execCommand('copy'); } catch (e) { ok = false; }
+    document.body.removeChild(ta);
+    return ok;
+  }
+
+  document.addEventListener('click', function (ev) {
+    var btn = ev.target.closest ? ev.target.closest('.copy') : null;
+    if (!btn) return;
+    var text = btn.getAttribute('data-copy') || '';
+    var done = function (ok) {
+      if (!ok) { showToast('复制失败,请手动选择命令'); return; }
+      var prev = btn.textContent;
+      btn.textContent = '已复制 ✓';
+      btn.classList.add('done');
+      showToast('安装命令已复制到剪贴板');
+      setTimeout(function () {
+        btn.textContent = prev;
+        btn.classList.remove('done');
+      }, 1600);
+    };
+    if (navigator.clipboard && window.isSecureContext) {
+      navigator.clipboard.writeText(text).then(function () { done(true); }, function () { done(fallbackCopy(text)); });
+    } else {
+      done(fallbackCopy(text));
+    }
+  });
+
+  // ---------- 层级筛选 ----------
+  var chips = Array.prototype.slice.call(document.querySelectorAll('.chip'));
+  var sections = Array.prototype.slice.call(document.querySelectorAll('section.tier'));
+  var empty = document.getElementById('empty');
+  var input = document.getElementById('q');
+  var activeTier = 'all';
+
+  function apply() {
+    var q = (input.value || '').trim().toLowerCase();
+    var visible = 0;
+
+    sections.forEach(function (sec) {
+      var tierOk = activeTier === 'all' || sec.getAttribute('data-tier') === activeTier;
+      var cards = Array.prototype.slice.call(sec.querySelectorAll('.card'));
+      var shown = 0;
+
+      cards.forEach(function (card) {
+        var hay = ((card.getAttribute('data-tags') || '') + ' ' + card.textContent).toLowerCase();
+        var hit = !q || hay.indexOf(q) !== -1;
+        var show = tierOk && hit;
+        card.style.display = show ? '' : 'none';
+        if (show) shown++;
+      });
+
+      sec.style.display = (tierOk && shown > 0) ? '' : 'none';
+      visible += shown;
+    });
+
+    empty.classList.toggle('show', visible === 0);
+  }
+
+  chips.forEach(function (chip) {
+    chip.addEventListener('click', function () {
+      chips.forEach(function (c) { c.classList.remove('active'); });
+      chip.classList.add('active');
+      activeTier = chip.getAttribute('data-tier');
+      apply();
+    });
+  });
+
+  var debounce = null;
+  input.addEventListener('input', function () {
+    clearTimeout(debounce);
+    debounce = setTimeout(apply, 120);
+  });
+
+  // ---------- 主题切换 ----------
+  var root = document.documentElement;
+  var themeBtn = document.getElementById('theme');
+
+  function setTheme(t) {
+    root.setAttribute('data-theme', t);
+    themeBtn.textContent = t === 'dark' ? '🌙' : '☀️';
+    try { localStorage.setItem('fmode-skills-theme', t); } catch (e) {}
+  }
+
+  var saved = null;
+  try { saved = localStorage.getItem('fmode-skills-theme'); } catch (e) {}
+  if (!saved) {
+    saved = window.matchMedia && window.matchMedia('(prefers-color-scheme: light)').matches ? 'light' : 'dark';
+  }
+  setTheme(saved);
+
+  themeBtn.addEventListener('click', function () {
+    setTheme(root.getAttribute('data-theme') === 'dark' ? 'light' : 'dark');
+  });
+})();
+</script>
+</body>
+</html>

+ 1 - 1
browser/index.mjs

@@ -25,7 +25,7 @@
 // 平台常量(内联,保持浏览器 bundle 零依赖、可独立分发)
 // ============================================================
 
-export const VERSION = '1.0.1';
+export const VERSION = '1.0.3';
 export const SKILL_NAME = 'skill-core-guide';
 
 export const PLATFORM = {

+ 1 - 1
lib/index.mjs

@@ -14,7 +14,7 @@
  *   console.log(r.ok, r.errors);
  */
 
-export const VERSION = '0.1.0';
+export const VERSION = '1.0.3';
 export const SKILL_NAME = 'skill-core-guide';
 
 // 本地绑定:供本文件内的 CHANNELS / publishPlan 等使用

+ 5 - 7
package.json

@@ -1,7 +1,7 @@
 {
-  "name": "@fmode/skill-core-guide",
-  "version": "0.1.0",
-  "description": "Fmode Harness 平台母技能标准指南:平台端点真值表、ESM-first 四端标准、四渠道分发、六项自动质检、一键凭证供给、新技能脚手架。",
+  "name": "skill-core-guide",
+  "version": "1.0.3",
+  "description": "Fmode Harness \u5e73\u53f0\u6bcd\u6280\u80fd\u6807\u51c6\u6307\u5357\uff1a\u5e73\u53f0\u7aef\u70b9\u771f\u503c\u8868\u3001ESM-first \u56db\u7aef\u6807\u51c6\u3001\u56db\u6e20\u9053\u5206\u53d1\u3001\u516d\u9879\u81ea\u52a8\u8d28\u68c0\u3001\u4e00\u952e\u51ed\u8bc1\u4f9b\u7ed9\u3001\u65b0\u6280\u80fd\u811a\u624b\u67b6\u3002",
   "type": "module",
   "main": "./lib/index.mjs",
   "exports": {
@@ -42,6 +42,7 @@
     "skills/",
     "SKILL.md",
     "inventory.md",
+    "awesome.md",
     "README.md",
     "LICENSE",
     "skill-package-manifest.json"
@@ -77,8 +78,5 @@
   "bugs": {
     "url": "https://github.com/fmodecn/skill-core-guide/issues"
   },
-  "dependencies": {},
-  "publishConfig": {
-    "access": "public"
-  }
+  "dependencies": {}
 }

+ 1 - 1
skill-package-manifest.json

@@ -1,6 +1,6 @@
 {
   "name": "skill-core-guide",
-  "version": "1.0.1",
+  "version": "1.0.3",
   "description": "Fmode Harness 平台母技能标准指南",
   "skills": [
     {

+ 1 - 1
skills/skill-core-guide/SKILL.md

@@ -1,7 +1,7 @@
 ---
 name: skill-core-guide
 description: "Fmode Harness 平台母技能标准指南。当你要(1)开发新技能、(2)检查技能质量、(3)发布技能到 Gogs/GitHub/npm/skillhub、(4)查平台端点是否可用、(5)配置 Fmode 凭据、(6)了解技能生态现状时使用本技能。它是 Fmode 技能生态的宪法:定义平台真值表、ESM-first 四端标准、四渠道分发、六项自动质检、诚实凭证供给。"
-version: 1.0.1
+version: 1.0.3
 author: Yuyang001 (FmodeAgent)
 license: MIT
 tags: [meta, standard, spec, harness, scaffold, quality-check, fmode, esm]

+ 2 - 2
test/smoke.mjs

@@ -44,7 +44,7 @@ test('lib/index.mjs 导出全部公共接口', () => {
   for (const k of required) {
     assert.ok(k in core, `缺少导出:${k}`);
   }
-  assert.equal(core.VERSION, '1.0.1');
+  assert.equal(core.VERSION, '1.0.3');
 });
 
 test('ENDPOINTS 真值表结构合法', () => {
@@ -309,7 +309,7 @@ test('browser/index.mjs 不 import 任何 node: 内置模块', () => {
 
 test('browser bundle 可独立 import 且导出核心常量', async () => {
   const b = await import('../browser/index.mjs');
-  assert.equal(b.VERSION, '1.0.1');
+  assert.equal(b.VERSION, '1.0.3');
   assert.ok(b.PLATFORM.apiBase.includes('fmode.cn'));
   assert.ok(Object.keys(b.ENDPOINTS).length > 0);
   assert.equal(typeof b.validatePackageJson, 'function');