Parcourir la source

feat: add fskill cross-platform adapter cli

wandl-6A72h il y a 5 mois
Parent
commit
73c1d11f4f

+ 121 - 217
PLATFORM_GUIDE.md

@@ -1,265 +1,169 @@
 # 跨平台使用指南
 
-**full-stack-skills** 不仅可以在 Claude Code 中使用,还可以在其他 AI 平台使用,如 Cursor、Trae、Qoder、CodeBuddy、Windsurf 等
+`full-stack-skills` 通过 `/adapters` 下的独立 CLI `fskill` 适配多平台运行时。转换器将仓库中的 `skills/<group>/<skill>/` 结构导出为标准 skills 目录,并按平台要求写入对应的项目级或全局级安装路径
 
-## 支持的平台
+## 适配原则
 
-- **Claude Code** - 原生支持,通过 Marketplace 安装(推荐)
-- **Claude.ai** - 通过 Skills API 使用(付费套餐中部分技能已默认可用)
-- **Cursor** - 转换为 Cursor 自定义指令格式
-- **Trae** - 转换为 Trae 插件格式
-- **Qoder** - 转换为 Qoder Agent 格式
-- **CodeBuddy** - 转换为 CodeBuddy Workflow 格式
-- **Windsurf** - 转换为 Windsurf Cascade Skills 格式
+- **单一输出格式**:统一输出标准 `SKILL.md` 技能目录
+- **单一路径事实源**:平台路径以 `vercel-labs/skills` 兼容矩阵为基线
+- **无专有包装层**:不再生成 Cursor rule、Trae plugin、Qoder agent、CodeBuddy workflow 等非标准包装物
+- **目录即技能**:仅当目录中存在 `SKILL.md` 时才视为可转换技能
+- **支持目录排除**:`skills/pencil-skills/docs` 视为支持文档,不参与转换
 
-## 在 Claude Code 中使用
-
-### 1. 注册 Marketplace
-
-在 Claude Code 中运行以下命令,将本仓库注册为插件市场:
+## 适配器命令
 
 ```bash
-/plugin marketplace add https://github.com/partme-ai/full-stack-skills.git
+git clone https://github.com/partme-ai/full-stack-skills.git
+cd full-stack-skills
+npm install -g ./adapters
+fskill --version
+fskill platforms
+fskill audit
+fskill convert --platform all --output ./adapters-output
+fskill install
 ```
 
-或者使用简写形式:
+默认安装命令 `fskill install` 会写入当前项目的 `.agents/skills/`。
+如果只在仓库开发态使用,可进入 `adapters/` 执行 `npm install && npm link`,然后直接运行 `fskill ...`。
 
-```bash
-/plugin marketplace add partme-ai/full-stack-skills
-```
+## 命令说明
 
-### 2. 安装插件
+### 1. 查看平台矩阵
 
 ```bash
-# 按技能种类安装(推荐)
-/plugin install development-skills@full-stack-skills
-/plugin install design-skills@full-stack-skills
-/plugin install testing-skills@full-stack-skills
-/plugin install devops-skills@full-stack-skills
-# ... 更多插件请参考 README.md
+fskill platforms
 ```
 
-**注意:** 本仓库按**技能种类**组织插件,而非按岗位划分。如需按岗位使用,请参考 [AGENTS_PROMPT.md](AGENTS_PROMPT.md) 中的角色定义。
-
-详细说明请参考 [README.md](README.md)。
-
-## 在其他平台使用
-
-### 使用适配器工具转换
-
-本仓库提供了自动转换工具,可以将 Agent Skills 转换为不同平台的格式。
-
-#### 快速转换所有平台
+### 2. 审计技能目录
 
 ```bash
-cd adapters
-python convert_all.py ../skills ../adapters-output
+fskill audit
 ```
 
-#### 转换单个平台
+当前仓库审计基线:
 
-**Cursor:**
-```bash
-cd adapters/cursor
-python convert_to_cursor.py --all ../../skills ../../adapters-output/cursor
-```
+- 可转换技能:`421`
+- 缺失 `SKILL.md` 的技能目录:`0`
+- 排除目录:`skills/pencil-skills/docs`
+- 支持平台:`43`
 
-**Trae:**
-```bash
-cd adapters/trae
-python convert_to_trae.py --all ../../skills ../../adapters-output/trae
-```
+### 3. 导出所有平台
 
-**Qoder:**
 ```bash
-cd adapters/qoder
-python convert_to_qoder.py --all ../../skills ../../adapters-output/qoder
+fskill convert --platform all --output ./adapters-output
 ```
 
-**CodeBuddy:**
-```bash
-cd adapters/codebuddy
-python convert_to_codebuddy.py --all ../../skills ../../adapters-output/codebuddy
-```
+### 4. 导出单个平台
 
-**Windsurf:**
 ```bash
-cd adapters/windsurf
-python convert_to_windsurf.py --all ../../skills ../../adapters-output/windsurf
+fskill convert --platform claude-code --output ./adapters-output
 ```
 
-**注意:** 所有转换脚本都需要从对应的子目录运行,或者使用 `convert_all.py` 一次性转换所有平台。
-
-### 输出目录结构
+### 5. 安装到项目目录
 
-转换后的文件将保存在 `adapters-output/` 目录下,按平台分类:
-
-```
-adapters-output/
-├── cursor/
-│   └── .cursor/
-│       └── rules/
-│           ├── vue3.md
-│           ├── react.md
-│           └── ...
-├── trae/
-│   ├── vue3/
-│   │   ├── trae-plugin.json
-│   │   └── SKILL.md
-│   └── ...
-├── qoder/
-│   ├── vue3-agent/
-│   │   ├── qoder-agent-config.json
-│   │   ├── SKILL.md
-│   │   └── vue3_agent.py
-│   └── ...
-├── codebuddy/
-│   ├── vue3/
-│   │   ├── manifest.json
-│   │   ├── workflows/
-│   │   └── skills/
-│   └── ...
-└── windsurf/
-    ├── vue3/
-    │   ├── SKILL.md
-    │   └── ...
-    └── ...
+```bash
+fskill install --platform claude-code --scope project
 ```
 
-## 平台特定说明
-
-### Cursor
-
-Cursor 使用自定义指令(Custom Rules)来扩展 AI 能力。
-
-**使用步骤:**
-1. 运行转换脚本生成 `.cursor/rules/` 目录下的规则文件
-2. 将生成的规则文件复制到你的项目 `.cursor/rules/` 目录
-3. Cursor 会自动加载这些规则
-
-**参考文档:**
-- [Cursor 文档](https://docs.cursor.com/)
-- [适配器说明](adapters/cursor/README.md)
-
-### Trae
-
-Trae 使用插件系统来扩展 AI 能力。
-
-**使用步骤:**
-1. 运行转换脚本生成 Trae 插件格式文件
-2. 在 Trae 中导入插件配置
-3. 激活插件使用
-
-**参考文档:**
-- [Trae 官网](https://trae.ai/)
-- [适配器说明](adapters/trae/README.md)
-
-### Qoder
-
-Qoder 使用 Agent 系统来扩展 AI 能力。
-
-**使用步骤:**
-1. 运行转换脚本生成 Qoder Agent 配置
-2. 在 Qoder 中创建新的 Agent
-3. 导入生成的配置文件
-4. 激活 Agent 使用
-
-**参考文档:**
-- [Qoder 官网](https://qoder.com/)
-- [适配器说明](adapters/qoder/README.md)
-
-### CodeBuddy
-
-CodeBuddy 使用 Workflow 系统来扩展 AI 能力。
-
-**使用步骤:**
-1. 运行转换脚本生成 CodeBuddy Workflow 配置
-2. 在 CodeBuddy 中导入 Workflow
-3. 配置 Workflow 参数
-4. 运行 Workflow
-
-**参考文档:**
-- [CodeBuddy 官网](https://codebuddy.ai/)
-- [适配器说明](adapters/codebuddy/README.md)
-
-### Windsurf
-
-Windsurf 使用 Cascade Skills 系统来扩展 AI 能力。
-
-**使用步骤:**
-1. 运行转换脚本生成 Windsurf Skills 配置
-2. 在 Windsurf 中导入 Skills
-3. 激活 Skills 使用
-
-**参考文档:**
-- [Windsurf 官网](https://windsurf.ai/)
-- [适配器说明](adapters/windsurf/README.md)
-
-## 依赖要求
-
-转换脚本需要以下 Python 包:
+### 6. 安装到全局目录
 
 ```bash
-pip install pyyaml
+fskill install --platform antigravity --scope global
 ```
 
-安装依赖:
+### 7. 干跑预览
 
 ```bash
