---
description: '功能开发命令 - 智能规划、设计、实施一体化工作流'
argument-hint: <功能描述> [--plan] [--design] [--execute] [--quick]
# examples:
#   - /feat 用户登录功能                    # 完整流程：规划 → 设计 → 实施
#   - /feat 添加暗色模式 --plan             # 仅生成规划文档
#   - /feat 购物车功能 --design             # 跳过规划，直接设计
#   - /feat 修复表单验证 --quick            # 快速模式，简化流程
#   - /feat --execute                       # 继续执行已有规划
---

# 功能开发命令

> **核心理念**: 规划先行，设计驱动，质量优先

## 使用方法

```bash
/feat <功能描述> [选项]
```

### 选项说明

| 选项 | 说明 |
|------|------|
| `--plan` | 仅生成规划文档，不执行 |
| `--design` | 跳过规划，直接进入 UI 设计 |
| `--execute` | 继续执行已有规划 |
| `--quick` | 快速模式，简化流程 |

---

## 功能描述

$ARGUMENTS

---

## 智能工作流程

### 阶段 0：输入分析

每次收到输入时，首先进行**类型识别**并明确告知：

```
📋 操作类型识别：[需求规划 | 讨论迭代 | 执行实施]
```

**识别标准**：

| 类型 | 触发条件 | 示例输入 |
|------|----------|----------|
| 🆕 需求规划 | 新功能需求、项目构想 | "添加用户认证"、"实现购物车" |
| 🔄 讨论迭代 | 修改、完善已有规划 | "调整一下方案"、"继续讨论" |
| ⚡ 执行实施 | 确认开始实施 | "开始执行"、"按计划实施" |

---

### 阶段 1：需求规划 🆕

**触发**: 识别为新功能需求

**执行流程**:

0. **环境预检查**
   - 验证 `.ccjk/plan/current/` 目录是否存在
   - 检查目录写入权限
   - 如果目录不存在，自动创建
   - 如果权限不足，提示用户修复并提供具体命令

1. **启动规划 Agent** - 使用 Task tool 调用规划专家：
   ```
   Task tool 参数:
   - subagent_type: "general-purpose"
   - description: "功能规划分析"
   - prompt: 读取 ~/.claude/agents/planner.md 的内容作为 system prompt，
             然后分析用户的功能需求: $ARGUMENTS
   ```

2. **生成规划文档** 存储至 `.ccjk/plan/current/`
3. **文档命名**: `功能名称.md`

**规划文档结构**:

```markdown
# 功能规划：[功能名称]

## 📋 概述
- 功能目标
- 预期价值
- 影响范围

## 🎯 功能分解
- [ ] 子功能 1
- [ ] 子功能 2
- [ ] 子功能 3

## 📐 技术方案
- 架构设计
- 数据模型
- API 设计

## ✅ 验收标准
- 功能验收点
- 性能指标
- 测试覆盖

## ⏱️ 实施计划
- 阶段划分
- 时间估算
- 依赖关系
```

---

### 阶段 2：讨论迭代 🔄

**触发**: 用户要求修改或完善规划

**执行流程**:

1. **检索上次规划** 从 `.ccjk/plan/current/` 读取
2. **分析用户反馈** 识别修改点
3. **启动规划 Agent** - 使用 Task tool 重新规划：
   ```
   Task tool 参数:
   - subagent_type: "general-purpose"
   - description: "规划迭代更新"
   - prompt: 读取 ~/.claude/agents/planner.md 的内容作为 system prompt，
             结合已有规划文档和用户反馈进行迭代优化
   ```
4. **版本管理**:
   - 原文件: `功能名称.md`
   - 迭代版本: `功能名称-v2.md`, `功能名称-v3.md`

**迭代记录**:

```markdown
## 📝 迭代历史

### v2 - [时间戳]
- 修改点 1
- 修改点 2

### v1 - [时间戳]
- 初始版本
```

---

### 阶段 3：执行实施 ⚡

**触发**: 用户确认规划完成

**执行流程**:

