项目路线图规划技能Skill roadmap

此技能用于创建和管理项目路线图,通过分解项目为里程碑和产品需求文档(PRD),并排序PRD依赖关系,输出结构化JSON文件,便于项目执行、跟踪和团队协作。关键词:项目管理、路线图、里程碑、PRD、依赖排序、JSON输出、敏捷开发、项目规划。

项目管理 0 次安装 0 次浏览 更新于 3/15/2026

名称: 路线图 描述: “创建和管理项目路线图,包括里程碑和PRD队列。在架构定义后用于项目规划。触发条件: 创建路线图、规划里程碑、组织PRD。”

路线图技能

通过创建里程碑和组织PRD到可执行队列来规划项目执行。

工作空间模式说明

在运行于工作空间模式时,所有路径相对于.aha-loop/目录:

  • 愿景分析: .aha-loop/project.vision-analysis.md
  • 架构: .aha-loop/project.architecture.md
  • 路线图: .aha-loop/project.roadmap.json
  • PRD文件: .aha-loop/tasks/

协调器将在提示上下文中提供实际路径。


工作

  1. 读取project.vision-analysis.mdproject.architecture.md
  2. 将项目分解为里程碑
  3. 将每个里程碑分解为PRD
  4. 按依赖关系排序PRD
  5. 输出project.roadmap.json
  6. tasks/中生成初始PRD文件

里程碑策略

标准里程碑结构

里程碑 焦点 目标
M0: 基础 项目脚手架、CI/CD、工具 开发环境就绪
M1: MVP 仅核心功能 最小可用产品
M2: 必需功能 重要功能 基本使用功能完备
M3: 增强 锦上添花的功能 抛光产品
M4: 优化 性能、UX抛光 生产就绪

里程碑规模

每个里程碑应:

  • 在合理时间内可完成
  • 有3-7个PRD(避免过多或过少)
  • 提供可测试的价值
  • 建立在先前里程碑基础上

PRD分解

从功能到PRD

对于每个里程碑,将功能分解为PRD:

里程碑: M1 - MVP
├── PRD-001: 项目脚手架
├── PRD-002: 数据库模式
├── PRD-003: 核心数据模型
├── PRD-004: 基本API端点
└── PRD-005: 最小UI

PRD规模

每个PRD应:

  • 需要1-5次Aha Loop迭代(5-25个故事)
  • 专注于一个连贯的功能区域
  • 可独立测试
  • 不依赖于未完成的PRD

PRD排序

按依赖关系排序PRD:

  1. 基础设施优先 - 项目设置、数据库、认证
  2. 后端先于前端 - API先于使用它们的UI
  3. 核心先于可选 - 必须功能先于锦上添花
  4. 数据先于呈现 - 模型先于视图

路线图JSON结构

{
  "version": 1,
  "projectName": "[来自愿景]",
  "status": "in_progress",
  "currentMilestone": "M1",
  "currentPRD": "PRD-002",
  "createdAt": "[时间戳]",
  "updatedAt": "[时间戳]",
  "milestones": [
    {
      "id": "M0",
      "title": "基础",
      "description": "项目设置和开发环境",
      "status": "completed",
      "completedAt": "[时间戳]",
      "prds": [
        {
          "id": "PRD-001",
          "title": "项目脚手架",
          "description": "初始化项目结构、依赖和工具",
          "status": "completed",
          "prdFile": "tasks/prd-scaffolding.md",
          "stories": 5,
          "completedAt": "[时间戳]"
        }
      ]
    },
    {
      "id": "M1",
      "title": "MVP",
      "description": "具有核心功能的最小可行产品",
      "status": "in_progress",
      "prds": [
        {
          "id": "PRD-002",
          "title": "数据库模式",
          "description": "设计和实施数据库模式",
          "status": "in_progress",
          "prdFile": "tasks/prd-database.md",
          "stories": 8,
          "dependsOn": ["PRD-001"]
        },
        {
          "id": "PRD-003",
          "title": "核心API",
          "description": "实施核心API端点",
          "status": "pending",
          "prdFile": "tasks/prd-core-api.md",
          "stories": 12,
          "dependsOn": ["PRD-002"]
        }
      ]
    },
    {
      "id": "M2",
      "title": "必需功能",
      "description": "完成基本使用的必需功能",
      "status": "pending",
      "prds": []
    }
  ],
  "changelog": [
    {
      "timestamp": "[时间戳]",
      "action": "created",
      "description": "从愿景和架构创建的初始路线图"
    }
  ]
}

路线图创建过程

步骤1: 分析需求

从愿景分析,分类功能:

## 功能分类

### M1: MVP(必须交付)
- [功能1]
- [功能2]

### M2: 必需功能(应该交付)
- [功能3]
- [功能4]

### M3: 增强(锦上添花)
- [功能5]

步骤2: 创建M0基础

每个项目从M0开始:

## M0: 基础PRD

### PRD-001: 项目脚手架
- 使用选定的技术栈初始化项目
- 设置目录结构
- 配置代码检查和格式化
- 设置基本CI(如果适用)
- 创建初始README

### PRD-002: 开发环境
- 数据库设置(如果适用)
- 环境配置
- 开发脚本
- 基本测试基础设施

步骤3: 将里程碑分解为PRD

对于M0之后的每个里程碑:

  1. 列出此里程碑的所有功能
  2. 分组相关功能
  3. 按依赖关系排序
  4. 为每个组创建PRD
  5. 估计每个PRD的故事数