-cd adapters
-pip install -r requirements.txt
+fskill convert --platform all --output ./adapters-output --dry-run
+fskill install --platform windsurf --scope project --dry-run
 ```
 
-## 验证状态
-
-| 平台 | 转换脚本 | 格式验证 | 平台验证 |
-|------|---------|---------|---------|
-| Cursor | ✅ 完成 | ⚠️ 需要验证 | ⚠️ 需要验证 |
-| Trae | ✅ 完成 | ⚠️ 需要验证 | ⚠️ 需要验证 |
-| Qoder | ✅ 完成 | ⚠️ 需要验证 | ⚠️ 需要验证 |
-| CodeBuddy | ✅ 完成 | ⚠️ 需要验证 | ⚠️ 需要验证 |
-| Windsurf | ✅ 完成 | ⚠️ 需要验证 | ⚠️ 需要验证 |
-
-## 注意事项
-
-⚠️ **重要说明:这些适配器工具为理论性实现,尚未经过实际平台验证。**
-
-- 转换脚本基于平台的一般特性和常见适配模式
-- 生成的配置文件格式可能需要根据实际平台 API 调整
-- **建议在实际使用前查阅目标平台的官方文档并进行测试**
-- 转换脚本会自动提取 `SKILL.md` 中的 frontmatter 和内容
-- 脚本会尝试提取工作流步骤,但可能需要手动调整
-
-## 贡献
-
-如果你验证了某个平台的适配方案,欢迎贡献:
-
-1. 测试转换脚本生成的输出
-2. 在实际平台上验证功能
-3. 报告问题和改进建议
-4. 提交 Pull Request
-
-## 相关资源
-
-- [适配器工具文档](adapters/README.md) - 详细的适配器使用说明
-- [适配器示例](adapters/EXAMPLES.md) - 转换后的示例文件
-- [Agent Skills 规范](https://agentskills.io/) - Agent Skills 官方规范(如链接不可访问,请参考 [Anthropic 官方文档](https://support.claude.com/en/articles/12512198-creating-custom-skills))
-- [项目主文档](README.md) - full-stack-skills 完整文档
-
-## 常见问题
+## 平台矩阵
+
+下表由 `adapters/src/platform-registry.ts` 驱动,CLI 可通过 `fskill platforms --markdown` 输出同一份表格。
+
+| Platform | ID / Aliases | Project Path | Global Path |
+|---|---|---|---|
+| Amp | `amp` | `.agents/skills/` | `~/.config/agents/skills/` |
+| Kimi Code CLI | `kimi-cli` | `.agents/skills/` | `~/.config/agents/skills/` |
+| Replit | `replit` | `.agents/skills/` | `~/.config/agents/skills/` |
+| Universal | `universal` | `.agents/skills/` | `~/.config/agents/skills/` |
+| Antigravity | `antigravity` | `.agents/skills/` | `~/.gemini/antigravity/skills/` |
+| Augment | `augment` | `.augment/skills/` | `~/.augment/skills/` |
+| Claude Code | `claude-code, claude` | `.claude/skills/` | `~/.claude/skills/` |
+| OpenClaw | `openclaw` | `skills/` | `~/.openclaw/skills/` |
+| Cline | `cline` | `.agents/skills/` | `~/.config/agents/skills/` |
+| Warp | `warp` | `.agents/skills/` | `~/.config/agents/skills/` |
+| CodeBuddy | `codebuddy` | `.codebuddy/skills/` | `~/.codebuddy/skills/` |
+| Codex | `codex` | `.agents/skills/` | `~/.codex/skills/` |
+| Command Code | `command-code` | `.commandcode/skills/` | `~/.commandcode/skills/` |
+| Continue | `continue` | `.continue/skills/` | `~/.continue/skills/` |
+| Cortex Code | `cortex` | `.cortex/skills/` | `~/.snowflake/cortex/skills/` |
+| Crush | `crush` | `.crush/skills/` | `~/.config/crush/skills/` |
+| Cursor | `cursor` | `.agents/skills/` | `~/.cursor/skills/` |
+| Deep Agents | `deepagents, deep-agents` | `.agents/skills/` | `~/.deepagents/agent/skills/` |
+| Droid | `droid` | `.factory/skills/` | `~/.factory/skills/` |
+| Gemini CLI | `gemini-cli` | `.agents/skills/` | `~/.gemini/skills/` |
+| GitHub Copilot | `github-copilot, copilot` | `.agents/skills/` | `~/.copilot/skills/` |
+| Goose | `goose` | `.goose/skills/` | `~/.config/goose/skills/` |
+| Junie | `junie` | `.junie/skills/` | `~/.junie/skills/` |
+| iFlow CLI | `iflow-cli` | `.iflow/skills/` | `~/.iflow/skills/` |
+| Kilo Code | `kilo` | `.kilocode/skills/` | `~/.kilocode/skills/` |
+| Kiro CLI | `kiro-cli` | `.kiro/skills/` | `~/.kiro/skills/` |
+| Kode | `kode` | `.kode/skills/` | `~/.kode/skills/` |
+| MCPJam | `mcpjam` | `.mcpjam/skills/` | `~/.mcpjam/skills/` |
+| Mistral Vibe | `mistral-vibe, vibe` | `.vibe/skills/` | `~/.vibe/skills/` |
+| Mux | `mux` | `.mux/skills/` | `~/.mux/skills/` |
+| OpenCode | `opencode` | `.agents/skills/` | `~/.config/opencode/skills/` |
+| OpenHands | `openhands` | `.openhands/skills/` | `~/.openhands/skills/` |
+| Pi | `pi` | `.pi/skills/` | `~/.pi/agent/skills/` |
+| Qoder | `qoder` | `.qoder/skills/` | `~/.qoder/skills/` |
+| Qwen Code | `qwen-code` | `.qwen/skills/` | `~/.qwen/skills/` |
+| Roo Code | `roo` | `.roo/skills/` | `~/.roo/skills/` |
+| Trae | `trae` | `.trae/skills/` | `~/.trae/skills/` |
+| Trae CN | `trae-cn` | `.trae/skills/` | `~/.trae-cn/skills/` |
+| Windsurf | `windsurf` | `.windsurf/skills/` | `~/.codeium/windsurf/skills/` |
+| Zencoder | `zencoder` | `.zencoder/skills/` | `~/.zencoder/skills/` |
+| Neovate | `neovate` | `.neovate/skills/` | `~/.neovate/skills/` |
+| Pochi | `pochi` | `.pochi/skills/` | `~/.pochi/skills/` |
+| AdaL | `adal` | `.adal/skills/` | `~/.adal/skills/` |
+
+## 输出目录约定
+
+转换结果统一写入:
+
+```text
+adapters-output/<platform>/<project-path>/<skill-name>/
+```
 
-### Q: 转换后的文件可以直接使用吗?
+示例:
 
-A: 转换脚本生成的配置文件格式可能需要根据实际平台 API 调整。建议在实际使用前查阅目标平台的官方文档并进行测试。
+```text
+adapters-output/claude-code/.claude/skills/react/
+adapters-output/cursor/.agents/skills/react/
+adapters-output/openclaw/skills/react/
+adapters-output/antigravity/.agents/skills/react/
+```
 
-### Q: 如何验证转换是否正确?
+## 安装策略
 
-A: 可以查看 `adapters-output/` 目录下生成的文件,检查格式是否符合目标平台的要求。建议在实际平台上进行功能验证。
+- `fskill install`:默认安装到当前项目的 `.agents/skills/`
+- `--scope project`:安装到当前项目目录下的平台路径
+- `--scope global`:安装到用户主目录下的平台全局路径
+- 默认行为为复制目录
+- 追加 `--link` 时使用符号链接
+- 同名目标目录会被替换,以保证安装结果确定且可重复
 
-### Q: 转换后的技能功能是否完整?
+## 验证建议
 
-A: 转换脚本会尽可能保留原始技能的功能,但某些平台特定的功能可能需要手动调整。建议根据实际需求进行定制。
+- 用 `platforms` 校验平台 ID、别名、项目路径、全局路径
+- 用 `audit` 校验仓库技能数量、排除目录与缺失情况
+- 用 `convert --dry-run` 预览导出目录
+- 用 `install --dry-run` 预览项目级或全局级安装目标
+- 在实际平台中抽查至少一个共享路径平台、一个专属目录平台,以及 Antigravity
 
-### Q: 如何贡献新的平台适配器?
+## 相关文档
 
-A: 欢迎创建新的适配器脚本。可以参考现有适配器的实现方式,并遵循 Agent Skills 规范。完成后请提交 Pull Request。
+- [adapters/README.md](adapters/README.md) - 适配器命令与实现说明
+- [README.md](README.md) - 仓库主文档
+- [docs/repository-map.md](docs/repository-map.md) - 仓库结构与发布面快照

+ 270 - 383
README.md

@@ -2,26 +2,27 @@
 
 # Full Stack Skills(Alpha)
 
-**基于 Agent Skills 规范的全栈技能集合**
+**基于 Agent Skills 规范的分组式全栈技能仓库**
 
 ![Version](https://img.shields.io/badge/Version-0.0.1-red)
 ![License](https://img.shields.io/badge/License-Apache%202.0-green)
-![Skills](https://img.shields.io/badge/Skills-176-orange)
-![Plugins](https://img.shields.io/badge/Plugins-12-brightgreen)
+![Skill Docs](https://img.shields.io/badge/SKILL.md-421-orange)
+![Skill Groups](https://img.shields.io/badge/Groups-42-blue)
+![Marketplace Plugins](https://img.shields.io/badge/Plugins-40-brightgreen)
 
 </div>
 
 ## 📖 简介
 
-**Full-Stack-Skills(Alpha)** 是一个开源的 Agent Skills 集合,严格遵循 Agent Skills 规范,提供 **176 个技能集合**,按**技能种类**组织为 **12 个插件类别**,覆盖软件开发全生命周期。在 AI 时代,它赋能全栈独立开发者,通过 AI 助手掌握专业技能,实现**"一个人 = 一个公司"**的愿景,让独立开发者能够独立完成从产品设计、开发、测试到部署运维的全流程工作
+**Full-Stack-Skills(Alpha)** 是一个开源的 Agent Skills 仓库,面向 Claude Code、Claude.ai 与兼容 Agent Skills 生态的平台。当前仓库采用 `skills/<group>/<skill>/SKILL.md` 的分组式结构,覆盖产品、设计、前端、后端、测试、运维、文档、Spec 驱动开发等全链路场景
 
-> **⚠️ 注意:** 当前项目处于 Alpha 阶段,尚未经过严格测试,还在自测中。欢迎反馈问题和建议
+> **⚠️ 注意:** 当前文档口径以仓库内 `skills/` 实际目录和 `.claude-plugin/marketplace.json` 为准
 
-> **说明:** 本仓库合并了 Anthropic 的示例技能和 Agent Skills 的技能集合,提供各种实用的 AI 技能,可以在 Claude Code、Claude.ai 和 API 中使用。关于 Agent Skills 标准,请参见 [agentskills.io](http://agentskills.io)
+> **说明:** 当前仓库内共有 **42 个技能组目录**、**421 个 `SKILL.md` 文件**;其中 Marketplace 当前发布 **40 个插件**、共 **410 条技能路径**。未进入 Marketplace 的仓库内技能组为 `threejs-skills` 与 `vscode-skills`
 
 ## 什么是 Skills?
 
-Skills 是由说明、脚本和资源组成的文件夹,Claude 会按需动态加载它们,以提升在特定任务上的表现。Skills 用于以可复用的方式教会 Claude 完成具体工作,例如:按你公司的品牌规范创建文档、用你组织的既定流程分析数据,或自动化个人任务。
+Skills 是由说明、脚本和资源组成的文件夹,Claude 会按需动态加载它们,以提升在特定任务上的表现。Skills 用于以可复用的方式教会 Claude 完成具体工作,例如:按团队规范创建文档、执行特定技术流程、沉淀设计系统知识,或自动化重复性工程任务。
 
 ### 更多信息
 
@@ -44,127 +45,152 @@ Skills 是由说明、脚本和资源组成的文件夹,Claude 会按需动态
 
 ## 关于本仓库
 
-**full-stack-skills** 是一个面向**期望成为全栈技能人才的群体**的开源技能集合,严格遵循 [Agent Skills 规范](https://agentskills.io/),按**技能种类**组织技能库,而非按岗位划分
+**full-stack-skills** 是一个面向团队与独立开发者的开源技能仓库与 Marketplace 发布源。它不再采用早期的少量大类聚合方式,而是按技能组进行目录拆分与发布管理
 
-### ✨ 核心特性
+### 📊 仓库快照
+
+| 指标 | 当前值 |
+|---|---:|
+| `skills/` 下技能组目录 | 42 |
+| 仓库内 `SKILL.md` 文件 | 421 |
+| Marketplace 插件数 | 40 |
+| Marketplace 技能路径数 | 410 |
+| 仓库内未发布技能组 | 2 |
 
-#### 1. 开源免费
-- **Apache 2.0 许可证**:所有技能采用 Apache 2.0 许可证,完全开源
-- **规范标准**:严格遵循 Agent Skills 规范,确保技能质量和兼容性
-- **持续更新**:社区驱动,持续添加新技能和改进现有技能
+### ✨ 核心特性
 
-#### 2. 全栈覆盖
-- **176 个技能集合**:覆盖前端、后端、移动端、数据库、测试、DevOps、云平台、设计等全栈开发领域
-- **12 个插件类别**:按技能种类组织,而非按岗位划分,便于灵活组合使用
-- **跨平台支持**:支持 Claude Code、Claude.ai、Claude API 及其他 AI 平台
+#### 1. 分组式组织
+- **42 个技能组目录**:按领域、框架和工作流拆分,便于维护与扩展
+- **40 个 Marketplace 插件**:按技能组发布,便于按需安装与组合使用
+- **421 个 `SKILL.md` 文件**:沉淀可复用的 Agent Skills 资产
 
-#### 3. AI 赋能
-- **智能识别**:Claude 会根据技能描述自动判断何时使用该技能
-- **即插即用**:安装插件后,只需提到技能名称即可使用
-- **专业指导**:每个技能都包含详细的官方文档链接和使用示例
+#### 2. 全链路覆盖
+- **前端与 UI**:Vue、React、Angular、Svelte、各类 UI 组件库与构建工具
+- **后端与跨端**:Spring、Node.js、Python、Go、Electron、Tauri、UniApp、Flutter
+- **工程化与交付**:测试、DevOps、Docker、数据库、nvm、Spec 驱动开发
+- **设计与文档**:Figma、流程图、OCR、Mermaid、PlantUML、Pencil、Stitch、T2UI
 
-#### 4. 灵活组织
-- **按技能种类组织**:12 个插件类别,可按需安装
-- **独立技能**:每个技能自包含,可单独使用
-- **跨平台适配**:提供适配器工具,支持多种 AI 平台
+#### 3. 工程友好
+- **统一规范**:严格遵循 Agent Skills 规范
+- **结构清晰**:统一使用 `SKILL.md`、`examples/`、`references/`、`scripts/`、`assets/` 等结构
+- **跨平台适配**:提供 TypeScript 标准转换器,覆盖 43 个平台并统一输出标准 skills 目录
 
 ### 技能组织方式
 
-本仓库的技能按**技能种类**分为 12 个插件类别:
+当前仓库按**技能组**组织,核心分布如下:
+
+- **前端与 UI**:`vue-skills`、`react-skills`、`angular-skills`、`svelte-skills`、`build-skills`、`vue-ui-skills`、`antd-skills`、`uview-skills`、`avue-skills`
+- **后端与跨端开发**:`spring-skills`、`nodejs-skills`、`python-skills`、`go-skills`、`electron-skills`、`tauri-skills`、`uniapp-skills`、`flutter-skills`、`mobile-native-skills`、`cocos-skills`、`chart-skills`
+- **工程化与架构**:`dev-utils-skills`、`ddd-skills`、`testing-skills`、`devops-skills`、`docker-skills`、`database-skills`、`nvm-skills`
+- **设计、文档与流程**:`design-skills`、`document-skills`、`ocrmypdf-skills`、`drawio-skills`、`ascii-skills`
+- **Spec 与设计生态**:`speckit-skills`、`openspec-skills`、`t2ui-skills`、`stitch-skills`、`pencil-skills`
+- **通用支持**:`social-skills`、`teaching-skills`、`utility-skills`
+
+### 能力覆盖矩阵
+
+| 领域 | 代表技能组 | 覆盖重点 |
+|---|---|---|
+| 前端与 UI | `vue-skills`、`react-skills`、`angular-skills`、`svelte-skills`、`antd-skills`、`vue-ui-skills`、`build-skills` | 框架开发、组件库、构建体系、界面实现 |
+| 服务端与跨端 | `spring-skills`、`nodejs-skills`、`python-skills`、`go-skills`、`electron-skills`、`tauri-skills`、`uniapp-skills`、`flutter-skills` | 服务开发、桌面应用、移动与混合交付 |
+| 工程化与交付 | `dev-utils-skills`、`ddd-skills`、`testing-skills`、`devops-skills`、`docker-skills`、`database-skills`、`nvm-skills` | 脚手架、架构模式、测试体系、交付与运维 |
+| 设计与文档 | `design-skills`、`document-skills`、`ocrmypdf-skills`、`drawio-skills`、`ascii-skills` | 设计执行、文档处理、OCR、图表与文本可视化 |
+| Spec 与设计协同 | `speckit-skills`、`openspec-skills`、`t2ui-skills`、`stitch-skills`、`pencil-skills` | Spec 驱动交付、界面生成、设计系统协作 |
+| 通用支持 | `social-skills`、`teaching-skills`、`utility-skills` | 沟通协作、教学资源、通用工具能力 |
+
+### 当前发布面说明
 
-- **开发类**:前端开发(Vue、React、Angular)、后端开发(Spring、Node.js、Python、Go)、移动端开发(UniApp、React Native、Flutter)、开发工具
-- **设计类**:UI设计工具、AI设计工具、原型工具
-- **文档类**:文档生成、文档处理、OCR 识别(OCRmyPDF)、图表绘制(Mermaid、PlantUML)
-- **架构类**:DDD、微服务、事件驱动、六边形架构、整洁架构、COLA
-- **测试类**:单元测试、集成测试、E2E测试、移动端测试
-- **运维类**:CI/CD、容器化、IaC
-- **数据库类**:关系型数据库、NoSQL数据库、数据库工具
-- **云平台类**:AWS、Azure、阿里云、腾讯云、华为云
-- **其他**:社交协作、教学教育、工具技能
+- `threejs-skills` 当前在仓库中包含 18 个技能,但未进入 Marketplace 发布面。
+- `vscode-skills` 当前在仓库中包含 4 个技能,但未进入 Marketplace 发布面。
+- `document-skills` 当前目录中有 5 个技能,而 Marketplace 仍引用 9 个条目,其中 `docx`、`pptx`、`pdf`、`xlsx` 为缺失目录引用。
+- `tauri-skills` 当前目录中有 52 个技能,而 Marketplace 当前发布 51 个条目;`tauri-app-updater` 目前仅存在于仓库目录中。
 
-每个技能都自包含在单独的文件夹中,并包含一个 `SKILL.md` 文件,里面有 Claude 使用的说明和元数据。你可以浏览这些技能来获取灵感,或理解不同的模式与实现方式。
+### 阅读路径建议
+
+- **先理解仓库全貌**:先阅读本 README 与 `docs/repository-map.md`,快速掌握目录结构、发布面和当前差异。
+- **按技能组导航**:如果你关心某一技术域,直接从 `docs/skill-group-mapping.md` 与对应 `skills/<group>-skills/` 目录进入。
+- **按研发流程导航**:如果你关心需求、设计、开发、测试、交付的串联关系,优先阅读 `docs/pipeline-stage-to-skills.md`。
+- **按设计生态导航**:如果你关注界面生成、设计系统与 Spec 驱动协作,优先阅读 `stitch-skills`、`pencil-skills`、`t2ui-skills`、`speckit-skills`、`openspec-skills`。
 
 ### 技能生态与主文档入口
 
-本仓库提供全链路**阶段→技能**权威映射与**基础技能**(文档、DDD/架构、测试、部署、nvm 等)。关联技能库:t2ui-skills、stitch-skills、pencil-skills、tauri-skills。阶段与技能映射见 [docs/pipeline-stage-to-skills.md](docs/pipeline-stage-to-skills.md),生态总览见 [docs/skills-ecosystem.md](docs/skills-ecosystem.md)。
+本仓库提供全链路**阶段→技能**映射,以及面向 Spec 驱动开发、界面设计、全栈开发、测试与交付的基础技能集合。请优先参考以下文档:
 
-本仓库中的许多技能是开源的(Apache 2.0)。我们还在 [`skills/docx`](skills/docx)、[`skills/pdf`](skills/pdf)、[`skills/pptx`](skills/pptx) 和 [`skills/xlsx`](skills/xlsx) 子目录中包含了用于支撑 [Claude 文档能力](https://www.anthropic.com/news/create-files) 的文档创建与编辑技能。这些技能是"可查看源码"的(source-available),但并非开源;我们希望将其作为更复杂技能的参考示例,因为它们已在生产级 AI 应用中实际使用。
+- [docs/repository-map.md](docs/repository-map.md)
+- [docs/skill-group-mapping.md](docs/skill-group-mapping.md)
+- [docs/pipeline-stage-to-skills.md](docs/pipeline-stage-to-skills.md)
+- [docs/skills-ecosystem.md](docs/skills-ecosystem.md)
 
 ### 🎯 核心设计理念
 
 #### **技能标准化**
-- **Agent Skills 规范**:严格遵循 [Agent Skills 规范](https://agentskills.io/),确保技能质量和兼容性
-- **统一格式**:所有技能采用统一的 Markdown 格式和 YAML Frontmatter 元数据
-- **渐进式披露**:通过 `SKILL.md`、`examples/`、`templates/`、`api/` 等目录实现渐进式信息披露
+- **Agent Skills 规范**:严格遵循 [Agent Skills 规范](https://agentskills.io/)
+- **统一格式**:统一采用 `SKILL.md` 与结构化子目录
+- **渐进式披露**:通过 `examples/`、`references/`、`scripts/`、`assets/` 承载增量内容
 
-#### **按技能种类组织**
-- **灵活组合**:按技能种类而非岗位划分,便于灵活组合使用
-- **独立技能**:每个技能自包含,可单独使用
-- **插件化**:12 个插件类别,可按需安装
+#### **按组发布**
+- **目录与发布面解耦**:目录结构以 `skills/` 为准,发布面以 Marketplace 为准
+- **灵活组合**:按技能组安装,不绑定单一岗位模型
+- **可扩展**:支持在仓库内继续引入未发布技能组
 
-#### **全栈覆盖**
-- **176 个技能**:覆盖前端、后端、移动端、数据库、测试、DevOps、云平台、设计等全栈开发领域
-- **跨平台支持**:支持 Claude Code、Claude.ai、Claude API 及其他 AI 平台
-- **持续更新**:社区驱动,持续添加新技能和改进现有技能
-
-#### **AI 赋能**
-- **智能识别**:Claude 会根据技能描述自动判断何时使用该技能
-- **即插即用**:安装插件后,只需提到技能名称即可使用
-- **专业指导**:每个技能都包含详细的官方文档链接和使用示例
+#### **面向交付**
+- **覆盖需求到部署**:支持从需求、设计到研发、测试、交付的全过程
+- **支持多生态协作**:兼容 T2UI、Stitch、Pencil、Tauri、OpenSpec、SpecKit 等流程
+- **适合团队沉淀**:可作为技能资产库与内部标准库使用
 
 ### 📦 项目定位
 
-**Full-Stack-Skills** 是面向**期望成为全栈技能人才的群体**的开源技能市场,旨在
+**Full-Stack-Skills** 是一个以实际技能目录为核心、以 Marketplace 为发布面的技能基础设施仓库,适用于:
 
-- **统一技能库**:为全栈开发者提供统一的技能集合,降低学习成本
-- **规范标准**:严格遵循 Agent Skills 规范,确保技能质量和兼容性
-- **灵活组合**:按技能种类组织,可根据需求灵活组合使
-- **技术栈统一**:覆盖主流技术栈,统一技能格式和文档结构
+- 团队内部技能资产沉淀
+- Claude Code Marketplace 发布
+- Agent Skills 设计参考与模板复
+- Spec 驱动研发与设计协作流程落地
 
 ### 🏗️ 项目架构
 
-**Full-Stack-Skills 技能组织结构**:
+**当前仓库结构**:
 
-```
+```text
 full-stack-skills/
 ├── .claude-plugin/
-│   └── marketplace.json          # 插件市场配置
-├── skills/                       # 技能目录
-│   ├── vue2/                     # 单个技能目录
-│   │   ├── SKILL.md              # 技能主文档
-│   │   ├── examples/             # 示例文件
-│   │   ├── templates/            # 模板文件
-│   │   ├── api/                  # API 参考
-│   │   └── LICENSE.txt           # 许可证
-│   ├── vue3/
-│   ├── react/
-│   └── ...                       # 176 个技能
-├── adapters/                     # 跨平台适配器
-│   ├── cursor/                   # Cursor 适配器
-│   ├── trae/                     # Trae 适配器
+│   └── marketplace.json          # Marketplace 配置
+├── adapters/                     # TypeScript 标准转换器与平台路径注册表
+├── agents/                       # 代理角色与编排入口
+├── bundles/                      # 打包与聚合产物
+├── dist/                         # 分发产物
+├── docs/                         # 目录映射、阶段映射、生态说明
+├── media/                        # 截图与展示素材
+├── skills/                       # 技能主目录(按组拆分)
+│   ├── vue-skills/
+│   │   └── vue3/
+│   │       └── SKILL.md
+│   ├── react-skills/
+│   ├── spring-skills/
+│   ├── tauri-skills/
 │   └── ...
-├── ROLE_DEFINITIONS.md           # 角色定义
-├── AGENTS_PROMPT.md              # 智能体提示词
+├── spec/                         # 规范与规格说明
+├── template/                     # 技能模板
+├── tools/                        # 辅助工具
+├── AGENTS.md                     # 仓库级 Agent 约束
 └── README.md                     # 项目说明
 ```
 
-**插件类别组织**:
+**目录模型说明**:
 
