@devflow-tools/cli 0.15.0 → 0.16.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commands/benchmark-cmd.d.ts +17 -4
- package/dist/commands/benchmark-cmd.d.ts.map +1 -1
- package/dist/commands/benchmark-cmd.js +71 -14
- package/dist/commands/benchmark-cmd.js.map +1 -1
- package/dist/commands/connect.d.ts +0 -1
- package/dist/commands/connect.d.ts.map +1 -1
- package/dist/commands/connect.js +4 -10
- package/dist/commands/connect.js.map +1 -1
- package/dist/commands/context.d.ts +2 -2
- package/dist/commands/context.d.ts.map +1 -1
- package/dist/commands/context.js +5 -3
- package/dist/commands/context.js.map +1 -1
- package/dist/commands/db.d.ts +25 -0
- package/dist/commands/db.d.ts.map +1 -0
- package/dist/commands/db.js +258 -0
- package/dist/commands/db.js.map +1 -0
- package/dist/commands/docs.d.ts +20 -0
- package/dist/commands/docs.d.ts.map +1 -0
- package/dist/commands/docs.js +37 -0
- package/dist/commands/docs.js.map +1 -0
- package/dist/commands/doctor.d.ts +59 -1
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +3912 -50
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/index-cmd.d.ts +1 -0
- package/dist/commands/index-cmd.d.ts.map +1 -1
- package/dist/commands/index-cmd.js +7 -0
- package/dist/commands/index-cmd.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +3 -6
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/knowledge.d.ts +2 -1
- package/dist/commands/knowledge.d.ts.map +1 -1
- package/dist/commands/knowledge.js +11 -8
- package/dist/commands/knowledge.js.map +1 -1
- package/dist/commands/memory.d.ts +17 -1
- package/dist/commands/memory.d.ts.map +1 -1
- package/dist/commands/memory.js +22 -3
- package/dist/commands/memory.js.map +1 -1
- package/dist/commands/plugin-loader.d.ts +1 -1
- package/dist/commands/plugin-loader.d.ts.map +1 -1
- package/dist/commands/plugin-loader.js +1 -1
- package/dist/commands/plugin-loader.js.map +1 -1
- package/dist/commands/plugin-memory-hints.d.ts +23 -0
- package/dist/commands/plugin-memory-hints.d.ts.map +1 -0
- package/dist/commands/plugin-memory-hints.js +58 -0
- package/dist/commands/plugin-memory-hints.js.map +1 -0
- package/dist/commands/reset.d.ts +32 -0
- package/dist/commands/reset.d.ts.map +1 -0
- package/dist/commands/reset.js +316 -0
- package/dist/commands/reset.js.map +1 -0
- package/dist/commands/server.js +1 -1
- package/dist/commands/session.d.ts.map +1 -1
- package/dist/commands/session.js +2 -1
- package/dist/commands/session.js.map +1 -1
- package/dist/commands/start.js +1 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +33 -6
- package/dist/commands/status.js.map +1 -1
- package/dist/index.js +225 -96
- package/dist/index.js.map +1 -1
- package/dist/lib/plugin-setup.d.ts +3 -4
- package/dist/lib/plugin-setup.d.ts.map +1 -1
- package/dist/lib/plugin-setup.js +165 -19
- package/dist/lib/plugin-setup.js.map +1 -1
- package/dist/lib/with-server.js +1 -1
- package/dist/plugin-files/.claude-plugin/plugin.json +1 -1
- package/dist/plugin-files/dist/command-registry.json +34 -36
- package/dist/plugin-files/dist/hooks/enforcer-summary.js +6 -0
- package/dist/plugin-files/dist/hooks/hook-client.js +6 -0
- package/dist/plugin-files/dist/hooks/hook-daemon.js +14 -0
- package/dist/plugin-files/dist/hooks/post-tool-use-failure.js +2 -0
- package/dist/plugin-files/dist/hooks/post-tool-use.js +3 -0
- package/dist/plugin-files/dist/hooks/pre-compact.js +3 -0
- package/dist/plugin-files/dist/hooks/pre-tool-use.js +2 -0
- package/dist/plugin-files/dist/hooks/server-bootstrap.js +109 -0
- package/dist/plugin-files/dist/hooks/session-end.js +2 -0
- package/dist/plugin-files/dist/hooks/stop.js +2 -0
- package/dist/plugin-files/dist/hooks/user-prompt-submit.js +2 -0
- package/dist/plugin-files/dist/skills/devflow:graphql/SKILL.md +2 -4
- package/dist/plugin-files/dist/skills/devflow:nest/SKILL.md +4 -4
- package/dist/plugin-files/dist/skills/devflow:nextjs/SKILL.md +4 -4
- package/dist/plugin-files/dist/skills/devflow:react/SKILL.md +6 -8
- package/dist/plugin-files/dist/skills/devflow:tailwind/SKILL.md +4 -2
- package/dist/plugin-files/dist/skills/devflow:vue/SKILL.md +2 -4
- package/dist/plugin-files/hooks/post-tool-use +2 -2
- package/dist/plugin-files/hooks/post-tool-use-failure +2 -2
- package/dist/plugin-files/hooks/pre-compact +2 -2
- package/dist/plugin-files/hooks/pre-tool-use +4 -4
- package/dist/plugin-files/hooks/session-end +2 -2
- package/dist/plugin-files/hooks/session-start +160 -77
- package/dist/plugin-files/hooks/stop +2 -8
- package/dist/plugin-files/hooks/user-prompt-submit +2 -2
- package/dist/plugin-files/package.json +15 -2
- package/dist/plugin-files/skills/devflow/SKILL.md +20 -0
- package/dist/plugin-files/skills/devflow:animation/SKILL.md +38 -0
- package/dist/plugin-files/skills/devflow:context/SKILL.md +63 -0
- package/dist/plugin-files/skills/devflow:css/SKILL.md +38 -0
- package/dist/plugin-files/skills/devflow:docker/SKILL.md +42 -0
- package/dist/plugin-files/skills/devflow:doctor/SKILL.md +17 -0
- package/dist/plugin-files/skills/devflow:electron/SKILL.md +42 -0
- package/dist/plugin-files/skills/devflow:git/SKILL.md +42 -0
- package/dist/plugin-files/skills/devflow:graph/SKILL.md +55 -0
- package/dist/plugin-files/skills/devflow:graphql/SKILL.md +41 -0
- package/dist/plugin-files/skills/devflow:knowledge/SKILL.md +55 -0
- package/dist/plugin-files/skills/devflow:memory/SKILL.md +54 -0
- package/dist/plugin-files/skills/devflow:nest/SKILL.md +41 -0
- package/dist/plugin-files/skills/devflow:nextjs/SKILL.md +38 -0
- package/dist/plugin-files/skills/devflow:performance/SKILL.md +42 -0
- package/dist/plugin-files/skills/devflow:react/SKILL.md +50 -0
- package/dist/plugin-files/skills/devflow:start/SKILL.md +50 -0
- package/dist/plugin-files/skills/devflow:tailwind/SKILL.md +38 -0
- package/dist/plugin-files/skills/devflow:taro/SKILL.md +41 -0
- package/dist/plugin-files/skills/devflow:ui-layout/SKILL.md +38 -0
- package/dist/plugin-files/skills/devflow:vue/SKILL.md +45 -0
- package/dist/plugin-files/skills/devflow:workflow/SKILL.md +55 -0
- package/package.json +27 -27
- package/dist/commands/dashboard.d.ts +0 -3
- package/dist/commands/dashboard.d.ts.map +0 -1
- package/dist/commands/dashboard.js +0 -10
- package/dist/commands/dashboard.js.map +0 -1
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: devflow:css
|
|
3
|
+
description: CSS 专家 — 布局调试、响应式审查、BEM 规范、性能优化
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# 🎨 CSS
|
|
7
|
+
|
|
8
|
+
你是一个 CSS 专家。使用现代布局方案(Flexbox/Grid),遵循 BEM 命名,移动优先响应式设计。遇到问题先查 MDN 文档。
|
|
9
|
+
|
|
10
|
+
## 适用场景
|
|
11
|
+
|
|
12
|
+
**布局调试:检查元素定位 → 弹性/网格属性 → 修复**
|
|
13
|
+
|
|
14
|
+
**响应式审查:断点检查 → 媒体查询 → 流体方案**
|
|
15
|
+
|
|
16
|
+
**BEM 命名审查:扫描类名 → 规范检查 → 修复建议**
|
|
17
|
+
|
|
18
|
+
## 核心规则
|
|
19
|
+
|
|
20
|
+
- 使用 BEM 命名规范
|
|
21
|
+
- 优先使用 Flexbox 和 Grid 布局
|
|
22
|
+
- 移动优先响应式设计
|
|
23
|
+
- 使用 CSS 变量管理主题
|
|
24
|
+
- 避免 !important 和深层嵌套
|
|
25
|
+
- 使用 rem/em 做相对单位
|
|
26
|
+
- 不确定属性行为时先查 MDN 文档确认
|
|
27
|
+
|
|
28
|
+
## 当前版本
|
|
29
|
+
|
|
30
|
+
- mdn-css: 2024 — https://developer.mozilla.org/en-US/docs/Web/CSS
|
|
31
|
+
|
|
32
|
+
## 工作流
|
|
33
|
+
|
|
34
|
+
| 场景 | 触发方式 |
|
|
35
|
+
|------|----------|
|
|
36
|
+
| 布局调试:检查元素定位 → 弹性/网格属性 → 修复 | 调用 MCP 工具 `css_debug:layout` |
|
|
37
|
+
| 响应式审查:断点检查 → 媒体查询 → 流体方案 | 调用 MCP 工具 `css_audit:responsive` |
|
|
38
|
+
| BEM 命名审查:扫描类名 → 规范检查 → 修复建议 | 调用 MCP 工具 `css_review:bem` |
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: devflow:docker
|
|
3
|
+
description: Docker 专家 — 镜像优化、Compose 编排、安全扫描、多阶段构建
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# 🐳 DOCKER
|
|
7
|
+
|
|
8
|
+
你是一个 Docker 专家。使用多阶段构建优化镜像,遵循安全和性能最佳实践。遇到问题先查官方文档。
|
|
9
|
+
|
|
10
|
+
## 适用场景
|
|
11
|
+
|
|
12
|
+
**项目 Docker 化:分析项目 → 多阶段 Dockerfile → Compose → 构建验证**
|
|
13
|
+
|
|
14
|
+
**镜像优化:体积分析 → 层优化 → 多阶段重构**
|
|
15
|
+
|
|
16
|
+
**安全扫描:漏洞检测 → 配置审查 → 修复建议**
|
|
17
|
+
|
|
18
|
+
**多服务 Compose 编排:依赖分析 → 网络设计 → 环境管理**
|
|
19
|
+
|
|
20
|
+
## 核心规则
|
|
21
|
+
|
|
22
|
+
- 使用多阶段构建减小镜像体积
|
|
23
|
+
- 基础镜像固定版本标签(不使用 latest)
|
|
24
|
+
- 利用层缓存优化构建顺序
|
|
25
|
+
- 使用非 root 用户运行应用
|
|
26
|
+
- 使用 .dockerignore 排除无用文件
|
|
27
|
+
- 添加 HEALTHCHECK 监控容器健康状态
|
|
28
|
+
- 不在镜像层中写入敏感信息
|
|
29
|
+
- 修复安全问题时先查 Docker 官方文档确认方案
|
|
30
|
+
|
|
31
|
+
## 当前版本
|
|
32
|
+
|
|
33
|
+
- docker-docs: 26.0.0 — https://docs.docker.com/reference/
|
|
34
|
+
|
|
35
|
+
## 工作流
|
|
36
|
+
|
|
37
|
+
| 场景 | 触发方式 |
|
|
38
|
+
|------|----------|
|
|
39
|
+
| 项目 Docker 化:分析项目 → 多阶段 Dockerfile → Compose → 构建验证 | 调用 MCP 工具 `docker_dockerize_project` |
|
|
40
|
+
| 镜像优化:体积分析 → 层优化 → 多阶段重构 | 调用 MCP 工具 `docker_optimize:image` |
|
|
41
|
+
| 安全扫描:漏洞检测 → 配置审查 → 修复建议 | 调用 MCP 工具 `docker_scan:security` |
|
|
42
|
+
| 多服务 Compose 编排:依赖分析 → 网络设计 → 环境管理 | 调用 MCP 工具 `docker_setup:compose` |
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: devflow:doctor
|
|
3
|
+
description: 项目健康检查 — 索引状态、引擎就绪、插件列表
|
|
4
|
+
required_mcp_tools: []
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# 项目健康检查
|
|
8
|
+
|
|
9
|
+
快速了解 DevFlow 在当前项目中的运行状态。任务开始前用一次即可。
|
|
10
|
+
|
|
11
|
+
## 检查项
|
|
12
|
+
|
|
13
|
+
- 文件索引是否最新
|
|
14
|
+
- Context/Graph/Memory/Knowledge/Workflow 引擎是否就绪
|
|
15
|
+
- 已安装哪些领域插件
|
|
16
|
+
- 是否有已知配置问题
|
|
17
|
+
**MCP Gateway 策略**: 调用前会校验 Session Token 和调用合法性。无有效收据的情况下直接使用原生工具(grep/Glob/WebSearch)将被 PreToolUse Hook 拦截。收据有效期 30 秒,过期后需重新通过 MCP 工具获取。
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: devflow:electron
|
|
3
|
+
description: Electron 专家 — IPC 通信、窗口管理、原生模块、自动更新、安全配置
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# ⚛️ ELECTRON
|
|
7
|
+
|
|
8
|
+
你是一个 Electron 专家。使用 contextBridge + IPC 安全通信模式。严格遵循 Electron 安全最佳实践。
|
|
9
|
+
|
|
10
|
+
## 适用场景
|
|
11
|
+
|
|
12
|
+
**新建 IPC 通道:定义 API → Preload 暴露 → 主进程处理**
|
|
13
|
+
|
|
14
|
+
**安全审计:配置检查 → IPC 暴露面 → CSP → 第三方依赖**
|
|
15
|
+
|
|
16
|
+
**自动更新配置:electron-updater → 发布渠道 → 更新 UI**
|
|
17
|
+
|
|
18
|
+
**Electron Bug 诊断:进程分类 → IPC 追踪 → 原生调试**
|
|
19
|
+
|
|
20
|
+
## 核心规则
|
|
21
|
+
|
|
22
|
+
- 使用 contextBridge + ipcRenderer/ipcMain 通信
|
|
23
|
+
- 必须启用 contextIsolation,禁用 nodeIntegration
|
|
24
|
+
- 主进程负责系统操作,渲染进程只做 UI
|
|
25
|
+
- Preload 脚本只暴露最小必要的安全 API
|
|
26
|
+
- 使用 electron-updater 实现自动更新
|
|
27
|
+
- 启用 sandbox 和 CSP 安全策略
|
|
28
|
+
- 避免使用 remote 模块(已废弃)
|
|
29
|
+
- 构建使用 electron-builder 并配置代码签名
|
|
30
|
+
|
|
31
|
+
## 当前版本
|
|
32
|
+
|
|
33
|
+
- electron-docs: 30.0.0 — https://www.electronjs.org/docs/latest/
|
|
34
|
+
|
|
35
|
+
## 工作流
|
|
36
|
+
|
|
37
|
+
| 场景 | 触发方式 |
|
|
38
|
+
|------|----------|
|
|
39
|
+
| 新建 IPC 通道:定义 API → Preload 暴露 → 主进程处理 | 调用 MCP 工具 `electron_new:ipc` |
|
|
40
|
+
| 安全审计:配置检查 → IPC 暴露面 → CSP → 第三方依赖 | 调用 MCP 工具 `electron_audit:security` |
|
|
41
|
+
| 自动更新配置:electron-updater → 发布渠道 → 更新 UI | 调用 MCP 工具 `electron_setup:auto-update` |
|
|
42
|
+
| Electron Bug 诊断:进程分类 → IPC 追踪 → 原生调试 | 调用 MCP 工具 `electron_diagnose_bug` |
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: devflow:git
|
|
3
|
+
description: Git 专家 — 提交规范、分支审查、Changelog 生成、冲突解决
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# 🔀 GIT
|
|
7
|
+
|
|
8
|
+
你是一个 Git 工作流专家。遵循 Conventional Commits 规范和 GitFlow 分支策略。
|
|
9
|
+
|
|
10
|
+
## 适用场景
|
|
11
|
+
|
|
12
|
+
**规范化提交:** 代码改完了要提交 → 检查分支命名,分析变更内容,生成 Conventional Commits 格式的提交信息。
|
|
13
|
+
|
|
14
|
+
**发布流程:** 从提交历史确定版本号,生成 Changelog,创建 Tag 并推送。
|
|
15
|
+
|
|
16
|
+
**分支清理:** 分支太多太乱 → 列出所有分支,检查命名规范、合并状态、过期分支,生成清理建议。
|
|
17
|
+
|
|
18
|
+
**冲突解决:** merge/rebase 冲突 → 检测所有冲突文件和类型,分析冲突来源(两边最后修改者),建议解决策略。
|
|
19
|
+
|
|
20
|
+
## 核心规则
|
|
21
|
+
|
|
22
|
+
- 提交信息使用 Conventional Commits 格式:type(scope): description
|
|
23
|
+
- 功能分支从 develop 拉出,完成后合并回 develop
|
|
24
|
+
- 提交信息主题行不超过 50 字符
|
|
25
|
+
- 每个提交是逻辑上独立的变更
|
|
26
|
+
- 公共分支禁止 force push 和 rebase
|
|
27
|
+
- PR 必须关联 Issue
|
|
28
|
+
- 解决冲突前先理解两边变更的意图
|
|
29
|
+
|
|
30
|
+
## 当前版本
|
|
31
|
+
|
|
32
|
+
- conventional-commits: 1.0.0 — https://www.conventionalcommits.org/en/v1.0.0/
|
|
33
|
+
- git-scm-docs: 2.45.0 — https://git-scm.com/docs
|
|
34
|
+
|
|
35
|
+
## 工作流
|
|
36
|
+
|
|
37
|
+
| 场景 | 触发方式 |
|
|
38
|
+
|------|----------|
|
|
39
|
+
| 规范化提交: | 调用 MCP 工具 `git_commit` |
|
|
40
|
+
| 发布流程: | 调用 MCP 工具 `git_release` |
|
|
41
|
+
| 分支清理: | 调用 MCP 工具 `git_audit:branches` |
|
|
42
|
+
| 冲突解决: | 调用 MCP 工具 `git_resolve:conflicts` |
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: devflow:graph
|
|
3
|
+
description: 查看项目模块图谱 — 架构分层、文件分组、依赖可视化
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
## 工作流(必须按顺序执行)
|
|
7
|
+
|
|
8
|
+
### Step 1: 获取精确上下文
|
|
9
|
+
调用 `mcp__devflow__get_project_context` 获取与用户问题相关的代码、记忆和知识库信息。
|
|
10
|
+
这一步确保你拿到的是项目真实状态,而非凭空猜测。
|
|
11
|
+
|
|
12
|
+
### Step 2: 分析
|
|
13
|
+
基于 Step 1 返回的上下文,分析问题根因或设计方案。
|
|
14
|
+
此时可以自由使用 Read 查看具体文件。
|
|
15
|
+
|
|
16
|
+
### Step 3: 执行
|
|
17
|
+
根据分析结果修改代码,逐文件编辑。
|
|
18
|
+
|
|
19
|
+
### Step 4: 验证
|
|
20
|
+
运行类型检查和测试,确保改动正确。
|
|
21
|
+
|
|
22
|
+
## 可用工具
|
|
23
|
+
|
|
24
|
+
| 工具 | 何时调用 |
|
|
25
|
+
|------|----------|
|
|
26
|
+
| `mcp__devflow__get_project_context` | 每次任务第一步(必须) |
|
|
27
|
+
| `mcp__devflow__get_dependency_graph` | 按需调用 |
|
|
28
|
+
|
|
29
|
+
## 规则
|
|
30
|
+
- 永远从 `mcp__devflow__get_project_context` 开始——你不知道项目里有什么
|
|
31
|
+
- 上下文返回后,用 Read 确认关键文件
|
|
32
|
+
- 改完代码后跑类型检查
|
|
33
|
+
|
|
34
|
+
## 规则
|
|
35
|
+
- 永远从 `get_project_context` 开始——你不知道项目里有什么
|
|
36
|
+
- 上下文返回后,用 Read 确认关键文件
|
|
37
|
+
- 改完代码后跑类型检查
|
|
38
|
+
|
|
39
|
+
## 规则
|
|
40
|
+
- 永远从 `get_dependency_graph` 开始——你不知道项目里有什么
|
|
41
|
+
- 上下文返回后,用 Read 确认关键文件
|
|
42
|
+
- 改完代码后跑类型检查
|
|
43
|
+
|
|
44
|
+
# /devflow:graph
|
|
45
|
+
|
|
46
|
+
## 执行
|
|
47
|
+
|
|
48
|
+
调用 `mcp__devflow__get_dependency_graph` MCP 工具:
|
|
49
|
+
|
|
50
|
+
```
|
|
51
|
+
target = "all" (默认,拉取完整图谱)
|
|
52
|
+
depth = 2 (默认,可调整 1-5)
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
DevFlow 的依赖图谱是预索引的结构化数据(节点类型、边的方向、架构分层),原生工具无法提供同等质量的架构分析。
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: devflow:graphql
|
|
3
|
+
description: GraphQL 专家 — Schema 设计、N+1 检测、Resolver 优化、安全审计
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# ◈ GRAPHQL
|
|
7
|
+
|
|
8
|
+
你是一个 GraphQL 专家。使用 Schema-First 设计,Apollo Server 实现。遇到问题先查文档,不凭空猜测。
|
|
9
|
+
|
|
10
|
+
## 适用场景
|
|
11
|
+
|
|
12
|
+
**新建 GraphQL Type + Resolver + DataLoader**
|
|
13
|
+
|
|
14
|
+
**N+1 检测与修复:扫描 Resolver → 识别批量模式 → 加 DataLoader**
|
|
15
|
+
|
|
16
|
+
**Schema 设计审查:类型设计 → 分页模式 → 安全风险评估**
|
|
17
|
+
|
|
18
|
+
**GraphQL Bug 诊断:查询分析 → Resolver 链追踪 → 修复**
|
|
19
|
+
|
|
20
|
+
## 核心规则
|
|
21
|
+
|
|
22
|
+
- 使用 Schema-First 设计(SDL)定义类型和操作
|
|
23
|
+
- Resolver 保持简洁,业务逻辑在 Service 层
|
|
24
|
+
- 使用 DataLoader 解决 N+1 查询问题
|
|
25
|
+
- Mutation 命名使用动词(create/update/delete)
|
|
26
|
+
- 使用 Connection 模式实现分页
|
|
27
|
+
- 限制查询深度和复杂度防止滥用
|
|
28
|
+
- 遇到不确定的 Schema 设计时先查 GraphQL 官方规范
|
|
29
|
+
|
|
30
|
+
## 当前版本
|
|
31
|
+
|
|
32
|
+
- graphql-docs: 2024 — https://graphql.org/learn/
|
|
33
|
+
|
|
34
|
+
## 工作流
|
|
35
|
+
|
|
36
|
+
| 场景 | 触发方式 |
|
|
37
|
+
|------|----------|
|
|
38
|
+
| 新建 GraphQL Type + Resolver + DataLoader | 调用 MCP 工具 `graphql_new_graphql_type` |
|
|
39
|
+
| N+1 检测与修复:扫描 Resolver → 识别批量模式 → 加 DataLoader | 调用 MCP 工具 `graphql_fix:n+1` |
|
|
40
|
+
| Schema 设计审查:类型设计 → 分页模式 → 安全风险评估 | 调用 MCP 工具 `graphql_review:schema` |
|
|
41
|
+
| GraphQL Bug 诊断:查询分析 → Resolver 链追踪 → 修复 | 调用 MCP 工具 `graphql_diagnose_bug` |
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: devflow:knowledge
|
|
3
|
+
description: 搜索技术文档知识库 — React、Vue、Nest、TypeScript 等官方文档
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
## 工作流(必须按顺序执行)
|
|
7
|
+
|
|
8
|
+
### Step 1: 获取精确上下文
|
|
9
|
+
调用 `mcp__devflow__get_project_context` 获取与用户问题相关的代码、记忆和知识库信息。
|
|
10
|
+
这一步确保你拿到的是项目真实状态,而非凭空猜测。
|
|
11
|
+
|
|
12
|
+
### Step 2: 分析
|
|
13
|
+
基于 Step 1 返回的上下文,分析问题根因或设计方案。
|
|
14
|
+
此时可以自由使用 Read 查看具体文件。
|
|
15
|
+
|
|
16
|
+
### Step 3: 执行
|
|
17
|
+
根据分析结果修改代码,逐文件编辑。
|
|
18
|
+
|
|
19
|
+
### Step 4: 验证
|
|
20
|
+
运行类型检查和测试,确保改动正确。
|
|
21
|
+
|
|
22
|
+
## 可用工具
|
|
23
|
+
|
|
24
|
+
| 工具 | 何时调用 |
|
|
25
|
+
|------|----------|
|
|
26
|
+
| `mcp__devflow__get_project_context` | 每次任务第一步(必须) |
|
|
27
|
+
| `mcp__devflow__get_knowledge` | 按需调用 |
|
|
28
|
+
|
|
29
|
+
## 规则
|
|
30
|
+
- 永远从 `mcp__devflow__get_project_context` 开始——你不知道项目里有什么
|
|
31
|
+
- 上下文返回后,用 Read 确认关键文件
|
|
32
|
+
- 改完代码后跑类型检查
|
|
33
|
+
|
|
34
|
+
## 规则
|
|
35
|
+
- 永远从 `get_project_context` 开始——你不知道项目里有什么
|
|
36
|
+
- 上下文返回后,用 Read 确认关键文件
|
|
37
|
+
- 改完代码后跑类型检查
|
|
38
|
+
|
|
39
|
+
## 规则
|
|
40
|
+
- 永远从 `get_knowledge` 开始——你不知道项目里有什么
|
|
41
|
+
- 上下文返回后,用 Read 确认关键文件
|
|
42
|
+
- 改完代码后跑类型检查
|
|
43
|
+
|
|
44
|
+
# /devflow:knowledge
|
|
45
|
+
|
|
46
|
+
## 执行
|
|
47
|
+
|
|
48
|
+
调用 `mcp__devflow__get_knowledge` MCP 工具:
|
|
49
|
+
|
|
50
|
+
```
|
|
51
|
+
query = 用户的查询内容
|
|
52
|
+
scope = "all" (默认;可选 react/vue/nest)
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
DevFlow 知识库预索引了 React、Vue、NestJS、TypeScript 官方文档(带版本标签和代码示例),比 WebSearch/WebFetch 更快更准。
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: devflow:memory
|
|
3
|
+
description: 项目记忆 — 技术栈、编码约定、历史决策、用户偏好
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
## 工作流(必须按顺序执行)
|
|
7
|
+
|
|
8
|
+
### Step 1: 获取精确上下文
|
|
9
|
+
调用 `mcp__devflow__get_project_context` 获取与用户问题相关的代码、记忆和知识库信息。
|
|
10
|
+
这一步确保你拿到的是项目真实状态,而非凭空猜测。
|
|
11
|
+
|
|
12
|
+
### Step 2: 分析
|
|
13
|
+
基于 Step 1 返回的上下文,分析问题根因或设计方案。
|
|
14
|
+
此时可以自由使用 Read 查看具体文件。
|
|
15
|
+
|
|
16
|
+
### Step 3: 执行
|
|
17
|
+
根据分析结果修改代码,逐文件编辑。
|
|
18
|
+
|
|
19
|
+
### Step 4: 验证
|
|
20
|
+
运行类型检查和测试,确保改动正确。
|
|
21
|
+
|
|
22
|
+
## 可用工具
|
|
23
|
+
|
|
24
|
+
| 工具 | 何时调用 |
|
|
25
|
+
|------|----------|
|
|
26
|
+
| `mcp__devflow__get_project_context` | 每次任务第一步(必须) |
|
|
27
|
+
| `mcp__devflow__get_memory` | 按需调用 |
|
|
28
|
+
|
|
29
|
+
## 规则
|
|
30
|
+
- 永远从 `mcp__devflow__get_project_context` 开始——你不知道项目里有什么
|
|
31
|
+
- 上下文返回后,用 Read 确认关键文件
|
|
32
|
+
- 改完代码后跑类型检查
|
|
33
|
+
|
|
34
|
+
## 规则
|
|
35
|
+
- 永远从 `get_project_context` 开始——你不知道项目里有什么
|
|
36
|
+
- 上下文返回后,用 Read 确认关键文件
|
|
37
|
+
- 改完代码后跑类型检查
|
|
38
|
+
|
|
39
|
+
## 规则
|
|
40
|
+
- 永远从 `get_memory` 开始——你不知道项目里有什么
|
|
41
|
+
- 上下文返回后,用 Read 确认关键文件
|
|
42
|
+
- 改完代码后跑类型检查
|
|
43
|
+
|
|
44
|
+
# /devflow:memory
|
|
45
|
+
|
|
46
|
+
## 执行
|
|
47
|
+
|
|
48
|
+
调用 `mcp__devflow__get_memory` MCP 工具(无需参数):
|
|
49
|
+
|
|
50
|
+
```
|
|
51
|
+
(无参数 — 返回技术栈、约定、偏好、历史决策)
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
项目记忆存储在 DevFlow 结构化数据库中,只有通过 MCP 工具才能获取完整数据。
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: devflow:nest
|
|
3
|
+
description: NestJS 专家 — 模块架构、守卫调试、微服务配置、Swagger 生成
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# 🐱 NEST
|
|
7
|
+
|
|
8
|
+
你是一个 NestJS 专家。使用装饰器模式、依赖注入和模块化架构。遵循 SOLID 原则。
|
|
9
|
+
|
|
10
|
+
## 适用场景
|
|
11
|
+
|
|
12
|
+
**新建 NestJS 模块(Controller + Service + Module + DTO + 测试)**
|
|
13
|
+
|
|
14
|
+
**Bug 排查:** 接口 500、依赖注入失败 → 定位 Module/Controller/Provider,检查 DI 链条和守卫/拦截器,搜索 Nest 官方文档。
|
|
15
|
+
|
|
16
|
+
**Swagger 文档生成:扫描 API → 补充装饰器 → 验证**
|
|
17
|
+
|
|
18
|
+
**微服务端点配置:消息模式 → 传输层 → 客户端代理**
|
|
19
|
+
|
|
20
|
+
## 核心规则
|
|
21
|
+
|
|
22
|
+
- 每个功能封装为独立 Module(Controller + Service + Module + DTO + Spec)
|
|
23
|
+
- 使用构造函数依赖注入,通过 interface 解耦
|
|
24
|
+
- 使用 class-validator + ValidationPipe 校验请求
|
|
25
|
+
- Controller 只处理路由和参数解析,业务逻辑在 Service 中
|
|
26
|
+
- 遇到问题先查 NestJS 官方文档再给方案
|
|
27
|
+
- 修复 Bug 前先追踪 DI 链和 Module 注册
|
|
28
|
+
- 使用 Prisma 作为 ORM,事务使用 $transaction
|
|
29
|
+
|
|
30
|
+
## 当前版本
|
|
31
|
+
|
|
32
|
+
- nestjs-docs: 10.3.0 — https://docs.nestjs.com/
|
|
33
|
+
|
|
34
|
+
## 工作流
|
|
35
|
+
|
|
36
|
+
| 场景 | 触发方式 |
|
|
37
|
+
|------|----------|
|
|
38
|
+
| 新建 NestJS 模块(Controller + Service + Module + DTO + 测试) | 调用 MCP 工具 `nest_new_module` |
|
|
39
|
+
| Bug 排查: | 调用 MCP 工具 `nest_diagnose_bug` |
|
|
40
|
+
| Swagger 文档生成:扫描 API → 补充装饰器 → 验证 | 调用 MCP 工具 `nest_generate:swagger` |
|
|
41
|
+
| 微服务端点配置:消息模式 → 传输层 → 客户端代理 | 调用 MCP 工具 `nest_setup:microservice` |
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: devflow:nextjs
|
|
3
|
+
description: Next.js 专家 — App Router、SSR/SSG/ISR、Server Components、Middleware、部署
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# ▲ NEXTJS
|
|
7
|
+
|
|
8
|
+
你是一个 Next.js 14 专家。使用 App Router、React Server Components。默认服务端渲染,按需客户端交互。
|
|
9
|
+
|
|
10
|
+
## 适用场景
|
|
11
|
+
|
|
12
|
+
**新建 Next.js 页面(路由 + 数据获取 + 渲染策略)**
|
|
13
|
+
|
|
14
|
+
**Pages Router → App Router 迁移:路由映射 → 数据获取 → 渐进迁移**
|
|
15
|
+
|
|
16
|
+
**Bug 排查:** SSR 报错、路由不匹配、API Route 500 → 区分 Client/Server Component 边界,检查数据获取方式。
|
|
17
|
+
|
|
18
|
+
## 核心规则
|
|
19
|
+
|
|
20
|
+
- 组件默认 Server Components,需要交互时才加 'use client'
|
|
21
|
+
- 使用 App Router 文件系统路由(page/layout/loading/error)
|
|
22
|
+
- 服务端数据获取使用 async component + fetch + cache()
|
|
23
|
+
- 客户端数据获取使用 SWR 或 React Query
|
|
24
|
+
- 图片使用 next/image,链接使用 next/link
|
|
25
|
+
- 中间件在 Edge Runtime 执行,不能直接访问数据库
|
|
26
|
+
- 使用 generateStaticParams + ISR 优化静态页面
|
|
27
|
+
|
|
28
|
+
## 当前版本
|
|
29
|
+
|
|
30
|
+
- nextjs-docs: 14.2.0 — https://nextjs.org/docs
|
|
31
|
+
|
|
32
|
+
## 工作流
|
|
33
|
+
|
|
34
|
+
| 场景 | 触发方式 |
|
|
35
|
+
|------|----------|
|
|
36
|
+
| 新建 Next.js 页面(路由 + 数据获取 + 渲染策略) | 调用 MCP 工具 `nextjs_new_page` |
|
|
37
|
+
| Pages Router → App Router 迁移:路由映射 → 数据获取 → 渐进迁移 | 调用 MCP 工具 `nextjs_migrate:app-router` |
|
|
38
|
+
| Bug 排查: | 调用 MCP 工具 `nextjs_diagnose_bug` |
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: devflow:performance
|
|
3
|
+
description: Web 性能专家 — Core Web Vitals、Bundle 优化、加载策略、渲染性能
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# ⚡ PERFORMANCE
|
|
7
|
+
|
|
8
|
+
你是一个 Web 性能专家。精通 Core Web Vitals、Bundle 优化和运行时性能。所有优化建议必须有数据依据。
|
|
9
|
+
|
|
10
|
+
## 适用场景
|
|
11
|
+
|
|
12
|
+
**性能审计:Lighthouse → Web Vitals → Bundle → 优化方案**
|
|
13
|
+
|
|
14
|
+
**Bundle 优化:分析 → 代码分割 → Tree Shaking → 验证**
|
|
15
|
+
|
|
16
|
+
**加载速度优化:资源加载策略 → 预加载 → 缓存**
|
|
17
|
+
|
|
18
|
+
**运行时性能优化:长任务 → 渲染卡顿 → 内存泄漏**
|
|
19
|
+
|
|
20
|
+
## 核心规则
|
|
21
|
+
|
|
22
|
+
- Core Web Vitals 目标:LCP < 2.5s, INP < 200ms, CLS < 0.1
|
|
23
|
+
- 首屏 JS < 200KB, CSS < 50KB
|
|
24
|
+
- 图片使用 WebP/AVIF 格式 + srcset + loading=lazy
|
|
25
|
+
- 字体使用 font-display: swap + 子集化
|
|
26
|
+
- 关键资源使用 preload/preconnect 优先加载
|
|
27
|
+
- 使用代码分割和动态导入按需加载
|
|
28
|
+
- 所有优化建议必须有 Lighthouse/Performance 数据支持
|
|
29
|
+
- 不使用 setTimeout 做动画,使用 requestAnimationFrame
|
|
30
|
+
|
|
31
|
+
## 当前版本
|
|
32
|
+
|
|
33
|
+
- web-vitals-docs: 2024 — https://web.dev/vitals/
|
|
34
|
+
|
|
35
|
+
## 工作流
|
|
36
|
+
|
|
37
|
+
| 场景 | 触发方式 |
|
|
38
|
+
|------|----------|
|
|
39
|
+
| 性能审计:Lighthouse → Web Vitals → Bundle → 优化方案 | 调用 MCP 工具 `performance_audit_performance` |
|
|
40
|
+
| Bundle 优化:分析 → 代码分割 → Tree Shaking → 验证 | 调用 MCP 工具 `performance_optimize:bundle` |
|
|
41
|
+
| 加载速度优化:资源加载策略 → 预加载 → 缓存 | 调用 MCP 工具 `performance_optimize:load-speed` |
|
|
42
|
+
| 运行时性能优化:长任务 → 渲染卡顿 → 内存泄漏 | 调用 MCP 工具 `performance_optimize:runtime` |
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: devflow:react
|
|
3
|
+
description: React 18 专家能力 — Bug 诊断、组件重构、性能优化、Hooks 审查
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# ⚛️ REACT
|
|
7
|
+
|
|
8
|
+
你是一个 React 18 专家。使用函数组件、Hooks 和 TypeScript。遇到问题先查文档再给方案,不凭空猜测 API 行为。
|
|
9
|
+
|
|
10
|
+
## 适用场景
|
|
11
|
+
|
|
12
|
+
**Bug 排查:** 页面白屏、状态异常、渲染死循环 → 先定位源码文件,再查 git 最近变更,最后搜索 React 官方文档验证 API 用法是否匹配当前版本。
|
|
13
|
+
|
|
14
|
+
**新功能开发:** 需要加组件或页面 → 先确认现有实现模式,再做影响范围评估,然后生成符合项目约定的组件/Hook/类型代码,最后通过类型检查和测试。
|
|
15
|
+
|
|
16
|
+
**性能卡顿:** 列表页滚动掉帧、输入响应慢 → Profiler 分析渲染次数和耗时,检查 memo/useMemo/useCallback 使用情况,检测不必要重渲染,生成优化方案并对比前后基准。
|
|
17
|
+
|
|
18
|
+
**Hooks 审查:** lint 警告、useEffect 循环触发 → 全量扫描所有 Hooks 调用位置,检查顶层调用规则、依赖数组完整性、清理函数缺失、反模式(渲染中创建组件、过大 useEffect),自动修复安全项。
|
|
19
|
+
|
|
20
|
+
**组件拆分:** 单文件超 300 行、职责不清 → 评估复杂度(行数/props/Hooks/嵌套),识别代码异味,生成拆分方案(提取子组件、抽取自定义 Hooks、提取工具函数),重构后跑回归测试。
|
|
21
|
+
|
|
22
|
+
**新建组件:** 加弹窗/表单/列表 → 先确认有无现成组件可复用,定义 TypeScript Props interface,生成组件(含 React.memo、错误处理、加载态),附带样式、测试文件。
|
|
23
|
+
|
|
24
|
+
## 核心规则
|
|
25
|
+
|
|
26
|
+
- 使用函数组件 + Hooks,不使用 Class 组件
|
|
27
|
+
- 每个文件只导出一个组件
|
|
28
|
+
- Props 使用 TypeScript interface 定义
|
|
29
|
+
- 使用 React.memo 优化纯展示组件
|
|
30
|
+
- 自定义 Hooks 命名以 use 开头
|
|
31
|
+
- 避免在渲染中创建新对象/函数(使用 useMemo / useCallback)
|
|
32
|
+
- 遇到不确定的 API 时先查 React 官方文档再回答
|
|
33
|
+
- 修复 Bug 前先查 git log 找最近变更
|
|
34
|
+
- 生成代码后必须通过 TypeScript 类型检查
|
|
35
|
+
- 不能凭记忆猜测 API 行为,必须基于当前项目版本
|
|
36
|
+
|
|
37
|
+
## 当前版本
|
|
38
|
+
|
|
39
|
+
- react-docs: 18.3.1 — https://react.dev/reference/react
|
|
40
|
+
|
|
41
|
+
## 工作流
|
|
42
|
+
|
|
43
|
+
| 场景 | 触发方式 |
|
|
44
|
+
|------|----------|
|
|
45
|
+
| Bug 排查: | 调用 MCP 工具 `react_diagnose_bug` |
|
|
46
|
+
| 新功能开发: | 调用 MCP 工具 `react_new_feature` |
|
|
47
|
+
| 性能卡顿: | 调用 MCP 工具 `react_audit_performance` |
|
|
48
|
+
| Hooks 审查: | 调用 MCP 工具 `react_review_hooks` |
|
|
49
|
+
| 组件拆分: | 调用 MCP 工具 `react_refactor_component` |
|
|
50
|
+
| 新建组件: | 调用 MCP 工具 `react_new_component` |
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: devflow:start
|
|
3
|
+
description: 启动 DevFlow 服务端(API + Dashboard),显示访问信息
|
|
4
|
+
required_mcp_tools: []
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# DevFlow Start
|
|
8
|
+
|
|
9
|
+
启动 DevFlow 开发环境。使用 `npx devflow start` 命令,无论在哪个目录下调用都能正确启动 DevFlow 服务。
|
|
10
|
+
|
|
11
|
+
## 执行步骤
|
|
12
|
+
|
|
13
|
+
1. **使用 npx devflow start 启动**
|
|
14
|
+
```bash
|
|
15
|
+
npx devflow start
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
Server 启动后同时提供:
|
|
19
|
+
- REST API(默认端口 13337)
|
|
20
|
+
- Dashboard(由 Server 在同一端口提供静态文件服务)
|
|
21
|
+
|
|
22
|
+
2. **显示启动信息**
|
|
23
|
+
服务启动后,显示以下信息:
|
|
24
|
+
|
|
25
|
+
```
|
|
26
|
+
╔═══════════════════════════════════════════════════════════╗
|
|
27
|
+
║ DevFlow Started! ║
|
|
28
|
+
╠═══════════════════════════════════════════════════════════╣
|
|
29
|
+
║ Server + Dashboard: http://localhost:13337 ║
|
|
30
|
+
║ ║
|
|
31
|
+
║ Press Ctrl+C to stop ║
|
|
32
|
+
╚═══════════════════════════════════════════════════════════╝
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
3. **保持运行**
|
|
36
|
+
- `devflow start` 会持续运行直到 Ctrl+C
|
|
37
|
+
- API 和 Dashboard 由 CLI 统一管理生命周期
|
|
38
|
+
|
|
39
|
+
## 注意事项
|
|
40
|
+
|
|
41
|
+
- Server 和 Dashboard 共用端口 13337(Dashboard 作为静态文件由 server 提供)
|
|
42
|
+
- 使用 `npx devflow start` 从任意目录启动,不依赖当前工作目录
|
|
43
|
+
- 如果端口被占用,提示用户 `lsof -i :13337` 检查
|
|
44
|
+
|
|
45
|
+
## 故障排除
|
|
46
|
+
|
|
47
|
+
如果启动失败:
|
|
48
|
+
1. 检查端口是否被占用:`lsof -i :13337`
|
|
49
|
+
2. 确认 devflow 已安装:`npx devflow --version`
|
|
50
|
+
3. 如需后台运行:`npx devflow start --background`
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: devflow:tailwind
|
|
3
|
+
description: Tailwind 专家 — 响应式设计、主题定制、Purge 检查、Utility 审查
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# 🌊 TAILWIND
|
|
7
|
+
|
|
8
|
+
你是一个 Tailwind CSS 专家。使用 utility-first 方法构建界面。遇到问题先查 Tailwind 官方文档。
|
|
9
|
+
|
|
10
|
+
## 适用场景
|
|
11
|
+
|
|
12
|
+
**新建 Tailwind 组件:语义结构 → 样式 → 响应式 → 暗色模式**
|
|
13
|
+
|
|
14
|
+
**Utility 审查:清除自定义 CSS → 统一为 Tailwind utility**
|
|
15
|
+
|
|
16
|
+
**主题迁移:分析现有设计 → 提取 Design Token → 生成配置**
|
|
17
|
+
|
|
18
|
+
## 核心规则
|
|
19
|
+
|
|
20
|
+
- 优先使用 Tailwind utility classes,避免自定义 CSS
|
|
21
|
+
- 使用 Tailwind 响应式断点(sm/md/lg/xl/2xl)
|
|
22
|
+
- 颜色和间距从 theme 配置中引用
|
|
23
|
+
- 复杂样式使用 @apply 抽取
|
|
24
|
+
- 使用 class 策略实现暗色模式
|
|
25
|
+
- 避免内联 style 和自定义 CSS
|
|
26
|
+
- 不确定 class 名称时先查 Tailwind 官方文档
|
|
27
|
+
|
|
28
|
+
## 当前版本
|
|
29
|
+
|
|
30
|
+
- tailwind-docs: 3.4.0 — https://tailwindcss.com/docs
|
|
31
|
+
|
|
32
|
+
## 工作流
|
|
33
|
+
|
|
34
|
+
| 场景 | 触发方式 |
|
|
35
|
+
|------|----------|
|
|
36
|
+
| 新建 Tailwind 组件:语义结构 → 样式 → 响应式 → 暗色模式 | 调用 MCP 工具 `tailwind_new_component` |
|
|
37
|
+
| Utility 审查:清除自定义 CSS → 统一为 Tailwind utility | 调用 MCP 工具 `tailwind_audit:utility` |
|
|
38
|
+
| 主题迁移:分析现有设计 → 提取 Design Token → 生成配置 | 调用 MCP 工具 `tailwind_migrate:theme` |
|