步骤4: 生成PRD文件

对于每个PRD,在tasks/中创建存根文件:

# PRD: [标题]

**ID:** PRD-XXX
**里程碑:** M[N]
**状态:** 待定

## 概述

[来自路线图的简要描述]

## 上下文

[这与先前PRD和整体项目的关系]

## 目标

- [目标1]
- [目标2]

## 用户故事

[当此PRD激活时生成]

## 依赖

- PRD-XXX: [它依赖的内容]

## 验收标准

- [ ] [高层次标准]
- [ ] [另一个标准]

---

*当此PRD成为活动PRD时,将完全扩展。*

动态路线图更新

何时更新路线图

路线图应在以下情况更新:

  1. PRD完成 - 标记为完成,更新时间戳
  2. 发现新需求 - 添加新PRD
  3. 范围变更 - 修改或删除PRD
  4. 找到更好方法 - 重构PRD
  5. 里程碑完成 - 更新状态,移至下一个

更新过程

{
  "changelog": [
    {
      "timestamp": "2026-01-29T12:00:00Z",
      "action": "prd_completed",
      "prdId": "PRD-002",
      "description": "数据库模式已实施"
    },
    {
      "timestamp": "2026-01-29T14:00:00Z",
      "action": "prd_added",
      "prdId": "PRD-007",
      "description": "基于性能研究添加缓存层PRD"
    }
  ]
}

自动触发器

协调器应触发路线图审查:

  • 每次PRD完成后
  • 每次里程碑完成后
  • 当记录到重要学习时
  • 当错误重复发生时

与协调器集成

协调器读取

# 获取当前PRD
jq '.currentPRD' project.roadmap.json

# 获取PRD文件路径
jq -r '.milestones[].prds[] | select(.id == "PRD-002") | .prdFile' project.roadmap.json

协调器更新

PRD完成后:

# 更新PRD状态
jq '.milestones[].prds[] |= if .id == "PRD-002" then .status = "completed" else . end' project.roadmap.json

PRD队列管理

获取下一个PRD

# 伪代码,用于查找下一个PRD
def get_next_prd(roadmap):
    for milestone in roadmap.milestones:
        if milestone.status == "completed":
            continue
        for prd in milestone.prds:
            if prd.status == "pending":
                if all_dependencies_complete(prd):
                    return prd
    return None  # 全部完成或阻塞

处理阻塞的PRD

如果PRD的依赖不满足:

  1. 跳过到下一个可用PRD
  2. 如果没有PRD可用,报告阻塞问题
  3. 考虑是否需要重新优先依赖

示例路线图

项目: 个人财务追踪器(来自愿景示例)

{
  "version": 1,
  "projectName": "财务追踪器",
  "status": "in_progress",
  "currentMilestone": "M0",
  "currentPRD": "PRD-001",
  "milestones": [
    {
      "id": "M0",
      "title": "基础",
      "status": "in_progress",
      "prds": [
        {
          "id": "PRD-001",
          "title": "SvelteKit项目设置",
          "description": "使用TypeScript、Tailwind、PWA支持初始化SvelteKit项目",
          "status": "in_progress",
          "prdFile": "tasks/prd-project-setup.md",
          "stories": 6
        }
      ]
    },
    {
      "id": "M1",
      "title": "MVP - 核心支出追踪",
      "status": "pending",
      "prds": [
        {
          "id": "PRD-002",
          "title": "数据层",
          "description": "使用Dexie实施IndexedDB用于支出存储",
          "status": "pending",
          "prdFile": "tasks/prd-data-layer.md",
          "stories": 8,
          "dependsOn": ["PRD-001"]
        },
        {
          "id": "PRD-003",
          "title": "快速支出输入",
          "description": "快速支出输入表单(< 5秒目标)",
          "status": "pending",
          "prdFile": "tasks/prd-expense-entry.md",
          "stories": 10,
          "dependsOn": ["PRD-002"]
        },
        {
          "id": "PRD-004",
          "title": "支出列表视图",
          "description": "查看和管理记录的支出",
          "status": "pending",
          "prdFile": "tasks/prd-expense-list.md",
          "stories": 8,
          "dependsOn": ["PRD-002"]
        }
      ]
    },
    {
      "id": "M2",
      "title": "报告和PWA",
      "status": "pending",
      "prds": [
        {
          "id": "PRD-005",
          "title": "月度报告",
          "description": "自动生成的月度支出报告",
          "status": "pending",
          "prdFile": "tasks/prd-reports.md",
          "stories": 10,
          "dependsOn": ["PRD-003", "PRD-004"]
        },
        {
          "id": "PRD-006",
          "title": "PWA离线支持",
          "description": "具有服务工作器的完全离线能力",
          "status": "pending",
          "prdFile": "tasks/prd-pwa.md",
          "stories": 8,
          "dependsOn": ["PRD-002"]
        }
      ]
    }
  ]
}

清单

完成路线图前:

  • [ ] 所有里程碑定义明确目标
  • [ ] 为至少M0和M1创建PRD
  • [ ] PRD间的依赖关系映射
  • [ ] 在tasks/中创建PRD存根文件
  • [ ] 路线图JSON验证通过
  • [ ] 当前里程碑和PRD设置正确
  • [ ] 初始化变更日志
  • [ ] 保存到project.roadmap.json