-| 插件类别 | 技能数量 | 说明 |
-|---|---|---|
-| development-skills | 76 | 全栈开发技能集合 |
-| development-skills-utils | 12 | 开发工具技能集合 |
-| design-skills | 16 | 设计技能集合 |
-| document-skills | 15 | 文档处理技能集合 |
-| architecture-skills | 7 | 架构技能集合 |
-| testing-skills | 9 | 测试技能集合 |
-| devops-skills | 9 | 运维技能集合 |
-| database-skills | 8 | 数据库技能集合 |
-| cloud-skills | 16 | 云平台技能集合 |
-| markdown-skills | 1 | Markdown 技能集合 |
-| social-skills | 2 | 社交技能集合 |
-| teaching-skills | 3 | 教学技能集合 |
-| utility-skills | 1 | 工具技能集合 |
+- 本仓库统一采用 `skills/<group>-skills/<skill>/SKILL.md` 作为技能存储模型。
+- `references/` 用于承载较长的技术说明与官方资料,避免 `SKILL.md` 过长。
+- `scripts/` 用于固化可复用的自动化流程,优先替代大段内联命令。
+- `docs/` 用于描述仓库级结构、阶段映射、技能生态与发布状态。
+
+**当前状态**:
+
+| 项目 | 当前值 |
+|---|---:|
+| 技能组目录 | 42 |
+| `SKILL.md` 文件 | 421 |
+| Marketplace 插件 | 40 |
+| Marketplace 技能路径 | 410 |
+| 仓库内未发布技能组 | 2 |
 
 ### 免责声明
 
@@ -176,7 +202,7 @@ full-stack-skills/
 
 - **Claude Code** 或 **Claude.ai**(付费套餐)或 **Claude API**
 - **Git**(用于克隆仓库,可选)
-- **Python 3.7+**(用于跨平台适配器,可选)
+- **Node.js LTS 与 npm**(用于 TypeScript 跨平台转换器,可选)
 
 ### 在 Claude Code 中使用
 
@@ -218,19 +244,15 @@ full-stack-skills/
 直接使用命令安装插件:
 
 ```
-# 按技能种类安装(12个插件类别)
-/plugin install development-skills@full-stack-skills
-/plugin install development-skills-utils@full-stack-skills
-/plugin install design-skills@full-stack-skills
-/plugin install document-skills@full-stack-skills
-/plugin install architecture-skills@full-stack-skills
+# 按当前技能组安装示例
+/plugin install vue-skills@full-stack-skills
+/plugin install react-skills@full-stack-skills
+/plugin install spring-skills@full-stack-skills
+/plugin install dev-utils-skills@full-stack-skills
 /plugin install testing-skills@full-stack-skills
-/plugin install devops-skills@full-stack-skills
-/plugin install database-skills@full-stack-skills
-/plugin install cloud-skills@full-stack-skills
-/plugin install social-skills@full-stack-skills
-/plugin install teaching-skills@full-stack-skills
-/plugin install utility-skills@full-stack-skills
+/plugin install tauri-skills@full-stack-skills
+/plugin install t2ui-skills@full-stack-skills
+/plugin install stitch-skills@full-stack-skills
 ```
 
 ![install-development-skills-frontend.png](media/install-development-skills-frontend.png)
@@ -251,23 +273,36 @@ full-stack-skills/
 
 ### 在其他平台使用
 
-这些 skills 也可以在其他 AI 平台使用,如 Cursor、Trae、Qoder、CodeBuddy 等。
-
-**详细说明:**
-- [跨平台使用指南](PLATFORM_GUIDE.md) - 完整的平台适配说明
-- [平台适配器工具](adapters/README.md) - 自动转换工具和示例
-- [适配器示例](adapters/EXAMPLES.md) - 转换后的示例文件
+本仓库提供一个 **TypeScript 标准转换器**,将 `skills/<group>/<skill>/` 导出为标准 skills 目录,并按目标平台写入其项目级或全局级路径。转换器不再生成 Cursor rule、Trae plugin、Qoder agent、CodeBuddy workflow 这类平台专有包装物,统一以标准技能目录作为输出。
 
-**快速转换:**
+**安装与执行命令:**
 ```bash
-cd adapters
-python convert_all.py ../skills ../adapters-output
+git clone https://github.com/partme-ai/full-stack-skills.git
+cd full-stack-skills
+npm install -g ./adapters
+fskill --version
+fskill platforms
+fskill audit
+fskill convert --platform all --output ./adapters-output
+fskill install
 ```
 
+默认情况下,`fskill install` 会把技能安装到当前项目的 `.agents/skills/` 目录;这是标准 Agent Skills 兼容路径。如需其他平台目录,再显式传入 `--platform` 与 `--scope`。
+如果只想在仓库开发态使用,也可以进入 `adapters/` 执行 `npm install && npm link`,随后直接运行 `fskill ...`。
+
+**平台覆盖:**
+- **共享 `.agents/skills/` 路径族**:`amp`、`kimi-cli`、`replit`、`universal`、`antigravity`、`cline`、`warp`、`codex`、`cursor`、`deepagents`、`gemini-cli`、`github-copilot`、`opencode`
+- **专属目录路径族**:`augment`、`claude-code`、`openclaw`、`codebuddy`、`command-code`、`continue`、`cortex`、`crush`、`droid`、`goose`、`junie`、`iflow-cli`、`kilo`、`kiro-cli`、`kode`、`mcpjam`、`mistral-vibe`、`mux`、`openhands`、`pi`、`qoder`、`qwen-code`、`roo`、`trae`、`trae-cn`、`windsurf`、`zencoder`、`neovate`、`pochi`、`adal`
+- **Antigravity 基线**:项目级使用 `.agents/skills/`,全局级使用 `~/.gemini/antigravity/skills/`
+
+**详细文档:**
+- [跨平台使用指南](PLATFORM_GUIDE.md) - 完整平台矩阵、安装路径与执行示例
+- [平台适配器工具](adapters/README.md) - CLI 命令、审计规则、导出与安装说明
+
 ## 📝 核心功能
 
 ### 1. 技能管理
-- **技能分类**:按技能种类组织为 12 个插件类别
+- **技能分类**:按技能组组织,并通过 Marketplace 插件发布
 - **技能搜索**:通过技能名称快速查找所需技能
 - **技能安装**:支持按插件类别批量安装或单独安装技能
 
@@ -275,7 +310,9 @@ python convert_all.py ../skills ../adapters-output
 - **Claude Code**:原生支持,通过插件市场安装
 - **Claude.ai**:支持上传自定义技能
 - **Claude API**:通过 API 使用技能
-- **其他平台**:提供适配器工具,支持 Cursor、Trae、Qoder、CodeBuddy、Windsurf 等
+- **标准目录兼容**:统一导出标准 skills 目录,并按平台路径矩阵安装
+- **43 平台覆盖**:覆盖 `.agents/skills/` 共享路径平台与各类专属目录平台
+- **可审计与可安装**:内置 `platforms`、`audit`、`convert`、`install` 命令
 
 ### 3. 技能创建
 - **规范指导**:提供技能创建规范和最佳实践
@@ -293,268 +330,95 @@ python convert_all.py ../skills ../adapters-output
 - **项目构建**:支持 DDD 项目构建(单体单模块、单体多模块、微服务)
 - **文档生成**:支持全栈文档生成(14种文档模板)
 
-## 可用插件和技能
-
-本仓库的技能按**技能种类**分为 **12 个插件类别**,共包含 **176 个技能**。
-
----
-
-### 📦 development-skills(全栈开发技能集合)
-
-**安装命令:** `/plugin install development-skills@full-stack-skills`
-
-**技能数量:** 76 个技能
-
-**描述:** 全栈开发技能集合,覆盖前端、后端、移动端、桌面应用全平台开发。帮助 AI 助手掌握全栈开发技能。
-
-#### 前端框架与构建工具
-- **框架:** `vue2`、`vue3`、`react`、`react-hooks`、`nextjs`、`angular`、`svelte`
-- **构建工具:** `vite`、`webpack`、`rollup`、`parcel`、`rspack`
-- **状态管理:** `vue-router`、`vue-router-v3`、`vue-router-v4`、`pinia`、`vuex`、`vuex-vue2`、`redux`
-- **样式工具:** `dart-sass`
-
-#### UI 组件库
-- **Vue 生态:** `element-plus`、`element-plus-vue3`、`ant-design-vue`、`bootstrap-vue3`、`vant-vue3`、`uview-vue2`、`uview-pro-vue3`、`layui-vue3`
-- **React 生态:** `ant-design-react`、`ant-design-mobile`、`ant-design-mini`
-- **其他:** `avue`、`avue-crud`、`avue-form`
-
-#### 桌面应用框架
-- `electron`、`electron-egg`、`tauri`
-
-#### 后端框架
-- **Java 生态:** `spring-boot`、`spring-cloud`、`spring-cloud-alibaba`、`spring-ai`、`spring-ai-alibaba`、`spring-security`、`spring-data-jpa`
-- **Node.js 生态:** `express`、`nestjs`、`koa`、`fastify`
-- **Python 生态:** `django`、`fastapi`、`flask`
-- **Go 生态:** `gin`、`gin-gonic`
-
-#### 移动端开发
-- **跨平台框架:** `uniapp-project-creator`、`uniapp-project`、`uniappx-project-creator`、`uniappx-project`、`react-native`、`react-native-project-creater`、`flutter`、`flutter-project-creater`
-- **原生开发:** `android-kotlin`、`ios-swift`
-- **游戏引擎:** `cocos2d-x`
-- **UniApp 生态:** `uniapp-uview`、`uniappx-uview-pro`、`uniapp-ucharts`、`uniapp-ad`、`uniapp-cloud`、`uniapp-mini-guide`、`uniapp-native-app`、`uniapp-native-plugin`、`uniapp-plugin`
-- **图表组件:** `lime-echart`、`ucharts`、`upgradeLink`
-
----
-
-### 🛠️ development-skills-utils(开发工具技能集合)
-
-**安装命令:** `/plugin install development-skills-utils@full-stack-skills`
-
-**技能数量:** 13 个技能
-
-**描述:** 开发工具技能集合,包含代码生成、测试编写、文档构建等基础工具;DDD 项目构建器、项目文档生成、MCP 构建器;Maven 组件检索等。帮助 AI 助手掌握开发工具链和工程化实践。
-
-**技能列表:**
-- `code-generator` - 代码生成器
-- `test-writer` - 测试编写工具
-- `ddd4j-project-creator` - DDD4j 项目创建器(基于 ddd4j-boot,支持单体单模块、单体多模块、微服务架构)
-- `documentation-builder` - 文档构建工具
-- `full-stack-doc` - 全栈文档生成(14种文档模板,覆盖产品到运维全生命周期)
-- `mcp-builder` - MCP 构建器
-- `webapp-testing` - Web 应用测试
-- `frontend-design` - 前端设计工具
-- `web-artifacts-builder` - Web 工件构建器
-- `theme-factory` - 主题工厂
-- `nvm` - Node.js 版本管理
-- `agent-browser` - 浏览器自动化
-- `maven-search` - Maven 组件检索(从 Maven Central Repository 搜索和检索 Maven 依赖)
-
----
-
-### 🎨 design-skills(设计技能集合)
-
-**安装命令:** `/plugin install design-skills@full-stack-skills`
-
-**技能数量:** 16 个技能
-
-**描述:** 设计与创意技能集合,包含专业设计工具、AI 设计工具、创意工具等。帮助 AI 助手掌握 UI/UX 设计、原型设计、AI 绘图等设计技能。
-
-#### 专业设计工具
-- `figma`、`sketch`、`adobe-xd`、`axure`、`modao`、`framer`
-
-#### AI 设计工具
-- `midjourney`、`dalle`、`stable-diffusion`、`runway-ml`、`galileo-ai`、`uizard`、`figma-ai`
-
-#### 创意工具
-- `algorithmic-art`、`brand-guidelines`、`canvas-design`
-
----
-
-### 📄 document-skills(文档处理技能集合)
-
-**安装命令:** `/plugin install document-skills@full-stack-skills`
-
-**技能数量:** 15 个技能
-
-**描述:** 文档处理技能集合,包含办公文档的创建、编辑和处理;OCRmyPDF 扫描件 OCR 识别(核心 OCR、图像处理、优化压缩、批量处理、Python API 及插件);文档协作;API 文档生成;流程图和思维导图绘制;Mermaid 和 PlantUML 图表绘制等。帮助 AI 助手掌握文档处理、OCR 识别、图表绘制、文档协作等办公自动化技能。
-
-#### 办公文档处理
-- `docx` - Word 文档处理
-- `pptx` - PowerPoint 演示文稿处理
-- `pdf` - PDF 文档处理
-- `xlsx` - Excel 电子表格处理
-
-#### OCR 识别(OCRmyPDF)
-- `ocrmypdf` - OCRmyPDF 核心 OCR(安装、基本 OCR、多语言、OCR 模式)
-- `ocrmypdf-image` - 图像处理(纠偏、旋转、去噪、清理扫描件)
-- `ocrmypdf-optimize` - 优化与输出(压缩级别、PDF/A、JBIG2 编码)
-- `ocrmypdf-batch` - 批量处理与自动化(Shell 脚本、Docker、CI/CD)
-- `ocrmypdf-api` - Python API 与插件(编程调用、EasyOCR、PaddleOCR)
-
-#### 文档协作与生成
-- `doc-coauthoring` - 文档协作(多人协作编辑)
-- `api-doc-generator` - API 文档生成器
-
-#### 图表绘制工具
-- `drawio-flowchart` - Draw.io 流程图绘制
-- `processon-mindmap` - ProcessOn 思维导图绘制
-- `mermaid` - Mermaid 图表绘制(支持 23 种图表类型)
-- `plantuml` - PlantUML 架构图绘制(支持 UML 和非 UML 图表)
-
----
-
-### 🏗️ architecture-skills(架构技能集合)
-
-**安装命令:** `/plugin install architecture-skills@full-stack-skills`
-
-**技能数量:** 7 个技能
-
-**描述:** 架构技能集合,包含领域驱动设计(DDD)、各种架构模式、架构图绘制工具等。帮助 AI 助手掌握企业级架构设计、领域建模、架构图绘制等架构设计技能。
+### 6. 仓库治理
+- **目录即事实**:`skills/` 目录代表仓库中的真实技能资产
+- **Marketplace 即发布面**:`.claude-plugin/marketplace.json` 代表对外可安装范围
+- **差异需显式记录**:目录与发布面不一致时,README 与 `docs/repository-map.md` 需要同步说明
+- **结构优先稳定**:新增技能优先归入已有技能组,只有在职责明显独立时才引入新技能组
 
-#### 架构模式
-- `ddd` - 领域驱动设计
-- `ddd-cola` - COLA 架构
-- `ddd-microservices` - DDD 微服务架构
-- `ddd-event-driven` - DDD 事件驱动架构
-- `ddd-hexagonal-architecture` - DDD 六边形架构
-- `ddd-clean-architecture` - DDD 整洁架构
-
-#### 架构图工具
-- `drawio-architecture` - Draw.io 架构图绘制
-
----
-
-### 🧪 testing-skills(测试技能集合)
-
-**安装命令:** `/plugin install testing-skills@full-stack-skills`
-
-**技能数量:** 9 个技能
-
-**描述:** 测试技能集合,包含单元测试框架、E2E 测试工具、移动端测试工具等。帮助 AI 助手掌握单元测试、集成测试、端到端测试、移动端测试等测试技能,提升代码质量和测试覆盖率。
-
-#### 单元测试框架
-- `jest`、`vitest`、`pytest`、`junit`
-
-#### E2E 测试工具
-- `cypress`、`playwright`、`selenium`
-
-#### 移动端测试工具
-- `appium`、`detox`
-
----
-
-### 🚀 devops-skills(运维技能集合)
-
-**安装命令:** `/plugin install devops-skills@full-stack-skills`
-
-**技能数量:** 9 个技能
-
-**描述:** 运维技能集合,包含 CI/CD 工具、容器化和容器编排工具、基础设施即代码(IaC)工具等。帮助 AI 助手掌握 DevOps 实践、自动化部署、容器化、基础设施管理等运维技能。
-
-#### CI/CD 工具
-- `jenkins`、`gitlab-ci`、`github-actions`
-
-#### 容器化与编排
-- `docker`、`docker-compose`、`kubernetes`
-
-#### 基础设施即代码(IaC)
-- `terraform`、`ansible`、`cloudformation`
-
----
-
-### 💾 database-skills(数据库技能集合)
-
-**安装命令:** `/plugin install database-skills@full-stack-skills`
-
-**技能数量:** 8 个技能
-
-**描述:** 数据库技能集合,包含关系型数据库、NoSQL 数据库、搜索引擎、数据库管理工具等。帮助 AI 助手掌握数据库设计、SQL 优化、数据存储、数据检索等数据库技能。
-
-#### 关系型数据库
-- `mysql`、`postgresql`、`oracle`
-
-#### NoSQL 数据库与搜索引擎
-- `mongodb`、`redis`、`elasticsearch`
-
-#### 数据库管理工具
-- `navicat`、`dbeaver`
-
----
-
-### ☁️ cloud-skills(云平台技能集合)
-
-**安装命令:** `/plugin install cloud-skills@full-stack-skills`
-
-**技能数量:** 16 个技能
-
-**描述:** 云平台技能集合,包含 AWS、Azure、阿里云、腾讯云、华为云等主流云平台的核心服务。帮助 AI 助手掌握云计算、云服务使用、云架构设计等云平台技能,支持多云部署和云原生应用开发。
-
-#### AWS
-- `cloud-aws-ec2`、`cloud-aws-s3`、`cloud-aws-rds`、`cloud-aws-lambda`
-
-#### Azure
-- `cloud-azure-vm`、`cloud-azure-storage`、`cloud-azure-sql`
-
-#### 阿里云
-- `cloud-aliyun-ecs`、`cloud-aliyun-oss`、`cloud-aliyun-rds`
-
-#### 腾讯云
-- `cloud-tencent-cvm`、`cloud-tencent-cos`、`cloud-tencent-cdb`
-
-#### 华为云
-- `cloud-huawei-ecs`、`cloud-huawei-obs`、`cloud-huawei-rds`
-
----
-
-### 👥 social-skills(社交技能集合)
-
-**安装命令:** `/plugin install social-skills@full-stack-skills`
-
-**技能数量:** 2 个技能
-
-**描述:** 社交与协作技能集合,包含内部沟通、Slack GIF 创建器等。帮助 AI 助手掌握团队协作、内部沟通、社交工具使用等协作技能。
-
-**技能列表:**
-- `internal-comms` - 内部沟通(状态报告、领导更新、公司通讯、FAQ 等内部文档编写)
-- `slack-gif-creator` - Slack GIF 创建器(为 Slack 消息创建 GIF 动图)
-
----
-
-### 📚 teaching-skills(教学技能集合)
-
-**安装命令:** `/plugin install teaching-skills@full-stack-skills`
-
-**技能数量:** 3 个技能
-
-**描述:** 教学与教育相关技能集合,包含课程设计、学习评估、教学资源生成等。帮助 AI 助手掌握教学资源设计、课程规划、学习评估等教育技能。
-
-**技能列表:**
-- `course-designer` - 课程设计(课程大纲、学习目标、教学计划、评估方案)
-- `learning-assessor` - 学习评估(测验题目、评估标准、评分 rubric、学习分析)
-- `teaching-resource-generator` - 教学资源生成(课件、练习题、教学案例、学习指南)
-
----
-
-### 🔧 utility-skills(工具技能集合)
-
-**安装命令:** `/plugin install utility-skills@full-stack-skills`
-
-**技能数量:** 1 个技能
+## 可用插件和技能
 
