Skip to content

Commit 478fe1e

Browse files
author
茉莉蜜猹
committed
docs: 添加Dragonfly双仓库推送Skill实施计划
1 parent c2c7933 commit 478fe1e

File tree

1 file changed

+219
-0
lines changed

1 file changed

+219
-0
lines changed
Lines changed: 219 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,219 @@
1+
# Dragonfly双仓库推送Skill实施计划
2+
3+
## 一、概述
4+
5+
创建一个全局skill (`dragonfly-dual-push`),实现智能的双仓库推送功能,支持代码变更分析、自动检查测试、提交信息生成和双仓库推送。
6+
7+
## 二、Skill基本信息
8+
9+
- **Skill名称**: dragonfly-dual-push
10+
- **存放位置**: `/Users/yangjiale/.codefuse/fuse/skills/dragonfly-dual-push/`
11+
- **触发方式**:
12+
- 关键词自动触发: "推送"、"推送代码"、"双仓库推送"、"push"、"提交并推送"
13+
- 手动调用: 通过Skill工具直接调用
14+
15+
## 三、目录结构
16+
17+
```
18+
/Users/yangjiale/.codefuse/fuse/skills/dragonfly-dual-push/
19+
├── SKILL.md # Skill定义文档(必需)
20+
├── package.json # npm包配置(必需)
21+
├── index.js # 主入口文件(必需)
22+
├── README.md # 使用说明文档
23+
├── utils/ # 工具模块目录
24+
│ ├── git.js # Git操作封装
25+
│ ├── analyzer.js # 代码变更分析
26+
│ ├── checker.js # 代码检查和测试
27+
│ └── pusher.js # 双仓库推送逻辑
28+
└── .gitignore # Git忽略配置
29+
```
30+
31+
## 四、核心功能实现
32+
33+
### 4.1 代码变更分析 (utils/analyzer.js)
34+
- 使用`git diff``git status`获取改动文件列表
35+
- 分析变更类型:新增/修改/删除
36+
- 智能识别文件类型并建议提交类型:
37+
- 源代码文件 → feat/fix/refactor
38+
- 测试文件 → test
39+
- 文档文件 → docs
40+
- 配置文件 → chore
41+
- 生成变更摘要统计
42+
43+
### 4.2 代码检查和测试 (utils/checker.js)
44+
- **Lint检查**: 执行`yarn lint`,解析输出结果
45+
- **测试执行**: 执行`yarn test`,收集测试结果
46+
- **Husky集成**: 可选择跳过或手动触发pre-commit钩子
47+
- **用户交互**: 检查失败时询问用户是否继续执行
48+
- **结果展示**: 清晰展示检查结果和建议
49+
50+
### 4.3 提交信息生成 (在index.js中实现)
51+
- 基于代码变更分析生成建议的提交信息
52+
- 遵循Conventional Commits规范
53+
- 格式: `<type>: <subject>`
54+
- 提供中文和英文两个版本
55+
- 用户可以查看、编辑或完全自定义
56+
- 使用commitlint验证最终格式
57+
58+
### 4.4 双仓库推送 (utils/pusher.js)
59+
- **目标仓库**:
60+
- origin: https://github.com/dragonflyoss/console.git
61+
- alipay: git@code.alipay.com:yjl516914/Dragonfly-console.git
62+
- **推送策略**: 智能选择(根据网络情况和推送结果)
63+
- 默认串行推送(origin → alipay)
64+
- 失败时暂停,提示用户选择重试或跳过
65+
- 支持部分成功场景(一个成功、一个失败)
66+
- **分支处理**: 推送当前分支,自动创建远程分支
67+
- **状态验证**: 推送前验证仓库连接和认证状态
68+
69+
## 五、执行流程
70+
71+
```
72+
1. 前置检查
73+
├─ 验证Git仓库状态
74+
├─ 检查Node.js和yarn版本
75+
└─ 验证远程仓库配置
76+
77+
2. 代码变更分析
78+
├─ 获取改动文件列表
79+
├─ 分析变更类型和影响范围
80+
└─ 生成变更摘要
81+
82+
3. 代码检查和测试
83+
├─ 执行yarn lint
84+
├─ 执行yarn test
85+
└─ 失败时询问用户是否继续
86+
87+
4. 提交信息生成
88+
├─ 基于变更分析生成建议信息
89+
├─ 展示给用户确认/修改
90+
└─ commitlint格式验证
91+
92+
5. Git提交操作
93+
├─ 添加改动文件到暂存区
94+
├─ 执行git commit
95+
└─ 验证提交结果
96+
97+
6. 双仓库推送
98+
├─ 推送到origin (GitHub)
99+
├─ 推送到alipay (内部仓库)
100+
├─ 智能处理推送失败
101+
└─ 汇总推送结果
102+
```
103+
104+
## 六、关键技术点
105+
106+
### 6.1 用户交互设计
107+
- 使用彩色输出(chalk)提升可读性
108+
- 使用进度动画(ora)展示执行进度
109+
- 交互式问答(inquirer)收集用户输入
110+
- 清晰的步骤指引和结果反馈
111+
112+
### 6.2 错误处理机制
113+
- 前置检查失败:立即停止并给出具体提示
114+
- 检查失败:询问用户是否继续(强制模式)
115+
- Git操作失败:回滚已执行的操作
116+
- 推送失败:记录失败原因,提供重试选项
117+
- 详细的错误日志和修复建议
118+
119+
### 6.3 配置灵活性
120+
- 支持项目级配置文件(可选)
121+
- 支持命令行参数覆盖默认配置
122+
- 提供合理的默认行为
123+
- 可配置检查项和推送策略
124+
125+
## 七、SKILL.md Frontmatter配置
126+
127+
```yaml
128+
---
129+
name: dragonfly-dual-push
130+
version: "1.0.0"
131+
description: Dragonfly项目双仓库推送助手 - 智能分析代码变更、执行检查测试、生成提交信息并推送到GitHub和内部代码仓库
132+
author: CodeFuse Team
133+
categories:
134+
- Git
135+
- CI/CD
136+
- Development
137+
keywords:
138+
- 推送
139+
- 双仓库推送
140+
- 推送代码
141+
- push
142+
- 提交并推送
143+
- dual push
144+
- git push
145+
allowed-tools:
146+
- Bash
147+
- Read
148+
- Write
149+
- Edit
150+
- AskUserQuestion
151+
- TodoWrite
152+
- Grep
153+
- Glob
154+
---
155+
```
156+
157+
## 八、实施步骤
158+
159+
### 阶段一:基础框架搭建
160+
1. 创建skill目录结构
161+
2. 编写SKILL.md文档(包含frontmatter和详细说明)
162+
3. 创建package.json配置(声明依赖和脚本)
163+
4. 实现index.js主入口框架
164+
165+
### 阶段二:核心功能模块
166+
1. 实现utils/git.js(Git基础操作封装)
167+
2. 实现utils/analyzer.js(代码变更分析)
168+
3. 实现utils/checker.js(代码检查和测试)
169+
4. 实现utils/pusher.js(双仓库推送逻辑)
170+
171+
### 阶段三:流程整合
172+
1. 整合各个功能模块到index.js
173+
2. 实现完整的执行流程
174+
3. 添加用户交互和进度反馈
175+
4. 实现错误处理和日志记录
176+
177+
### 阶段四:测试和优化
178+
1. 在实际console项目中测试skill
179+
2. 验证所有功能模块正常工作
180+
3. 测试各种错误场景的处理
181+
4. 优化用户交互体验
182+
5. 完善README.md文档
183+
184+
## 九、关键文件清单
185+
186+
需要创建/修改的文件:
187+
- `/Users/yangjiale/.codefuse/fuse/skills/dragonfly-dual-push/SKILL.md`
188+
- `/Users/yangjiale/.codefuse/fuse/skills/dragonfly-dual-push/package.json`
189+
- `/Users/yangjiale/.codefuse/fuse/skills/dragonfly-dual-push/index.js`
190+
- `/Users/yangjiale/.codefuse/fuse/skills/dragonfly-dual-push/README.md`
191+
- `/Users/yangjiale/.codefuse/fuse/skills/dragonfly-dual-push/utils/git.js`
192+
- `/Users/yangjiale/.codefuse/fuse/skills/dragonfly-dual-push/utils/analyzer.js`
193+
- `/Users/yangjiale/.codefuse/fuse/skills/dragonfly-dual-push/utils/checker.js`
194+
- `/Users/yangjiale/.codefuse/fuse/skills/dragonfly-dual-push/utils/pusher.js`
195+
- `/Users/yangjiale/.codefuse/fuse/skills/dragonfly-dual-push/.gitignore`
196+
197+
## 十、依赖说明
198+
199+
**必需依赖**:
200+
- `simple-git`: Git操作封装
201+
- `chalk`: 终端输出美化
202+
- `ora`: 加载动画效果
203+
- `inquirer`: 交互式命令行界面
204+
- `commander`: 命令行参数解析
205+
206+
**devDependencies**:
207+
- 无特殊要求,使用Node.js >=14即可
208+
209+
## 十一、预期效果
210+
211+
使用该skill后,用户可以通过以下方式轻松推送代码:
212+
213+
1. **关键词触发**: 发送"推送代码"或"push"即可触发
214+
2. **自动化流程**: 自动分析、检查、生成提交信息、推送
215+
3. **用户确认**: 关键步骤提供用户确认和修改机会
216+
4. **双仓库支持**: 一次操作推送到GitHub和内部仓库
217+
5. **错误恢复**: 智能处理错误,提供恢复选项
218+
219+
整个过程将大幅简化推送操作,同时保持代码质量和规范性。

0 commit comments

Comments
 (0)