diff --git a/CLAUDE.md b/CLAUDE.md index 220f70e..3b9e086 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -8,7 +8,7 @@ Claude Code 技能市场 + MCP 配置管理工具。 ./init.sh ``` -交互式配置 MCP 连接(默认 SSE 模式)。支持命令行参数: +交互式配置 MCP 连接(默认 SSE 模式)+ 自动注册技能市场到 `~/.claude/plugins/known_marketplaces.json`。支持命令行参数: ```bash ./init.sh --mode sse --token aiproj_pk_xxx diff --git a/README.md b/README.md index fdaf3e8..ebd2d3d 100644 --- a/README.md +++ b/README.md @@ -1,72 +1,152 @@ -# ai-proj-helper +# ai-proj-helper — 让 Claude Code 变成你的项目经理 -Claude Code 技能市场 + MCP 配置管理工具。整合通用技能、项目技能、个人技能、MCP 服务器配置于一体。 +> 一套开箱即用的 Claude Code 技能包 + MCP 服务,帮你用自然语言管理需求、写代码、做评审、同步飞书,把 AI 助手变成真正的项目经理。 -> **从 claude-marketplace 迁移?** 本仓库是 claude-marketplace 的超集,已包含所有原有插件。直接使用本仓库即可,无需额外迁移。 +## 它能帮你做什么 -## 快速开始 +### 场景 1: 需求管理 — 从想法到上线 + +用自然语言描述需求,AI 会帮你讨论方案、生成 PRD、跟踪开发进度。 + +> **你**:/req new 支持微信扫码登录 +> +> **AI**:好的,让我们先讨论方案。几个问题: +> 1. 扫码后如何绑定已有账号? +> 2. 先做哪个客户端? +> +> **你**:绑定手机号,先做 Web +> +> **AI**:方案已确认。正在生成 PRD... +> ✅ 已创建需求 REQ-042,PRD 文档已附加。 + +### 场景 2: AI 辅助编码 + 代码评审 + +需求确认后,AI 帮你分析代码库、拆分任务、编写代码,完成后自动进行五视角代码扫描。 + +> **你**:/req dev REQ-042 +> +> **AI**:正在分析代码库结构... 已拆分为 3 个开发任务: +> 1. 后端 - 微信 OAuth 接入 +> 2. 前端 - 扫码组件开发 +> 3. 数据库 - 用户绑定表设计 +> +> 开始编码任务 1... +> +> **你**:代码写完了,帮我 review +> +> **AI**:/req cr 正在进行五视角代码扫描... +> ✅ 安全性、性能、可维护性、测试覆盖、规范合规 — 全部通过 + +### 场景 3: 思源笔记 + 飞书集成 + +PRD 文档存储在思源笔记中,可以导出发送到飞书群,通过飞书通知团队。 + +> **你**:把 REQ-042 的 PRD 保存到思源笔记 +> +> **AI**:✅ 已保存到思源笔记「需求文档」目录下,标题:REQ-042 微信扫码登录。 +> +> **你**:把这篇笔记导出 PDF 发到飞书群 +> +> **AI**:✅ 已导出 PDF 并发送到飞书群「产品开发群」。 +> +> **你**:通知开发组 +> +> **AI**:✅ 已通过飞书通知「产品开发群」,包含需求摘要和笔记链接。 + +### 场景 4: 数据处理 + +用自然语言处理 Excel 数据,清洗、转换、导入看板。 + +> **你**:读取 sales.xlsx,按月份汇总销售额,生成透视表 +> +> **AI**:✅ 已读取 1,234 条记录,按月份汇总完成。 +> 透视表已保存到 sales_summary.xlsx。 + +## 开始使用 + +### 前置条件 + +- **Claude Code** 已安装([安装指南](https://docs.anthropic.com/en/docs/claude-code/overview)) +- **ai-proj 账号 + MCP API Key**:联系管理员获取(Key 格式: `aiproj_pk_xxx`) + +### 一键部署(2 步搞定) ```bash # 1. 克隆仓库 git clone https://gitea.pipexerp.com/pipexerp/ai-proj-helper.git cd ai-proj-helper -# 2. 运行初始化(交互式配置 MCP 连接) +# 2. 运行初始化(按提示输入 API Key 即可) ./init.sh - -# 3. 添加技能市场 -/plugin marketplace add /path/to/ai-proj-helper ``` -也可以使用命令行参数跳过交互: +脚本会自动完成: +- 配置 MCP 服务器连接(`~/.claude/.mcp.json`) +- 注册技能市场到 Claude Code(`~/.claude/plugins/known_marketplaces.json`) + +也支持命令行参数跳过交互: ```bash ./init.sh --mode sse --token aiproj_pk_xxx ``` -## 目录结构 +### 装完试试这些 ``` -ai-proj-helper/ -├── .claude-plugin/marketplace.json # 自动生成 -├── claude-config.yaml # 技能启用/禁用 + MCP 配置 -├── init.sh # MCP 初始化 -├── generate-marketplace.py # marketplace 生成器 -├── skills-core/ # 基础设施 (1) -├── skills-dev/ # 开发 (4) -├── skills-req/ # 需求管理 (4) -├── skills-integration/ # 第三方集成 (8) -├── skills-biz/ # 商务 (4) -└── skills-personal/ # 个人(.gitignore 排除) +"帮我创建一个任务: 修复登录页样式" +"/req new 用户注册支持邮箱验证" +"列出我今天的待办任务" +"帮我写一份商业计划书" ``` -## 可用技能 (26) +## 技能速查表 -### skills-core/ — 基础设施 (1) +### 核心能力 -ai-proj +| 技能 | 说明 | 典型用法 | +|------|------|----------| +| ai-proj | 任务与需求管理 | `"创建任务: 修复首页白屏"` | -### skills-dev/ — 开发 (4) +### 需求管理 -dev-arch, dev-coding, dev-test, pull-request +| 技能 | 说明 | 典型用法 | +|------|------|----------| +| req | 需求全生命周期管理 | `/req new`、`/req list` | +| req-prd | PRD 文档撰写 | `/req prd REQ-001` | +| req-dev | 开发计划生成 | `/req dev REQ-001` | +| req-test-gate | 测试与质量门禁 | `/req test REQ-001` | -### skills-req/ — 需求管理 (4) +### 开发工具 -req, req-prd, req-dev, req-test-gate +| 技能 | 说明 | 典型用法 | +|------|------|----------| +| dev-arch | 架构设计 | `"设计用户中心的系统架构"` | +| dev-coding | 编码实现 | `"实现微信支付回调接口"` | +| dev-test | 测试编写 | `"为登录模块写单元测试"` | +| pull-request | PR 管理 | `/pr create`、`/pr review` | -### skills-integration/ — 第三方集成 (8) +### 第三方集成 -feishu, feishu-bitable, feishu-docx, wecom, siyuan, siyuan-to-feishu, data-excel, doubao-voice +| 技能 | 说明 | 典型用法 | +|------|------|----------| +| feishu | 飞书入口 | `"同步任务到飞书"` | +| feishu-bitable | 飞书多维表格 | `"在多维表格中新增一行记录"` | +| feishu-docx | 飞书云文档 | `"创建飞书文档并写入 PRD"` | +| wecom | 企业微信 | `"通过企微群发送通知"` | +| siyuan | 思源笔记 | `"搜索笔记中的会议记录"` | +| data-excel | Excel 数据处理 | `"读取 Excel 并按月汇总"` | +| doubao-voice | 豆包语音 | `"把这段文字转成语音"` | -### skills-biz/ — 商务 (4) +### 商务工具 -biz-contract, biz-ops, biz-plan, finance +| 技能 | 说明 | 典型用法 | +|------|------|----------| +| biz-plan | 商业计划书 | `"写一份融资 BP"` | +| biz-contract | 合同撰写 | `"起草软件订阅合同"` | +| biz-ops | 商务运营 | `"制定运营推广方案"` | +| finance | 财务对账 | `"导入银行流水并对账"` | -### skills-personal/ — 个人 (5) - -gitea, openclaw, ops-tools, qiudl-personal, req-deploy - -## 配置管理 +## 配置说明 ### claude-config.yaml @@ -74,21 +154,41 @@ gitea, openclaw, ops-tools, qiudl-personal, req-deploy version: "1.0" mcp: - mode: sse # sse | stdio + mode: sse # sse(远程,推荐) | stdio(本地,需 Node.js) skills: - disabled: [] # 禁用的技能列表 + disabled: [] # 禁用的技能列表,如 ["biz-ops-plugin"] personal_dir: "skills-personal" ``` -### 禁用技能 +- **mode**: MCP 连接模式。`sse` 直连远程服务器(推荐),`stdio` 在本地启动 Node.js 进程 +- **disabled**: 不需要的技能可以加到这里,重新运行 `./init.sh` 生效 +- **personal_dir**: 个人技能目录,默认不被 Git 跟踪 -编辑 `claude-config.yaml` 添加要禁用的技能名称,然后重新运行 `./init.sh` 或 `python3 generate-marketplace.py`。 +## 常见问题 -## 作者 +**Q: 运行 `./init.sh` 报错 "API Key 不能为空"?** -**Donglin Lai (qiudl)** - qiudl@zhiyuncai.com +A: 需要先联系管理员获取 MCP API Key(格式 `aiproj_pk_xxx`),然后在提示处输入。 -## 仓库 +**Q: 安装后 Claude Code 没有识别到技能?** -https://gitea.pipexerp.com/pipexerp/ai-proj-helper +A: 重启 Claude Code 后生效。如果仍不生效,检查 `~/.claude/plugins/known_marketplaces.json` 中是否包含 `ai-proj-helper` 条目。 + +**Q: 如何更新到最新版本?** + +A: 进入项目目录执行 `git pull`,然后重新运行 `./init.sh`。 + +**Q: 如何禁用不需要的技能?** + +A: 编辑 `claude-config.yaml`,在 `disabled` 列表中添加技能名(如 `"doubao-voice-plugin"`),然后运行 `./init.sh`。 + +**Q: SSE 和 stdio 模式有什么区别?** + +A: SSE 模式直连远程服务器,零依赖开箱即用(推荐)。stdio 模式在本地启动进程,需要 Node.js 环境和 mcp-task-bridge。 + +## 联系我们 + +- **管理员**:Donglin Lai (qiudl) +- **邮箱**:qiudl@zhiyuncai.com +- **仓库**:https://gitea.pipexerp.com/pipexerp/ai-proj-helper diff --git a/init.sh b/init.sh index 4481684..f2375b1 100755 --- a/init.sh +++ b/init.sh @@ -149,10 +149,32 @@ EOF echo "✅ 已生成 $MCP_CONFIG (stdio 模式)" fi +# ── Register skill marketplace ─────────────────────────────────────── +echo "📦 注册技能市场..." +SCRIPT_DIR="$SCRIPT_DIR" python3 << 'PYEOF' +import json, os, datetime +path = os.path.expanduser("~/.claude/plugins/known_marketplaces.json") +os.makedirs(os.path.dirname(path), exist_ok=True) +data = json.load(open(path)) if os.path.exists(path) else {} +script_dir = os.environ["SCRIPT_DIR"] +data["ai-proj-helper"] = { + "source": {"source": "directory", "path": script_dir}, + "installLocation": script_dir, + "lastUpdated": datetime.datetime.now(datetime.timezone.utc).strftime("%Y-%m-%dT%H:%M:%S.000Z") +} +with open(path, "w") as f: + json.dump(data, f, indent=2) +PYEOF +echo "✅ 已注册技能市场到 ~/.claude/plugins/known_marketplaces.json" + echo "" echo "┌─────────────────────────────────────┐" echo "│ ✅ 初始化完成! │" echo "└─────────────────────────────────────┘" echo "" -echo "下次启动 Claude Code 即可使用 MCP 工具。" +echo "已完成配置:" +echo " ✅ MCP 服务器 → $MCP_CONFIG" +echo " ✅ 技能市场 → ~/.claude/plugins/known_marketplaces.json" +echo "" +echo "下次启动 Claude Code 即可使用。" echo "如需更改模式,编辑 claude-config.yaml 后重新运行 ./init.sh"