-**描述:** 工具与实用技能集合,包含技能创建器,指导如何创建有效的 Agent Skills,扩展 Claude 的能力。帮助 AI 助手和开发者掌握技能设计、技能结构、最佳实践等技能创建技能,支持自定义技能开发。
+以下表格以当前 `skills/` 实际目录与 `.claude-plugin/marketplace.json` 为准,展示仓库中的技能组、目录技能数与当前发布状态。
+
+| 技能组 | 目录内技能数 | 已发布 | Marketplace 引用数 | 说明 |
+|---|---:|---|---:|---|
+| `angular-skills` | 1 | 是 | 1 | 已与当前发布面对应 |
+| `antd-skills` | 4 | 是 | 4 | 已与当前发布面对应 |
+| `ascii-skills` | 13 | 是 | 13 | 已与当前发布面对应 |
+| `avue-skills` | 3 | 是 | 3 | 已与当前发布面对应 |
+| `build-skills` | 6 | 是 | 6 | 已与当前发布面对应 |
+| `chart-skills` | 2 | 是 | 2 | 已与当前发布面对应 |
+| `cocos-skills` | 1 | 是 | 1 | 已与当前发布面对应 |
+| `database-skills` | 5 | 是 | 5 | 已与当前发布面对应 |
+| `ddd-skills` | 6 | 是 | 6 | 已与当前发布面对应 |
+| `design-skills` | 12 | 是 | 12 | 已与当前发布面对应 |
+| `dev-utils-skills` | 13 | 是 | 13 | 已与当前发布面对应 |
+| `devops-skills` | 6 | 是 | 6 | 已与当前发布面对应 |
+| `docker-skills` | 2 | 是 | 2 | 已与当前发布面对应 |
+| `document-skills` | 5 | 是 | 9 | 目录技能数与 Marketplace 引用数不一致,详见 repository-map |
+| `drawio-skills` | 2 | 是 | 2 | 已与当前发布面对应 |
+| `electron-skills` | 3 | 是 | 3 | 已与当前发布面对应 |
+| `flutter-skills` | 2 | 是 | 2 | 已与当前发布面对应 |
+| `go-skills` | 2 | 是 | 2 | 已与当前发布面对应 |
+| `mobile-native-skills` | 2 | 是 | 2 | 已与当前发布面对应 |
+| `nodejs-skills` | 4 | 是 | 4 | 已与当前发布面对应 |
+| `nvm-skills` | 15 | 是 | 15 | 已与当前发布面对应 |
+| `ocrmypdf-skills` | 5 | 是 | 5 | 已与当前发布面对应 |
+| `openspec-skills` | 15 | 是 | 15 | 已与当前发布面对应 |
+| `pencil-skills` | 28 | 是 | 28 | 已与当前发布面对应 |
+| `python-skills` | 3 | 是 | 3 | 已与当前发布面对应 |
+| `react-skills` | 6 | 是 | 6 | 已与当前发布面对应 |
+| `social-skills` | 2 | 是 | 2 | 已与当前发布面对应 |
+| `speckit-skills` | 13 | 是 | 13 | 已与当前发布面对应 |
+| `spring-skills` | 7 | 是 | 7 | 已与当前发布面对应 |
+| `stitch-skills` | 28 | 是 | 28 | 已与当前发布面对应 |
+| `svelte-skills` | 1 | 是 | 1 | 已与当前发布面对应 |
+| `t2ui-skills` | 97 | 是 | 97 | 已与当前发布面对应 |
+| `tauri-skills` | 52 | 是 | 51 | 目录技能数与 Marketplace 引用数不一致,详见 repository-map |
+| `teaching-skills` | 3 | 是 | 3 | 已与当前发布面对应 |
+| `testing-skills` | 9 | 是 | 9 | 已与当前发布面对应 |
+| `threejs-skills` | 18 | 否 | 0 | 仓库内存在,当前未写入 Marketplace |
+| `uniapp-skills` | 13 | 是 | 13 | 已与当前发布面对应 |
+| `utility-skills` | 3 | 是 | 3 | 已与当前发布面对应 |
+| `uview-skills` | 2 | 是 | 2 | 已与当前发布面对应 |
+| `vscode-skills` | 4 | 否 | 0 | 仓库内存在,当前未写入 Marketplace |
+| `vue-skills` | 7 | 是 | 7 | 已与当前发布面对应 |
+| `vue-ui-skills` | 4 | 是 | 4 | 已与当前发布面对应 |
+
+### 当前一致性说明
+
+- 对仓库内容的理解,应以 `skills/` 目录为准。
+- 对外发布面的理解,应以 `.claude-plugin/marketplace.json` 为准。
+- 当前真实存在的差异仅有三类:仓库内未发布技能组、Marketplace 缺失目录引用、仓库内新增但未发布的单个技能。
+- 上表已经明确标识这些差异,因此 README 现在对应的是“当前仓库状态”,而不是历史分类口径。
+
+### 安装建议
+
+- 需要前端能力:优先安装 `vue-skills`、`react-skills`、`build-skills`、`antd-skills`、`vue-ui-skills`
+- 需要后端与跨端能力:优先安装 `spring-skills`、`nodejs-skills`、`python-skills`、`go-skills`、`tauri-skills`、`uniapp-skills`
+- 需要设计与文档能力:优先安装 `design-skills`、`document-skills`、`ocrmypdf-skills`、`drawio-skills`
+- 需要交付与工程化能力:优先安装 `dev-utils-skills`、`testing-skills`、`devops-skills`、`docker-skills`、`database-skills`、`nvm-skills`
+- 需要 Spec / 设计工作流:优先安装 `speckit-skills`、`openspec-skills`、`t2ui-skills`、`stitch-skills`、`pencil-skills`
+
+### 场景化安装路径
+
+- **前端应用开发**:先安装 `vue-skills` 或 `react-skills`,再按需要补充 `build-skills`、`antd-skills`、`vue-ui-skills`。
+- **后端服务开发**:将 `spring-skills`、`nodejs-skills`、`python-skills`、`go-skills` 与 `testing-skills`、`database-skills` 组合使用。
+- **桌面与跨端产品**:按目标平台选择 `tauri-skills`、`electron-skills`、`uniapp-skills`、`flutter-skills`。
+- **Spec 驱动协作**:建议成套安装 `speckit-skills`、`openspec-skills`、`t2ui-skills`、`stitch-skills`、`pencil-skills`。
+- **文档与图形表达**:建议组合 `document-skills`、`ocrmypdf-skills`、`drawio-skills`、`ascii-skills`。
+
+### 业务域导航
+
+| 目标 | 建议优先阅读 | 建议安装组合 |
+|---|---|---|
+| Web 前端交付 | `vue-skills`、`react-skills`、`build-skills` | `vue-skills` / `react-skills` + `build-skills` + `testing-skills` |
+| 企业后台与服务 | `spring-skills`、`nodejs-skills`、`database-skills` | `spring-skills` / `nodejs-skills` + `database-skills` + `devops-skills` |
+| 桌面与跨端应用 | `tauri-skills`、`electron-skills`、`uniapp-skills`、`flutter-skills` | 按目标平台选 1–2 个运行时组,再补 `testing-skills` |
+| Spec 驱动产品研发 | `speckit-skills`、`openspec-skills`、`t2ui-skills` | `speckit-skills` + `openspec-skills` + `t2ui-skills` |
+| 设计系统与界面生产 | `stitch-skills`、`pencil-skills`、`design-skills` | `stitch-skills` + `pencil-skills` + `design-skills` |
+| 文档、OCR 与图表 | `document-skills`、`ocrmypdf-skills`、`drawio-skills`、`ascii-skills` | `document-skills` + `ocrmypdf-skills` + `drawio-skills` |
 
-**技能列表:**
-- `skill-creator` - 技能创建器(指导如何创建有效的 Agent Skills)
 
 ## 🛠️ 技术栈
 
