---
description: |
  使用 GTPlanner 生成项目规划和技术架构文档。当用户需要：
  (1) 生成 PRD 或产品需求文档
  (2) 规划项目架构
  (3) 技术选型和推荐
  (4) 创建详细设计文档
  (5) 分析项目可行性
  时触发此 skill。支持中英日西法五种语言。
  触发词："PRD"、"项目规划"、"架构设计"、"技术方案"、"设计文档"。
allowed-tools:
  - Bash
  - Read
  - Write
---

# GTPlanner - AI PRD 生成工具

GTPlanner 是一个 AI 驱动的项目规划工具，可以将用户需求转换为专业的项目规划和技术架构文档。

## 快速开始

### 环境检查

首先确认 GTPlanner 环境已正确配置：

```bash
cd "${CLAUDE_PLUGIN_ROOT}"
uv run python -c "from agent.function_calling.agent_tools import get_agent_function_definitions; print('GTPlanner 环境正常')"
```

### 基本用法

GTPlanner 提供四个核心工具，通过 Python API 调用：

| 工具 | 功能 | 阶段 |
|------|------|------|
| `short_planning` | 需求分析与规划 | 范围确认 |
| `tool_recommend` | 技术栈推荐 | 技术实现 |
| `research` | 深度技术调研 | 技术实现(可选) |
| `design` | 生成设计文档 | 文档生成 |

## 工作流程

### 标准工作流（推荐）

```
1. short_planning (initial)   → 初始需求分析
2. tool_recommend             → 技术栈推荐
3. short_planning (technical) → 技术规划整合
4. research (可选)            → 深度技术调研
5. design (quick/deep)        → 生成设计文档
```

### 简化工作流（简单项目）

```
1. short_planning (initial)   → 需求分析
2. design (quick)             → 快速生成文档
```

## 工具详解

### 1. short_planning - 短期规划

定义和细化项目范围，支持两个阶段：

**参数：**
- `user_requirements` (string, 必需): 用户的原始需求描述
- `improvement_points` (array): 需要改进的点或新需求
- `planning_stage` (string): `initial` 或 `technical`

**调用示例：**

```python
# 初始规划阶段
result = await execute_agent_tool(
    'short_planning',
    {
        'user_requirements': '设计一个博客系统',
        'planning_stage': 'initial'
    },
    shared
)

# 技术规划阶段（在 tool_recommend 之后）
result = await execute_agent_tool(
    'short_planning',
    {
        'user_requirements': '设计一个博客系统',
        'planning_stage': 'technical'
    },
    shared
)
```

### 2. tool_recommend - 工具推荐

基于项目需求推荐平台支持的 API 或库。

**参数：**
- `query` (string, 必需): 查询文本，描述需要的工具功能
- `top_k` (integer): 返回数量，默认 5
- `tool_types` (array): 过滤类型 `["PYTHON_PACKAGE", "APIS"]`
- `use_llm_filter` (boolean): 是否使用 LLM 筛选，默认 true

**调用示例：**

```python
result = await execute_agent_tool(
    'tool_recommend',
    {
        'query': '博客系统需要的数据库和认证工具',
        'top_k': 5,
        'tool_types': ['PYTHON_PACKAGE', 'APIS']
    },
    shared
)
```

### 3. research - 技术调研（可选）

对推荐的技术栈进行深入可行性调研。

**前置条件：** 需要 `JINA_API_KEY` 环境变量

**参数：**
- `keywords` (array, 必需): 调研关键词列表
- `focus_areas` (array, 必需): 调研关注点
- `project_context` (string): 项目背景信息

**调用示例：**

```python
result = await execute_agent_tool(
    'research',
    {
        'keywords': ['FastAPI', 'PostgreSQL', 'JWT认证'],
        'focus_areas': ['技术选型', '性能优化', '最佳实践'],
        'project_context': '博客系统后端开发'
    },
    shared
)
```

### 4. design - 架构设计

生成最终的系统架构方案和设计文档。

