taskmanager/.claude/commands/gitea/process-issue.md
bojunC 38c5a466cd feat: 实现 Issue #1 - 项目初始化和环境配置
- 创建 monorepo 结构(Turborepo)
- 初始化前端项目(Next.js + TypeScript + Tailwind CSS)
- 初始化后端项目(NestJS + TypeScript)
- 配置开发工具(ESLint, Prettier, VS Code)
- 创建项目文档(README, 开发规范)

Closes #1
2026-03-19 16:14:26 +08:00

249 lines
5.8 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: gitea-process-issue
description: 手动处理单个 Issue
arguments:
- name: issue_number
description: Issue 编号
required: true
---
手动处理指定的 Issue启动 Agent 实现代码和创建 PR。
## 工作流程
### 第一步:获取 Issue 详情
依据 `.claude/commands/gitea/API-QUICK-REFERENCE.md` 文档中的 Issue 操作指南获取 Issue 详情。
### 第二步:解析 Issue 信息
从 Issue 提取:
- 标题和描述
- 标签(类型、优先级)
- 依赖关系(从描述中解析)
### 第三步:检查依赖
解析 Issue 描述中的依赖标记:
```markdown
## 依赖关系
- 前置 Issue: #1, #2
```
依据 `.claude/commands/gitea/API-QUICK-REFERENCE.md` 文档中的 Issue 操作指南检查前置 Issue 是否已完成。
### 第四步:启动 Code Agent
使用 Agent 工具启动 general-purpose Agent 处理 Issue。
**Agent 提示词模板**
```
处理 Gitea Issue #${issue_number}
## Issue 信息
标题: ${issue_title}
描述: ${issue_body}
标签: ${labels}
## 工作流程
### 1. 准备工作
首先检查当前 Git 状态:
```bash
git status
git branch
```
### 2. 创建特性分支
```bash
git checkout main
git pull origin main
git checkout -b feature/issue-${issue_number}
```
### 3. 分析需求
仔细阅读 Issue 描述,理解需要实现的功能。
### 4. 探索现有代码
使用 Glob 和 Grep 工具了解项目结构:
- 查找相关的源代码文件
- 了解现有的代码组织方式
- 识别可以复用的模块
### 5. 增量式实现代码
重要原则:
- 只实现 Issue 要求的功能
- 不重复已有代码
- 遵循项目代码规范
- 保持代码简洁
使用 Read 工具读取现有代码,然后使用 Edit 或 Write 工具添加新代码。
### 6. 生成测试代码
根据功能特点生成适当的测试:
- 对于数据模型:单元测试
- 对于业务逻辑:单元测试 + 集成测试
- 对于 UI 组件UI 测试(如果适用)
测试文件命名规范:
- 单元测试: `Tests/Editor/{ClassName}Tests.cs`
- 集成测试: `Tests/Integration/{FeatureName}Tests.cs`
### 7. 运行测试(如果有测试框架)
```bash
# 如果是 Unity 项目,使用 Unity Test Runner
# 如果有其他测试框架,运行相应命令
```
如果测试失败:
- 分析失败原因
- 修复代码
- 重新运行测试
- 重复直到测试通过
### 8. 提交代码
```bash
git add .
git commit -m "feat(${module}): 实现 Issue #${issue_number} - ${feature_name}
- 实现了 XXX 功能
- 添加了 YYY 测试
- 修复了 ZZZ 问题
Closes #${issue_number}"
```
### 9. 推送到远程
```bash
git push -u origin feature/issue-${issue_number}
```
### 10. 创建 Pull Request
依据 `.claude/commands/gitea/API-QUICK-REFERENCE.md` 文档中的 Pull Request 操作指南创建 PR。
### 11. 在 Issue 中添加评论
依据 `.claude/commands/gitea/API-QUICK-REFERENCE.md` 文档中的 Issue 评论操作指南在 Issue 中添加评论说明已创建 PR。
## 重要提示
1. **增量式开发**: 不要重新生成整个项目,只添加新的功能
2. **测试覆盖**: 必须生成测试代码,测试覆盖率目标 > 80%
3. **代码质量**: 遵循项目代码规范,保持代码整洁
4. **原子提交**: 每次提交应该是一个完整的、可工作的变更
5. **PR 描述**: PR 描述应该清晰说明变更内容和测试结果
## 错误处理
- 如果依赖未满足:报告并退出
- 如果分支已存在:询问是否继续或使用新分支名
- 如果测试失败:分析失败原因,修复代码,重试
- 如果 PR 创建失败:报告错误并建议手动创建
```
### 第五步:等待 Agent 完成
使用 TaskOutput 监控 Agent 的执行进度和结果。
### 第六步:报告结果
显示处理结果:
- 创建的分支名称
- 创建的 PR 编号
- 测试结果
- 下一步建议
## 示例输出
```
🔧 处理 Issue #3
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✅ 获取 Issue 详情
• 标题: [功能] 任务增删改查核心功能
• 标签: 功能, 优先级:中
• 依赖: Issue #2
✅ 检查依赖
• Issue #2: ✅ 已完成
🤖 启动 Code Agent
• 分支: feature/issue-3
• Agent ID: agent-xyz789
⏳ Agent 工作中...
[Agent 输出会实时显示]
✅ Agent 完成
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📋 处理结果:
✅ 分支创建成功: feature/issue-3
✅ 代码实现完成: 5 个文件
✅ 测试通过: 12/12
✅ Pull Request 创建: #3
✅ Issue 评论已添加
🔗 链接:
• PR: http://192.168.2.200:3000/chen/task-manager-unity/pulls/3
• Issue: http://192.168.2.200:3000/chen/task-manager-unity/issues/3
💡 下一步:
• 等待 PR 审核
• 或使用 /gitea-status 查看状态
```
## 注意事项
1. **依赖检查**: 必须确保依赖 Issue 已完成
2. **分支命名**: 使用 `feature/issue-{number}` 格式
3. **测试要求**: 测试覆盖率必须 > 80%
4. **原子性**: 每个 Issue 应该是一个完整的功能单元
5. **冲突处理**: 如果有冲突,需要手动解决
## 错误场景
### 依赖未满足
```
❌ 无法处理 Issue #3
原因: 依赖 Issue #2 未完成
状态: Issue #2 当前状态为 open
💡 建议:
• 先完成 Issue #2
• 或修改 Issue #3 的依赖关系
```
### 分支已存在
```
⚠️ 分支已存在: feature/issue-3
选项:
1. 继续在现有分支上工作
2. 创建新分支: feature/issue-3-v2
3. 取消操作
请选择: _
```
### 测试失败
```
❌ 测试失败
失败的测试:
• TaskManagerTests.CreateTask_ShouldSetDefaultValues
• TaskManagerTests.DeleteTask_ShouldRemoveFromList
💡 Agent 正在尝试修复...
```
## 相关命令
- `/gitea-status` - 查看项目状态
- `/gitea-start-scheduler` - 启动自动处理
- `/gitea-init-project` - 初始化项目