```
┌─────────────────────────────────────────────────────────┐
│  📋 读取规划文档                                         │
│       ↓                                                 │
│  🔍 识别子任务类型                                       │
│       ↓                                                 │
│  ┌─────────────┬─────────────┬─────────────┐           │
│  │ 前端任务    │ 后端任务    │ 其他任务    │           │
│  │     ↓       │     ↓       │     ↓       │           │
│  │ UI 设计检查 │ 直接实施    │ 直接实施    │           │
│  │     ↓       │             │             │           │
│  │ 无设计？    │             │             │           │
│  │     ↓       │             │             │           │
│  │ UI-UX Agent │             │             │           │
│  └─────────────┴─────────────┴─────────────┘           │
│       ↓                                                 │
│  ✅ 完成并更新状态                                       │
└─────────────────────────────────────────────────────────┘
```

**前端任务特殊处理**:

1. **检查 UI 设计** - 是否存在设计稿
2. **无设计时** - 使用 Task tool 调用 UI-UX-Designer Agent：
   ```
   Task tool 参数:
   - subagent_type: "general-purpose"
   - description: "UI/UX 设计"
   - prompt: 读取 ~/.claude/agents/ui-ux-designer.md 的内容作为 system prompt，
             为当前前端任务提供 UI/UX 设计规范
   ```
3. **设计完成后** - 再进行开发实施

---

## 快捷指令

在功能开发过程中，可使用以下快捷指令：

| 指令 | 说明 |
|------|------|
| `!plan` | 查看当前规划文档 |
| `!status` | 查看任务完成状态 |
| `!next` | 执行下一个子任务 |
| `!pause` | 暂停执行，保存进度 |
| `!design` | 调用 UI-UX-Designer Agent (使用 Task tool) |
| `!test` | 为当前功能生成测试 |

---

## 状态管理

### 任务状态追踪

```markdown
## 📊 执行状态

| 子任务 | 状态 | 进度 |
|--------|------|------|
| 数据模型设计 | ✅ 完成 | 100% |
| API 接口开发 | 🔄 进行中 | 60% |
| 前端页面实现 | ⏳ 待开始 | 0% |
| 单元测试编写 | ⏳ 待开始 | 0% |
```

### 进度可视化

```
整体进度: [████████░░░░░░░░] 50%

✅ 已完成: 2/4 子任务
🔄 进行中: 1/4 子任务
⏳ 待开始: 1/4 子任务
```

---

## 质量保证

### 强制检查点

1. **规划阶段** - 必须包含验收标准
2. **设计阶段** - 前端任务必须有 UI 设计
3. **实施阶段** - 每个子任务完成后更新状态
4. **完成阶段** - 对照验收标准验证

### 代码质量要求

- 遵循项目现有代码风格
- 添加必要的类型定义
- 编写单元测试（覆盖率 > 80%）
- 更新相关文档

---

## 输出规范

### 每次响应格式

```
📋 操作类型：[类型]
📍 当前阶段：[阶段]
📊 整体进度：[进度条]

---

[具体内容]

---

💡 下一步：[建议操作]
```

---

## Plan Mode 上下文同步 🧠

> **重要**: 当规划阶段完成时，自动触发上下文同步

### 规划完成时的操作

当用户确认规划完成（进入执行阶段）时，**必须执行以下步骤**：

1. **保存 Plan 文档**
   - 将完整规划保存到 `.ccjk/plan/current/[功能名称].md`
   - 同时备份到全局目录 `~/.ccjk/plans/`

2. **提取关键信息**
   - 任务列表（用于后续追踪）
   - 关键决策点（用于上下文恢复）
   - 涉及文件列表（用于快速定位）

3. **上下文清理建议**
   - 如果对话已超过 50 条消息，建议用户执行 `/compact`
   - 提示：「规划已保存，建议清理上下文以获得更好的执行体验」

### 上下文恢复

当用户使用 `--execute` 或 `!plan` 时：
- 自动从 `.ccjk/plan/current/` 加载最新规划
- 恢复任务状态和进度
- 无需用户重复描述需求

### 智能提醒

```
💡 上下文管理提示：
- 规划阶段完成后，Plan 文档已自动保存
- 可随时使用 /compact 清理上下文
- 使用 /feat --execute 可恢复执行
```

---

## 开始执行

**功能需求**: $ARGUMENTS

正在分析输入类型并启动相应工作流...