**参数：**
- `user_requirements` (string, 必需): 最终确认的项目需求
- `design_mode` (string, 必需):
  - `quick`: 快速设计，适合简单项目
  - `deep`: 深度设计，适合复杂项目

**调用示例：**

```python
result = await execute_agent_tool(
    'design',
    {
        'user_requirements': '博客系统需求...',
        'design_mode': 'quick'
    },
    shared
)
```

## 完整示例

以下是一个完整的 PRD 生成流程：

```python
import asyncio
from agent.function_calling.agent_tools import execute_agent_tool

async def generate_prd(user_requirements: str, use_deep_design: bool = False):
    """生成完整的 PRD 文档"""
    shared = {}  # 状态字典，在工具间传递数据

    # 步骤 1: 初始规划
    print("📋 步骤 1: 初始需求分析...")
    result = await execute_agent_tool(
        'short_planning',
        {
            'user_requirements': user_requirements,
            'planning_stage': 'initial'
        },
        shared
    )
    if not result['success']:
        return f"初始规划失败: {result['error']}"

    # 步骤 2: 工具推荐
    print("🔧 步骤 2: 技术栈推荐...")
    result = await execute_agent_tool(
        'tool_recommend',
        {
            'query': user_requirements,
            'top_k': 5
        },
        shared
    )
    # tool_recommend 可能没有匹配结果，继续执行

    # 步骤 3: 技术规划
    print("📐 步骤 3: 技术规划整合...")
    result = await execute_agent_tool(
        'short_planning',
        {
            'user_requirements': user_requirements,
            'planning_stage': 'technical'
        },
        shared
    )
    if not result['success']:
        return f"技术规划失败: {result['error']}"

    # 步骤 4: 生成设计文档
    design_mode = 'deep' if use_deep_design else 'quick'
    print(f"📝 步骤 4: 生成设计文档 ({design_mode} 模式)...")
    result = await execute_agent_tool(
        'design',
        {
            'user_requirements': user_requirements,
            'design_mode': design_mode
        },
        shared
    )
    if not result['success']:
        return f"设计生成失败: {result['error']}"

    # 返回设计文档
    return shared.get('agent_design_document', '')

# 使用示例
if __name__ == "__main__":
    requirements = "设计一个支持 Markdown 的博客系统，包含用户认证和评论功能"
    document = asyncio.run(generate_prd(requirements))
    print(document)
```

## 状态管理

GTPlanner 工具通过 `shared` 字典传递状态，关键状态字段包括：

| 字段 | 说明 | 来源工具 |
|------|------|----------|
| `short_planning` | 规划结果 | short_planning |
| `recommended_tools` | 推荐的工具列表 | tool_recommend |
| `research_findings` | 调研结果 | research |
| `agent_design_document` | 最终设计文档 | design |

## 环境配置

### 必需配置

```bash
# LLM 配置
LLM_API_KEY=your_api_key
LLM_BASE_URL=your_base_url
LLM_MODEL=your_model_name
```

### 可选配置

```bash
# 工具推荐（向量搜索服务）
VECTOR_SERVICE_BASE_URL=your_vector_service_url
VECTOR_SERVICE_INDEX_NAME=document_gtplanner_tools

# 技术调研（Jina Search）
JINA_API_KEY=your_jina_api_key
```

## 多语言支持

GTPlanner 支持以下语言，会自动检测输入语言：

- 中文 (zh)
- 英文 (en)
- 日文 (ja)
- 西班牙文 (es)
- 法文 (fr)

## 常见问题

### Q: design 工具执行失败，提示缺少 short_planning 结果

确保在调用 `design` 之前先调用 `short_planning`，且使用同一个 `shared` 字典。

### Q: tool_recommend 返回空结果

这可能是因为：
1. 向量服务未配置或不可用
2. 没有匹配的工具

空结果是正常情况，可以继续执行后续工具。

### Q: research 工具不可用

需要配置 `JINA_API_KEY` 环境变量。如果没有配置，该工具不会出现在可用工具列表中。

## 参考文档

- [工具参数详解](references/tools.md)
- [完整工作流指南](references/workflow.md)
- [使用示例](references/examples.md)
