Files
monisuo/.agents/skills/monisuo-dev/SKILL.md

538 lines
9.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
name: monisuo-dev
description: Monisuo 项目结构化开发流程技能。用于需求分析、模块化开发、测试验证、构建部署的完整工作流。
---
# Monisuo 开发技能
用于 Monisuo 项目的结构化开发流程,确保代码质量和开发效率。
## 工作流程
```
需求分析 → 模块化开发 → 测试验证 → 构建部署
```
## Phase 1: 需求结构化定义 (Prompt Engineering)
### 目标
将模糊的需求转化为结构化的 Feature Spec 文档。
### 输入
- 用户的需求描述(自然语言)
- 业务场景说明
- 技术约束条件
### 输出
- `docs/features/feature-name.md` - 结构化的功能规格文档
### Feature Spec 模板
```markdown
# [功能名称] 功能规格
## 1. 功能概述
- **功能名称**:
- **优先级**: P0/P1/P2
- **负责人**:
- **预计工期**:
## 2. 业务背景
- 当前痛点
- 解决方案
- 预期收益
## 3. 功能详情
### 3.1 用户故事
作为 [角色],我希望 [行为],以便 [目的]
### 3.2 功能列表
- [ ] 功能点 1
- [ ] 功能点 2
- [ ] 功能点 3
### 3.3 UI/UX 设计
- 页面布局
- 交互流程
- 原型链接
## 4. 技术方案
### 4.1 架构设计
- 前端方案 (Flutter)
- 后端方案 (Spring Boot)
- 数据库设计
### 4.2 API 设计
```
GET /api/endpoint
POST /api/endpoint
```
### 4.3 数据模型
```dart
class Model {
final String id;
// ...
}
```
## 5. 测试用例
- [ ] 正常流程测试
- [ ] 异常流程测试
- [ ] 边界条件测试
## 6. 验收标准
- [ ] 功能完整
- [ ] 测试通过
- [ ] 代码审查
- [ ] 性能达标
## 7. 依赖与风险
- 依赖项
- 潜在风险
- 缓解措施
```
### 执行步骤
1. **需求收集**
```bash
# 与用户确认需求
# 识别关键业务场景
# 明确技术约束
```
2. **创建文档**
```bash
mkdir -p docs/features
touch docs/features/[feature-name].md
```
3. **填充模板**
- 完善用户故事
- 设计 API 接口
- 定义数据模型
- 编写测试用例
4. **评审确认**
- 与用户确认需求理解正确
- 调整优先级和范围
---
## Phase 2: 模块化生成 (Iterative Coding)
### 目标
根据 Feature Spec 分模块实现功能。
### 开发策略
#### 2.1 按模块拆分
```
Feature
├── Frontend (Flutter)
│ ├── UI 组件
│ ├── 状态管理 (Provider)
│ └── API 调用 (Dio)
├── Backend (Spring Boot)
│ ├── Controller
│ ├── Service
│ └── Repository
└── Database
└── Migration Scripts
```
#### 2.2 迭代开发顺序
1. **数据层优先**
- 数据库表结构
- Entity 定义
- Repository 实现
2. **后端 API**
- Controller 接口
- Service 业务逻辑
- 单元测试
3. **前端实现**
- Model 定义
- API Service
- UI 组件
- 状态管理
### 开发命令
```bash
# Flutter 开发
cd flutter_monisuo
flutter pub get
flutter run -d chrome
# 后端开发
cd ../
mvn spring-boot:run
```
### 代码规范
#### Flutter
- 使用 `flutter analyze` 检查代码
- 遵循 Effective Dart 规范
- 使用 Provider 进行状态管理
- 统一使用 AppSpacing, AppRadius, AppColorScheme
#### Spring Boot
- 遵循阿里巴巴 Java 开发手册
- 使用 Lombok 简化代码
- 统一异常处理
- RESTful API 设计
---
## Phase 3: 测试与重构 (Validation & Refactoring)
### 目标
确保代码质量和功能正确性。
### 3.1 使用 Clean Code 技能
```bash
# 应用 clean-code 技能进行代码优化
# 参考: ~/.agents/skills/clean-code/SKILL.md
```
**优化重点**:
- 代码可读性
- 函数复杂度
- 重复代码
- 命名规范
### 3.2 自动化测试
#### API 接口测试
**测试脚本位置**: `tests/api/`
**测试脚本模板**:
```bash
#!/bin/bash
# API 测试脚本
BASE_URL="http://localhost:5010"
TOKEN=""
echo "=== API 测试开始 ==="
# 1. 登录测试
echo "1. 测试登录接口..."
RESPONSE=$(curl -s -X POST "$BASE_URL/api/auth/login" \
-H "Content-Type: application/json" \
-d '{"phone":"13800138000","password":"123456"}')
TOKEN=$(echo $RESPONSE | jq -r '.data.token')
echo "✓ 登录成功Token: ${TOKEN:0:20}..."
# 2. 获取用户信息
echo "2. 测试获取用户信息..."
curl -s -X GET "$BASE_URL/api/user/info" \
-H "Authorization: Bearer $TOKEN" | jq '.'
echo "✓ 获取用户信息成功"
# 3. 更多测试用例...
# TODO: 根据具体功能添加
echo "=== API 测试完成 ==="
```
**运行测试**:
```bash
chmod +x tests/api/test-*.sh
./tests/api/test-feature.sh
```
#### Flutter 单元测试
```bash
cd flutter_monisuo
flutter test
```
### 3.3 Bug 修复循环
```
测试 → 发现 Bug → 修复 → 重新测试 → 通过
```
**修复流程**:
1. 运行测试脚本
2. 记录失败的用例
3. 修复代码
4. 重新运行测试
5. 直到全部通过
### 3.4 代码审查清单
- [ ] 代码符合规范
- [ ] 无硬编码值
- [ ] 错误处理完善
- [ ] 日志记录清晰
- [ ] 测试覆盖完整
- [ ] 性能达标
---
## Phase 4: 构建与部署 (Build & Deploy)
### 目标
构建生产版本并提交代码。
### 4.1 构建命令
#### 后端 (Spring Boot)
```bash
# 清理并打包(跳过测试)
mvn clean package -DskipTests
# 完整构建(包含测试)
mvn clean package
# 只编译检查
mvn compile
```
**输出**: `target/monisuo-*.jar`
**验证构建**:
```bash
# 检查 JAR 文件是否生成
ls -la target/*.jar
# 测试 JAR 可执行性
java -jar target/monisuo-*.jar --spring.profiles.active=dev
```
#### Flutter Web
```bash
cd flutter_monisuo
flutter build web --release --dart-define=ENV=prod
```
**输出**: `flutter_monisuo/build/web/`
#### Admin 后台
```bash
cd monisuo-admin
pnpm install
pnpm build
```
**输出**: `monisuo-admin/dist/`
### 4.2 Git 提交流程
```bash
# 1. 检查变更
git status
git diff
# 2. 添加文件
git add .
# 3. 提交(遵循 Conventional Commits
git commit -m "feat(module): 简短描述
- 详细说明 1
- 详细说明 2
- 详细说明 3
Closes #issue-number"
# 4. 推送到远程
git push origin main
```
### 4.3 提交消息规范
**格式**:
```
<type>(<scope>): <subject>
<body>
<footer>
```
**Type 类型**:
- `feat`: 新功能
- `fix`: Bug 修复
- `docs`: 文档更新
- `style`: 代码格式
- `refactor`: 重构
- `test`: 测试相关
- `chore`: 构建/工具
**示例**:
```
feat(auth): 添加用户登录功能
- 实现手机号+密码登录
- 添加 JWT Token 验证
- 实现自动刷新 Token
Closes #123
```
---
## 项目结构
```
monisuo/
├── .agents/
│ └── skills/
│ └── monisuo-dev/
│ └── SKILL.md # 本文件
├── docs/
│ └── features/ # Feature Specs
│ ├── user-auth.md
│ └── trade-system.md
├── flutter_monisuo/ # Flutter 前端
│ ├── lib/
│ ├── build/web/ # Web 构建产物
│ └── BUILD.md
├── monisuo-admin/ # Vue 管理后台
│ ├── src/
│ └── dist/ # 构建产物
├── src/ # Spring Boot 后端
│ └── main/
├── tests/
│ ├── api/ # API 测试脚本
│ └── e2e/ # 端到端测试
└── README.md
```
---
## 常用命令速查
### Flutter
```bash
flutter pub get # 安装依赖
flutter run -d chrome # 开发模式
flutter analyze # 代码检查
flutter test # 运行测试
flutter build web --release --dart-define=ENV=prod # 生产构建
```
### Admin
```bash
pnpm install # 安装依赖
pnpm dev # 开发模式
pnpm build # 生产构建
```
### Maven
```bash
mvn compile # 编译
mvn test # 运行测试
mvn clean package -DskipTests # 打包(跳过测试)
mvn clean package # 完整打包
mvn spring-boot:run # 运行开发服务
```
### Git
```bash
git status # 查看状态
git add . # 添加所有
git commit -m "message" # 提交
git push origin main # 推送
```
---
## 环境配置
| 环境 | ENV | API 地址 |
|------|-----|----------|
| 生产 | prod | http://8.155.172.147:5010 |
---
## 最佳实践
### 1. 需求阶段
- ✅ 充分理解业务场景
- ✅ 与用户确认需求细节
- ✅ 明确验收标准
- ✅ 评估技术可行性
### 2. 开发阶段
- ✅ 先写测试用例TDD
- ✅ 小步迭代,频繁提交
- ✅ 保持代码简洁
- ✅ 及时重构
### 3. 测试阶段
- ✅ 自动化测试优先
- ✅ 覆盖正常和异常流程
- ✅ 性能测试
- ✅ 安全测试
### 4. 部署阶段
- ✅ 使用生产环境配置
- ✅ 备份数据库
- ✅ 灰度发布
- ✅ 监控告警
---
## 故障排查
### 常见问题
**Q: Flutter Web 构建失败**
```bash
# 清理缓存
flutter clean
flutter pub get
flutter build web --release --dart-define=ENV=prod
```
**Q: API 测试失败**
```bash
# 检查后端服务
curl http://localhost:5010/actuator/health
# 查看日志
tail -f logs/application.log
```
**Q: Git 推送失败**
```bash
# 拉取最新代码
git pull origin main --rebase
# 解决冲突后推送
git push origin main
```
---
## 参考资源
- [Flutter 官方文档](https://flutter.dev/docs)
- [Spring Boot 官方文档](https://spring.io/projects/spring-boot)
- [Conventional Commits](https://www.conventionalcommits.org/)
- [Clean Code 技能](~/.agents/skills/clean-code/SKILL.md)
---
## 版本历史
- **v1.0.0** (2026-03-23) - 初始版本
- 定义四阶段开发流程
- 添加 Feature Spec 模板
- 集成测试与构建流程