Skip to content

Latest commit

 

History

History
165 lines (112 loc) · 4.11 KB

File metadata and controls

165 lines (112 loc) · 4.11 KB

项目管理系统

本文档定义 Heartbeat Framework 的项目管理规范,包括任务生命周期、文件结构和唯一入口原则。


一、核心理念:唯一入口

PROJECTS.md 是项目状态的唯一真相源。

  • 心跳不读其他文件来找任务,只读 PROJECTS.md
  • 禁止在多个地方维护"当前任务追踪"
  • 避免多套并行系统导致状态不一致

状态分散 = 状态丢失。单一入口 = 单一真相。


二、项目优先级

优先级 含义 行为
P0 紧急 每次心跳优先推进
P1 默默推进 有空就做,稳步推进
P2 有空再说 P0/P1 没事时才考虑
P3 备选 几乎不主动推,等用户要求

三、任务生命周期

阶段一:创建任务

  1. 用户下令 或 Agent 自主立项
  2. 创建任务文件: heartbeat/tasks/{project-id}/current.md
  3. 更新 PROJECTS.md: 添加项目条目,设置 status: "active"
  4. 项目 id 命名:英文小写+连字符(如 web-appdata-pipeline

阶段二:执行任务

  1. 心跳时通过 PROJECTS.md 找到 active 项目
  2. 读取对应的 current.md,按里面的阶段和铁律执行
  3. 每次心跳推进一点,记录日志
  4. 遇到需要用户决策的问题 → 暂停,发消息问

阶段三:完成任务

  1. 任务文件里的所有阶段全部完成
  2. 发消息给用户,提交验收
  3. 用户确认完成 → 更新 PROJECTS.md(status: "done"
  4. 归档到 heartbeat/tasks/archive/

阶段四:搁置/暂停

  1. 更新 PROJECTS.md(status: "paused"
  2. 在项目的 notes 里说明暂停原因

四、PROJECTS.md 格式规范

# 项目追踪

## Active Projects

### [P0] 项目名称
- **ID:** project-id
- **Status:** active
- **Task File:** heartbeat/tasks/project-id/current.md
- **Next Step:** 当前推进到哪了
- **Notes:** 备注

### [P1] 项目名称
...

## Paused Projects
- project-id: 暂停原因

## Done Projects
- project-id: 完成日期

五、任务文件规范

每个项目的 current.md 必须包含以下结构:

# {任务名} - 当前任务

## 项目概述
(一句话说明目标)

## 铁律
(这个项目的红线,违反就停止执行)

## 阶段X:{阶段名}
- [ ] 步骤1
- [ ] 步骤2
...

## 状态
当前在哪个阶段,上次推进到哪了

## 成本/预算
(如有)

铁律说明

铁律是项目的绝对约束,违反就立即停止执行。

示例:

  • "禁止在没有测试环境的情况下编写代码"
  • "禁止使用特定模型执行此类任务"
  • "任何对外发布的内容必须先经用户确认"

六、任务完成后的清理流程

触发条件: 用户验收通过,项目 status 改为 "done"

清理步骤:

  1. 读取任务文件 heartbeat/tasks/{id}/current.md 的全部内容
  2. 将关键成果整合到当天记录
  3. 删除任务文件夹 heartbeat/tasks/{id}/
  4. PROJECTS.md 中该项目已标记为 done,无需额外操作

暂不删除的情况:

  • status: "paused" 的项目 → 保留任务文件夹
  • 用户明确要求保留

七、心跳与项目管理的交互

心跳触发
  ↓
读取 PROJECTS.md
  ↓
找 status: "active" 的项目
  ├─ 找到 → 按 priority 排序 → 选最高的 → 读 current.md → 执行
  └─ 没找到 → 进入自由时光
  ↓
执行完毕 → 更新 PROJECTS.md 的 next_step → 记录日志

关键:心跳不需要读任务规则文件来获取"当前做什么"。项目怎么执行全写在各项目的 current.md 里。


八、常见问题

Q: 能不能在多个地方追踪同一个项目的状态?

A: 不行。PROJECTS.md 是唯一入口。多套系统并行 = 状态不一致 = 灾难。

Q: 如果一个项目卡住了怎么办?

A: 发消息给用户说明卡点,暂停该项目(status: "paused"),等用户决策后恢复。

Q: 心跳推进了项目但没做完,下次心跳怎么知道从哪接着做?

A: current.md 的"状态"字段记录了上次推进到哪了,PROJECTS.md 的 next_step 也有记录。