# progress/

Self-Reporting Pattern 的持久化目录。每个执行层 teammate 在完成任务后 append 一条完整条目到 `progress/<role>.md`，作为底稿；SendMessage 完成报告只是给 product-lead 的摘要。

## 适用对象

强制写入：
- `progress/backend-dev.md`
- `progress/frontend-dev.md`
- `progress/ai-agent-dev.md`
- `progress/ml-engineer.md`
- `progress/miniapp-dev.md`

可选写入（这些角色的产物已落盘到 `docs/{prd,reviews,qa,design,content,growth}/`，不强制）：
- `product-lead` / `code-reviewer` / `qa-engineer` / `tech-lead` / `uiux-designer` / `content-writer` / `growth-analyst` / `miniapp-code-reviewer` / `miniapp-qa-engineer`

## 写入规则

完整条目格式与强制约束见 [`.claude/standards/ac-lifecycle.md`](../.claude/standards/ac-lifecycle.md) 的 "Self-Reporting Pattern" 节，要点：

1. 每完成一个 task 单 append 一段（`## 任务名 - YYYY-MM-DD HH:MM` 开头）
2. 必须含：状态 / 任务类型 / Skills used / **验证命令 + 真实输出** / AC 自验 / 涉及文件 / 下一步
3. 阻塞场景也写（状态写"阻塞"，"下一步"段说明阻塞点 + 已尝试 + 需要什么）
4. 写完 `progress/<role>.md` 之后再 SendMessage 完成报告

## Hook 兜底

`SubagentStop` 与 `TeammateIdle` 触发 [`.claude/hooks/check-progress-file.sh`](../.claude/hooks/check-progress-file.sh)：执行层 role 退出/idle 时，若 `progress/<role>.md` 不存在或无 `## ` 二级标题条目，**exit 2 阻断**。

豁免：当前 team task list 里没有任务分给该 role 时（standby）放行。

## Git 策略

feature 期间进 git，便于跨机器恢复与 PR review。**UAT 签字时**由 product-lead 归档（`cat progress/*.md > docs/qa/<feature>-process-log.md`）+ `git rm progress/*.md`，main 分支上 `progress/` 只保留 `.gitkeep` + `README.md`。详见 [`.claude/agents/product-lead.md` Step 5](../.claude/agents/product-lead.md)。

## 模板

参考 `.claude/standards/ac-lifecycle.md` 「完整条目格式」一节复制粘贴。