@@ -566,24 +430,39 @@ python convert_all.py ../skills ../adapters-output
 ### 技能结构
 - **SKILL.md**:技能主文档,包含描述、使用说明、示例等
 - **examples/**:示例文件目录,包含各种使用场景的示例
-- **templates/**:模板文件目录,包含可复用的模板
+- **references/**:参考资料目录,用于承载较长说明与官方链接
 - **scripts/**:脚本文件目录,包含自动化脚本
-- **api/**:API 参考文档目录
-- **reference/**:参考文档目录
+- **assets/**:资源文件目录,用于存放图片、素材或辅助文件
+
+### 编写原则
+- **描述准确**:`description` 必须明确说明技能的触发场景与适用任务
+- **正文精简**:`SKILL.md` 保持精炼,复杂材料优先放入 `references/`
+- **路径一致**:目录名、frontmatter 中的 `name` 与 Marketplace 路径保持一致
+- **任务导向**:优先描述工作流、输入输出、边界条件,而不是泛化概念说明
+- **脚本优先**:可复用流程优先沉淀到 `scripts/`,减少内联命令噪音
+
+### 文档维护规则
+- **计数更新同步**:当技能组数量、`SKILL.md` 数量或 Marketplace 路径变化时,需同步更新 README 中的快照数据
+- **状态说明同步**:当出现 repo-only 技能组或 Marketplace 漂移时,README 与 `docs/repository-map.md` 必须同时更新
+- **示例命令同步**:安装命令示例只能使用当前 Marketplace 中实际存在的插件名
+- **路径说明同步**:路径示例必须遵循 `skills/<group>-skills/<skill>/` 结构,避免回退到历史写法
 
 ### 跨平台支持
 - **Claude Code**:原生支持,通过插件市场安装
 - **Claude.ai**:支持上传自定义技能
 - **Claude API**:通过 API 使用技能
-- **其他平台**:提供适配器工具,支持 Cursor、Trae、Qoder、CodeBuddy、Windsurf 等
+- **标准转换器**:以 TypeScript CLI 统一导出标准 skills 目录
+- **路径矩阵**:覆盖 43 个平台的项目级与全局级安装路径
 
 ## 📦 版本信息
 
 | 项目 | 当前版本          |
 |---|---------------|
 | full-stack-skills | 0.0.1 (Alpha) |
-| 技能总数 | 176           |
-| 插件类别 | 12            |
+| 技能组目录 | 42            |
+| `SKILL.md` 文件 | 421           |
+| Marketplace 插件 | 40            |
+| Marketplace 技能路径 | 410           |
 | Agent Skills 规范 | 最新版本          |
 
 ## 🔗 相关链接
@@ -623,15 +502,23 @@ python convert_all.py ../skills ../adapters-output
 
 ### 技能创建规范
 - 严格遵循 [Agent Skills 规范](https://agentskills.io/)
+- 路径遵循 `skills/<group>-skills/<skill>/SKILL.md`
 - 参考现有技能的结构和格式
 - 包含完整的官方文档链接
 - 提供清晰的使用示例
+- 需要发布时同步更新 `.claude-plugin/marketplace.json`
+
+### 提交前检查清单
+- 确认技能目录名、frontmatter `name` 与实际用途一致
+- 确认 `SKILL.md` 足够精炼,长说明已移动至 `references/`
+- 确认脚本、示例、资源文件路径可被仓库内直接解析
+- 确认 README、映射文档、Marketplace 配置之间没有新的口径差异
 
 ## 📄 许可证
 
 本项目采用 [Apache License 2.0](LICENSE) 许可证。
 
-**注意**:本仓库中的许多技能是开源的(Apache 2.0)。我们还在 [`skills/docx`](skills/docx)、[`skills/pdf`](skills/pdf)、[`skills/pptx`](skills/pptx) 和 [`skills/xlsx`](skills/xlsx) 子目录中包含了用于支撑 [Claude 文档能力](https://www.anthropic.com/news/create-files) 的文档创建与编辑技能。这些技能是"可查看源码"的(source-available),但并非开源;我们希望将其作为更复杂技能的参考示例,因为它们已在生产级 AI 应用中实际使用。
+**注意**:本仓库中的许多技能是开源的(Apache 2.0)。我们还在 [`skills/document-skills/docx`](skills/document-skills/docx)、[`skills/document-skills/pdf`](skills/document-skills/pdf)、[`skills/document-skills/pptx`](skills/document-skills/pptx) 和 [`skills/document-skills/xlsx`](skills/document-skills/xlsx) 子目录中包含了用于支撑 [Claude 文档能力](https://www.anthropic.com/news/create-files) 的文档创建与编辑技能。这些技能是“可查看源码”的(source-available),但并非开源;它们同时也是构建复杂文档类技能的参考实现
 
 ## 🙏 致谢
 

+ 234 - 307
README_EN.md

@@ -1,12 +1,18 @@
-# PartMeAI Skills Marketplace
+# Full Stack Skills (Alpha)
 
-A free skills marketplace providing various practical AI skill collections that can be used in Claude Code.
+A grouped Agent Skills repository for Claude Code, Claude.ai, and compatible Agent Skills ecosystems.
 
-> **Note:** This repository merges Anthropic's example skills and Agent Skills collections, providing various practical AI skills that can be used in Claude Code, Claude.ai, and the API. For information about the Agent Skills standard, see [agentskills.io](http://agentskills.io).
+![Version](https://img.shields.io/badge/Version-0.0.1-red)
+![License](https://img.shields.io/badge/License-Apache%202.0-green)
+![Skill%20Docs](https://img.shields.io/badge/SKILL.md-421-orange)
+![Skill%20Groups](https://img.shields.io/badge/Groups-42-blue)
+![Marketplace%20Plugins](https://img.shields.io/badge/Plugins-40-brightgreen)
+
+> **Note:** This repository is maintained as a grouped skills catalog. The current documentation follows the actual `skills/` directory layout and `.claude-plugin/marketplace.json` rather than older category-based packaging.
 
 ## What are Skills?
 
-Skills are folders of instructions, scripts, and resources that Claude loads dynamically to improve performance on specialized tasks. Skills teach Claude how to complete specific tasks in a repeatable way, whether that's creating documents with your company's brand guidelines, analyzing data using your organization's specific workflows, or automating personal tasks.
+Skills are folders of instructions, scripts, and resources that Claude loads dynamically to improve performance on specialized tasks. Skills teach Claude how to complete repeatable tasks in a reusable way, whether that means documentation workflows, frontend implementation, system design, testing, or delivery automation.
 
 ### More Information
 
@@ -18,14 +24,55 @@ Skills are folders of instructions, scripts, and resources that Claude loads dyn
 
 ## About This Repository
 
-This repository contains skills that demonstrate what's possible with Claude's skills system. These skills range from creative applications (art, music, design) to technical tasks (testing web apps, MCP server generation) to enterprise workflows (communications, branding, etc.), as well as teaching and education scenarios.
+This repository is PartMeAI’s grouped Agent Skills catalog. The current repository snapshot contains **42** skill-group directories and **421** `SKILL.md` files. `.claude-plugin/marketplace.json` currently publishes **40** plugins with **410** skill paths.
+
+The main repo now covers frontend, backend, mobile, cross-platform development, testing, DevOps, documentation, OCR, Tauri, Stitch, Pencil, T2UI, OpenSpec, and Spec Kit workflows.
+
+### Repository Snapshot
+
+| Metric | Current Value |
+|---|---:|
+| Skill-group directories under `skills/` | 42 |
+| `SKILL.md` files on disk | 421 |
+| Plugins in `.claude-plugin/marketplace.json` | 40 |
+| Published skill refs in Marketplace | 410 |
+| Repo-only groups not published | 2 |
+
+### Coverage Map
+
+| Domain | Representative Groups | Scope |
+|---|---|---|
+| Frontend and UI | `vue-skills`, `react-skills`, `angular-skills`, `svelte-skills`, `antd-skills`, `vue-ui-skills`, `build-skills` | Frameworks, component libraries, build systems, UI implementation |
+| Backend and cross-platform | `spring-skills`, `nodejs-skills`, `python-skills`, `go-skills`, `electron-skills`, `tauri-skills`, `uniapp-skills`, `flutter-skills` | Service development, desktop, mobile, hybrid delivery |
+| Engineering delivery | `dev-utils-skills`, `ddd-skills`, `testing-skills`, `devops-skills`, `docker-skills`, `database-skills`, `nvm-skills` | Project scaffolding, architecture, test strategy, release workflows |
+| Design and documents | `design-skills`, `document-skills`, `ocrmypdf-skills`, `drawio-skills`, `ascii-skills` | Design execution, documentation, OCR, diagramming, text visuals |
+| Spec and design systems | `speckit-skills`, `openspec-skills`, `t2ui-skills`, `stitch-skills`, `pencil-skills` | Spec-driven delivery, UI generation, design workflows, structured handoff |
+| Shared support | `social-skills`, `teaching-skills`, `utility-skills` | Communication, education, utility workflows |
+
+### Publication Status
 
-Each skill is self-contained in its own folder with a `SKILL.md` file containing the instructions and metadata that Claude uses. You can browse through these skills to get inspiration for your own skills or to understand different patterns and approaches.
+- `threejs-skills` exists in the repository with 18 skills and is not currently published in Marketplace.
+- `vscode-skills` exists in the repository with 4 skills and is not currently published in Marketplace.
+- `document-skills` has 5 skill directories on disk, while Marketplace still references 9 entries, including missing paths for `docx`, `pptx`, `pdf`, and `xlsx`.
+- `tauri-skills` has 52 skill directories on disk, while Marketplace currently publishes 51 entries; `tauri-app-updater` remains repo-only.
 
-Many skills in this repo are open source (Apache 2.0). We've also included the document creation & editing skills that power [Claude's document capabilities](https://www.anthropic.com/news/create-files) under the hood in the [`skills/docx`](skills/docx), [`skills/pdf`](skills/pdf), [`skills/pptx`](skills/pptx), and [`skills/xlsx`](skills/xlsx) subfolders. These are source-available, not open source, but we wanted to share these with developers as a reference for more complex skills that are actively used in a production AI application.
+### Recommended Reading Path
+
+- **Start with repository scope**: read this README together with `docs/repository-map.md` to understand structure, publication state, and catalog drift.
+- **Navigate by skill group**: if you already know the technical domain, move directly into `docs/skill-group-mapping.md` and the relevant `skills/<group>-skills/` subtree.
+- **Navigate by delivery stage**: if you care about end-to-end flow, use `docs/pipeline-stage-to-skills.md` first.
+- **Navigate by design workflow**: for design-system and spec-driven work, prioritize `stitch-skills`, `pencil-skills`, `t2ui-skills`, `speckit-skills`, and `openspec-skills`.
+
+For the current source of truth, use:
+
+- [docs/repository-map.md](docs/repository-map.md)
+- [docs/skill-group-mapping.md](docs/skill-group-mapping.md)
+- [docs/pipeline-stage-to-skills.md](docs/pipeline-stage-to-skills.md)
+- [docs/skills-ecosystem.md](docs/skills-ecosystem.md)
 
 ### Disclaimer
 
+
 **These skills are provided for demonstration and educational purposes only.** While some of these capabilities may be available in Claude, the implementations and behaviors you receive from Claude may differ from what is shown in these skills. These skills are meant to illustrate patterns and possibilities. Always test skills thoroughly in your own environment before relying on them for critical tasks.
 
 ## How to Use
@@ -62,13 +109,13 @@ There are two ways to install plugins:
 Install plugins directly using commands:
 
 ```
-/plugin install teaching-skills@full-stack-skills
-/plugin install document-skills@full-stack-skills
-/plugin install markdown-skills@full-stack-skills
-/plugin install development-skills@full-stack-skills
-/plugin install design-skills@full-stack-skills
-/plugin install social-skills@full-stack-skills
-/plugin install utility-skills@full-stack-skills
+/plugin install vue-skills@full-stack-skills
+/plugin install react-skills@full-stack-skills
+/plugin install spring-skills@full-stack-skills
+/plugin install dev-utils-skills@full-stack-skills
+/plugin install testing-skills@full-stack-skills
+/plugin install stitch-skills@full-stack-skills
+/plugin install tauri-skills@full-stack-skills
 ```
 
 #### 3. Use Skills
@@ -87,311 +134,165 @@ You can use Anthropic's pre-built skills, and upload custom skills, via the Clau
 
 ### Using on Other Platforms
 
-These skills can also be used on other AI platforms such as Cursor, Trae, Qoder, CodeBuddy, etc. For detailed instructions, please refer to the [Cross-Platform Usage Guide](PLATFORM_GUIDE.md).
-
-## Available Plugins and Skills
-
-The skills in this repository are organized into 7 plugin categories, containing a total of 23 skills:
-
-### 1. teaching-skills (Teaching Skills Collection)
-
-Teaching and education-related skills collection, including course design, learning assessment, and teaching resource generation.
-
-#### course-designer (Course Design Skill)
-
-Helps design and plan course content, including course outlines, learning objectives, teaching plans, and assessment schemes.
-
-**Usage Examples:**
-- "Use the course design skill to help me design a Python programming course"
-- "Design an 8-week machine learning introductory course"
-- "Create a course outline for web development"
-
-#### learning-assessor (Learning Assessment Skill)
-
-Helps create learning assessment tools, including quiz questions, assessment criteria, scoring rubrics, and learning analytics.
-
-**Usage Examples:**
-- "Use the learning assessment skill to create a set of quiz questions for my course"
-- "Design a rubric to assess student learning outcomes"
-- "Generate a learning analytics report"
-
-#### teaching-resource-generator (Teaching Resource Generator Skill)
-
-Helps generate various teaching resources, including courseware, exercises, teaching cases, and study guides.
-
-**Usage Examples:**
-- "Use the teaching resource generator skill to create courseware for my course"
-- "Generate some exercises about data structures"
-- "Create a teaching case for explaining design patterns"
-
-### 2. document-skills (Document Processing Skills Collection)
-
-Document processing skills collection, supporting creation, editing, and processing of office documents including Excel, Word, PowerPoint, and PDF.
-
-#### docx (Word Document Processing)
-
-Create, edit, and process Microsoft Word documents.
-
-**Usage Examples:**
-- "Use the DOCX skill to create a new Word document"
-- "Extract text from this Word document"
-- "Format this document with headings and styles"
-
-#### pptx (PowerPoint Presentation Processing)
-
-Create, edit, and process Microsoft PowerPoint presentations.
-
-**Usage Examples:**
-- "Use the PPTX skill to create a presentation"
-- "Add slides to this PowerPoint file"
-- "Apply a theme to this presentation"
-
-#### pdf (PDF Document Processing)
-
-Process PDF documents, including text extraction, form filling, merging, and splitting.
-
-**Usage Examples:**
-- "Use the PDF skill to extract the form fields from `path/to/some-file.pdf`"
-- "Fill out this PDF form"
-- "Merge multiple PDF files"
-
-#### xlsx (Excel Spreadsheet Processing)
-
-Create, edit, and process Microsoft Excel spreadsheets.
-
-**Usage Examples:**
-- "Use the XLSX skill to create a spreadsheet"
-- "Analyze data in this Excel file"
-- "Generate charts from this spreadsheet"
-
-#### doc-coauthoring (Document Co-authoring)
-
-Supports multi-user collaborative document editing.
-
-**Usage Examples:**
-- "Use the doc-coauthoring skill to prepare this document for collaboration"
-- "Add comments and suggestions to this document"
-
-### 3. markdown-skills (Markdown Skills Collection)
-
-Markdown-related skills collection, including Mermaid diagram creation.
-
-#### mermaid (Mermaid Diagram Creation)
-
-Create various types of Mermaid diagrams, including flowcharts, sequence diagrams, class diagrams, state diagrams, Gantt charts, and more.
-
-**Usage Examples:**
-- "Use Mermaid to create a flowchart"
-- "Draw a C4 diagram for system architecture"
-- "Generate a Gantt chart for project timeline"
-- "Create a user journey diagram"
-
-**Supported Diagram Types:**
-- Flowcharts
-- Sequence diagrams
-- Class diagrams
-- State diagrams
-- Entity relationship diagrams (ER diagrams)
-- User journey diagrams
-- Gantt charts
-- Pie charts
-- Quadrant charts
-- Git graphs
-- C4 architecture diagrams
-- Mindmaps
-- Timelines
-- Sankey diagrams
-- And many other diagram types
-
-### 4. development-skills (Development Skills Collection)
-
-Development skills collection, including code generation, test writing, documentation building, MCP builder, web development, frontend design, and more.
+This repository now ships a **TypeScript standard converter**. It exports `skills/<group>/<skill>/` into standard skill directories and installs them into the project-level or global-level path required by each supported platform. The converter does not generate platform-specific plugin wrappers; it preserves the original skill directory and switches only the destination path.
 
-#### code-generator (Code Generation Skill)
+**Install and run commands**
 
-Helps generate high-quality code, supporting multiple programming languages, following best practices and design patterns.
-
-**Usage Examples:**
-- "Use the code generation skill to generate a user authentication Python class"
-- "Create a RESTful API implementation in Node.js"
-- "Generate a Java class following SOLID principles"
-
-#### test-writer (Test Writing Skill)
-
-Helps write unit tests, integration tests, and end-to-end tests.
-
-**Usage Examples:**
-- "Write unit tests for this function"
-- "Create integration tests to verify API endpoints"
-- "Generate end-to-end test cases"
-
-#### documentation-builder (Documentation Builder Skill)
-
-Helps generate technical documentation, including API documentation, user manuals, development guides, and README files.
-
-**Usage Examples:**
-- "Use the documentation builder skill to generate API documentation for my project"
-- "Create a user manual"
-- "Write a development environment setup guide"
-
-#### mcp-builder (MCP Builder)
-
-Helps create and configure Model Context Protocol (MCP) servers.
-
-**Usage Examples:**
-- "Use the MCP builder to create a new MCP server"
-- "Configure tools and resources for an MCP server"
-- "Generate code templates for an MCP server"
-
-#### webapp-testing (Web Application Testing)
-
-Helps test web applications, including functional testing and performance testing.
-
-**Usage Examples:**
-- "Test the functionality of this web application"
-- "Check the response time of this website"
-- "Verify cross-browser compatibility of this application"
-
-#### frontend-design (Frontend Design)
-
-Create high-quality frontend interfaces, avoiding generic AI aesthetics, generating code with unique design sense.
-
-**Usage Examples:**
-- "Use the frontend design skill to create a login page"
-- "Design a modern dashboard interface"
-- "Create a responsive product showcase page"
-
-#### web-artifacts-builder (Web Artifacts Builder)
-
-Create complex multi-component HTML artifacts using modern frontend technologies (React, Tailwind CSS, shadcn/ui).
-
-**Usage Examples:**
-- "Use the web artifacts builder to create an interactive data visualization tool"
-- "Build a single-page application with state management"
-- "Create a complex interface using shadcn/ui components"
-
-#### theme-factory (Theme Factory)
-
-Apply theme styles to artifacts, including 10 preset themes that can be applied to slides, documents, reports, HTML landing pages, and more.
-
-**Usage Examples:**
-- "Apply the Ocean Depths theme to this presentation"
-- "Style this document with the Modern Minimalist theme"
-- "Apply the Golden Hour theme to this webpage"
-
-### 5. design-skills (Design Skills Collection)
-
-Design and creative skills collection, including algorithmic art, brand guidelines, and canvas design.
-
-#### algorithmic-art (Algorithmic Art)
-
-Create algorithmic art using p5.js with seeded randomness and interactive parameter exploration.
-
-**Usage Examples:**
-- "Use the algorithmic art skill to create a generative artwork"
-- "Generate a visualization based on particle systems"
-- "Create a flow field effect artwork"
-
-#### brand-guidelines (Brand Guidelines)
-
-Apply Anthropic's official brand colors and typography to any artifact.
-
-**Usage Examples:**
-- "Use the brand guidelines skill to apply brand styles to this document"
-- "Apply brand colors to this presentation"
-- "Format this document using brand fonts"
-
-#### canvas-design (Canvas Design)
-
-Create high-quality designs and visualizations on HTML Canvas.
-
-**Usage Examples:**
-- "Use the canvas design skill to create a data visualization chart"
-- "Draw an interactive graphic on Canvas"
-- "Create a Canvas animation effect"
-
-### 6. social-skills (Social Skills Collection)
-
-Social and collaboration skills collection, including internal communications and Slack GIF creation.
-
-#### internal-comms (Internal Communications)
+```bash
+git clone https://github.com/partme-ai/full-stack-skills.git
+cd full-stack-skills
+npm install -g ./adapters
+fskill --version
+fskill platforms
+fskill audit
+fskill convert --platform all --output ./adapters-output
+fskill install
+```
 
-Helps write various internal communication documents, including status reports, leadership updates, 3P updates, company newsletters, FAQs, and more.
+By default, `fskill install` installs into the current project's `.agents/skills/` directory, which is the standard Agent Skills-compatible path. Use `--platform` and `--scope` when you need a platform-specific destination.
+For repository-local development, you can also run `npm install && npm link` inside `adapters/` and then call `fskill ...` directly.
 
-**Usage Examples:**
-- "Use the internal communications skill to write a project status report"
-- "Create a company newsletter"
-- "Write an FAQ document"
+**Platform coverage**
 
-#### slack-gif-creator (Slack GIF Creator)
+- **Shared `.agents/skills/` family**: `amp`, `kimi-cli`, `replit`, `universal`, `antigravity`, `cline`, `warp`, `codex`, `cursor`, `deepagents`, `gemini-cli`, `github-copilot`, `opencode`
+- **Dedicated directory family**: `augment`, `claude-code`, `openclaw`, `codebuddy`, `command-code`, `continue`, `cortex`, `crush`, `droid`, `goose`, `junie`, `iflow-cli`, `kilo`, `kiro-cli`, `kode`, `mcpjam`, `mistral-vibe`, `mux`, `openhands`, `pi`, `qoder`, `qwen-code`, `roo`, `trae`, `trae-cn`, `windsurf`, `zencoder`, `neovate`, `pochi`, `adal`
+- **Antigravity baseline**: project-level `.agents/skills/`, global `~/.gemini/antigravity/skills/`
 
-Create GIF animations for use in Slack.
+For the full platform matrix, installation paths, and workflow details, see [PLATFORM_GUIDE.md](PLATFORM_GUIDE.md) and [adapters/README.md](adapters/README.md).
 
-**Usage Examples:**
-- "Use the Slack GIF creator to create a welcome animation"
-- "Generate a GIF for Slack messages"
-- "Create a notification animation GIF"
+## Repository Governance
 
-### 7. utility-skills (Utility Skills Collection)
+### Inventory Rules
 
-Utility and practical skills collection, including skill creator.
+- Treat `skills/` as the source of truth for what exists in the repository.
+- Treat `.claude-plugin/marketplace.json` as the source of truth for what is published.
+- Record any drift explicitly in README and `docs/repository-map.md` instead of hiding it.
+- Prefer extending an existing group over introducing a new one unless the capability boundary is clearly independent.
 
-#### skill-creator (Skill Creator)
+## Available Plugins and Skills
 
-Guides how to create effective skills to extend Claude's capabilities.
+The table below reflects the current `skills/` directory and `.claude-plugin/marketplace.json` state.
+
+| Group | Skills on Disk | Published | Marketplace Refs | Notes |
+|---|---:|---|---:|---|
+| `angular-skills` | 1 | Yes | 1 | Aligned with current published surface |
+| `antd-skills` | 4 | Yes | 4 | Aligned with current published surface |
+| `ascii-skills` | 13 | Yes | 13 | Aligned with current published surface |
+| `avue-skills` | 3 | Yes | 3 | Aligned with current published surface |
+| `build-skills` | 6 | Yes | 6 | Aligned with current published surface |
+| `chart-skills` | 2 | Yes | 2 | Aligned with current published surface |
+| `cocos-skills` | 1 | Yes | 1 | Aligned with current published surface |
+| `database-skills` | 5 | Yes | 5 | Aligned with current published surface |
+| `ddd-skills` | 6 | Yes | 6 | Aligned with current published surface |
+| `design-skills` | 12 | Yes | 12 | Aligned with current published surface |
+| `dev-utils-skills` | 13 | Yes | 13 | Aligned with current published surface |
+| `devops-skills` | 6 | Yes | 6 | Aligned with current published surface |
+| `docker-skills` | 2 | Yes | 2 | Aligned with current published surface |
+| `document-skills` | 5 | Yes | 9 | On-disk count differs from Marketplace refs; see repository-map |
+| `drawio-skills` | 2 | Yes | 2 | Aligned with current published surface |
+| `electron-skills` | 3 | Yes | 3 | Aligned with current published surface |
+| `flutter-skills` | 2 | Yes | 2 | Aligned with current published surface |
+| `go-skills` | 2 | Yes | 2 | Aligned with current published surface |
+| `mobile-native-skills` | 2 | Yes | 2 | Aligned with current published surface |
+| `nodejs-skills` | 4 | Yes | 4 | Aligned with current published surface |
+| `nvm-skills` | 15 | Yes | 15 | Aligned with current published surface |
+| `ocrmypdf-skills` | 5 | Yes | 5 | Aligned with current published surface |
+| `openspec-skills` | 15 | Yes | 15 | Aligned with current published surface |
+| `pencil-skills` | 28 | Yes | 28 | Aligned with current published surface |
+| `python-skills` | 3 | Yes | 3 | Aligned with current published surface |
+| `react-skills` | 6 | Yes | 6 | Aligned with current published surface |
+| `social-skills` | 2 | Yes | 2 | Aligned with current published surface |
+| `speckit-skills` | 13 | Yes | 13 | Aligned with current published surface |
+| `spring-skills` | 7 | Yes | 7 | Aligned with current published surface |
+| `stitch-skills` | 28 | Yes | 28 | Aligned with current published surface |
+| `svelte-skills` | 1 | Yes | 1 | Aligned with current published surface |
+| `t2ui-skills` | 97 | Yes | 97 | Aligned with current published surface |
+| `tauri-skills` | 52 | Yes | 51 | On-disk count differs from Marketplace refs; see repository-map |
+| `teaching-skills` | 3 | Yes | 3 | Aligned with current published surface |
+| `testing-skills` | 9 | Yes | 9 | Aligned with current published surface |
+| `threejs-skills` | 18 | No | 0 | Present in repo, not currently published |
+| `uniapp-skills` | 13 | Yes | 13 | Aligned with current published surface |
+| `utility-skills` | 3 | Yes | 3 | Aligned with current published surface |
+| `uview-skills` | 2 | Yes | 2 | Aligned with current published surface |
+| `vscode-skills` | 4 | No | 0 | Present in repo, not currently published |
+| `vue-skills` | 7 | Yes | 7 | Aligned with current published surface |
+| `vue-ui-skills` | 4 | Yes | 4 | Aligned with current published surface |
+
+### Current Consistency Notes
+
+- Treat the `skills/` directory as the authoritative repository inventory.
+- Treat `.claude-plugin/marketplace.json` as the authoritative published plugin surface.
+- The two intentional states visible today are repo-only groups (`threejs-skills`, `vscode-skills`) and published catalog drift (`document-skills`, `tauri-skills`).
+- The README tables above already reflect those differences explicitly, so the documentation matches the current repository state rather than masking discrepancies.
+
+### Suggested Installation Paths
+
+- For frontend and UI: `vue-skills`, `react-skills`, `build-skills`, `antd-skills`, `vue-ui-skills`
+- For backend and cross-platform development: `spring-skills`, `nodejs-skills`, `python-skills`, `go-skills`, `tauri-skills`, `uniapp-skills`
+- For design and documentation: `design-skills`, `document-skills`, `ocrmypdf-skills`, `drawio-skills`
+- For engineering delivery: `dev-utils-skills`, `testing-skills`, `devops-skills`, `docker-skills`, `database-skills`, `nvm-skills`
+- For spec-driven and design workflows: `speckit-skills`, `openspec-skills`, `t2ui-skills`, `stitch-skills`, `pencil-skills`
+
+### Installation by Scenario
+
+- **Frontend application delivery**: start with `vue-skills` or `react-skills`, then add `build-skills`, `antd-skills`, or `vue-ui-skills` as needed.
+- **Backend and service development**: pair one runtime group such as `spring-skills`, `nodejs-skills`, `python-skills`, or `go-skills` with `testing-skills` and `database-skills`.
+- **Desktop or hybrid product work**: use `tauri-skills`, `electron-skills`, `uniapp-skills`, or `flutter-skills` depending on delivery target.
+- **Spec-first product workflows**: install `speckit-skills`, `openspec-skills`, `t2ui-skills`, `stitch-skills`, and `pencil-skills` together.
+- **Documentation and diagramming**: combine `document-skills`, `ocrmypdf-skills`, `drawio-skills`, and `ascii-skills`.
+
+### Domain Navigation Matrix
+
+| Goal | Read First | Recommended Bundle |
+|---|---|---|
+| Web frontend delivery | `vue-skills`, `react-skills`, `build-skills` | `vue-skills` / `react-skills` + `build-skills` + `testing-skills` |
+| Backend and platform services | `spring-skills`, `nodejs-skills`, `database-skills` | `spring-skills` / `nodejs-skills` + `database-skills` + `devops-skills` |
+| Desktop and cross-platform apps | `tauri-skills`, `electron-skills`, `uniapp-skills`, `flutter-skills` | Choose 1–2 runtime groups, then add `testing-skills` |
+| Spec-driven product work | `speckit-skills`, `openspec-skills`, `t2ui-skills` | `speckit-skills` + `openspec-skills` + `t2ui-skills` |
+| Design-system and UI production | `stitch-skills`, `pencil-skills`, `design-skills` | `stitch-skills` + `pencil-skills` + `design-skills` |
+| Documents, OCR, and diagrams | `document-skills`, `ocrmypdf-skills`, `drawio-skills`, `ascii-skills` | `document-skills` + `ocrmypdf-skills` + `drawio-skills` |
 
-**Usage Examples:**
-- "Use the skill creator to help me create a new skill"
-- "How to design the structure of a skill"
-- "What are the best practices for creating a skill"
 
 ## Project Structure
 
-```
-.
+```text
+full-stack-skills/
 ├── .claude-plugin/
-│   └── marketplace.json          # Marketplace configuration file
-├── skills/                        # Skills directory
-│   ├── teaching-skills/          # Teaching skills
-│   │   ├── course-designer/
-│   │   ├── learning-assessor/
-│   │   └── teaching-resource-generator/
-│   ├── document-skills/          # Document processing skills
-│   │   ├── docx/
-│   │   ├── pptx/
-│   │   ├── pdf/
-│   │   ├── xlsx/
-│   │   └── doc-coauthoring/
-│   ├── markdown-skills/          # Markdown skills
-│   │   └── mermaid/
-│   ├── development-skills/       # Development skills
-│   │   ├── code-generator/
-│   │   ├── test-writer/
-│   │   ├── documentation-builder/
-│   │   ├── mcp-builder/
-│   │   ├── webapp-testing/
-│   │   ├── frontend-design/
-│   │   ├── web-artifacts-builder/
-│   │   └── theme-factory/
-│   ├── design-skills/            # Design skills
-│   │   ├── algorithmic-art/
-│   │   ├── brand-guidelines/
-│   │   └── canvas-design/
-│   ├── social-skills/            # Social skills
-│   │   ├── internal-comms/
-│   │   └── slack-gif-creator/
-│   └── utility-skills/           # Utility skills
-│       └── skill-creator/
-├── spec/                          # Agent Skills specification
-├── template/                      # Skill template
-└── README.md                      # This file
+│   └── marketplace.json          # Marketplace configuration
+├── adapters/                     # TypeScript standard converter and platform registry
+├── agents/                       # Agent roles and orchestration entry points
+├── bundles/                      # Bundled or aggregated outputs
+├── dist/                         # Distribution artifacts
+├── docs/                         # Repo map, ecosystem docs, stage mapping
+├── media/                        # Screenshots and visual assets
+├── skills/                       # Grouped skills layout
+│   ├── vue-skills/
+│   │   └── vue3/
+│   │       └── SKILL.md
+│   ├── react-skills/
+│   ├── spring-skills/
+│   ├── tauri-skills/
+│   └── ...
+├── spec/                         # Specifications and standards references
+├── template/                     # Skill templates
+├── tools/                        # Helper tools
+├── AGENTS.md                     # Repo-level agent instructions
+├── README.md
+└── README_EN.md
 ```
 
+### Directory Model
+
+- `skills/<group>-skills/<skill>/SKILL.md` is the primary storage model for every skill in this repository.
+- `references/` is the preferred place for long-form technical context so that `SKILL.md` stays concise and load-efficient.
+- `scripts/` should hold repeatable automation instead of embedding large inline command sequences in `SKILL.md`.
+- `docs/` contains the current repository map, stage-to-skill mapping, and ecosystem documentation used to understand the catalog at the repo level.
+
 ## How to Create a New Skill
 
 ### Creating a Basic Skill
 
-Skills are simple to create - just a folder with a `SKILL.md` file containing YAML frontmatter and instructions. You can use the **template-skill** in this repository as a starting point:
+Skills are simple to create: add a skill under the correct group directory and include a `SKILL.md` file with YAML frontmatter and clear instructions. You can use the repository template as a starting point:
 
 ```markdown
 ---
@@ -422,18 +323,34 @@ The markdown content below contains the instructions, examples, and guidelines t
 
 Each skill contains:
 - `SKILL.md` - Instructions for the agent (required)
+- `examples/` - Focused usage examples (optional)
 - `scripts/` - Helper scripts for automation (optional)
 - `references/` - Supporting documentation (optional)
 - `assets/` - Resource files (optional)
 
+### Authoring Rules
+
+- Keep `SKILL.md` lean; move large reference material into `references/` when depth is required.
+- Use a concrete `description` so the agent can activate the skill reliably.
+- Match directory names, frontmatter names, and published Marketplace paths.
+- Prefer task-oriented instructions over encyclopedic background text.
+- Keep helper scripts deterministic and machine-friendly.
+
+### Documentation Maintenance Rules
+
+- Update README snapshot counts whenever group counts, `SKILL.md` totals, or Marketplace refs change.
+- Update README and `docs/repository-map.md` together when repo-only groups or Marketplace drift changes.
+- Use only real published plugin names in installation examples.
+- Keep path examples aligned with `skills/<group>-skills/<skill>/`.
+
 ### Steps to Add a New Skill
 
 #### 1. Create Skill Directory
 
-Create a new skill directory under the `skills/` directory:
+Create a new skill directory under the correct group inside `skills/`:
 
 ```bash
-mkdir -p skills/your-skill-name
+mkdir -p skills/vue-skills/my-skill-name
 ```
 
 #### 2. Create SKILL.md File
@@ -442,18 +359,18 @@ Each skill must contain a `SKILL.md` file with the format shown above.
 
 #### 3. Update marketplace.json
 
-Add the new skill to the appropriate plugin in `.claude-plugin/marketplace.json`:
+Add the new skill path to the matching grouped plugin in `.claude-plugin/marketplace.json`:
 
 ```json
 {
   "plugins": [
     {
-      "name": "your-plugin-name",
-      "description": "Plugin description",
+      "name": "vue-skills",
+      "description": "Vue ecosystem skills",
       "source": "./",
       "strict": false,
       "skills": [
-        "./skills/your-skill-name"
+        "./skills/vue-skills/my-skill-name"
       ]
     }
   ]
@@ -466,7 +383,7 @@ Commit and push changes to the GitHub repository:
 
 ```bash
 git add .
-git commit -m "Add new skill: your-skill-name"
+git commit -m "Add skill: my-skill-name"
 git push
 ```
 
@@ -492,8 +409,8 @@ The `.claude-plugin/marketplace.json` file defines the marketplace metadata and
       "source": "./",                // Source code path
       "strict": false,               // Strict mode
       "skills": [                    // Skills list
-        "./skills/skill1",
-        "./skills/skill2"
+        "./skills/vue-skills/vue3",
+        "./skills/react-skills/react-hooks"
       ]
     }
   ]
@@ -526,16 +443,26 @@ The `.claude-plugin/marketplace.json` file defines the marketplace metadata and
 - **Structured Organization**: Use clear sections and structure
 - **Practical Examples**: Provide practical, usable examples
 - **Progressive Disclosure**: Put detailed reference materials in separate files and load them as needed
+- **Path Discipline**: Keep the repository path, frontmatter `name`, and Marketplace path aligned
+- **Task Orientation**: Write instructions around workflows, trigger phrases, expected inputs, and outputs
 
 ### Marketplace Organization
 
 - **Logical Grouping**: Organize related skills into the same plugin
 - **Clear Naming**: Use clear, descriptive names
 - **Version Management**: Maintain version numbers in `metadata`
+- **Catalog Hygiene**: Audit published refs against `skills/` regularly to prevent drift
+
+### Pre-Submission Checklist
+
+- Confirm the skill directory, frontmatter `name`, and actual capability are aligned.
+- Confirm `SKILL.md` is concise and large technical detail is moved into `references/`.
+- Confirm scripts, examples, and resource paths resolve inside the repository.
+- Confirm README, mapping docs, and Marketplace metadata do not introduce new drift.
 
 ## License
 
-Many skills in this repository are licensed under Apache 2.0. Document processing skills (docx, pdf, pptx, xlsx) are source-available but not open source. See LICENSE files in each skill directory for details.
+Many skills in this repository are licensed under Apache 2.0. Document processing skills in `skills/document-skills/docx`, `skills/document-skills/pdf`, `skills/document-skills/pptx`, and `skills/document-skills/xlsx` are source-available but not open source. See the corresponding license files for details.
 
 ## Contributing
 

+ 2 - 0
adapters/.gitignore

@@ -1,6 +1,8 @@
 # Generated output directories
 examples/
 adapters-output/
+dist/
+node_modules/
 *.pyc
 __pycache__/
 .DS_Store

+ 93 - 126
adapters/README.md

@@ -1,188 +1,155 @@
-# Platform Adapters
+# Cross-Platform Skills Adapter
 
-本目录包含将 Agent Skills 转换为不同平台格式的适配器工具。
+`adapters/` is the repository’s only cross-platform converter. It ships an independent CLI named `fskill`, exports the grouped repository structure in `skills/<group>/<skill>/` as standard skill directories, and installs them into the path layout required by each supported platform.
 
-## ⚠️ 重要说明
+## Compatibility baseline
 
-**这些适配器工具为理论性实现,尚未经过实际平台验证。**
+- **Skill format**: standard `SKILL.md`-based directory layout
+- **Platform paths**: aligned to the current `vercel-labs/skills` compatibility matrix
+- **Repository source layout**: `skills/<group>/<skill>/`
 
-- 转换脚本基于平台的一般特性和常见适配模式
-- 生成的配置文件格式可能需要根据实际平台 API 调整
-- **建议在实际使用前查阅目标平台的官方文档并进行测试**
+The adapter does not generate platform-specific manifests, plugins, or workflow wrappers. It preserves the original skill directory and changes only the destination path for each platform.
 
-## 支持的平台
+## Install
 
-- **Cursor** - 转换为 Cursor 自定义指令格式
-- **Trae** - 转换为 Trae 插件格式
-- **Qoder** - 转换为 Qoder Agent 格式
-- **CodeBuddy** - 转换为 CodeBuddy Workflow 格式
-- **Windsurf** - 转换为 Windsurf Cascade Skills 格式
-
-## 快速开始
+```bash
+git clone https://github.com/partme-ai/full-stack-skills.git
+cd full-stack-skills
+npm install -g ./adapters
+```
 
-### 转换所有技能到所有平台
+Or, for repository-local development:
 
 ```bash
 cd adapters
-python convert_all.py ../skills ../adapters-output
+npm install
+npm link
 ```
 
-### 转换单个平台
-
-#### Cursor
+Or, inside the adapter package only:
 
 ```bash
-cd adapters/cursor
-python convert_to_cursor.py --all ../../skills ../../adapters-output/cursor
+cd adapters
+npm install -g ./adapters
 ```
 
-#### Trae
+After installation, call `fskill` directly.
+
+## Commands
 
 ```bash
-cd adapters/trae
-python convert_to_trae.py --all ../../skills ../../adapters-output/trae
+fskill --version
+fskill platforms
+fskill audit
+fskill convert --platform all --output ./adapters-output
+fskill install
 ```
 
-#### Qoder
+`fskill install` defaults to the current project's `.agents/skills/`, which is the standard Agent Skills-compatible path.
+
+## Command reference
+
+### List supported platforms
 
 ```bash
-cd adapters/qoder
-python convert_to_qoder.py --all ../../skills ../../adapters-output/qoder
+fskill platforms
 ```
 
-#### CodeBuddy
+### Show CLI version
 
 ```bash
-cd adapters/codebuddy
-python convert_to_codebuddy.py --all ../../skills ../../adapters-output/codebuddy
+fskill --version
 ```
 
-#### Windsurf
+### Audit the repository skills
 
 ```bash
-cd adapters/windsurf
-python convert_to_windsurf.py --all ../../skills ../../adapters-output/windsurf
+fskill audit
 ```
 
-## 目录结构
+### Export all platforms
 
+```bash
+fskill convert --platform all --output ./adapters-output
 ```
-adapters/
-├── README.md                    # 本文件
-├── convert_all.py              # 主转换工具(转换到所有平台)
-├── cursor/                     # Cursor 适配器
-│   ├── README.md
-│   └── convert_to_cursor.py
-├── trae/                       # Trae 适配器
-│   ├── README.md
-│   └── convert_to_trae.py
-├── qoder/                      # Qoder 适配器
-│   ├── README.md
-│   └── convert_to_qoder.py
-├── codebuddy/                  # CodeBuddy 适配器
-│   ├── README.md
-│   └── convert_to_codebuddy.py
-└── windsurf/                   # Windsurf 适配器
-    ├── README.md
-    └── convert_to_windsurf.py
-```
-
-## 输出格式
 
-转换后的文件将保存在 `adapters-output/` 目录下,按平台分类:
+### Export one platform
 
+```bash
+fskill convert --platform claude-code --output ./adapters-output
 ```
-adapters-output/
-├── cursor/
-│   └── .cursor/
-│       └── rules/
-│           ├── course-designer.md
-│           ├── code-generator.md
-│           └── ...
-├── trae/
-│   ├── course-designer/
-│   │   ├── trae-plugin.json
-│   │   └── SKILL.md
-│   └── ...
-├── qoder/
-│   ├── course-designer-agent/
-│   │   ├── qoder-agent-config.json
-│   │   ├── SKILL.md
-│   │   └── course_designer_agent.py
-│   └── ...
-└── codebuddy/
-    ├── course-designer/
-    │   ├── manifest.json
-    │   ├── workflows/
-    │   └── skills/
-    └── ...
-└── windsurf/
-    ├── course-designer/
-    │   ├── SKILL.md
-    │   └── ...
-    └── ...
-```
-
-## 依赖要求
 
-转换脚本需要以下 Python 包:
+### Install into a project
 
 ```bash
-pip install pyyaml
+fskill install --platform claude-code --scope project
 ```
 
-## 使用示例
-
-### 示例 1: 转换单个技能到 Cursor
+### Install globally
 
 ```bash
-cd adapters/cursor
-python convert_to_cursor.py ../../skills/course-designer .cursor/rules/
+fskill install --platform antigravity --scope global
 ```
 
-### 示例 2: 转换所有技能到 Qoder
+### Install selected skills only
 
 ```bash
-cd adapters/qoder
-python convert_to_qoder.py --all ../../skills qoder-agents/
+fskill install --platform codex --scope global --skill react --skill vue3
 ```
 
-### 示例 3: 转换所有技能到所有平台
+### Preview without writing
 
 ```bash
-cd adapters
-python convert_all.py ../skills ../adapters-output
+fskill convert --platform all --output ./adapters-output --dry-run
+fskill install --platform windsurf --scope project --dry-run
 ```
 
-## 验证状态
+## Supported platforms
+
+Run `fskill platforms --markdown` for the generated Markdown table that matches the CLI registry.
+
+## Discovery rules
 
-| 平台 | 转换脚本 | 格式验证 | 平台验证 |
-|------|---------|---------|---------|
-| Cursor | ✅ 完成 | ⚠️ 需要验证 | ⚠️ 需要验证 |
-| Trae | ✅ 完成 | ⚠️ 需要验证 | ⚠️ 需要验证 |
-| Qoder | ✅ 完成 | ⚠️ 需要验证 | ⚠️ 需要验证 |
-| CodeBuddy | ✅ 完成 | ⚠️ 需要验证 | ⚠️ 需要验证 |
-| Windsurf | ✅ 完成 | ⚠️ 需要验证 | ⚠️ 需要验证 |
+- A directory is treated as a skill only when it contains `SKILL.md`
+- `skills/pencil-skills/docs` is treated as supporting documentation, not a skill
+- `__pycache__`, `.pyc`, `.DS_Store`, and hidden garbage files are excluded
+- `references/`, `examples/`, `scripts/`, `assets/`, and `templates/` are preserved
 
-## 贡献
+## Output layout
+
+The converter writes standard skill directories under:
+
+```text
+adapters-output/<platform>/<project-path>/<skill-name>/
+```
+
+Examples:
+
+```text
+adapters-output/claude-code/.claude/skills/react/
+adapters-output/cursor/.agents/skills/react/
+adapters-output/openclaw/skills/react/
+adapters-output/antigravity/.agents/skills/react/
+```
 
-如果你验证了某个平台的适配方案,欢迎贡献:
+## Install behavior
 
-1. 测试转换脚本生成的输出
-2. 在实际平台上验证功能
-3. 报告问题和改进建议
-4. 提交 Pull Request
+- `fskill install` defaults to `<cwd>/.agents/skills/`
+- `--scope project` installs into `<cwd>/<projectPath>`
+- `--scope global` installs into the platform’s global directory
+- default mode copies directories
+- `--link` creates symlinks instead of copying
+- existing destination directories are replaced to keep installs deterministic
 
-## 注意事项
+## Source of truth
 
-- 转换脚本会自动提取 `SKILL.md` 中的 frontmatter 和内容
-- 脚本会尝试提取工作流步骤,但可能需要手动调整
-- 生成的配置文件格式可能需要根据实际平台 API 调整
-- 建议在实际使用前查阅目标平台的官方文档
+- Platform registry: `adapters/src/platform-registry.ts`
+- Skill discovery and audit: `adapters/src/skills.ts`
+- CLI entry: `adapters/src/index.ts`
 
-## 参考资源
+## Validation expectations
 
-- [Agent Skills 规范](https://agentskills.io/)
-- [Cursor 文档](https://docs.cursor.com/)
-- [Qoder 官网](https://qoder.com/)
-- 各平台官方文档
+- `platforms` lists every supported platform and path mapping
+- `audit` reports actual skill counts, missing `SKILL.md` directories, and platform totals
+- `convert --dry-run` shows the exact destination layout before writing
+- `install --dry-run` shows exact project or global install targets before writing

+ 5 - 0
adapters/fskill

@@ -0,0 +1,5 @@
+#!/usr/bin/env sh
+set -e
+
+SCRIPT_DIR="$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)"
+exec node "$SCRIPT_DIR/dist/index.js" "$@"

+ 54 - 0
adapters/package-lock.json

@@ -0,0 +1,54 @@
+{
+  "name": "fskill",
+  "version": "1.0.0",
+  "lockfileVersion": 3,
+  "requires": true,
+  "packages": {
+    "": {
+      "name": "fskill",
+      "version": "1.0.0",
+      "license": "MIT",
+      "bin": {
+        "fskill": "dist/index.js"
+      },
+      "devDependencies": {
+        "@types/node": "^24.5.2",
+        "typescript": "^5.9.2"
+      },
+      "engines": {
+        "node": ">=18"
+      }
+    },
+    "node_modules/@types/node": {
+      "version": "24.12.0",
+      "resolved": "https://packages.aliyun.com/5fdc0afd99b59ba3c5ead757/npm/repo-cxytb/@types/node/-/node-24.12.0.tgz",
+      "integrity": "sha512-GYDxsZi3ChgmckRT9HPU0WEhKLP08ev/Yfcq2AstjrDASOYCSXeyjDsHg4v5t4jOj7cyDX3vmprafKlWIG9MXQ==",
+      "dev": true,
+      "license": "MIT",
+      "dependencies": {
+        "undici-types": "~7.16.0"
+      }
+    },
+    "node_modules/typescript": {
+      "version": "5.9.3",
+      "resolved": "https://packages.aliyun.com/5fdc0afd99b59ba3c5ead757/npm/repo-cxytb/typescript/-/typescript-5.9.3.tgz",
+      "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==",
+      "dev": true,
+      "license": "Apache-2.0",
+      "bin": {
+        "tsc": "bin/tsc",
+        "tsserver": "bin/tsserver"
+      },
+      "engines": {
+        "node": ">=14.17"
+      }
+    },
+    "node_modules/undici-types": {
+      "version": "7.16.0",
+      "resolved": "https://packages.aliyun.com/5fdc0afd99b59ba3c5ead757/npm/repo-cxytb/undici-types/-/undici-types-7.16.0.tgz",
+      "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==",
+      "dev": true,
+      "license": "MIT"
+    }
+  }
+}

+ 49 - 0
adapters/package.json

@@ -0,0 +1,49 @@
+{
+  "name": "fskill",
+  "version": "1.0.0",
+  "type": "module",
+  "license": "MIT",
+  "description": "Standard cross-platform skills CLI for full-stack-skills.",
+  "main": "./dist/index.js",
+  "repository": {
+    "type": "git",
+    "url": "https://github.com/partme-ai/full-stack-skills.git",
+    "directory": "adapters"
+  },
+  "homepage": "https://github.com/partme-ai/full-stack-skills",
+  "bugs": {
+    "url": "https://github.com/partme-ai/full-stack-skills/issues"
+  },
+  "keywords": [
+    "agent-skills",
+    "skills",
+    "claude",
+    "codex",
+    "cursor",
+    "ai-agents",
+    "converter"
+  ],
+  "engines": {
+    "node": ">=18"
+  },
+  "bin": {
+    "fskill": "./dist/index.js"
+  },
+  "files": [
+    "dist",
+    "fskill",
+    "README.md"
+  ],
+  "scripts": {
+    "build": "tsc -p tsconfig.json",
+    "prepare": "npm run build",
+    "platforms": "node dist/index.js platforms",
+    "audit": "node dist/index.js audit",
+    "convert": "node dist/index.js convert",
+    "cli:install": "node dist/index.js install"
+  },
+  "devDependencies": {
+    "@types/node": "^24.5.2",
+    "typescript": "^5.9.2"
+  }
+}

+ 280 - 0
adapters/src/commands.ts

@@ -0,0 +1,280 @@
+import fs from 'node:fs/promises';
+import path from 'node:path';
+import {
+  formatDisplayPath,
+  getPlatformProjectPath,
+  platformRegistry,
+  renderPlatformTableMarkdown,
+  resolvePlatform,
+  type PlatformRecord
+} from './platform-registry.js';
+import {
+  copySkillDirectory,
+  createAuditReport,
+  discoverSkillEntries,
+  resolveSkillsRoot,
+  type SkillEntry
+} from './skills.js';
+
+export interface ParsedOptions {
+  positional: string[];
+  flags: Map<string, string[]>;
+}
+
+export interface ConvertOptions {
+  platform: string;
+  output?: string;
+  skillsDir?: string;
+  dryRun: boolean;
+  selectedSkills: string[];
+}
+
+export interface InstallOptions {
+  platform: string;
+  scope: 'project' | 'global';
+  projectRoot: string;
+  skillsDir?: string;
+  dryRun: boolean;
+  link: boolean;
+  selectedSkills: string[];
+  target?: string;
+}
+
+export function parseArgv(argv: string[]): ParsedOptions {
+  const positional: string[] = [];
+  const flags = new Map<string, string[]>();
+
+  for (let index = 0; index < argv.length; index += 1) {
+    const token = argv[index];
+    if (!token.startsWith('--')) {
+      positional.push(token);
+      continue;
+    }
+
+    const [flagName, inlineValue] = token.split('=', 2);
+    if (inlineValue !== undefined) {
+      flags.set(flagName, [...(flags.get(flagName) || []), inlineValue]);
+      continue;
+    }
+
+    const nextToken = argv[index + 1];
+    if (nextToken && !nextToken.startsWith('--')) {
+      flags.set(flagName, [...(flags.get(flagName) || []), nextToken]);
+      index += 1;
+      continue;
+    }
+
+    flags.set(flagName, [...(flags.get(flagName) || []), 'true']);
+  }
+
+  return { positional, flags };
+}
+
+function getFlagValue(options: ParsedOptions, flag: string, fallback?: string): string | undefined {
+  return options.flags.get(flag)?.at(-1) || fallback;
+}
+
+function getFlagValues(options: ParsedOptions, flag: string): string[] {
+  return options.flags.get(flag) || [];
+}
+
+function hasFlag(options: ParsedOptions, flag: string): boolean {
+  return options.flags.has(flag);
+}
+
+function filterSkillEntries(entries: SkillEntry[], selectedSkills: string[]): SkillEntry[] {
+  if (selectedSkills.length === 0) {
+    return entries;
+  }
+  const wanted = new Set(selectedSkills);
+  return entries.filter((entry) => wanted.has(entry.name) || wanted.has(entry.relativeDir));
+}
+
+async function ensureRemoved(targetPath: string): Promise<void> {
+  await fs.rm(targetPath, { recursive: true, force: true });
+}
+
+async function ensureParentDir(targetPath: string): Promise<void> {
+  await fs.mkdir(path.dirname(targetPath), { recursive: true });
+}
+
+function printJson(data: unknown): void {
+  console.log(JSON.stringify(data, null, 2));
+}
+
+export function buildConvertOptions(parsed: ParsedOptions): ConvertOptions {
+  const platform = getFlagValue(parsed, '--platform', 'all');
+  if (!platform) {
+    throw new Error('Missing --platform value.');
+  }
+  return {
+    platform,
+    output: getFlagValue(parsed, '--output'),
+    skillsDir: getFlagValue(parsed, '--skills-dir'),
+    dryRun: hasFlag(parsed, '--dry-run'),
+    selectedSkills: getFlagValues(parsed, '--skill')
+  };
+}
+
+export function buildInstallOptions(parsed: ParsedOptions): InstallOptions {
+  const platform = getFlagValue(parsed, '--platform', 'universal') || 'universal';
+  const scope = getFlagValue(parsed, '--scope', 'project');
+  if (scope !== 'project' && scope !== 'global') {
+    throw new Error(`Unsupported --scope value: ${scope}`);
+  }
+  return {
+    platform,
+    scope,
+    projectRoot: path.resolve(
+      getFlagValue(parsed, '--project-root', process.env.INIT_CWD || process.cwd()) ||
+        process.env.INIT_CWD ||
+        process.cwd()
+    ),
+    skillsDir: getFlagValue(parsed, '--skills-dir'),
+    dryRun: hasFlag(parsed, '--dry-run'),
+    link: hasFlag(parsed, '--link'),
+    selectedSkills: getFlagValues(parsed, '--skill'),
+    target: getFlagValue(parsed, '--target')
+  };
+}
+
+export async function runPlatformsCommand(parsed: ParsedOptions): Promise<void> {
+  if (hasFlag(parsed, '--json')) {
+    printJson(platformRegistry);
+    return;
+  }
+
+  if (hasFlag(parsed, '--markdown')) {
+    console.log(renderPlatformTableMarkdown());
+    return;
+  }
+
+  console.log(`Supported platforms: ${platformRegistry.length}`);
+  for (const platform of platformRegistry) {
+    const aliases = platform.aliases.length > 0 ? ` (${platform.aliases.join(', ')})` : '';
+    console.log(
+      `- ${platform.displayName} [${platform.id}${aliases}] -> project: ${platform.projectPath}/ | global: ${formatDisplayPath(platform.globalPath)}/`
+    );
+  }
+}
+
+export async function runAuditCommand(parsed: ParsedOptions): Promise<void> {
+  const report = await createAuditReport(getFlagValue(parsed, '--skills-dir'), platformRegistry.length);
+
+  if (hasFlag(parsed, '--json')) {
+    printJson(report);
+    return;
+  }
+
+  console.log(`Skills root: ${report.skillsDir}`);
+  console.log(`Convertible skills: ${report.skillCount}`);
+  console.log(`Supported platforms: ${report.platformCount}`);
+  console.log(`Excluded directories: ${report.excludedDirectories.join(', ')}`);
+  if (report.missingSkillDirectories.length === 0) {
+    console.log('Missing SKILL.md directories: none');
+    return;
+  }
+  console.log(`Missing SKILL.md directories (${report.missingSkillDirectories.length}):`);
+  for (const entry of report.missingSkillDirectories) {
+    console.log(`- ${entry}`);
+  }
+}
+
+async function convertForPlatform(platform: PlatformRecord, options: ConvertOptions): Promise<void> {
+  const skillsDir = await resolveSkillsRoot(options.skillsDir);
+  const outputRoot = path.resolve(options.output || path.join('..', 'adapters-output'));
+  const entries = filterSkillEntries(await discoverSkillEntries(skillsDir), options.selectedSkills);
+  const targetRoot = path.join(outputRoot, platform.id, platform.projectPath);
+
+  if (options.dryRun) {
+    console.log(`[dry-run] ${platform.id} -> ${targetRoot}`);
+    for (const entry of entries) {
+      console.log(`  - ${entry.relativeDir} => ${path.join(targetRoot, entry.name)}`);
+    }
+    return;
+  }
+
+  await fs.mkdir(targetRoot, { recursive: true });
+  for (const entry of entries) {
+    const destination = path.join(targetRoot, entry.name);
+    await ensureRemoved(destination);
+    await copySkillDirectory(entry.dir, destination);
+  }
+  console.log(`Converted ${entries.length} skills for ${platform.id} -> ${targetRoot}`);
+}
+
+export async function runConvertCommand(parsed: ParsedOptions): Promise<void> {
+  const options = buildConvertOptions(parsed);
+  const platforms = options.platform === 'all' ? platformRegistry : [resolvePlatform(options.platform)];
+  for (const platform of platforms) {
+    await convertForPlatform(platform, options);
+  }
+}
+
+async function installSkillEntry(
+  entry: SkillEntry,
+  targetRoot: string,
+  dryRun: boolean,
+  link: boolean
+): Promise<void> {
+  const destination = path.join(targetRoot, entry.name);
+  if (dryRun) {
+    console.log(`[dry-run] ${entry.relativeDir} => ${destination}`);
+    return;
+  }
+
+  await ensureParentDir(destination);
+  await ensureRemoved(destination);
+  if (link) {
+    await fs.symlink(entry.dir, destination, 'dir');
+    return;
+  }
+  await copySkillDirectory(entry.dir, destination);
+}
+
+export async function runInstallCommand(parsed: ParsedOptions): Promise<void> {
+  const options = buildInstallOptions(parsed);
+  const platform = resolvePlatform(options.platform);
+  const entries = filterSkillEntries(await discoverSkillEntries(options.skillsDir), options.selectedSkills);
+  const targetRoot = options.target
+    ? path.resolve(options.target)
+    : options.scope === 'global'
+      ? platform.globalPath
+      : getPlatformProjectPath(platform, options.projectRoot);
+
+  if (!options.dryRun) {
+    await fs.mkdir(targetRoot, { recursive: true });
+  }
+
+  for (const entry of entries) {
+    await installSkillEntry(entry, targetRoot, options.dryRun, options.link);
+  }
+
+  const action = options.link ? 'Linked' : 'Installed';
+  console.log(`${action} ${entries.length} skills for ${platform.id} (${options.scope}) -> ${formatDisplayPath(targetRoot)}`);
+}
+
+export function printHelp(): void {
+  console.log(`fskill
+
+Usage:
+  fskill platforms [--json|--markdown]
+  fskill audit [--skills-dir <path>] [--json]
+  fskill convert --platform <id|all> [--skills-dir <path>] [--output <path>] [--skill <name>]... [--dry-run]
+  fskill install [--platform <id>] [--scope project|global] [--project-root <path>] [--skills-dir <path>] [--target <path>] [--skill <name>]... [--link] [--dry-run]
+  fskill version
+
+Defaults:
+  fskill install               -> installs to .agents/skills/ under the current project
+  fskill install --scope global -> installs to ~/.config/agents/skills/
+
+Examples:
+  fskill platforms
+  fskill audit --json
+  fskill convert --platform all --output ./adapters-output
+  fskill convert --platform claude-code --output ./adapters-output
+  fskill install
+  fskill install --platform antigravity --scope global
+  fskill install --platform codex --scope global --skill react --skill vue3
+`);
+}

+ 56 - 0
adapters/src/index.ts

@@ -0,0 +1,56 @@
+#!/usr/bin/env node
+import fs from 'node:fs';
+import path from 'node:path';
+import { fileURLToPath } from 'node:url';
+import {
+  parseArgv,
+  printHelp,
+  runAuditCommand,
+  runConvertCommand,
+  runInstallCommand,
+  runPlatformsCommand
+} from './commands.js';
+
+const __filename = fileURLToPath(import.meta.url);
+const __dirname = path.dirname(__filename);
+const packageJsonPath = path.resolve(__dirname, '..', 'package.json');
+const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8')) as { version?: string };
+
+async function main(): Promise<void> {
+  const [command, ...rest] = process.argv.slice(2);
+
+  if (!command || command === 'help' || command === '--help' || command === '-h') {
+    printHelp();
+    return;
+  }
+
+  if (command === '--version' || command === '-v' || command === 'version') {
+    console.log(packageJson.version || '0.0.0');
+    return;
+  }
+
+  const parsed = parseArgv(rest);
+
+  switch (command) {
+    case 'platforms':
+      await runPlatformsCommand(parsed);
+      return;
+    case 'audit':
+      await runAuditCommand(parsed);
+      return;
+    case 'convert':
+      await runConvertCommand(parsed);
+      return;
+    case 'install':
+      await runInstallCommand(parsed);
+      return;
+    default:
+      throw new Error(`Unknown command: ${command}`);
+  }
+}
+
+main().catch((error: unknown) => {
+  const message = error instanceof Error ? error.message : String(error);
+  console.error(`Error: ${message}`);
+  process.exitCode = 1;
+});

+ 107 - 0
adapters/src/platform-registry.ts

@@ -0,0 +1,107 @@
+import os from 'node:os';
+import path from 'node:path';
+
+export type InstallMode = 'copy-or-link';
+
+export interface PlatformRecord {
+  id: string;
+  aliases: string[];
+  displayName: string;
+  projectPath: string;
+  globalPath: string;
+  installMode: InstallMode;
+  notes?: string;
+}
+
+const home = os.homedir();
+const configHome = process.env.XDG_CONFIG_HOME?.trim() || path.join(home, '.config');
+const codexHome = process.env.CODEX_HOME?.trim() || path.join(home, '.codex');
+const claudeHome = process.env.CLAUDE_CONFIG_DIR?.trim() || path.join(home, '.claude');
+
+const sharedAgentsProjectPath = '.agents/skills';
+const sharedAgentsGlobalPath = path.join(configHome, 'agents', 'skills');
+
+export const platformRegistry: PlatformRecord[] = [
+  { id: 'amp', aliases: [], displayName: 'Amp', projectPath: sharedAgentsProjectPath, globalPath: sharedAgentsGlobalPath, installMode: 'copy-or-link' },
+  { id: 'kimi-cli', aliases: [], displayName: 'Kimi Code CLI', projectPath: sharedAgentsProjectPath, globalPath: sharedAgentsGlobalPath, installMode: 'copy-or-link' },
+  { id: 'replit', aliases: [], displayName: 'Replit', projectPath: sharedAgentsProjectPath, globalPath: sharedAgentsGlobalPath, installMode: 'copy-or-link' },
+  { id: 'universal', aliases: [], displayName: 'Universal', projectPath: sharedAgentsProjectPath, globalPath: sharedAgentsGlobalPath, installMode: 'copy-or-link' },
+  { id: 'antigravity', aliases: [], displayName: 'Antigravity', projectPath: sharedAgentsProjectPath, globalPath: path.join(home, '.gemini', 'antigravity', 'skills'), installMode: 'copy-or-link' },
+  { id: 'augment', aliases: [], displayName: 'Augment', projectPath: '.augment/skills', globalPath: path.join(home, '.augment', 'skills'), installMode: 'copy-or-link' },
+  { id: 'claude-code', aliases: ['claude'], displayName: 'Claude Code', projectPath: '.claude/skills', globalPath: path.join(claudeHome, 'skills'), installMode: 'copy-or-link' },
+  { id: 'openclaw', aliases: [], displayName: 'OpenClaw', projectPath: 'skills', globalPath: path.join(home, '.openclaw', 'skills'), installMode: 'copy-or-link' },
+  { id: 'cline', aliases: [], displayName: 'Cline', projectPath: sharedAgentsProjectPath, globalPath: sharedAgentsGlobalPath, installMode: 'copy-or-link' },
+  { id: 'warp', aliases: [], displayName: 'Warp', projectPath: sharedAgentsProjectPath, globalPath: sharedAgentsGlobalPath, installMode: 'copy-or-link' },
+  { id: 'codebuddy', aliases: [], displayName: 'CodeBuddy', projectPath: '.codebuddy/skills', globalPath: path.join(home, '.codebuddy', 'skills'), installMode: 'copy-or-link' },
+  { id: 'codex', aliases: [], displayName: 'Codex', projectPath: sharedAgentsProjectPath, globalPath: path.join(codexHome, 'skills'), installMode: 'copy-or-link' },
+  { id: 'command-code', aliases: [], displayName: 'Command Code', projectPath: '.commandcode/skills', globalPath: path.join(home, '.commandcode', 'skills'), installMode: 'copy-or-link' },
+  { id: 'continue', aliases: [], displayName: 'Continue', projectPath: '.continue/skills', globalPath: path.join(home, '.continue', 'skills'), installMode: 'copy-or-link' },
+  { id: 'cortex', aliases: [], displayName: 'Cortex Code', projectPath: '.cortex/skills', globalPath: path.join(home, '.snowflake', 'cortex', 'skills'), installMode: 'copy-or-link' },
+  { id: 'crush', aliases: [], displayName: 'Crush', projectPath: '.crush/skills', globalPath: path.join(configHome, 'crush', 'skills'), installMode: 'copy-or-link' },
+  { id: 'cursor', aliases: [], displayName: 'Cursor', projectPath: sharedAgentsProjectPath, globalPath: path.join(home, '.cursor', 'skills'), installMode: 'copy-or-link' },
+  { id: 'deepagents', aliases: ['deep-agents'], displayName: 'Deep Agents', projectPath: sharedAgentsProjectPath, globalPath: path.join(home, '.deepagents', 'agent', 'skills'), installMode: 'copy-or-link' },
+  { id: 'droid', aliases: [], displayName: 'Droid', projectPath: '.factory/skills', globalPath: path.join(home, '.factory', 'skills'), installMode: 'copy-or-link' },
+  { id: 'gemini-cli', aliases: [], displayName: 'Gemini CLI', projectPath: sharedAgentsProjectPath, globalPath: path.join(home, '.gemini', 'skills'), installMode: 'copy-or-link' },
+  { id: 'github-copilot', aliases: ['copilot'], displayName: 'GitHub Copilot', projectPath: sharedAgentsProjectPath, globalPath: path.join(home, '.copilot', 'skills'), installMode: 'copy-or-link' },
+  { id: 'goose', aliases: [], displayName: 'Goose', projectPath: '.goose/skills', globalPath: path.join(configHome, 'goose', 'skills'), installMode: 'copy-or-link' },
+  { id: 'junie', aliases: [], displayName: 'Junie', projectPath: '.junie/skills', globalPath: path.join(home, '.junie', 'skills'), installMode: 'copy-or-link' },
+  { id: 'iflow-cli', aliases: [], displayName: 'iFlow CLI', projectPath: '.iflow/skills', globalPath: path.join(home, '.iflow', 'skills'), installMode: 'copy-or-link' },
+  { id: 'kilo', aliases: [], displayName: 'Kilo Code', projectPath: '.kilocode/skills', globalPath: path.join(home, '.kilocode', 'skills'), installMode: 'copy-or-link' },
+  { id: 'kiro-cli', aliases: [], displayName: 'Kiro CLI', projectPath: '.kiro/skills', globalPath: path.join(home, '.kiro', 'skills'), installMode: 'copy-or-link' },
+  { id: 'kode', aliases: [], displayName: 'Kode', projectPath: '.kode/skills', globalPath: path.join(home, '.kode', 'skills'), installMode: 'copy-or-link' },
+  { id: 'mcpjam', aliases: [], displayName: 'MCPJam', projectPath: '.mcpjam/skills', globalPath: path.join(home, '.mcpjam', 'skills'), installMode: 'copy-or-link' },
+  { id: 'mistral-vibe', aliases: ['vibe'], displayName: 'Mistral Vibe', projectPath: '.vibe/skills', globalPath: path.join(home, '.vibe', 'skills'), installMode: 'copy-or-link' },
+  { id: 'mux', aliases: [], displayName: 'Mux', projectPath: '.mux/skills', globalPath: path.join(home, '.mux', 'skills'), installMode: 'copy-or-link' },
+  { id: 'opencode', aliases: [], displayName: 'OpenCode', projectPath: sharedAgentsProjectPath, globalPath: path.join(configHome, 'opencode', 'skills'), installMode: 'copy-or-link' },
+  { id: 'openhands', aliases: [], displayName: 'OpenHands', projectPath: '.openhands/skills', globalPath: path.join(home, '.openhands', 'skills'), installMode: 'copy-or-link' },
+  { id: 'pi', aliases: [], displayName: 'Pi', projectPath: '.pi/skills', globalPath: path.join(home, '.pi', 'agent', 'skills'), installMode: 'copy-or-link' },
+  { id: 'qoder', aliases: [], displayName: 'Qoder', projectPath: '.qoder/skills', globalPath: path.join(home, '.qoder', 'skills'), installMode: 'copy-or-link' },
+  { id: 'qwen-code', aliases: [], displayName: 'Qwen Code', projectPath: '.qwen/skills', globalPath: path.join(home, '.qwen', 'skills'), installMode: 'copy-or-link' },
+  { id: 'roo', aliases: [], displayName: 'Roo Code', projectPath: '.roo/skills', globalPath: path.join(home, '.roo', 'skills'), installMode: 'copy-or-link' },
+  { id: 'trae', aliases: [], displayName: 'Trae', projectPath: '.trae/skills', globalPath: path.join(home, '.trae', 'skills'), installMode: 'copy-or-link' },
+  { id: 'trae-cn', aliases: [], displayName: 'Trae CN', projectPath: '.trae/skills', globalPath: path.join(home, '.trae-cn', 'skills'), installMode: 'copy-or-link' },
+  { id: 'windsurf', aliases: [], displayName: 'Windsurf', projectPath: '.windsurf/skills', globalPath: path.join(home, '.codeium', 'windsurf', 'skills'), installMode: 'copy-or-link' },
+  { id: 'zencoder', aliases: [], displayName: 'Zencoder', projectPath: '.zencoder/skills', globalPath: path.join(home, '.zencoder', 'skills'), installMode: 'copy-or-link' },
+  { id: 'neovate', aliases: [], displayName: 'Neovate', projectPath: '.neovate/skills', globalPath: path.join(home, '.neovate', 'skills'), installMode: 'copy-or-link' },
+  { id: 'pochi', aliases: [], displayName: 'Pochi', projectPath: '.pochi/skills', globalPath: path.join(home, '.pochi', 'skills'), installMode: 'copy-or-link' },
+  { id: 'adal', aliases: [], displayName: 'AdaL', projectPath: '.adal/skills', globalPath: path.join(home, '.adal', 'skills'), installMode: 'copy-or-link' }
+];
+
+const registryMap = new Map<string, PlatformRecord>();
+
+for (const platform of platformRegistry) {
+  registryMap.set(platform.id, platform);
+  for (const alias of platform.aliases) {
+    registryMap.set(alias, platform);
+  }
+}
+
+export function resolvePlatform(input: string): PlatformRecord {
+  const resolved = registryMap.get(input);
+  if (!resolved) {
+    throw new Error(`Unsupported platform: ${input}`);
+  }
+  return resolved;
+}
+
+export function getPlatformProjectPath(platform: PlatformRecord, projectRoot: string): string {
+  return path.join(projectRoot, platform.projectPath);
+}
+
+export function formatDisplayPath(targetPath: string): string {
+  return targetPath.startsWith(home) ? targetPath.replace(home, '~') : targetPath;
+}
+
+export function renderPlatformTableMarkdown(): string {
+  const lines = [
+    '| Platform | ID / Aliases | Project Path | Global Path |',
+    '|---|---|---|---|'
+  ];
+  for (const platform of platformRegistry) {
+    const aliases = [platform.id, ...platform.aliases].join(', ');
+    lines.push(
+      `| ${platform.displayName} | \`${aliases}\` | \`${platform.projectPath}/\` | \`${formatDisplayPath(platform.globalPath)}/\` |`
+    );
+  }
+  return lines.join('\n');
+}

+ 149 - 0
adapters/src/skills.ts

@@ -0,0 +1,149 @@
+import fs from 'node:fs/promises';
+import path from 'node:path';
+
+const IGNORED_DIR_NAMES = new Set(['__pycache__']);
+const IGNORED_FILE_NAMES = new Set(['.DS_Store']);
+const EXCLUDED_SKILL_DIRECTORIES = new Set([path.join('skills', 'pencil-skills', 'docs')]);
+
+export interface SkillEntry {
+  name: string;
+  group: string;
+  dir: string;
+  relativeDir: string;
+  skillFile: string;
+}
+
+export interface AuditReport {
+  skillsDir: string;
+  skillCount: number;
+  missingSkillDirectories: string[];
+  excludedDirectories: string[];
+  platformCount: number;
+}
+
+async function pathExists(targetPath: string): Promise<boolean> {
+  try {
+    await fs.access(targetPath);
+    return true;
+  } catch {
+    return false;
+  }
+}
+
+function isExcludedSkillDirectory(relativeDir: string): boolean {
+  return EXCLUDED_SKILL_DIRECTORIES.has(relativeDir);
+}
+
+export async function resolveSkillsRoot(input?: string): Promise<string> {
+  const direct = input ? path.resolve(input) : path.resolve(process.cwd(), '..', 'skills');
+  if (await pathExists(direct)) {
+    return direct;
+  }
+  const fromRepoRoot = path.resolve(process.cwd(), 'skills');
+  if (await pathExists(fromRepoRoot)) {
+    return fromRepoRoot;
+  }
+  throw new Error(`Unable to locate skills directory. Checked: ${direct} and ${fromRepoRoot}`);
+}
+
+export async function discoverSkillEntries(skillsDirInput?: string): Promise<SkillEntry[]> {
+  const skillsDir = await resolveSkillsRoot(skillsDirInput);
+  const groups = await fs.readdir(skillsDir, { withFileTypes: true });
+  const entries: SkillEntry[] = [];
+
+  for (const group of groups) {
+    if (!group.isDirectory() || IGNORED_DIR_NAMES.has(group.name) || group.name.startsWith('.')) {
+      continue;
+    }
+    const groupDir = path.join(skillsDir, group.name);
+    const skillCandidates = await fs.readdir(groupDir, { withFileTypes: true });
+    for (const candidate of skillCandidates) {
+      if (!candidate.isDirectory() || IGNORED_DIR_NAMES.has(candidate.name) || candidate.name.startsWith('.')) {
+        continue;
+      }
+      const absoluteDir = path.join(groupDir, candidate.name);
+      const relativeDir = path.relative(path.dirname(skillsDir), absoluteDir);
+      if (isExcludedSkillDirectory(relativeDir)) {
+        continue;
+      }
+      const skillFile = path.join(absoluteDir, 'SKILL.md');
+      if (!(await pathExists(skillFile))) {
+        continue;
+      }
+      entries.push({
+        name: candidate.name,
+        group: group.name,
+        dir: absoluteDir,
+        relativeDir,
+        skillFile
+      });
+    }
+  }
+
+  return entries.sort((left, right) => left.relativeDir.localeCompare(right.relativeDir));
+}
+
+export async function findMissingSkillDirectories(skillsDirInput?: string): Promise<string[]> {
+  const skillsDir = await resolveSkillsRoot(skillsDirInput);
+  const groups = await fs.readdir(skillsDir, { withFileTypes: true });
+  const missing: string[] = [];
+
+  for (const group of groups) {
+    if (!group.isDirectory() || IGNORED_DIR_NAMES.has(group.name) || group.name.startsWith('.')) {
+      continue;
+    }
+    const groupDir = path.join(skillsDir, group.name);
+    const skillCandidates = await fs.readdir(groupDir, { withFileTypes: true });
+    for (const candidate of skillCandidates) {
+      if (!candidate.isDirectory() || candidate.name.startsWith('.') || IGNORED_DIR_NAMES.has(candidate.name)) {
+        continue;
+      }
+      const absoluteDir = path.join(groupDir, candidate.name);
+      const relativeDir = path.relative(path.dirname(skillsDir), absoluteDir);
+      if (isExcludedSkillDirectory(relativeDir)) {
+        continue;
+      }
+      const skillFile = path.join(absoluteDir, 'SKILL.md');
+      if (!(await pathExists(skillFile))) {
+        missing.push(relativeDir);
+      }
+    }
+  }
+  return missing.sort();
+}
+
+export async function copySkillDirectory(sourceDir: string, destinationDir: string): Promise<void> {
+  await fs.mkdir(destinationDir, { recursive: true });
+  const items = await fs.readdir(sourceDir, { withFileTypes: true });
+
+  for (const item of items) {
+    if (IGNORED_FILE_NAMES.has(item.name) || IGNORED_DIR_NAMES.has(item.name) || item.name.startsWith('.')) {
+      continue;
+    }
+    const source = path.join(sourceDir, item.name);
+    const destination = path.join(destinationDir, item.name);
+
+    if (item.isDirectory()) {
+      await copySkillDirectory(source, destination);
+      continue;
+    }
+
+    if (item.isFile()) {
+      await fs.copyFile(source, destination);
+    }
+  }
+}
+
+export async function createAuditReport(skillsDirInput: string | undefined, platformCount: number): Promise<AuditReport> {
+  const skillsDir = await resolveSkillsRoot(skillsDirInput);
+  const skillEntries = await discoverSkillEntries(skillsDir);
+  const missing = await findMissingSkillDirectories(skillsDir);
+
+  return {
+    skillsDir,
+    skillCount: skillEntries.length,
+    missingSkillDirectories: missing,
+    excludedDirectories: Array.from(EXCLUDED_SKILL_DIRECTORIES.values()).sort(),
+    platformCount
+  };
+}

+ 15 - 0
adapters/tsconfig.json

@@ -0,0 +1,15 @@
+{
+  "compilerOptions": {
+    "target": "ES2022",
+    "module": "NodeNext",
+    "moduleResolution": "NodeNext",
+    "rootDir": "./src",
+    "outDir": "./dist",
+    "strict": true,
+    "esModuleInterop": true,
+    "forceConsistentCasingInFileNames": true,
+    "skipLibCheck": true,
+    "types": ["node"]
+  },
+  "include": ["src/**/*.ts"]
+}