diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json new file mode 100644 index 0000000..c0aa32f --- /dev/null +++ b/.claude-plugin/marketplace.json @@ -0,0 +1,636 @@ +{ + "name": "coolbuy-claude-plugins", + "owner": { + "name": "Donglin Lai (qiudl)", + "email": "qiudl@zhiyuncai.com" + }, + "metadata": { + "description": "Custom Claude Code plugins for development workflows, DevOps, and business operations", + "version": "1.0.0", + "pluginRoot": "./skills" + }, + "plugins": [ + { + "name": "agent-swarm-plugin", + "source": "./skills/agent-swarm-plugin", + "description": "Multi-agent orchestration using OpenAI Swarm patterns. Coordinate specialized agents for complex development workflows with handoffs and context sharing.", + "version": "1.0.0", + "category": "utility", + "keywords": [ + "utility", + "tools" + ], + "strict": false + }, + { + "name": "ai-proj-plugin", + "source": "./skills/ai-proj-plugin", + "description": "AI project management via REST API. Works out of the box!", + "version": "2.0.1", + "category": "productivity", + "keywords": [ + "project-management", + "tasks", + "requirements" + ], + "strict": false + }, + { + "name": "biz-contract-plugin", + "source": "./skills/biz-contract-plugin", + "description": "商务合同撰写。支持多种合同类型:软件订阅合同、软件定制开发合同、物流合同、销售服务合同、贸易合同等。当用户提到合同、协议、签约、合作协议相关任务时自动激活。", + "version": "1.0.0", + "category": "business", + "keywords": [ + "business", + "planning", + "contracts" + ], + "strict": false + }, + { + "name": "biz-ops-plugin", + "source": "./skills/biz-ops-plugin", + "description": "商务运营技能。支持商业计划书(BP)撰写和商务合同起草。当用户提到商业计划书、BP、融资计划、商业模式、合同、协议、签约等相关任务时自动激活。", + "version": "1.0.0", + "category": "devops", + "keywords": [ + "devops", + "deployment", + "operations" + ], + "strict": false + }, + { + "name": "biz-plan-plugin", + "source": "./skills/biz-plan-plugin", + "description": "Plugin for biz-plan", + "version": "1.0.0", + "category": "business", + "keywords": [ + "business", + "planning", + "contracts" + ], + "strict": false + }, + { + "name": "coolbuy-legacy-plugin", + "source": "./skills/coolbuy-legacy-plugin", + "description": "酷采2.0团购管理系统测试与维护。用于酷采2.0系统的功能测试、问题排查、需求验证和对比测试。", + "version": "1.0.0", + "category": "utility", + "keywords": [ + "utility", + "tools" + ], + "strict": false + }, + { + "name": "coolbuy-paas-plugin", + "source": "./skills/coolbuy-paas-plugin", + "description": "酷采3.0 SaaS 租户端开发与测试。用于商品管理、订单管理等业务模块开发,以及酷采2.0系统对比测试。", + "version": "1.3.0", + "category": "utility", + "keywords": [ + "utility", + "tools" + ], + "strict": false + }, + { + "name": "coolbuy-platform-plugin", + "source": "./skills/coolbuy-platform-plugin", + "description": "Coolbuy SaaS 平台管理端开发与部署。用于平台端前后端开发、租户管理、部署发布、翻译检查等任务。", + "version": "1.0.9", + "category": "utility", + "keywords": [ + "utility", + "tools" + ], + "strict": false + }, + { + "name": "data-excel-plugin", + "source": "./skills/data-excel-plugin", + "description": "Plugin for data-excel", + "version": "1.0.0", + "category": "utility", + "keywords": [ + "utility", + "tools" + ], + "strict": false + }, + { + "name": "dev-arch-plugin", + "source": "./skills/dev-arch-plugin", + "description": "Plugin for dev-arch", + "version": "1.0.0", + "category": "development", + "keywords": [ + "development", + "coding", + "workflow" + ], + "strict": false + }, + { + "name": "dev-coding-plugin", + "source": "./skills/dev-coding-plugin", + "description": "Plugin for dev-coding", + "version": "1.0.0", + "category": "development", + "keywords": [ + "development", + "coding", + "workflow" + ], + "strict": false + }, + { + "name": "dev-plugin", + "source": "./skills/dev-plugin", + "description": "Plugin for dev", + "version": "1.0.0", + "category": "development", + "keywords": [ + "development", + "coding", + "workflow" + ], + "strict": false + }, + { + "name": "dev-test-plugin", + "source": "./skills/dev-test-plugin", + "description": "软件测试技能。用于单元测试、集成测试、E2E测试、测试用例设计。支持 Go、Vue、React、iOS、Android 等多平台测试。", + "version": "2.0.0", + "category": "development", + "keywords": [ + "development", + "coding", + "workflow" + ], + "strict": false + }, + { + "name": "dotfiles-plugin", + "source": "./skills/dotfiles-plugin", + "description": "macOS 新机快速部署。用于 dotfiles 配置管理、install.sh 脚本维护、Claude Code 插件配置、MCP Server 配置。当用户提到新机部署、dotfiles、环境配置相关任务时自动激活。", + "version": "1.0.0", + "category": "utility", + "keywords": [ + "utility", + "tools" + ], + "strict": false + }, + { + "name": "doubao-voice-plugin", + "source": "./skills/doubao-voice-plugin", + "description": "Doubao (豆包) Voice API integration for TTS and ASR", + "version": "1.0.0", + "category": "utility", + "keywords": [ + "utility", + "tools" + ], + "strict": false + }, + { + "name": "enjoysa-deploy-plugin", + "source": "./skills/enjoysa-deploy-plugin", + "description": "EnjoySA 项目部署到新加坡服务器", + "version": "1.0.0", + "category": "devops", + "keywords": [ + "devops", + "deployment", + "operations" + ], + "strict": false + }, + { + "name": "enjoysa-plugin", + "source": "./skills/enjoysa-plugin", + "description": "Plugin for enjoysa", + "version": "1.0.0", + "category": "utility", + "keywords": [ + "utility", + "tools" + ], + "strict": false + }, + { + "name": "executing-plans-plugin", + "source": "./skills/executing-plans-plugin", + "description": "Plugin for executing-plans", + "version": "1.0.0", + "category": "utility", + "keywords": [ + "utility", + "tools" + ], + "strict": false + }, + { + "name": "feishu-bitable-plugin", + "source": "./skills/feishu-bitable-plugin", + "description": "飞书多维表格操作。用于记录增删改查、批量操作、筛选排序、数据同步。当需要操作飞书多维表格时使用。", + "version": "1.0.0", + "category": "integration", + "keywords": [ + "integration", + "automation", + "productivity" + ], + "strict": false + }, + { + "name": "feishu-docx-plugin", + "source": "./skills/feishu-docx-plugin", + "description": "飞书云文档操作。用于创建、编辑云文档,插入内容块,会议纪要生成。当需要操作飞书云文档时使用。", + "version": "1.0.0", + "category": "integration", + "keywords": [ + "integration", + "automation", + "productivity" + ], + "strict": false + }, + { + "name": "feishu-plugin", + "source": "./skills/feishu-plugin", + "description": "飞书多维表格快捷操作。通过自然语言实现多维表格的增删改查、数据同步、批量操作等功能。当用户提到飞书、多维表格、Bitable、飞书表格相关任务时自动激活。", + "version": "1.1.0", + "category": "integration", + "keywords": [ + "integration", + "automation", + "productivity" + ], + "strict": false + }, + { + "name": "finance-plugin", + "source": "./skills/finance-plugin", + "description": "Plugin for finance", + "version": "1.0.0", + "category": "utility", + "keywords": [ + "utility", + "tools" + ], + "strict": false + }, + { + "name": "finishing-a-development-branch-plugin", + "source": "./skills/finishing-a-development-branch-plugin", + "description": "Plugin for finishing-a-development-branch", + "version": "1.0.0", + "category": "utility", + "keywords": [ + "utility", + "tools" + ], + "strict": false + }, + { + "name": "frontend-design-plugin", + "source": "./skills/frontend-design-plugin", + "description": "Plugin for frontend-design", + "version": "1.0.0", + "category": "development", + "keywords": [ + "development", + "coding", + "workflow" + ], + "strict": false + }, + { + "name": "gitea-plugin", + "source": "./skills/gitea-plugin", + "description": "Gitea 代码托管与 CI/CD 管理。用于 Gitea Actions workflow 管理、Runner 管理、PR 操作、仓库配置。", + "version": "1.0.0", + "category": "utility", + "keywords": [ + "utility", + "tools" + ], + "strict": false + }, + { + "name": "openclaw-ops-plugin", + "source": "./skills/openclaw-ops-plugin", + "description": "Plugin for openclaw-ops", + "version": "1.0.0", + "category": "devops", + "keywords": [ + "devops", + "deployment", + "operations" + ], + "strict": false + }, + { + "name": "openclaw-plugin", + "source": "./skills/openclaw-plugin", + "description": "OpenClaw (龙虾) - Remote AI compute orchestration system. Dispatches requirements to Claude Code instances on remote machines, monitors execution, and aggregates results.", + "version": "1.0.0", + "category": "utility", + "keywords": [ + "utility", + "tools" + ], + "strict": false + }, + { + "name": "ops-servers-plugin", + "source": "./skills/ops-servers-plugin", + "description": "Plugin for ops-servers", + "version": "1.0.0", + "category": "devops", + "keywords": [ + "devops", + "deployment", + "operations" + ], + "strict": false + }, + { + "name": "ops-tools-plugin", + "source": "./skills/ops-tools-plugin", + "description": "Plugin for ops-tools", + "version": "1.0.0", + "category": "devops", + "keywords": [ + "devops", + "deployment", + "operations" + ], + "strict": false + }, + { + "name": "pull-request-plugin", + "source": "./skills/pull-request-plugin", + "description": "Plugin for pr", + "version": "1.0.0", + "category": "productivity", + "keywords": [ + "project-management", + "tasks", + "requirements" + ], + "strict": false + }, + { + "name": "read-session-plugin", + "source": "./skills/read-session-plugin", + "description": "Plugin for read-session", + "version": "1.0.0", + "category": "workflow", + "keywords": [ + "session", + "workflow", + "productivity" + ], + "strict": false + }, + { + "name": "reload-session-plugin", + "source": "./skills/reload-session-plugin", + "description": "Plugin for reload-session", + "version": "1.0.0", + "category": "workflow", + "keywords": [ + "session", + "workflow", + "productivity" + ], + "strict": false + }, + { + "name": "req-commands-plugin", + "source": "./skills/req-commands-plugin", + "description": "需求命令详细参考。含撰写命令(new/draft/edit/check/split/history/compare)和流程命令(submit/review/phase/next/deploy/done)。", + "version": "2.0.0", + "category": "productivity", + "keywords": [ + "project-management", + "tasks", + "requirements" + ], + "strict": false + }, + { + "name": "req-deploy-plugin", + "source": "./skills/req-deploy-plugin", + "description": "Plugin for req-deploy", + "version": "1.0.0", + "category": "devops", + "keywords": [ + "devops", + "deployment", + "operations" + ], + "strict": false + }, + { + "name": "req-dev-plugin", + "source": "./skills/req-dev-plugin", + "description": "Plugin for req-dev", + "version": "1.0.0", + "category": "development", + "keywords": [ + "development", + "coding", + "workflow" + ], + "strict": false + }, + { + "name": "req-plugin", + "source": "./skills/req-plugin", + "description": "需求工作流管理入口。用于 /req 命令使用、需求生命周期管理、需求撰写(含草稿门禁)。", + "version": "2.0.0", + "category": "productivity", + "keywords": [ + "project-management", + "tasks", + "requirements" + ], + "strict": false + }, + { + "name": "req-prd-plugin", + "source": "./skills/req-prd-plugin", + "description": "Plugin for req-prd", + "version": "1.0.0", + "category": "productivity", + "keywords": [ + "project-management", + "tasks", + "requirements" + ], + "strict": false + }, + { + "name": "req-review-plugin", + "source": "./skills/req-review-plugin", + "description": "PRD 评审方法论。用于需求评审、PRD 文档审查、评审意见编写。当执行 /req review 或需要评审 PRD 文档时使用。", + "version": "1.0.0", + "category": "productivity", + "keywords": [ + "project-management", + "tasks", + "requirements" + ], + "strict": false + }, + { + "name": "req-test-gate-plugin", + "source": "./skills/req-test-gate-plugin", + "description": "测试与质量门禁制度。覆盖需求级测试(Gates 1-5,含前后端联调+视觉验证)、部署级验证(Deploy Gates)、持续回归(Regression)。", + "version": "1.0.0", + "category": "productivity", + "keywords": [ + "project-management", + "tasks", + "requirements" + ], + "strict": false + }, + { + "name": "req-workflow-plugin", + "source": "./skills/req-workflow-plugin", + "description": "需求完整工作流。用于从创建到归档的完整流程、Hook 自动同步、测试环境流程。当需要了解需求完整生命周期或同步策略时使用。", + "version": "1.0.0", + "category": "productivity", + "keywords": [ + "project-management", + "tasks", + "requirements" + ], + "strict": false + }, + { + "name": "requirement-plugin", + "source": "./skills/requirement-plugin", + "description": "[已废弃] 需求撰写功能已合并到 req-plugin。请使用 /req 命令。", + "version": "2.0.0", + "category": "productivity", + "keywords": [ + "project-management", + "tasks", + "requirements" + ], + "strict": false + }, + { + "name": "save-session-plugin", + "source": "./skills/save-session-plugin", + "description": "Plugin for save-session", + "version": "1.0.0", + "category": "workflow", + "keywords": [ + "session", + "workflow", + "productivity" + ], + "strict": false + }, + { + "name": "search-sessions-plugin", + "source": "./skills/search-sessions-plugin", + "description": "Plugin for search-sessions", + "version": "1.0.0", + "category": "workflow", + "keywords": [ + "session", + "workflow", + "productivity" + ], + "strict": false + }, + { + "name": "session-plugin", + "source": "./skills/session-plugin", + "description": "Manage Claude Code sessions — save, reload, read, and search saved conversations. Triggers on /session commands or when user mentions saving session, reloading session, finding previous conversations, or continuing previous work.", + "version": "1.0.0", + "category": "workflow", + "keywords": [ + "session", + "workflow", + "productivity" + ], + "strict": false + }, + { + "name": "siyuan-plugin", + "source": "./skills/siyuan-plugin", + "description": "Plugin for siyuan", + "version": "1.0.0", + "category": "integration", + "keywords": [ + "integration", + "automation", + "productivity" + ], + "strict": false + }, + { + "name": "siyuan-to-feishu-plugin", + "source": "./skills/siyuan-to-feishu-plugin", + "description": "将思源笔记导出为 PDF 并发送到飞书群。当用户提到发送笔记、导出PDF发飞书、/siyuan send、分享到飞书相关任务时自动激活。", + "version": "1.0.0", + "category": "integration", + "keywords": [ + "integration", + "automation", + "productivity" + ], + "strict": false + }, + { + "name": "skill-manager-plugin", + "source": "./skills/skill-manager-plugin", + "description": "|", + "version": "1.0.0", + "category": "utility", + "keywords": [ + "utility", + "tools" + ], + "strict": false + }, + { + "name": "wecom-plugin", + "source": "./skills/wecom-plugin", + "description": "企业微信集成。通过自然语言发送消息、管理群机器人、操作审批流程、管理通讯录。当用户提到企业微信、微信工作、群机器人、企业号、wecom相关任务时自动激活。", + "version": "1.0.0", + "category": "integration", + "keywords": [ + "integration", + "automation", + "productivity" + ], + "strict": false + }, + { + "name": "qiudl-personal-plugin", + "source": "./skills-personal/qiudl-personal-plugin", + "description": "Plugin for qiudl-personal", + "version": "1.0.0", + "category": "utility", + "keywords": [ + "utility", + "tools" + ], + "strict": false + } + ] +} \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ed9b2e2 --- /dev/null +++ b/.gitignore @@ -0,0 +1,24 @@ +# Personal skills (not version controlled) +skills-personal/ + +# Environment and secrets +.env +.env.* +*.token +*.key +*.pem + +# MCP generated config +.mcp.json + +# OS files +.DS_Store +Thumbs.db + +# Python +__pycache__/ +*.pyc +*.pyo + +# Node +node_modules/ diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..949ada5 --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,64 @@ +# ai-proj-helper + +Claude Code 技能市场 + MCP 配置管理工具。 + +## 快速开始 + +```bash +./init.sh +``` + +交互式配置 MCP 连接和生成 marketplace.json。支持命令行参数: + +```bash +./init.sh --mode stdio --env prod --token YOUR_TOKEN +``` + +## 目录结构 + +``` +ai-proj-helper/ +├── skills/ # 公共技能(Git 版本控制) +│ ├── ai-proj-plugin/ +│ │ ├── .claude-plugin/plugin.json +│ │ └── skills/SKILL.md +│ └── ... +├── skills-personal/ # 个人技能(.gitignore 排除) +│ └── qiudl-personal-plugin/ +├── claude-config.yaml # 技能启用/禁用 + MCP 配置 +├── init.sh # MCP + marketplace 初始化 +├── sync-skills.sh # 从 ~/.claude/skills/ 同步技能 +└── generate-marketplace.py # marketplace.json 生成器 +``` + +## 添加新技能 + +1. 在 `skills/` 下创建 `-plugin/` 目录 +2. 创建 `.claude-plugin/plugin.json` 和 `skills/SKILL.md` +3. 运行 `python3 generate-marketplace.py` 重新生成 marketplace.json + +## 禁用技能 + +编辑 `claude-config.yaml`: + +```yaml +skills: + disabled: + - "dotfiles-plugin" + - "biz-ops-plugin" +``` + +重新运行 `./init.sh` 或 `python3 generate-marketplace.py`。 + +## MCP 环境 + +| 环境 | API 地址 | +|------|----------| +| dev | http://localhost:8080/api/v1 | +| staging | https://ai-staging.pipexerp.com/api/v1 | +| prod | https://ai.pipexerp.com/api/v1 | + +## 个人技能 + +`skills-personal/` 目录不被 Git 跟踪,用于存放个人配置和工具。 +个人技能同样会被 `generate-marketplace.py` 扫描并加入 marketplace.json。 diff --git a/PUSH.sh b/PUSH.sh deleted file mode 100755 index 2b3dfcb..0000000 --- a/PUSH.sh +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/bash -echo "🚀 Pushing to Gitea..." -echo "" -echo "Make sure you've created the repository on Gitea:" -echo "https://gitea.pipexerp.com/huangjun/claude-marketplace" -echo "" -read -p "Press Enter to continue..." - -git push -u origin main - -echo "" -echo "✅ Done! Your marketplace is now live at:" -echo "https://gitea.pipexerp.com/huangjun/claude-marketplace" -echo "" -echo "Test it with:" -echo "/plugin marketplace add git@gitea.pipexerp.com:huangjun/claude-marketplace.git" diff --git a/README.md b/README.md index a661794..d8bdbaf 100644 --- a/README.md +++ b/README.md @@ -1,179 +1,130 @@ -# Claude Code Plugin Marketplace +# ai-proj-helper -Custom Claude Code plugins for development workflows, DevOps, and business operations. +Claude Code 技能市场 + MCP 配置管理工具。整合公共技能、个人技能、MCP 服务器配置于一体。 -## 🚀 Quick Start +> **从 claude-marketplace 迁移?** 本仓库是 claude-marketplace 的超集,已包含所有原有插件。直接使用本仓库即可,无需额外迁移。 -### Add the Marketplace +## 快速开始 ```bash -/plugin marketplace add git@gitea.pipexerp.com:huangjun/claude-marketplace.git +# 1. 克隆仓库 +git clone https://gitea.pipexerp.com/pipexerp/ai-proj-helper.git +cd ai-proj-helper + +# 2. 运行初始化(交互式配置 MCP + 生成 marketplace) +./init.sh + +# 3. 添加技能市场 +/plugin marketplace add /path/to/ai-proj-helper ``` -Or using HTTPS (requires credential configuration): -```bash -/plugin marketplace add https://gitea.pipexerp.com/huangjun/claude-marketplace.git -``` - -### Install Plugins +也可以使用命令行参数跳过交互: ```bash -# Install specific plugin -/plugin install ai-proj-plugin@coolbuy-claude-plugins - -# List all available plugins -/plugin marketplace list coolbuy-claude-plugins +./init.sh --mode stdio --env prod --token YOUR_TOKEN ``` -## 📦 Available Plugins (40 Total) +## 目录结构 -### 🚀 Development & Coding -- **ai-proj-plugin** - AI project management with MCP integration -- **dev-plugin** - General development workflows -- **dev-arch-plugin** - Software architecture and design -- **dev-coding-plugin** - Coding standards and best practices -- **dev-test-plugin** - Testing workflows and automation -- **frontend-design-plugin** - Frontend design and UI/UX - -### 🔧 DevOps & Operations -- **ops-tools-plugin** - DevOps tools for deployment and monitoring -- **ops-servers-plugin** - Server management and SSH operations -- **enjoysa-deploy-plugin** - Enjoysa deployment automation -- **req-deploy-plugin** - Requirement deployment workflows - -### 📋 Project & Requirements Management -- **req-plugin** - Requirement management workflows -- **req-dev-plugin** - Requirement development processes -- **req-prd-plugin** - PRD (Product Requirements Document) creation -- **req-commands-plugin** - Detailed command reference for /req -- **req-review-plugin** - PRD review methodology -- **req-workflow-plugin** - Complete requirement lifecycle workflow -- **requirement-plugin** - General requirement handling -- **executing-plans-plugin** - Plan execution and tracking - -### 💼 Business Operations -- **biz-plan-plugin** - Business planning and proposals -- **biz-contract-plugin** - Contract drafting and management -- **finance-plugin** - Financial operations and reporting - -### 🔗 Integrations -- **feishu-plugin** - Feishu/Lark integration (documents, spreadsheets) -- **feishu-bitable-plugin** - Feishu Bitable (multi-dimensional tables) -- **feishu-docx-plugin** - Feishu cloud documents -- **wecom-plugin** - WeChat Work integration -- **siyuan-plugin** - SiYuan note-taking integration -- **data-excel-plugin** - Excel data processing -- **doubao-voice-plugin** - Doubao Voice API (TTS, ASR, dialogue) - -### 🏢 Project-Specific -- **coolbuy-legacy-plugin** - Coolbuy legacy system workflows -- **coolbuy-paas-plugin** - Coolbuy PaaS platform operations -- **coolbuy-platform-plugin** - Coolbuy platform development -- **enjoysa-plugin** - Enjoysa project workflows - -### 🔄 Session Management -- **save-session-plugin** - Save Claude Code sessions -- **reload-session-plugin** - Reload saved sessions -- **read-session-plugin** - Read session data -- **search-sessions-plugin** - Search through sessions - -### 🛠️ Utilities -- **pr-plugin** - Pull request creation and management -- **finishing-a-development-branch-plugin** - Branch finishing workflows -- **skill-manager-plugin** - Skill management utilities -- **qiudl-personal-plugin** - Personal productivity tools - -## 📖 Usage Examples - -### AI Project Management -```bash -/ai-proj-plugin:create-task "Implement user authentication" -/ai-proj-plugin:start-timer +``` +ai-proj-helper/ +├── .claude-plugin/marketplace.json # 自动生成 +├── claude-config.yaml # 技能启用/禁用 + MCP 配置 +├── init.sh # MCP + marketplace 初始化 +├── sync-skills.sh # 同步本地技能 +├── generate-marketplace.py # marketplace 生成器 +├── skills/ # 公共技能 (48 个,Git 版本控制) +│ ├── ai-proj-plugin/ +│ ├── dev-coding-plugin/ +│ ├── feishu-plugin/ +│ └── ... +└── skills-personal/ # 个人技能 (.gitignore 排除) + └── qiudl-personal-plugin/ ``` -### DevOps Operations -```bash -/ops-tools-plugin:deploy production -/ops-servers-plugin:check-status +## 可用技能 (48 公共) + +### 开发 + +ai-proj, dev, dev-arch, dev-coding, dev-test, frontend-design, agent-swarm + +### DevOps + +ops-tools, ops-servers, enjoysa-deploy, req-deploy + +### 需求管理 + +req, req-commands, req-dev, req-prd, req-review, req-test-gate, req-workflow, requirement, executing-plans + +### 业务 + +biz-plan, biz-contract, biz-ops, finance + +### 集成 + +feishu, feishu-bitable, feishu-docx, wecom, siyuan, siyuan-to-feishu, data-excel, doubao-voice + +### 项目 + +coolbuy-legacy, coolbuy-paas, coolbuy-platform, enjoysa, openclaw, openclaw-ops + +### 会话管理 + +save-session, reload-session, read-session, search-sessions, session + +### 工具 + +pull-request, finishing-a-development-branch, skill-manager, dotfiles, gitea + +## 配置管理 + +### claude-config.yaml + +```yaml +version: "1.0" + +mcp: + mode: stdio # stdio | sse + env: prod # dev | staging | prod + +skills: + disabled: [] # 禁用的技能列表 + personal_dir: "skills-personal" ``` -### Development Workflow -```bash -/dev-coding-plugin:start-feature "user-profile" -/finishing-a-development-branch-plugin:create-pr +### 禁用技能 + +编辑 `claude-config.yaml` 添加要禁用的技能: + +```yaml +skills: + disabled: + - "dotfiles-plugin" + - "biz-ops-plugin" ``` -### Business Operations -```bash -/biz-contract-plugin:draft "Software Subscription Agreement" -/biz-plan-plugin:create-proposal -``` +然后重新运行 `./init.sh` 或 `python3 generate-marketplace.py`。 -## 🔐 Private Repository Access +## 同步本地技能 -For background auto-updates, set authentication token: +将 `~/.claude/skills/` 中的技能同步到仓库: ```bash -# Add to ~/.zshrc or ~/.bashrc -export GITEA_TOKEN="your-gitea-token" +./sync-skills.sh ``` -## 📝 Plugin Naming Convention +## MCP 环境 -All plugins use namespaced commands to avoid conflicts: -- Format: `/plugin-name:command-name` -- Example: `/ai-proj-plugin:create-task` +| 环境 | API 地址 | 用途 | +|------|----------|------| +| dev | http://localhost:8080 | 本地开发 | +| staging | https://ai-staging.pipexerp.com | 测试环境 | +| prod | https://ai.pipexerp.com | 生产环境 | -## 🔄 Updates +## 作者 -Update the marketplace and plugins: +**Donglin Lai (qiudl)** - qiudl@zhiyuncai.com -```bash -# Update marketplace catalog -/plugin marketplace update coolbuy-claude-plugins +## 仓库 -# Update specific plugin -/plugin update ai-proj-plugin@coolbuy-claude-plugins - -# Update all plugins from this marketplace -/plugin update-all -``` - -## 🏗️ Plugin Structure - -Each plugin follows the official Claude Code plugin structure: -``` -plugin-name-plugin/ -├── .claude-plugin/ -│ └── plugin.json # Plugin metadata -├── skills/ -│ └── SKILL.md # Agent skills -└── [scripts, configs, etc.] -``` - -## 📚 Documentation - -- [Official Claude Code Plugin Docs](https://code.claude.com/docs/en/plugins) -- [Plugin Marketplace Guide](https://code.claude.com/docs/en/plugin-marketplaces) - -## 👤 Author - -**Donglin Lai (qiudl)** -- Email: qiudl@zhiyuncai.com -- Organization: PipeX ERP - -## 📄 License - -Individual plugins may have their own licenses. Please check each plugin's documentation. - -## 🤝 Contributing - -To add or update plugins: -1. Clone this repository -2. Add/modify plugins in the `plugins/` directory -3. Regenerate `marketplace.json` using the provided scripts -4. Submit changes - ---- - -**Repository**: git@gitea.pipexerp.com:huangjun/claude-marketplace.git +https://gitea.pipexerp.com/pipexerp/ai-proj-helper diff --git a/claude-config.yaml b/claude-config.yaml new file mode 100644 index 0000000..fe445d8 --- /dev/null +++ b/claude-config.yaml @@ -0,0 +1,13 @@ +version: "1.0" + +mcp: + mode: stdio # stdio | sse + env: prod # dev | staging | prod + # Token 不存储在此文件,由 init.sh 引导配置 + +skills: + disabled: [] + # disabled: + # - "dotfiles-plugin" + # - "biz-ops-plugin" + personal_dir: "skills-personal" diff --git a/convert-skills.sh b/convert-skills.sh deleted file mode 100755 index 5f21b19..0000000 --- a/convert-skills.sh +++ /dev/null @@ -1,82 +0,0 @@ -#!/bin/bash - -# Convert dotfiles custom skills to official Claude Code plugins - -SOURCE_DIR="/Users/junhuang/coolbuy/new-ai-proj/dotfiles/claude-skills" -TARGET_DIR="/Users/junhuang/coolbuy/claude-marketplace/plugins" - -echo "Converting skills to plugins..." - -# Loop through each skill directory -for skill_dir in "$SOURCE_DIR"/*; do - # Skip non-directories and special files - if [ ! -d "$skill_dir" ] || [ "$(basename "$skill_dir")" = ".git" ]; then - continue - fi - - skill_name=$(basename "$skill_dir") - plugin_name="${skill_name}-plugin" - plugin_dir="$TARGET_DIR/$plugin_name" - - echo "Processing: $skill_name -> $plugin_name" - - # Create plugin directory structure - mkdir -p "$plugin_dir/.claude-plugin" - mkdir -p "$plugin_dir/skills" - - # Copy SKILL.md if exists - if [ -f "$skill_dir/SKILL.md" ]; then - cp "$skill_dir/SKILL.md" "$plugin_dir/skills/" - fi - - # Copy skill.yaml if exists (for reference) - if [ -f "$skill_dir/skill.yaml" ]; then - cp "$skill_dir/skill.yaml" "$plugin_dir/.skill.yaml.original" - fi - - # Copy any Python scripts or other files - find "$skill_dir" -type f \( -name "*.py" -o -name "*.sh" -o -name "*.js" -o -name "*.json" -o -name "*.md" \) -not -name "SKILL.md" -not -name "skill.yaml" -exec cp {} "$plugin_dir/" \; - - # Copy subdirectories (like scripts/) - for subdir in "$skill_dir"/*; do - if [ -d "$subdir" ]; then - subdir_name=$(basename "$subdir") - cp -r "$subdir" "$plugin_dir/" - fi - done - - # Read version from skill.yaml if exists, otherwise use 1.0.0 - version="1.0.0" - if [ -f "$skill_dir/skill.yaml" ]; then - yaml_version=$(grep "^version:" "$skill_dir/skill.yaml" | sed 's/version: *//' | tr -d '"' | tr -d "'") - if [ ! -z "$yaml_version" ]; then - version="$yaml_version" - fi - fi - - # Read description from skill.yaml - description="Plugin for $skill_name" - if [ -f "$skill_dir/skill.yaml" ]; then - yaml_desc=$(grep "^description:" "$skill_dir/skill.yaml" | sed 's/description: *//' | tr -d '"') - if [ ! -z "$yaml_desc" ]; then - description="$yaml_desc" - fi - fi - - # Create plugin.json - cat > "$plugin_dir/.claude-plugin/plugin.json" << EOF -{ - "name": "$plugin_name", - "description": "$description", - "version": "$version", - "author": { - "name": "qiudl" - } -} -EOF - - echo " ✓ Created $plugin_name" -done - -echo "" -echo "Conversion complete! Created $(ls -1 "$TARGET_DIR" | wc -l) plugins." diff --git a/generate-marketplace.py b/generate-marketplace.py index 6ab907b..b9c39ac 100644 --- a/generate-marketplace.py +++ b/generate-marketplace.py @@ -1,14 +1,57 @@ #!/usr/bin/env python3 import json -import os from pathlib import Path +try: + import yaml + HAS_YAML = True +except ImportError: + HAS_YAML = False + # Paths script_dir = Path(__file__).parent.resolve() -plugins_dir = script_dir / "plugins" +skills_dir = script_dir / "skills" +personal_dir = script_dir / "skills-personal" +config_file = script_dir / "claude-config.yaml" marketplace_file = script_dir / ".claude-plugin" / "marketplace.json" + +def load_config(): + """Load claude-config.yaml and return disabled list + personal_dir.""" + disabled = [] + personal = "skills-personal" + + if config_file.exists() and HAS_YAML: + with open(config_file) as f: + cfg = yaml.safe_load(f) or {} + skills_cfg = cfg.get("skills", {}) + disabled = skills_cfg.get("disabled", []) or [] + personal = skills_cfg.get("personal_dir", personal) + elif config_file.exists(): + # Fallback: parse disabled list without PyYAML + in_disabled = False + with open(config_file) as f: + for line in f: + stripped = line.strip() + if stripped.startswith("disabled:"): + rest = stripped[len("disabled:"):].strip() + if rest == "[]": + break + in_disabled = True + continue + if in_disabled: + if stripped.startswith("- "): + val = stripped[2:].strip().strip('"').strip("'") + disabled.append(val) + elif stripped and not stripped.startswith("#"): + break + if stripped.startswith("personal_dir:"): + personal = stripped.split(":", 1)[1].strip().strip('"').strip("'") + + return disabled, personal + + # Category mapping def get_category_and_keywords(plugin_name): if any(x in plugin_name for x in ['dev-', 'coding', 'frontend']): @@ -26,31 +69,61 @@ def get_category_and_keywords(plugin_name): else: return "utility", ["utility", "tools"] -# Collect plugins + +def scan_plugins(directory, source_prefix, disabled): + """Scan a directory for plugins, excluding disabled ones.""" + plugins = [] + if not directory.is_dir(): + return plugins + + for plugin_dir in sorted(directory.glob("*-plugin")): + if not plugin_dir.is_dir(): + continue + + plugin_name = plugin_dir.name + if plugin_name in disabled: + print(f" ⊘ {plugin_name} (disabled)") + continue + + manifest_path = plugin_dir / ".claude-plugin" / "plugin.json" + if not manifest_path.exists(): + continue + + with open(manifest_path) as f: + manifest = json.load(f) + + category, keywords = get_category_and_keywords(plugin_name) + + plugins.append({ + "name": plugin_name, + "source": f"{source_prefix}/{plugin_name}", + "description": manifest.get("description", f"Plugin for {plugin_name}"), + "version": manifest.get("version", "1.0.0"), + "category": category, + "keywords": keywords, + "strict": False + }) + + return plugins + + +# Load config +disabled_skills, personal_dir_name = load_config() +personal_skills_dir = script_dir / personal_dir_name + +# Collect plugins from skills/ and skills-personal/ plugins = [] -for plugin_dir in sorted(plugins_dir.glob("*-plugin")): - if not plugin_dir.is_dir(): - continue +print("Scanning skills/ ...") +plugins.extend(scan_plugins(skills_dir, "./skills", disabled_skills)) +print(f" Found {len(plugins)} public plugins") - manifest_path = plugin_dir / ".claude-plugin" / "plugin.json" - if not manifest_path.exists(): - continue - - with open(manifest_path) as f: - manifest = json.load(f) - - plugin_name = plugin_dir.name - category, keywords = get_category_and_keywords(plugin_name) - - plugins.append({ - "name": plugin_name, - "source": f"./plugins/{plugin_name}", - "description": manifest.get("description", f"Plugin for {plugin_name}"), - "version": manifest.get("version", "1.0.0"), - "category": category, - "keywords": keywords, - "strict": False - }) +personal_count = 0 +if personal_skills_dir.is_dir(): + print(f"Scanning {personal_dir_name}/ ...") + personal_plugins = scan_plugins(personal_skills_dir, f"./{personal_dir_name}", disabled_skills) + personal_count = len(personal_plugins) + plugins.extend(personal_plugins) + print(f" Found {personal_count} personal plugins") # Create marketplace marketplace = { @@ -62,13 +135,16 @@ marketplace = { "metadata": { "description": "Custom Claude Code plugins for development workflows, DevOps, and business operations", "version": "1.0.0", - "pluginRoot": "./plugins" + "pluginRoot": "./skills" }, "plugins": plugins } +# Ensure output directory exists +marketplace_file.parent.mkdir(parents=True, exist_ok=True) + # Write marketplace.json with open(marketplace_file, 'w') as f: json.dump(marketplace, f, indent=2, ensure_ascii=False) -print(f"✓ Generated marketplace.json with {len(plugins)} plugins") +print(f"\n✓ Generated marketplace.json with {len(plugins)} plugins ({personal_count} personal)") diff --git a/generate-marketplace.sh b/generate-marketplace.sh deleted file mode 100755 index 71bba0d..0000000 --- a/generate-marketplace.sh +++ /dev/null @@ -1,102 +0,0 @@ -#!/bin/bash - -# Generate marketplace.json from converted plugins - -TARGET_DIR="/Users/junhuang/coolbuy/claude-marketplace/plugins" -MARKETPLACE_FILE="/Users/junhuang/coolbuy/claude-marketplace/.claude-plugin/marketplace.json" - -echo "Generating marketplace.json..." - -# Start JSON -cat > "$MARKETPLACE_FILE" << 'EOF' -{ - "name": "coolbuy-claude-plugins", - "owner": { - "name": "Donglin Lai (qiudl)", - "email": "qiudl@zhiyuncai.com" - }, - "metadata": { - "description": "Custom Claude Code plugins for development workflows, DevOps, and business operations", - "version": "1.0.0", - "pluginRoot": "./plugins" - }, - "plugins": [ -EOF - -# Loop through each plugin and extract info -first=true -for plugin_dir in "$TARGET_DIR"/*-plugin; do - if [ ! -d "$plugin_dir" ]; then - continue - fi - - plugin_name=$(basename "$plugin_dir") - manifest="$plugin_dir/.claude-plugin/plugin.json" - - if [ ! -f "$manifest" ]; then - continue - fi - - # Extract info from plugin.json using grep and sed - description=$(grep '"description"' "$manifest" | head -1 | sed 's/.*"description": *"\([^"]*\)".*/\1/') - version=$(grep '"version"' "$manifest" | head -1 | sed 's/.*"version": *"\([^"]*\)".*/\1/') - - # Determine category based on plugin name - category="utility" - keywords="" - - case "$plugin_name" in - *dev-*|*coding*|*frontend*) - category="development" - keywords='["development", "coding", "workflow"]' - ;; - *ops-*|*deploy*|*server*) - category="devops" - keywords='["devops", "deployment", "operations"]' - ;; - *ai-proj*|*req*) - category="productivity" - keywords='["project-management", "tasks", "requirements"]' - ;; - *feishu*|*wecom*|*siyuan*) - category="integration" - keywords='["integration", "automation", "productivity"]' - ;; - *biz-*) - category="business" - keywords='["business", "planning", "contracts"]' - ;; - *session*) - category="workflow" - keywords='["session", "workflow", "productivity"]' - ;; - esac - - # Add comma if not first entry - if [ "$first" = true ]; then - first=false - else - echo "," >> "$MARKETPLACE_FILE" - fi - - # Write plugin entry - cat >> "$MARKETPLACE_FILE" << ENTRY - { - "name": "$plugin_name", - "source": "$plugin_name", - "description": "$description", - "version": "$version", - "category": "$category", - "keywords": $keywords, - "strict": false - }ENTRY -done - -# Close JSON -cat >> "$MARKETPLACE_FILE" << 'EOF' - - ] -} -EOF - -echo "✓ Generated marketplace.json with $(grep -c '"name"' "$MARKETPLACE_FILE" | awk '{print $1-1}') plugins" diff --git a/init.sh b/init.sh new file mode 100755 index 0000000..cda2eef --- /dev/null +++ b/init.sh @@ -0,0 +1,189 @@ +#!/bin/bash +# ai-proj-helper 初始化脚本 +# 配置 MCP 服务器 + 生成 marketplace.json + +set -e + +SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" +MCP_CONFIG="$HOME/.claude/.mcp.json" +MCP_BRIDGE_DIR="$HOME/coding/qiudl/new-ai-proj/mcp-task-bridge" +CONFIG_FILE="$SCRIPT_DIR/claude-config.yaml" + +# Default values +MODE="" +ENV="" +TOKEN="" + +# ── Parse command line arguments ────────────────────────────────────── +while [[ $# -gt 0 ]]; do + case $1 in + --mode) MODE="$2"; shift 2 ;; + --env) ENV="$2"; shift 2 ;; + --token) TOKEN="$2"; shift 2 ;; + -h|--help) + echo "Usage: ./init.sh [--mode stdio|sse] [--env dev|staging|prod] [--token PAT_TOKEN]" + echo "" + echo "Options:" + echo " --mode MCP connection mode: stdio (local) or sse (remote)" + echo " --env Environment: dev, staging, or prod" + echo " --token Personal Access Token for ai-proj API" + echo "" + echo "Without arguments, runs in interactive mode." + exit 0 + ;; + *) echo "Unknown option: $1"; exit 1 ;; + esac +done + +# ── Read config defaults ───────────────────────────────────────────── +read_config_value() { + local key="$1" + local default="$2" + if [ -f "$CONFIG_FILE" ]; then + local val + val=$(grep "^ ${key}:" "$CONFIG_FILE" 2>/dev/null | head -1 | sed 's/^[^:]*: *//' | sed 's/ *#.*//' | tr -d '"' | tr -d "'") + if [ -n "$val" ]; then + echo "$val" + return + fi + fi + echo "$default" +} + +CONFIG_MODE=$(read_config_value "mode" "stdio") +CONFIG_ENV=$(read_config_value "env" "prod") + +# ── Interactive mode selection ──────────────────────────────────────── +if [ -z "$MODE" ]; then + echo "┌─────────────────────────────────────┐" + echo "│ ai-proj-helper 初始化 │" + echo "└─────────────────────────────────────┘" + echo "" + echo "MCP 连接模式:" + echo " 1) stdio - 本地进程 (需要 mcp-task-bridge)" + echo " 2) sse - 远程 SSE 连接" + echo "" + read -p "选择模式 [1/2] (default: $([ "$CONFIG_MODE" = "sse" ] && echo "2" || echo "1")): " mode_choice + case "$mode_choice" in + 2|sse) MODE="sse" ;; + *) MODE="stdio" ;; + esac +fi + +# ── Interactive environment selection ───────────────────────────────── +if [ -z "$ENV" ]; then + echo "" + echo "环境:" + echo " 1) dev - http://localhost:8080" + echo " 2) staging - https://ai-staging.pipexerp.com" + echo " 3) prod - https://ai.pipexerp.com" + echo "" + default_num=3 + [ "$CONFIG_ENV" = "dev" ] && default_num=1 + [ "$CONFIG_ENV" = "staging" ] && default_num=2 + read -p "选择环境 [1/2/3] (default: $default_num): " env_choice + case "$env_choice" in + 1|dev) ENV="dev" ;; + 2|staging) ENV="staging" ;; + *) ENV="prod" ;; + esac +fi + +# ── Resolve API base URL ───────────────────────────────────────────── +case "$ENV" in + dev) API_BASE="http://localhost:8080/api/v1" ;; + staging) API_BASE="https://ai-staging.pipexerp.com/api/v1" ;; + prod) API_BASE="https://ai.pipexerp.com/api/v1" ;; +esac + +# ── Token input ─────────────────────────────────────────────────────── +if [ -z "$TOKEN" ]; then + echo "" + echo "请输入 AI-Proj Personal Access Token (PAT):" + echo " 获取方式: 登录 AI-Proj → 设置 → API Tokens → 创建" + echo "" + read -sp "Token: " TOKEN + echo "" +fi + +if [ -z "$TOKEN" ]; then + echo "❌ Token 不能为空" + exit 1 +fi + +echo "" +echo "配置信息:" +echo " 模式: $MODE" +echo " 环境: $ENV ($API_BASE)" +echo "" + +# ── stdio mode: ensure mcp-task-bridge ──────────────────────────────── +if [ "$MODE" = "stdio" ]; then + if [ ! -d "$MCP_BRIDGE_DIR" ]; then + echo "📦 mcp-task-bridge 未找到,正在克隆..." + git clone https://gitea.pipexerp.com/pipexerp/mcp-task-bridge.git "$MCP_BRIDGE_DIR" + fi + + if [ ! -f "$MCP_BRIDGE_DIR/dist/index.js" ]; then + echo "🔨 构建 mcp-task-bridge..." + cd "$MCP_BRIDGE_DIR" + npm install + npm run build + cd "$SCRIPT_DIR" + fi + + BRIDGE_ENTRY="$MCP_BRIDGE_DIR/dist/index.js" + + # Generate .mcp.json for stdio mode + mkdir -p "$(dirname "$MCP_CONFIG")" + cat > "$MCP_CONFIG" << EOF +{ + "mcpServers": { + "ai-proj": { + "command": "node", + "args": ["$BRIDGE_ENTRY"], + "env": { + "NODE_ENV": "production", + "TASK_API_BASE": "$API_BASE", + "TASK_API_TOKEN": "$TOKEN", + "MCP_SERVER_NAME": "ai-proj" + } + } + } +} +EOF + echo "✅ 已生成 $MCP_CONFIG (stdio 模式)" + +elif [ "$MODE" = "sse" ]; then + # Generate .mcp.json for SSE mode + SSE_URL="${API_BASE%/api/v1}/mcp/sse" + mkdir -p "$(dirname "$MCP_CONFIG")" + cat > "$MCP_CONFIG" << EOF +{ + "mcpServers": { + "ai-proj": { + "type": "sse", + "url": "$SSE_URL", + "headers": { + "Authorization": "Bearer $TOKEN" + } + } + } +} +EOF + echo "✅ 已生成 $MCP_CONFIG (SSE 模式)" +fi + +# ── Generate marketplace.json ───────────────────────────────────────── +echo "" +echo "🔄 生成 marketplace.json..." +cd "$SCRIPT_DIR" +python3 generate-marketplace.py + +echo "" +echo "┌─────────────────────────────────────┐" +echo "│ ✅ 初始化完成! │" +echo "└─────────────────────────────────────┘" +echo "" +echo "下次启动 Claude Code 即可使用 MCP 工具。" +echo "如需更新技能配置,编辑 claude-config.yaml 后重新运行 ./init.sh" diff --git a/plugins/qiudl-personal-plugin/.claude-plugin/plugin.json b/plugins/qiudl-personal-plugin/.claude-plugin/plugin.json deleted file mode 100644 index 3a32d0e..0000000 --- a/plugins/qiudl-personal-plugin/.claude-plugin/plugin.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "name": "qiudl-personal-plugin", - "description": "Plugin for qiudl-personal", - "version": "1.0.0", - "author": { - "name": "qiudl" - } -} diff --git a/plugins/qiudl-personal-plugin/README.md b/plugins/qiudl-personal-plugin/README.md deleted file mode 100644 index 922595e..0000000 --- a/plugins/qiudl-personal-plugin/README.md +++ /dev/null @@ -1,106 +0,0 @@ -# 邱栋梁个人配置 Skill - -## cn-dev 远程开发机 - -| 配置项 | 值 | -|--------|-----| -| 别名 | cn-dev | -| Tailscale IP | 100.92.148.46 | -| SSH 用户 | johnqiu | -| 主机名 | Yanmeis-MacBook-Pro.local | -| SSH 密钥 | ~/.ssh/id_ed25519_cn_dev | -| 设备类型 | MacBook Pro (Apple Silicon) | -| 系统 | macOS (Darwin 25.1.0) | - -### SSH 快捷连接 - -```bash -ssh cn-dev # 直接连接 -ssh cn-dev "command" # 远程执行命令 -``` - -### 项目路径 - -| 项目 | 路径 | -|------|------| -| new-ai-proj | /Users/johnqiu/workspace/new-ai-proj | -| AI-Proj-iOS | /Users/johnqiu/workspace/new-ai-proj/AI-Proj-iOS | - -### 已连接设备 - -| 设备 | 型号 | UDID | 状态 | -|------|------|------|------| -| JohnQiu's iPhone | iPhone 17 Pro | 00008150-001E64800AD2401C | 已连接 | - ---- - -## au-dev 本机 (Mac mini) - -| 配置项 | 值 | -|--------|-----| -| 主机名 | DONGLIN's Mac mini | -| Tailscale IP | 100.114.124.68 | -| 位置 | 澳大利亚 | - -### 项目路径 - -| 项目 | 路径 | -|------|------| -| new-ai-proj | /Users/donglinlai/coding/qiudl/new-ai-proj | - ---- - -## iOS 部署流程 - -### 方式 1: 通过 cn-dev 部署到 iPhone - -```bash -# 1. 同步代码 -ssh cn-dev "cd /Users/johnqiu/workspace/new-ai-proj && git pull" - -# 2. 打开 Xcode -ssh cn-dev "open /Users/johnqiu/workspace/new-ai-proj/AI-Proj-iOS/AI-Proj-iOS.xcodeproj" - -# 3. 在 Xcode 中选择 iPhone 设备,按 Cmd+R 运行 -``` - -### 方式 2: 命令行构建安装 - -```bash -# 构建并安装 (需要 iPhone 信任并解锁) -ssh cn-dev "cd /Users/johnqiu/workspace/new-ai-proj/AI-Proj-iOS && \ - xcodebuild -project AI-Proj-iOS.xcodeproj \ - -scheme 'AI-Proj-iOS' \ - -destination 'id=00008150-001E64800AD2401C' \ - -configuration Debug \ - build" -``` - -### 常见问题 - -**DDI 服务不可用 (ddiServicesAvailable: false)** - -需要在 iPhone 上: -1. 解锁 iPhone -2. 如有弹窗,点击「信任此电脑」 -3. 输入 iPhone 密码确认 - -**检查设备状态** - -```bash -ssh cn-dev "xcrun devicectl list devices" -``` - ---- - -## 凭据 - -| 服务 | 账号 | 密码 | 备注 | -|------|------|------|------| -| AI-Proj | qiudl | Admin@2026~ | 管理员账号 | -| AI-Proj | lvkai | Lvkai@123 | 测试账号 | - ---- - -**创建时间**: 2026-01-31 17:45:00 ACDT -**最后更新**: 2026-01-31 17:55:00 ACDT diff --git a/plugins/agent-swarm-plugin/.claude-plugin/plugin.json b/skills/agent-swarm-plugin/.claude-plugin/plugin.json similarity index 100% rename from plugins/agent-swarm-plugin/.claude-plugin/plugin.json rename to skills/agent-swarm-plugin/.claude-plugin/plugin.json diff --git a/plugins/agent-swarm-plugin/skills/SKILL.md b/skills/agent-swarm-plugin/skills/SKILL.md similarity index 100% rename from plugins/agent-swarm-plugin/skills/SKILL.md rename to skills/agent-swarm-plugin/skills/SKILL.md diff --git a/plugins/ai-proj-plugin/.claude-plugin/plugin.json b/skills/ai-proj-plugin/.claude-plugin/plugin.json similarity index 100% rename from plugins/ai-proj-plugin/.claude-plugin/plugin.json rename to skills/ai-proj-plugin/.claude-plugin/plugin.json diff --git a/plugins/ai-proj-plugin/README.md b/skills/ai-proj-plugin/README.md similarity index 100% rename from plugins/ai-proj-plugin/README.md rename to skills/ai-proj-plugin/README.md diff --git a/plugins/ai-proj-plugin/skills/SKILL.md b/skills/ai-proj-plugin/skills/SKILL.md similarity index 100% rename from plugins/ai-proj-plugin/skills/SKILL.md rename to skills/ai-proj-plugin/skills/SKILL.md diff --git a/plugins/biz-contract-plugin/.claude-plugin/plugin.json b/skills/biz-contract-plugin/.claude-plugin/plugin.json similarity index 100% rename from plugins/biz-contract-plugin/.claude-plugin/plugin.json rename to skills/biz-contract-plugin/.claude-plugin/plugin.json diff --git a/plugins/biz-contract-plugin/skills/SKILL.md b/skills/biz-contract-plugin/skills/SKILL.md similarity index 100% rename from plugins/biz-contract-plugin/skills/SKILL.md rename to skills/biz-contract-plugin/skills/SKILL.md diff --git a/plugins/biz-ops-plugin/.claude-plugin/plugin.json b/skills/biz-ops-plugin/.claude-plugin/plugin.json similarity index 100% rename from plugins/biz-ops-plugin/.claude-plugin/plugin.json rename to skills/biz-ops-plugin/.claude-plugin/plugin.json diff --git a/plugins/biz-ops-plugin/skills/SKILL.md b/skills/biz-ops-plugin/skills/SKILL.md similarity index 100% rename from plugins/biz-ops-plugin/skills/SKILL.md rename to skills/biz-ops-plugin/skills/SKILL.md diff --git a/plugins/biz-plan-plugin/.claude-plugin/plugin.json b/skills/biz-plan-plugin/.claude-plugin/plugin.json similarity index 100% rename from plugins/biz-plan-plugin/.claude-plugin/plugin.json rename to skills/biz-plan-plugin/.claude-plugin/plugin.json diff --git a/plugins/biz-plan-plugin/skills/SKILL.md b/skills/biz-plan-plugin/skills/SKILL.md similarity index 100% rename from plugins/biz-plan-plugin/skills/SKILL.md rename to skills/biz-plan-plugin/skills/SKILL.md diff --git a/plugins/coolbuy-legacy-plugin/.claude-plugin/plugin.json b/skills/coolbuy-legacy-plugin/.claude-plugin/plugin.json similarity index 100% rename from plugins/coolbuy-legacy-plugin/.claude-plugin/plugin.json rename to skills/coolbuy-legacy-plugin/.claude-plugin/plugin.json diff --git a/plugins/coolbuy-legacy-plugin/skills/SKILL.md b/skills/coolbuy-legacy-plugin/skills/SKILL.md similarity index 100% rename from plugins/coolbuy-legacy-plugin/skills/SKILL.md rename to skills/coolbuy-legacy-plugin/skills/SKILL.md diff --git a/plugins/coolbuy-paas-plugin/.claude-plugin/plugin.json b/skills/coolbuy-paas-plugin/.claude-plugin/plugin.json similarity index 100% rename from plugins/coolbuy-paas-plugin/.claude-plugin/plugin.json rename to skills/coolbuy-paas-plugin/.claude-plugin/plugin.json diff --git a/plugins/coolbuy-paas-plugin/skills/SKILL.md b/skills/coolbuy-paas-plugin/skills/SKILL.md similarity index 100% rename from plugins/coolbuy-paas-plugin/skills/SKILL.md rename to skills/coolbuy-paas-plugin/skills/SKILL.md diff --git a/plugins/coolbuy-platform-plugin/.claude-plugin/plugin.json b/skills/coolbuy-platform-plugin/.claude-plugin/plugin.json similarity index 100% rename from plugins/coolbuy-platform-plugin/.claude-plugin/plugin.json rename to skills/coolbuy-platform-plugin/.claude-plugin/plugin.json diff --git a/plugins/coolbuy-platform-plugin/skills/SKILL.md b/skills/coolbuy-platform-plugin/skills/SKILL.md similarity index 100% rename from plugins/coolbuy-platform-plugin/skills/SKILL.md rename to skills/coolbuy-platform-plugin/skills/SKILL.md diff --git a/plugins/data-excel-plugin/.claude-plugin/plugin.json b/skills/data-excel-plugin/.claude-plugin/plugin.json similarity index 100% rename from plugins/data-excel-plugin/.claude-plugin/plugin.json rename to skills/data-excel-plugin/.claude-plugin/plugin.json diff --git a/plugins/data-excel-plugin/skills/SKILL.md b/skills/data-excel-plugin/skills/SKILL.md similarity index 100% rename from plugins/data-excel-plugin/skills/SKILL.md rename to skills/data-excel-plugin/skills/SKILL.md diff --git a/plugins/dev-arch-plugin/.claude-plugin/plugin.json b/skills/dev-arch-plugin/.claude-plugin/plugin.json similarity index 100% rename from plugins/dev-arch-plugin/.claude-plugin/plugin.json rename to skills/dev-arch-plugin/.claude-plugin/plugin.json diff --git a/plugins/dev-arch-plugin/skills/SKILL.md b/skills/dev-arch-plugin/skills/SKILL.md similarity index 100% rename from plugins/dev-arch-plugin/skills/SKILL.md rename to skills/dev-arch-plugin/skills/SKILL.md diff --git a/plugins/dev-coding-plugin/.claude-plugin/plugin.json b/skills/dev-coding-plugin/.claude-plugin/plugin.json similarity index 100% rename from plugins/dev-coding-plugin/.claude-plugin/plugin.json rename to skills/dev-coding-plugin/.claude-plugin/plugin.json diff --git a/plugins/dev-coding-plugin/skills/SKILL.md b/skills/dev-coding-plugin/skills/SKILL.md similarity index 100% rename from plugins/dev-coding-plugin/skills/SKILL.md rename to skills/dev-coding-plugin/skills/SKILL.md diff --git a/plugins/dev-plugin/.claude-plugin/plugin.json b/skills/dev-plugin/.claude-plugin/plugin.json similarity index 100% rename from plugins/dev-plugin/.claude-plugin/plugin.json rename to skills/dev-plugin/.claude-plugin/plugin.json diff --git a/plugins/dev-plugin/skills/SKILL.md b/skills/dev-plugin/skills/SKILL.md similarity index 100% rename from plugins/dev-plugin/skills/SKILL.md rename to skills/dev-plugin/skills/SKILL.md diff --git a/plugins/dev-test-plugin/.claude-plugin/plugin.json b/skills/dev-test-plugin/.claude-plugin/plugin.json similarity index 100% rename from plugins/dev-test-plugin/.claude-plugin/plugin.json rename to skills/dev-test-plugin/.claude-plugin/plugin.json diff --git a/plugins/dev-test-plugin/skills/dev-test/SKILL.md b/skills/dev-test-plugin/skills/dev-test/SKILL.md similarity index 100% rename from plugins/dev-test-plugin/skills/dev-test/SKILL.md rename to skills/dev-test-plugin/skills/dev-test/SKILL.md diff --git a/plugins/dev-test-plugin/skills/dev-test/android-testing.md b/skills/dev-test-plugin/skills/dev-test/android-testing.md similarity index 100% rename from plugins/dev-test-plugin/skills/dev-test/android-testing.md rename to skills/dev-test-plugin/skills/dev-test/android-testing.md diff --git a/plugins/dev-test-plugin/skills/dev-test/e2e-testing.md b/skills/dev-test-plugin/skills/dev-test/e2e-testing.md similarity index 100% rename from plugins/dev-test-plugin/skills/dev-test/e2e-testing.md rename to skills/dev-test-plugin/skills/dev-test/e2e-testing.md diff --git a/plugins/dev-test-plugin/skills/dev-test/frontend-testing.md b/skills/dev-test-plugin/skills/dev-test/frontend-testing.md similarity index 100% rename from plugins/dev-test-plugin/skills/dev-test/frontend-testing.md rename to skills/dev-test-plugin/skills/dev-test/frontend-testing.md diff --git a/plugins/dev-test-plugin/skills/dev-test/go-testing.md b/skills/dev-test-plugin/skills/dev-test/go-testing.md similarity index 100% rename from plugins/dev-test-plugin/skills/dev-test/go-testing.md rename to skills/dev-test-plugin/skills/dev-test/go-testing.md diff --git a/plugins/dev-test-plugin/skills/dev-test/ios-testing.md b/skills/dev-test-plugin/skills/dev-test/ios-testing.md similarity index 100% rename from plugins/dev-test-plugin/skills/dev-test/ios-testing.md rename to skills/dev-test-plugin/skills/dev-test/ios-testing.md diff --git a/plugins/dotfiles-plugin/.claude-plugin/plugin.json b/skills/dotfiles-plugin/.claude-plugin/plugin.json similarity index 100% rename from plugins/dotfiles-plugin/.claude-plugin/plugin.json rename to skills/dotfiles-plugin/.claude-plugin/plugin.json diff --git a/plugins/dotfiles-plugin/skills/SKILL.md b/skills/dotfiles-plugin/skills/SKILL.md similarity index 100% rename from plugins/dotfiles-plugin/skills/SKILL.md rename to skills/dotfiles-plugin/skills/SKILL.md diff --git a/plugins/doubao-voice-plugin/.claude-plugin/plugin.json b/skills/doubao-voice-plugin/.claude-plugin/plugin.json similarity index 100% rename from plugins/doubao-voice-plugin/.claude-plugin/plugin.json rename to skills/doubao-voice-plugin/.claude-plugin/plugin.json diff --git a/plugins/doubao-voice-plugin/.gitignore b/skills/doubao-voice-plugin/.gitignore similarity index 100% rename from plugins/doubao-voice-plugin/.gitignore rename to skills/doubao-voice-plugin/.gitignore diff --git a/plugins/doubao-voice-plugin/DEPLOY.md b/skills/doubao-voice-plugin/DEPLOY.md similarity index 100% rename from plugins/doubao-voice-plugin/DEPLOY.md rename to skills/doubao-voice-plugin/DEPLOY.md diff --git a/plugins/doubao-voice-plugin/GIT_GUIDE.md b/skills/doubao-voice-plugin/GIT_GUIDE.md similarity index 100% rename from plugins/doubao-voice-plugin/GIT_GUIDE.md rename to skills/doubao-voice-plugin/GIT_GUIDE.md diff --git a/plugins/doubao-voice-plugin/README.md b/skills/doubao-voice-plugin/README.md similarity index 100% rename from plugins/doubao-voice-plugin/README.md rename to skills/doubao-voice-plugin/README.md diff --git a/plugins/doubao-voice-plugin/STATUS.md b/skills/doubao-voice-plugin/STATUS.md similarity index 100% rename from plugins/doubao-voice-plugin/STATUS.md rename to skills/doubao-voice-plugin/STATUS.md diff --git a/plugins/doubao-voice-plugin/scripts/README.md b/skills/doubao-voice-plugin/scripts/README.md similarity index 100% rename from plugins/doubao-voice-plugin/scripts/README.md rename to skills/doubao-voice-plugin/scripts/README.md diff --git a/plugins/doubao-voice-plugin/scripts/setup_env.local.sh.example b/skills/doubao-voice-plugin/scripts/setup_env.local.sh.example similarity index 100% rename from plugins/doubao-voice-plugin/scripts/setup_env.local.sh.example rename to skills/doubao-voice-plugin/scripts/setup_env.local.sh.example diff --git a/plugins/doubao-voice-plugin/scripts/setup_env.sh b/skills/doubao-voice-plugin/scripts/setup_env.sh similarity index 100% rename from plugins/doubao-voice-plugin/scripts/setup_env.sh rename to skills/doubao-voice-plugin/scripts/setup_env.sh diff --git a/plugins/doubao-voice-plugin/scripts/singing.py b/skills/doubao-voice-plugin/scripts/singing.py similarity index 100% rename from plugins/doubao-voice-plugin/scripts/singing.py rename to skills/doubao-voice-plugin/scripts/singing.py diff --git a/plugins/doubao-voice-plugin/scripts/voice_converter.py b/skills/doubao-voice-plugin/scripts/voice_converter.py similarity index 100% rename from plugins/doubao-voice-plugin/scripts/voice_converter.py rename to skills/doubao-voice-plugin/scripts/voice_converter.py diff --git a/plugins/doubao-voice-plugin/skills/SKILL.md b/skills/doubao-voice-plugin/skills/SKILL.md similarity index 100% rename from plugins/doubao-voice-plugin/skills/SKILL.md rename to skills/doubao-voice-plugin/skills/SKILL.md diff --git a/plugins/enjoysa-deploy-plugin/.claude-plugin/plugin.json b/skills/enjoysa-deploy-plugin/.claude-plugin/plugin.json similarity index 100% rename from plugins/enjoysa-deploy-plugin/.claude-plugin/plugin.json rename to skills/enjoysa-deploy-plugin/.claude-plugin/plugin.json diff --git a/plugins/enjoysa-deploy-plugin/skills/SKILL.md b/skills/enjoysa-deploy-plugin/skills/SKILL.md similarity index 100% rename from plugins/enjoysa-deploy-plugin/skills/SKILL.md rename to skills/enjoysa-deploy-plugin/skills/SKILL.md diff --git a/plugins/enjoysa-plugin/.claude-plugin/plugin.json b/skills/enjoysa-plugin/.claude-plugin/plugin.json similarity index 100% rename from plugins/enjoysa-plugin/.claude-plugin/plugin.json rename to skills/enjoysa-plugin/.claude-plugin/plugin.json diff --git a/plugins/enjoysa-plugin/skills/SKILL.md b/skills/enjoysa-plugin/skills/SKILL.md similarity index 100% rename from plugins/enjoysa-plugin/skills/SKILL.md rename to skills/enjoysa-plugin/skills/SKILL.md diff --git a/plugins/executing-plans-plugin/.claude-plugin/plugin.json b/skills/executing-plans-plugin/.claude-plugin/plugin.json similarity index 100% rename from plugins/executing-plans-plugin/.claude-plugin/plugin.json rename to skills/executing-plans-plugin/.claude-plugin/plugin.json diff --git a/plugins/executing-plans-plugin/skills/SKILL.md b/skills/executing-plans-plugin/skills/SKILL.md similarity index 100% rename from plugins/executing-plans-plugin/skills/SKILL.md rename to skills/executing-plans-plugin/skills/SKILL.md diff --git a/plugins/feishu-bitable-plugin/.claude-plugin/plugin.json b/skills/feishu-bitable-plugin/.claude-plugin/plugin.json similarity index 100% rename from plugins/feishu-bitable-plugin/.claude-plugin/plugin.json rename to skills/feishu-bitable-plugin/.claude-plugin/plugin.json diff --git a/plugins/feishu-bitable-plugin/skills/SKILL.md b/skills/feishu-bitable-plugin/skills/SKILL.md similarity index 100% rename from plugins/feishu-bitable-plugin/skills/SKILL.md rename to skills/feishu-bitable-plugin/skills/SKILL.md diff --git a/plugins/feishu-docx-plugin/.claude-plugin/plugin.json b/skills/feishu-docx-plugin/.claude-plugin/plugin.json similarity index 100% rename from plugins/feishu-docx-plugin/.claude-plugin/plugin.json rename to skills/feishu-docx-plugin/.claude-plugin/plugin.json diff --git a/plugins/feishu-docx-plugin/skills/SKILL.md b/skills/feishu-docx-plugin/skills/SKILL.md similarity index 100% rename from plugins/feishu-docx-plugin/skills/SKILL.md rename to skills/feishu-docx-plugin/skills/SKILL.md diff --git a/plugins/feishu-plugin/.claude-plugin/plugin.json b/skills/feishu-plugin/.claude-plugin/plugin.json similarity index 100% rename from plugins/feishu-plugin/.claude-plugin/plugin.json rename to skills/feishu-plugin/.claude-plugin/plugin.json diff --git a/plugins/feishu-plugin/add_images.py b/skills/feishu-plugin/add_images.py similarity index 100% rename from plugins/feishu-plugin/add_images.py rename to skills/feishu-plugin/add_images.py diff --git a/plugins/feishu-plugin/aiproj_sync.py b/skills/feishu-plugin/aiproj_sync.py similarity index 100% rename from plugins/feishu-plugin/aiproj_sync.py rename to skills/feishu-plugin/aiproj_sync.py diff --git a/plugins/feishu-plugin/check_docx_image.py b/skills/feishu-plugin/check_docx_image.py similarity index 100% rename from plugins/feishu-plugin/check_docx_image.py rename to skills/feishu-plugin/check_docx_image.py diff --git a/plugins/feishu-plugin/check_manual_images.py b/skills/feishu-plugin/check_manual_images.py similarity index 100% rename from plugins/feishu-plugin/check_manual_images.py rename to skills/feishu-plugin/check_manual_images.py diff --git a/plugins/feishu-plugin/create_visibility_manual.py b/skills/feishu-plugin/create_visibility_manual.py similarity index 100% rename from plugins/feishu-plugin/create_visibility_manual.py rename to skills/feishu-plugin/create_visibility_manual.py diff --git a/plugins/feishu-plugin/debug_image.py b/skills/feishu-plugin/debug_image.py similarity index 100% rename from plugins/feishu-plugin/debug_image.py rename to skills/feishu-plugin/debug_image.py diff --git a/plugins/feishu-plugin/demo.py b/skills/feishu-plugin/demo.py similarity index 100% rename from plugins/feishu-plugin/demo.py rename to skills/feishu-plugin/demo.py diff --git a/plugins/feishu-plugin/feishu_docx.py b/skills/feishu-plugin/feishu_docx.py similarity index 100% rename from plugins/feishu-plugin/feishu_docx.py rename to skills/feishu-plugin/feishu_docx.py diff --git a/plugins/feishu-plugin/migrate_wps.py b/skills/feishu-plugin/migrate_wps.py similarity index 100% rename from plugins/feishu-plugin/migrate_wps.py rename to skills/feishu-plugin/migrate_wps.py diff --git a/plugins/feishu-plugin/rebuild_visibility_manual.py b/skills/feishu-plugin/rebuild_visibility_manual.py similarity index 100% rename from plugins/feishu-plugin/rebuild_visibility_manual.py rename to skills/feishu-plugin/rebuild_visibility_manual.py diff --git a/plugins/feishu-plugin/scripts/aiproj_sync.py b/skills/feishu-plugin/scripts/aiproj_sync.py similarity index 100% rename from plugins/feishu-plugin/scripts/aiproj_sync.py rename to skills/feishu-plugin/scripts/aiproj_sync.py diff --git a/plugins/feishu-plugin/skills/SKILL.md b/skills/feishu-plugin/skills/SKILL.md similarity index 100% rename from plugins/feishu-plugin/skills/SKILL.md rename to skills/feishu-plugin/skills/SKILL.md diff --git a/plugins/feishu-plugin/test_docx_image.py b/skills/feishu-plugin/test_docx_image.py similarity index 100% rename from plugins/feishu-plugin/test_docx_image.py rename to skills/feishu-plugin/test_docx_image.py diff --git a/plugins/feishu-plugin/update_visibility_manual.py b/skills/feishu-plugin/update_visibility_manual.py similarity index 100% rename from plugins/feishu-plugin/update_visibility_manual.py rename to skills/feishu-plugin/update_visibility_manual.py diff --git a/plugins/feishu-plugin/upload_user_image.py b/skills/feishu-plugin/upload_user_image.py similarity index 100% rename from plugins/feishu-plugin/upload_user_image.py rename to skills/feishu-plugin/upload_user_image.py diff --git a/plugins/feishu-plugin/users.json b/skills/feishu-plugin/users.json similarity index 100% rename from plugins/feishu-plugin/users.json rename to skills/feishu-plugin/users.json diff --git a/plugins/finance-plugin/.claude-plugin/plugin.json b/skills/finance-plugin/.claude-plugin/plugin.json similarity index 100% rename from plugins/finance-plugin/.claude-plugin/plugin.json rename to skills/finance-plugin/.claude-plugin/plugin.json diff --git a/plugins/finance-plugin/skills/SKILL.md b/skills/finance-plugin/skills/SKILL.md similarity index 100% rename from plugins/finance-plugin/skills/SKILL.md rename to skills/finance-plugin/skills/SKILL.md diff --git a/plugins/finishing-a-development-branch-plugin/.claude-plugin/plugin.json b/skills/finishing-a-development-branch-plugin/.claude-plugin/plugin.json similarity index 100% rename from plugins/finishing-a-development-branch-plugin/.claude-plugin/plugin.json rename to skills/finishing-a-development-branch-plugin/.claude-plugin/plugin.json diff --git a/plugins/finishing-a-development-branch-plugin/skills/SKILL.md b/skills/finishing-a-development-branch-plugin/skills/SKILL.md similarity index 100% rename from plugins/finishing-a-development-branch-plugin/skills/SKILL.md rename to skills/finishing-a-development-branch-plugin/skills/SKILL.md diff --git a/plugins/frontend-design-plugin/.claude-plugin/plugin.json b/skills/frontend-design-plugin/.claude-plugin/plugin.json similarity index 100% rename from plugins/frontend-design-plugin/.claude-plugin/plugin.json rename to skills/frontend-design-plugin/.claude-plugin/plugin.json diff --git a/plugins/frontend-design-plugin/skills/SKILL.md b/skills/frontend-design-plugin/skills/SKILL.md similarity index 100% rename from plugins/frontend-design-plugin/skills/SKILL.md rename to skills/frontend-design-plugin/skills/SKILL.md diff --git a/plugins/gitea-plugin/.claude-plugin/plugin.json b/skills/gitea-plugin/.claude-plugin/plugin.json similarity index 100% rename from plugins/gitea-plugin/.claude-plugin/plugin.json rename to skills/gitea-plugin/.claude-plugin/plugin.json diff --git a/plugins/gitea-plugin/scripts/gitea-runs b/skills/gitea-plugin/scripts/gitea-runs similarity index 100% rename from plugins/gitea-plugin/scripts/gitea-runs rename to skills/gitea-plugin/scripts/gitea-runs diff --git a/plugins/gitea-plugin/skills/SKILL.md b/skills/gitea-plugin/skills/SKILL.md similarity index 100% rename from plugins/gitea-plugin/skills/SKILL.md rename to skills/gitea-plugin/skills/SKILL.md diff --git a/plugins/openclaw-ops-plugin/.claude-plugin/plugin.json b/skills/openclaw-ops-plugin/.claude-plugin/plugin.json similarity index 100% rename from plugins/openclaw-ops-plugin/.claude-plugin/plugin.json rename to skills/openclaw-ops-plugin/.claude-plugin/plugin.json diff --git a/plugins/openclaw-ops-plugin/skills/SKILL.md b/skills/openclaw-ops-plugin/skills/SKILL.md similarity index 100% rename from plugins/openclaw-ops-plugin/skills/SKILL.md rename to skills/openclaw-ops-plugin/skills/SKILL.md diff --git a/plugins/openclaw-plugin/.claude-plugin/plugin.json b/skills/openclaw-plugin/.claude-plugin/plugin.json similarity index 100% rename from plugins/openclaw-plugin/.claude-plugin/plugin.json rename to skills/openclaw-plugin/.claude-plugin/plugin.json diff --git a/plugins/openclaw-plugin/skills/SKILL.md b/skills/openclaw-plugin/skills/SKILL.md similarity index 100% rename from plugins/openclaw-plugin/skills/SKILL.md rename to skills/openclaw-plugin/skills/SKILL.md diff --git a/plugins/ops-servers-plugin/.claude-plugin/plugin.json b/skills/ops-servers-plugin/.claude-plugin/plugin.json similarity index 100% rename from plugins/ops-servers-plugin/.claude-plugin/plugin.json rename to skills/ops-servers-plugin/.claude-plugin/plugin.json diff --git a/plugins/ops-servers-plugin/skills/SKILL.md b/skills/ops-servers-plugin/skills/SKILL.md similarity index 100% rename from plugins/ops-servers-plugin/skills/SKILL.md rename to skills/ops-servers-plugin/skills/SKILL.md diff --git a/plugins/ops-tools-plugin/.claude-plugin/plugin.json b/skills/ops-tools-plugin/.claude-plugin/plugin.json similarity index 100% rename from plugins/ops-tools-plugin/.claude-plugin/plugin.json rename to skills/ops-tools-plugin/.claude-plugin/plugin.json diff --git a/plugins/ops-tools-plugin/ai-proj-deploy.md b/skills/ops-tools-plugin/ai-proj-deploy.md similarity index 100% rename from plugins/ops-tools-plugin/ai-proj-deploy.md rename to skills/ops-tools-plugin/ai-proj-deploy.md diff --git a/plugins/ops-tools-plugin/coolbuy-deploy.md b/skills/ops-tools-plugin/coolbuy-deploy.md similarity index 100% rename from plugins/ops-tools-plugin/coolbuy-deploy.md rename to skills/ops-tools-plugin/coolbuy-deploy.md diff --git a/plugins/ops-tools-plugin/db-backup.md b/skills/ops-tools-plugin/db-backup.md similarity index 100% rename from plugins/ops-tools-plugin/db-backup.md rename to skills/ops-tools-plugin/db-backup.md diff --git a/plugins/ops-tools-plugin/deploy-check.sh b/skills/ops-tools-plugin/deploy-check.sh similarity index 100% rename from plugins/ops-tools-plugin/deploy-check.sh rename to skills/ops-tools-plugin/deploy-check.sh diff --git a/plugins/ops-tools-plugin/gitea-pr.sh b/skills/ops-tools-plugin/gitea-pr.sh similarity index 100% rename from plugins/ops-tools-plugin/gitea-pr.sh rename to skills/ops-tools-plugin/gitea-pr.sh diff --git a/plugins/ops-tools-plugin/health-check.sh b/skills/ops-tools-plugin/health-check.sh similarity index 100% rename from plugins/ops-tools-plugin/health-check.sh rename to skills/ops-tools-plugin/health-check.sh diff --git a/plugins/ops-tools-plugin/incidents.md b/skills/ops-tools-plugin/incidents.md similarity index 100% rename from plugins/ops-tools-plugin/incidents.md rename to skills/ops-tools-plugin/incidents.md diff --git a/plugins/ops-tools-plugin/jenkins-build.sh b/skills/ops-tools-plugin/jenkins-build.sh similarity index 100% rename from plugins/ops-tools-plugin/jenkins-build.sh rename to skills/ops-tools-plugin/jenkins-build.sh diff --git a/plugins/ops-tools-plugin/mcp-config.md b/skills/ops-tools-plugin/mcp-config.md similarity index 100% rename from plugins/ops-tools-plugin/mcp-config.md rename to skills/ops-tools-plugin/mcp-config.md diff --git a/plugins/ops-tools-plugin/scripts/deploy-check.sh b/skills/ops-tools-plugin/scripts/deploy-check.sh similarity index 100% rename from plugins/ops-tools-plugin/scripts/deploy-check.sh rename to skills/ops-tools-plugin/scripts/deploy-check.sh diff --git a/plugins/ops-tools-plugin/scripts/gitea-pr.sh b/skills/ops-tools-plugin/scripts/gitea-pr.sh similarity index 100% rename from plugins/ops-tools-plugin/scripts/gitea-pr.sh rename to skills/ops-tools-plugin/scripts/gitea-pr.sh diff --git a/plugins/ops-tools-plugin/scripts/health-check.sh b/skills/ops-tools-plugin/scripts/health-check.sh similarity index 100% rename from plugins/ops-tools-plugin/scripts/health-check.sh rename to skills/ops-tools-plugin/scripts/health-check.sh diff --git a/plugins/ops-tools-plugin/scripts/jenkins-build.sh b/skills/ops-tools-plugin/scripts/jenkins-build.sh similarity index 100% rename from plugins/ops-tools-plugin/scripts/jenkins-build.sh rename to skills/ops-tools-plugin/scripts/jenkins-build.sh diff --git a/plugins/ops-tools-plugin/scripts/service-restart.sh b/skills/ops-tools-plugin/scripts/service-restart.sh similarity index 100% rename from plugins/ops-tools-plugin/scripts/service-restart.sh rename to skills/ops-tools-plugin/scripts/service-restart.sh diff --git a/plugins/ops-tools-plugin/service-restart.sh b/skills/ops-tools-plugin/service-restart.sh similarity index 100% rename from plugins/ops-tools-plugin/service-restart.sh rename to skills/ops-tools-plugin/service-restart.sh diff --git a/plugins/ops-tools-plugin/skills/SKILL.md b/skills/ops-tools-plugin/skills/SKILL.md similarity index 100% rename from plugins/ops-tools-plugin/skills/SKILL.md rename to skills/ops-tools-plugin/skills/SKILL.md diff --git a/plugins/pull-request-plugin/.claude-plugin/plugin.json b/skills/pull-request-plugin/.claude-plugin/plugin.json similarity index 100% rename from plugins/pull-request-plugin/.claude-plugin/plugin.json rename to skills/pull-request-plugin/.claude-plugin/plugin.json diff --git a/plugins/pull-request-plugin/skills/SKILL.md b/skills/pull-request-plugin/skills/SKILL.md similarity index 100% rename from plugins/pull-request-plugin/skills/SKILL.md rename to skills/pull-request-plugin/skills/SKILL.md diff --git a/plugins/read-session-plugin/.claude-plugin/plugin.json b/skills/read-session-plugin/.claude-plugin/plugin.json similarity index 100% rename from plugins/read-session-plugin/.claude-plugin/plugin.json rename to skills/read-session-plugin/.claude-plugin/plugin.json diff --git a/plugins/read-session-plugin/skills/SKILL.md b/skills/read-session-plugin/skills/SKILL.md similarity index 100% rename from plugins/read-session-plugin/skills/SKILL.md rename to skills/read-session-plugin/skills/SKILL.md diff --git a/plugins/reload-session-plugin/.claude-plugin/plugin.json b/skills/reload-session-plugin/.claude-plugin/plugin.json similarity index 100% rename from plugins/reload-session-plugin/.claude-plugin/plugin.json rename to skills/reload-session-plugin/.claude-plugin/plugin.json diff --git a/plugins/reload-session-plugin/skills/SKILL.md b/skills/reload-session-plugin/skills/SKILL.md similarity index 100% rename from plugins/reload-session-plugin/skills/SKILL.md rename to skills/reload-session-plugin/skills/SKILL.md diff --git a/plugins/req-commands-plugin/.claude-plugin/plugin.json b/skills/req-commands-plugin/.claude-plugin/plugin.json similarity index 100% rename from plugins/req-commands-plugin/.claude-plugin/plugin.json rename to skills/req-commands-plugin/.claude-plugin/plugin.json diff --git a/plugins/req-commands-plugin/skills/SKILL.md b/skills/req-commands-plugin/skills/SKILL.md similarity index 100% rename from plugins/req-commands-plugin/skills/SKILL.md rename to skills/req-commands-plugin/skills/SKILL.md diff --git a/plugins/req-deploy-plugin/.claude-plugin/plugin.json b/skills/req-deploy-plugin/.claude-plugin/plugin.json similarity index 100% rename from plugins/req-deploy-plugin/.claude-plugin/plugin.json rename to skills/req-deploy-plugin/.claude-plugin/plugin.json diff --git a/plugins/req-deploy-plugin/skill.json b/skills/req-deploy-plugin/skill.json similarity index 100% rename from plugins/req-deploy-plugin/skill.json rename to skills/req-deploy-plugin/skill.json diff --git a/plugins/req-deploy-plugin/skills/SKILL.md b/skills/req-deploy-plugin/skills/SKILL.md similarity index 100% rename from plugins/req-deploy-plugin/skills/SKILL.md rename to skills/req-deploy-plugin/skills/SKILL.md diff --git a/plugins/req-dev-plugin/.claude-plugin/plugin.json b/skills/req-dev-plugin/.claude-plugin/plugin.json similarity index 100% rename from plugins/req-dev-plugin/.claude-plugin/plugin.json rename to skills/req-dev-plugin/.claude-plugin/plugin.json diff --git a/plugins/req-dev-plugin/README.md b/skills/req-dev-plugin/README.md similarity index 100% rename from plugins/req-dev-plugin/README.md rename to skills/req-dev-plugin/README.md diff --git a/plugins/req-dev-plugin/skills/SKILL.md b/skills/req-dev-plugin/skills/SKILL.md similarity index 100% rename from plugins/req-dev-plugin/skills/SKILL.md rename to skills/req-dev-plugin/skills/SKILL.md diff --git a/plugins/req-plugin/.claude-plugin/plugin.json b/skills/req-plugin/.claude-plugin/plugin.json similarity index 100% rename from plugins/req-plugin/.claude-plugin/plugin.json rename to skills/req-plugin/.claude-plugin/plugin.json diff --git a/plugins/req-plugin/README.md b/skills/req-plugin/README.md similarity index 100% rename from plugins/req-plugin/README.md rename to skills/req-plugin/README.md diff --git a/plugins/req-plugin/code-review-guide.md b/skills/req-plugin/code-review-guide.md similarity index 100% rename from plugins/req-plugin/code-review-guide.md rename to skills/req-plugin/code-review-guide.md diff --git a/plugins/req-plugin/deploy-guide.md b/skills/req-plugin/deploy-guide.md similarity index 100% rename from plugins/req-plugin/deploy-guide.md rename to skills/req-plugin/deploy-guide.md diff --git a/plugins/req-plugin/docs/code-review-guide.md b/skills/req-plugin/docs/code-review-guide.md similarity index 100% rename from plugins/req-plugin/docs/code-review-guide.md rename to skills/req-plugin/docs/code-review-guide.md diff --git a/plugins/req-plugin/docs/deploy-guide.md b/skills/req-plugin/docs/deploy-guide.md similarity index 100% rename from plugins/req-plugin/docs/deploy-guide.md rename to skills/req-plugin/docs/deploy-guide.md diff --git a/plugins/req-plugin/docs/hook-sync.md b/skills/req-plugin/docs/hook-sync.md similarity index 100% rename from plugins/req-plugin/docs/hook-sync.md rename to skills/req-plugin/docs/hook-sync.md diff --git a/plugins/req-plugin/docs/mcp-auth-config.md b/skills/req-plugin/docs/mcp-auth-config.md similarity index 100% rename from plugins/req-plugin/docs/mcp-auth-config.md rename to skills/req-plugin/docs/mcp-auth-config.md diff --git a/plugins/req-plugin/docs/notification-config.md b/skills/req-plugin/docs/notification-config.md similarity index 100% rename from plugins/req-plugin/docs/notification-config.md rename to skills/req-plugin/docs/notification-config.md diff --git a/plugins/req-plugin/docs/prd-review-guide.md b/skills/req-plugin/docs/prd-review-guide.md similarity index 100% rename from plugins/req-plugin/docs/prd-review-guide.md rename to skills/req-plugin/docs/prd-review-guide.md diff --git a/plugins/req-plugin/docs/siyuan-integration.md b/skills/req-plugin/docs/siyuan-integration.md similarity index 100% rename from plugins/req-plugin/docs/siyuan-integration.md rename to skills/req-plugin/docs/siyuan-integration.md diff --git a/plugins/req-plugin/docs/test-guide.md b/skills/req-plugin/docs/test-guide.md similarity index 100% rename from plugins/req-plugin/docs/test-guide.md rename to skills/req-plugin/docs/test-guide.md diff --git a/plugins/req-plugin/docs/workflow-example.md b/skills/req-plugin/docs/workflow-example.md similarity index 100% rename from plugins/req-plugin/docs/workflow-example.md rename to skills/req-plugin/docs/workflow-example.md diff --git a/plugins/req-plugin/hook-sync.md b/skills/req-plugin/hook-sync.md similarity index 100% rename from plugins/req-plugin/hook-sync.md rename to skills/req-plugin/hook-sync.md diff --git a/plugins/req-plugin/mcp-auth-config.md b/skills/req-plugin/mcp-auth-config.md similarity index 100% rename from plugins/req-plugin/mcp-auth-config.md rename to skills/req-plugin/mcp-auth-config.md diff --git a/plugins/req-plugin/notification-config.md b/skills/req-plugin/notification-config.md similarity index 100% rename from plugins/req-plugin/notification-config.md rename to skills/req-plugin/notification-config.md diff --git a/plugins/req-plugin/notify.sh b/skills/req-plugin/notify.sh similarity index 100% rename from plugins/req-plugin/notify.sh rename to skills/req-plugin/notify.sh diff --git a/plugins/req-plugin/prd-review-guide.md b/skills/req-plugin/prd-review-guide.md similarity index 100% rename from plugins/req-plugin/prd-review-guide.md rename to skills/req-plugin/prd-review-guide.md diff --git a/plugins/req-plugin/siyuan-integration.md b/skills/req-plugin/siyuan-integration.md similarity index 100% rename from plugins/req-plugin/siyuan-integration.md rename to skills/req-plugin/siyuan-integration.md diff --git a/plugins/req-plugin/skills/SKILL.md b/skills/req-plugin/skills/SKILL.md similarity index 100% rename from plugins/req-plugin/skills/SKILL.md rename to skills/req-plugin/skills/SKILL.md diff --git a/plugins/req-plugin/test-guide.md b/skills/req-plugin/test-guide.md similarity index 100% rename from plugins/req-plugin/test-guide.md rename to skills/req-plugin/test-guide.md diff --git a/plugins/req-plugin/update-siyuan-release.sh b/skills/req-plugin/update-siyuan-release.sh similarity index 100% rename from plugins/req-plugin/update-siyuan-release.sh rename to skills/req-plugin/update-siyuan-release.sh diff --git a/plugins/req-plugin/workflow-example.md b/skills/req-plugin/workflow-example.md similarity index 100% rename from plugins/req-plugin/workflow-example.md rename to skills/req-plugin/workflow-example.md diff --git a/plugins/req-prd-plugin/.claude-plugin/plugin.json b/skills/req-prd-plugin/.claude-plugin/plugin.json similarity index 100% rename from plugins/req-prd-plugin/.claude-plugin/plugin.json rename to skills/req-prd-plugin/.claude-plugin/plugin.json diff --git a/plugins/req-prd-plugin/skills/SKILL.md b/skills/req-prd-plugin/skills/SKILL.md similarity index 100% rename from plugins/req-prd-plugin/skills/SKILL.md rename to skills/req-prd-plugin/skills/SKILL.md diff --git a/plugins/req-review-plugin/.claude-plugin/plugin.json b/skills/req-review-plugin/.claude-plugin/plugin.json similarity index 100% rename from plugins/req-review-plugin/.claude-plugin/plugin.json rename to skills/req-review-plugin/.claude-plugin/plugin.json diff --git a/plugins/req-review-plugin/skills/SKILL.md b/skills/req-review-plugin/skills/SKILL.md similarity index 100% rename from plugins/req-review-plugin/skills/SKILL.md rename to skills/req-review-plugin/skills/SKILL.md diff --git a/plugins/req-test-gate-plugin/.claude-plugin/plugin.json b/skills/req-test-gate-plugin/.claude-plugin/plugin.json similarity index 100% rename from plugins/req-test-gate-plugin/.claude-plugin/plugin.json rename to skills/req-test-gate-plugin/.claude-plugin/plugin.json diff --git a/plugins/req-test-gate-plugin/skills/SKILL.md b/skills/req-test-gate-plugin/skills/SKILL.md similarity index 100% rename from plugins/req-test-gate-plugin/skills/SKILL.md rename to skills/req-test-gate-plugin/skills/SKILL.md diff --git a/plugins/req-workflow-plugin/.claude-plugin/plugin.json b/skills/req-workflow-plugin/.claude-plugin/plugin.json similarity index 100% rename from plugins/req-workflow-plugin/.claude-plugin/plugin.json rename to skills/req-workflow-plugin/.claude-plugin/plugin.json diff --git a/plugins/req-workflow-plugin/skills/SKILL.md b/skills/req-workflow-plugin/skills/SKILL.md similarity index 100% rename from plugins/req-workflow-plugin/skills/SKILL.md rename to skills/req-workflow-plugin/skills/SKILL.md diff --git a/plugins/requirement-plugin/.claude-plugin/plugin.json b/skills/requirement-plugin/.claude-plugin/plugin.json similarity index 100% rename from plugins/requirement-plugin/.claude-plugin/plugin.json rename to skills/requirement-plugin/.claude-plugin/plugin.json diff --git a/plugins/requirement-plugin/skills/SKILL.md b/skills/requirement-plugin/skills/SKILL.md similarity index 100% rename from plugins/requirement-plugin/skills/SKILL.md rename to skills/requirement-plugin/skills/SKILL.md diff --git a/plugins/save-session-plugin/.claude-plugin/plugin.json b/skills/save-session-plugin/.claude-plugin/plugin.json similarity index 100% rename from plugins/save-session-plugin/.claude-plugin/plugin.json rename to skills/save-session-plugin/.claude-plugin/plugin.json diff --git a/plugins/save-session-plugin/skills/SKILL.md b/skills/save-session-plugin/skills/SKILL.md similarity index 100% rename from plugins/save-session-plugin/skills/SKILL.md rename to skills/save-session-plugin/skills/SKILL.md diff --git a/plugins/search-sessions-plugin/.claude-plugin/plugin.json b/skills/search-sessions-plugin/.claude-plugin/plugin.json similarity index 100% rename from plugins/search-sessions-plugin/.claude-plugin/plugin.json rename to skills/search-sessions-plugin/.claude-plugin/plugin.json diff --git a/plugins/search-sessions-plugin/skills/SKILL.md b/skills/search-sessions-plugin/skills/SKILL.md similarity index 100% rename from plugins/search-sessions-plugin/skills/SKILL.md rename to skills/search-sessions-plugin/skills/SKILL.md diff --git a/plugins/session-plugin/.claude-plugin/plugin.json b/skills/session-plugin/.claude-plugin/plugin.json similarity index 100% rename from plugins/session-plugin/.claude-plugin/plugin.json rename to skills/session-plugin/.claude-plugin/plugin.json diff --git a/plugins/session-plugin/skills/SKILL.md b/skills/session-plugin/skills/SKILL.md similarity index 100% rename from plugins/session-plugin/skills/SKILL.md rename to skills/session-plugin/skills/SKILL.md diff --git a/plugins/siyuan-plugin/.claude-plugin/plugin.json b/skills/siyuan-plugin/.claude-plugin/plugin.json similarity index 100% rename from plugins/siyuan-plugin/.claude-plugin/plugin.json rename to skills/siyuan-plugin/.claude-plugin/plugin.json diff --git a/plugins/siyuan-plugin/skills/SKILL.md b/skills/siyuan-plugin/skills/SKILL.md similarity index 100% rename from plugins/siyuan-plugin/skills/SKILL.md rename to skills/siyuan-plugin/skills/SKILL.md diff --git a/plugins/siyuan-to-feishu-plugin/.claude-plugin/plugin.json b/skills/siyuan-to-feishu-plugin/.claude-plugin/plugin.json similarity index 100% rename from plugins/siyuan-to-feishu-plugin/.claude-plugin/plugin.json rename to skills/siyuan-to-feishu-plugin/.claude-plugin/plugin.json diff --git a/plugins/siyuan-to-feishu-plugin/skills/SKILL.md b/skills/siyuan-to-feishu-plugin/skills/SKILL.md similarity index 100% rename from plugins/siyuan-to-feishu-plugin/skills/SKILL.md rename to skills/siyuan-to-feishu-plugin/skills/SKILL.md diff --git a/plugins/skill-manager-plugin/.claude-plugin/plugin.json b/skills/skill-manager-plugin/.claude-plugin/plugin.json similarity index 100% rename from plugins/skill-manager-plugin/.claude-plugin/plugin.json rename to skills/skill-manager-plugin/.claude-plugin/plugin.json diff --git a/plugins/skill-manager-plugin/git-ops.sh b/skills/skill-manager-plugin/git-ops.sh similarity index 100% rename from plugins/skill-manager-plugin/git-ops.sh rename to skills/skill-manager-plugin/git-ops.sh diff --git a/plugins/skill-manager-plugin/init-registry.sh b/skills/skill-manager-plugin/init-registry.sh similarity index 100% rename from plugins/skill-manager-plugin/init-registry.sh rename to skills/skill-manager-plugin/init-registry.sh diff --git a/plugins/skill-manager-plugin/references/skill-yaml-spec.md b/skills/skill-manager-plugin/references/skill-yaml-spec.md similarity index 100% rename from plugins/skill-manager-plugin/references/skill-yaml-spec.md rename to skills/skill-manager-plugin/references/skill-yaml-spec.md diff --git a/plugins/skill-manager-plugin/registry.sh b/skills/skill-manager-plugin/registry.sh similarity index 100% rename from plugins/skill-manager-plugin/registry.sh rename to skills/skill-manager-plugin/registry.sh diff --git a/plugins/skill-manager-plugin/scripts/git-ops.sh b/skills/skill-manager-plugin/scripts/git-ops.sh similarity index 100% rename from plugins/skill-manager-plugin/scripts/git-ops.sh rename to skills/skill-manager-plugin/scripts/git-ops.sh diff --git a/plugins/skill-manager-plugin/scripts/init-registry.sh b/skills/skill-manager-plugin/scripts/init-registry.sh similarity index 100% rename from plugins/skill-manager-plugin/scripts/init-registry.sh rename to skills/skill-manager-plugin/scripts/init-registry.sh diff --git a/plugins/skill-manager-plugin/scripts/registry.sh b/skills/skill-manager-plugin/scripts/registry.sh similarity index 100% rename from plugins/skill-manager-plugin/scripts/registry.sh rename to skills/skill-manager-plugin/scripts/registry.sh diff --git a/plugins/skill-manager-plugin/scripts/skill.sh b/skills/skill-manager-plugin/scripts/skill.sh similarity index 100% rename from plugins/skill-manager-plugin/scripts/skill.sh rename to skills/skill-manager-plugin/scripts/skill.sh diff --git a/plugins/skill-manager-plugin/scripts/validate.sh b/skills/skill-manager-plugin/scripts/validate.sh similarity index 100% rename from plugins/skill-manager-plugin/scripts/validate.sh rename to skills/skill-manager-plugin/scripts/validate.sh diff --git a/plugins/skill-manager-plugin/skill-yaml-spec.md b/skills/skill-manager-plugin/skill-yaml-spec.md similarity index 100% rename from plugins/skill-manager-plugin/skill-yaml-spec.md rename to skills/skill-manager-plugin/skill-yaml-spec.md diff --git a/plugins/skill-manager-plugin/skill.sh b/skills/skill-manager-plugin/skill.sh similarity index 100% rename from plugins/skill-manager-plugin/skill.sh rename to skills/skill-manager-plugin/skill.sh diff --git a/plugins/skill-manager-plugin/skills/SKILL.md b/skills/skill-manager-plugin/skills/SKILL.md similarity index 100% rename from plugins/skill-manager-plugin/skills/SKILL.md rename to skills/skill-manager-plugin/skills/SKILL.md diff --git a/plugins/skill-manager-plugin/validate.sh b/skills/skill-manager-plugin/validate.sh similarity index 100% rename from plugins/skill-manager-plugin/validate.sh rename to skills/skill-manager-plugin/validate.sh diff --git a/plugins/wecom-plugin/.claude-plugin/plugin.json b/skills/wecom-plugin/.claude-plugin/plugin.json similarity index 100% rename from plugins/wecom-plugin/.claude-plugin/plugin.json rename to skills/wecom-plugin/.claude-plugin/plugin.json diff --git a/plugins/wecom-plugin/skills/SKILL.md b/skills/wecom-plugin/skills/SKILL.md similarity index 100% rename from plugins/wecom-plugin/skills/SKILL.md rename to skills/wecom-plugin/skills/SKILL.md diff --git a/sync-skills.sh b/sync-skills.sh index 3752f9c..4323256 100755 --- a/sync-skills.sh +++ b/sync-skills.sh @@ -8,7 +8,7 @@ set -e # Configuration LOCAL_SKILLS_DIR="$HOME/.claude/skills" MARKETPLACE_DIR="${1:-$(dirname "$0")}" -PLUGINS_DIR="$MARKETPLACE_DIR/plugins" +PLUGINS_DIR="$MARKETPLACE_DIR/skills" echo "🔄 Syncing skills to marketplace..." echo "Source: $LOCAL_SKILLS_DIR"