commit 60dbdfc8da765c5b8760bbc7320fad4c48cfee89 Author: Zhongwei Li Date: Sat Nov 29 18:28:43 2025 +0800 Initial commit diff --git a/.claude-plugin/plugin.json b/.claude-plugin/plugin.json new file mode 100644 index 0000000..dabd53a --- /dev/null +++ b/.claude-plugin/plugin.json @@ -0,0 +1,17 @@ +{ + "name": "my-plugin", + "description": "gorvey's claude plugin project", + "version": "1.0.0", + "author": { + "name": "gorvey" + }, + "agents": [ + "./agents/fe-init-agent.md" + ], + "commands": [ + "./commands/apply.md", + "./commands/plan.md", + "./commands/fe-init-vue3.md", + "./commands/gen-api-code.md" + ] +} \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..28a2e6c --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +# my-plugin + +gorvey's claude plugin project diff --git a/agents/fe-init-agent.md b/agents/fe-init-agent.md new file mode 100644 index 0000000..b25d598 --- /dev/null +++ b/agents/fe-init-agent.md @@ -0,0 +1,51 @@ +--- +name: fe-init-agent +description: Sub Agent 执行模板 - 为特定目录生成专门的 CLAUDE.md +system_prompt: | + 你是一个专业的前端开发助手,负责为项目的特定目录生成专门的 CLAUDE.md 文档。 + 注意,这些文档是给后续的workflow /plan和/apply agent调用的 + 不需要解释每个功能的作用 + 不需要给用户查看上手入门 +--- + +这个 sub agent 模板用于为项目的特定目录生成专门的 CLAUDE.md 文档。 + +## 执行参数 + +- `target_directory`: 目标目录路径 (例如: src/components) +- `directory_name`: 目录名称 (例如: components) +- `focus_area`: 该目录的核心功能领域 (例如: 全局组件库) + +## 分析步骤 + +### 1. 目录结构分析 + +- 扫描目标目录下的所有文件和子目录,为后续步骤提供帮助 + +### 2. 功能识别 + +- 分析该目录在项目中的核心作用 +- 识别主要的功能模块 +- 理解该目录的设计意图 + +### 3. 代码分析 + +- 读取关键文件,理解代码实现 +- 识别设计模式和最佳实践 +- 分析依赖关系和接口定义 + +### 4. 使用模式提取 + +- 从现有代码中提取典型的使用模式 + +### 5. 文档生成 + +- 生成结构化的 CLAUDE.md 文档 + +## 输出要求 + +注意,这些文档是给后续的workflow /plan和/apply agent调用的,不需要给用户查看上手入门,不需要解释每个功能的作用,只需要让agent在后面抓取成为了记忆文件后,能够按照这个规范,生成一致的,功能性完备的代码!!!,这非常重要 + +``` + +``` diff --git a/commands/apply.md b/commands/apply.md new file mode 100644 index 0000000..b108b81 --- /dev/null +++ b/commands/apply.md @@ -0,0 +1,16 @@ +--- +description: 实现plan任务 +--- + +**步骤** +将这些步骤作为 TODO 逐个完成。 + +1. 阅读 `spec/plan//prd.md`和 `tasks.md` 以确认范围和验收标准。 +2. tasks中单个任务执行前,根据任务的需要按需加载规范 + 3.1 api规范按需加载`src/api/CLAUDE.md` + 3.1 全局组件使用规范按需加载`src/components/CLAUDE.md` + 3.2 页面规范按需加载`src/views/CLAUDE.md` + 3.3 样式规范按需加载`src/styles/CLAUDE.md` +3. 按顺序完成任务 +4. 在更新状态前确认完成情况 - 确保 `tasks.md` 中之前的项目都已完成。 +5. 在所有工作完成后更新检查清单,使每个任务标记为 `- [x]` 并反映实际情况。 diff --git a/commands/fe-init-vue3.md b/commands/fe-init-vue3.md new file mode 100644 index 0000000..8aac3e5 --- /dev/null +++ b/commands/fe-init-vue3.md @@ -0,0 +1,45 @@ +--- +description: 初始化分布式 CLAUDE.md 文档系统 +--- + +# 分布式 CLAUDE.md 文档生成系统 + +这个命令将为项目的每个关键目录创建专门的 CLAUDE.md 文档,实现模块化的知识管理。 +注意,这些文档是给后续的workflow /plan和/apply agent调用的,不需要给用户查看上手入门,不需要解释每个功能的作用,只需要让agent在后面抓取成为了记忆文件后,能够按照这个规范,生成一致的,功能性完备的代码!!!,这非常重要 + +## 执行步骤 + +1. 扫描 `src/` 目录结构,识别所有需要文档化的关键目录 +2. 为每个目录使用 fe-init-agent 子代理,并发式的创建分析并生成专门的 CLAUDE.md 文件 + +## Sub Agent 执行逻辑 + +### 每个 Sub Agent 将负责: + +1. **目录分析**:深入分析指定目录的结构和内容 +2. **功能识别**:识别该目录的核心功能和用途 +3. **依赖分析**:分析该目录的依赖关系和被依赖关系 +4. **最佳实践提取**:从现有代码中提取最佳实践和使用模式 +5. **文档生成**:生成针对该目录的专门 CLAUDE.md 文件 + +### 目标目录映射 + +``` +src/ +├── api/ → src/api/CLAUDE.md (API 接口开发指南) +├── components/ → src/components/CLAUDE.md (全局组件库文档) +├── views/ → src/views/CLAUDE.md (页面开发指南) +├── stores/ → src/stores/CLAUDE.md (状态管理指南) +├── utils/ → src/utils/CLAUDE.md (工具函数库说明) +├── hooks/ → src/hooks/CLAUDE.md (组合式 API 指南) +├── styles/ → src/styles/CLAUDE.md (样式处理方案) +├── routers/ → src/routers/CLAUDE.md (路由配置指南) +└── layouts/ → src/layouts/CLAUDE.md (布局组件指南) +``` + +## 注意事项 + +1. **现有项目分析**:深入分析现有代码,提取实际的使用模式 +2. **最佳实践**:从现有代码中识别并记录最佳实践 +3. **依赖关系**:明确各模块间的依赖关系 +4. **一致性**:确保所有文档的风格和规范一致 diff --git a/commands/gen-api-code.md b/commands/gen-api-code.md new file mode 100644 index 0000000..94f0f0a --- /dev/null +++ b/commands/gen-api-code.md @@ -0,0 +1,22 @@ +--- +description: 根据接口文档使用mcp生成代码 +argument-hint: [yapi-url] [api-path] [type-path] +--- + +# 参数说明 + +$ARGUMENTS 中的url参数为yapi的接口文档地址 +还需要代码生成后存放的位置,如果用户没有提供,需要提示用户传入 +也就是必须要传入接口文件的位置 和 yapi的url + +## 注意事项 + +1. 如果本项目是ts类型的项目,则用户需要传入2个位置,一个是接口文件的位置,一个是接口的ts类型文件的位置 +2. 如果本项目是js类型的项目,则用户需要传入1接口文件的位置 +3. 如果yapi-get-interface-mcp mcp工具调用失败,终止流程,提示用户检查工具可用性 + +## 执行步骤 + +1. 调用 yapi-get-interface-mcp mcp,根据接口文档获取接口信息,随后获取api的规范 `src\api\CLAUDE.md` +2. 根据接口信息和规范生成代码 +3. 将代码存储到用户指定位置 diff --git a/commands/plan.md b/commands/plan.md new file mode 100644 index 0000000..d33a14d --- /dev/null +++ b/commands/plan.md @@ -0,0 +1,36 @@ +--- +description: 创建前端页面的生成提案 +--- + +这个command的核心目的是给这个项目添加新的功能前,产生一个计划,指导agent按照plan进行开发 +从用户获取这次功能的 + +1. `原始用户需求` +2. 修改/新增的功能具体文件路径 +3. 接口 + **步骤** + +4. 生成`spec/plan/`文件夹 + -change-id 根据用户的动作生成 + 然后在文件夹内构建`prd.md`、`tasks.md` +5. `prd.md`文件根据收到的`原始用户需求`,修改/新增的功能具体文件路径,使用的接口进行归纳整理,如果用户提供的信息比较少,让用户尽量提供更多的信息 + +6. 归纳完用户的信息后,读取`src/components/CLAUDE.md`和`src/views/CLAUDE.md`全局组件和页面的规范,然后写入到`prd.md`中 + 使用模板: + +``` +## 用户需求 + +## 关联页面文件 + +## 页面布局线框图 + +## 可以使用的接口 + +## 需要使用的组件 + +## 注意事项 + +``` + +8. 创建了`prd.md`后,生成`tasks.md`,将 `tasks.md`文件起草为一个有序的小型、可验证的工作项列表,这些工作项提供用户可见的进度,并突出显示依赖项或可并行的工作。不包括验证(测试、工具)。用户会独立发现并解决错误 diff --git a/plugin.lock.json b/plugin.lock.json new file mode 100644 index 0000000..e84cf28 --- /dev/null +++ b/plugin.lock.json @@ -0,0 +1,61 @@ +{ + "$schema": "internal://schemas/plugin.lock.v1.json", + "pluginId": "gh:Gorvey/gorvey-claude-plugin:my-plugin", + "normalized": { + "repo": null, + "ref": "refs/tags/v20251128.0", + "commit": "52976ba25c1b582087af70221696339440d8b3bd", + "treeHash": "572682422f35a42b4294bc6e33eb27563501221700c8f315790fbeac0cf7c2b3", + "generatedAt": "2025-11-28T10:10:32.892745Z", + "toolVersion": "publish_plugins.py@0.2.0" + }, + "origin": { + "remote": "git@github.com:zhongweili/42plugin-data.git", + "branch": "master", + "commit": "aa1497ed0949fd50e99e70d6324a29c5b34f9390", + "repoRoot": "/Users/zhongweili/projects/openmind/42plugin-data" + }, + "manifest": { + "name": "my-plugin", + "description": "gorvey's claude plugin project", + "version": "1.0.0" + }, + "content": { + "files": [ + { + "path": "README.md", + "sha256": "d5122dc00c0660a49a113fd3543d9734048755c6da611874190f2a5154460023" + }, + { + "path": "agents/fe-init-agent.md", + "sha256": "aadbce2c6e964aa12444c28dcf53d6339a33725461b44714ca30e12b0216e74b" + }, + { + "path": ".claude-plugin/plugin.json", + "sha256": "3e1a4da723b30ea80fc53085351d8afc02a170db79d1d64365f89a8c9fd14226" + }, + { + "path": "commands/gen-api-code.md", + "sha256": "450e9f10f52cf40771d6f04df3b38b0b6d02c3ae0bf556809ea50226c380432b" + }, + { + "path": "commands/apply.md", + "sha256": "b1b075b1c3286c3d67dbf89eb584d4cd8bb347c5eed6294b57f731500e13f59c" + }, + { + "path": "commands/fe-init-vue3.md", + "sha256": "cba2e89ebf62b8aea4c0326221defb3a0b3c064fcbe336a179799019144e24e2" + }, + { + "path": "commands/plan.md", + "sha256": "be32098a4977d502c4df9baf015f506b31c494127a2875540723c4b258e58bdf" + } + ], + "dirSha256": "572682422f35a42b4294bc6e33eb27563501221700c8f315790fbeac0cf7c2b3" + }, + "security": { + "scannedAt": null, + "scannerVersion": null, + "flags": [] + } +} \ No newline at end of file