---
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 模板
  - 集成测试与构建流程
