
# 追踪是主线

交付一个改动会碰到很多记录：一个工单、迭代里的一个待办、一个分支和一个 PR、几条流水线、一次测试运行、一次交付和它的标签。通常它们分散在四五个工具里，还要有人手动让工单系统跟上代码的进展。Acahti 把它们都放在同一个实例里，于是能把每项工作串成一条线：**追踪（Track）**。

## 流程与阶段

**流程**是被一路跟踪的一项工作。工单、待办、迭代、交付和失败的 Argos 用例各有一条流程。每条流程都沿着同样的八个阶段、按以下顺序前进：

<ol class="rail" aria-label="追踪阶段及其依据">
<li><b>提交</b><span>工单</span></li>
<li><b>规划</b><span>待办、迭代、文档</span></li>
<li><b>进行中</b><span>待办状态</span></li>
<li><b>评审</b><span>PR</span></li>
<li><b>构建</b><span>流水线</span></li>
<li><b>Argos</b><span>Argos 运行</span></li>
<li><b>交付</b><span>交付、标签流水线</span></li>
<li><b>发布</b><span>发布、验证通过的工单</span></li>
</ol>

一条流程显示它的类型所需的阶段（缺陷、需求、待办、运维工作、Argos 用例、迭代），以及其他有依据的阶段。工作管理员可以调整某个类型的模板，也可以在实际情况不同时调整单条流程。阶段和模板详见[追踪](track.md#stages)。

## 证据推动流程

某个阶段的记录出现时，流程就到达这个阶段。每个阶段处于已完成、当前、未开始、失败或已跳过状态，未完成的流程会报告它已经卡了多久。没有人需要让某个状态字段跟上代码：

- **写上工作编号，就会自动关联。** PR 的标题、正文或分支里写了 `todo#123`、`ticket#45`、`todo/123` 或 `T-123`，或者流水线的提交、分支或 PR 写了这些编号，它们就会在「评审」和「构建」下加入对应流程。交付的标签流水线显示在「交付」下。
- **Agent 边做边关联。** skill 要求 Agent 在分支和提交里写上待办编号；`planning_todo_links` 可以手动关联 PR、流水线或 Argos 运行。
- **测试结果回传。** 流水线中运行 `argos run … --dash` 的步骤会把运行结果回传到实例；失败的用例会形成自己的流程，从首次失败一直到重新通过。

## 一切都挂在这条线上

追踪读取的正是应用其他部分写入的记录，所以每个标签页都是这条线的某一段：

| 标签页 | 在主线上的位置 |
|---|---|
| [工单](work.md) | 流程在这里被提交，最后在这里被验证 |
| [项目](projects.md)与[迭代](iterations.md) | 工作在这里被规划、交付和发布 |
| [仓库](repos.md) | 分支和 PR：评审 |
| [流水线](pipelines.md) | 构建、部署和标签运行 |
| [Argos](testing.md) | 测试运行，以及作为独立流程的失败用例 |
| [知识库](knowledge.md) | 关联到流程的文档，显示在「规划」下 |
| [看板](board.md) | 所有这些里此刻需要你处理的事 |

## 三种读法

- **单项。** 每个待办和工单页面都有追踪卡片：阶段线，以及每个阶段何时到达、由谁推动、背后有哪些记录的时间线。
- **所有进行中的流程。** 页头的**追踪**按项目列出进行中的工作，显示每条流程的阶段、当前阶段和卡住的时长。
- **一个人。** 「人员」视图显示一个人（或一个 Agent）在最近 7、14 或 30 天推动了什么：工作、提交、PR、评审和流水线。

![合成示例工作区中的追踪](/images/track.png "追踪按项目列出所有进行中的流程，以及它们的阶段、当前阶段和卡住的时长。")

Agent 读取的是同一份数据：`track_get` 返回一条流程，`track_list` 返回进行中的流程，`track_activity` 返回一个人的活动。全部视图、筛选和操作见[追踪](track.md)。
