自动化与脚本
Gitea 仓库敏捷开发工作流编排:用 tea CLI…
适用于 Gitea 托管仓库中需要从任务选择、TDD 实现、审查、PR 到合并及 backlog 更新的结构化开发工作流场景。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 38/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 59/100 ×0.15
适用场景
Gitea 仓库敏捷开发工作流编排:用 特定
解决思路
- 用 `git worktree list` 检测是否存在 worktree,以判断是否有任务进行中。
- 用 `git branch --show-current` 检查当前分支是否匹配 `task/*`,以判断是否处于活跃实现。
- 用 `git status --porcelain` 检测未提交变更,以判断是否正在编码。
- 用 `tea pulls list --state open` 检测开放 PR,以判断是否处于审查中。
- 用 `tea pulls` 并检查 PR 状态,判断 PR 是否已合并以及是否可清理。
- 按状态矩阵决定下一步:无 worktree 且无进行中任务 → IDLE → 运行 `sync`、`next`;worktree 存在且有未提交变更 → IMPLEMENTING → 继续 `implement`;worktree 存在且全部已提交 → READY_REVIEW → `review-code`;PR 打开且 CI 待定 → AWAITING_CI → 等待或处理;PR 打开且 CI 通过 → READY_MERGE → `pr-complete`;PR 已合并且 worktree 存在 → CLEANUP → `pr-complete`。
- 用 `/gitea-workflow` 自动检测状态并从当前位置继续。
- 用 `/gitea-workflow --phase task-cycle`、`--phase daily-morning`、`--phase daily-evening`、`--phase sprint-start` 或 `--phase sprint-end` 启动指定工作流阶段。
- 用 `/gitea-workflow --task TASK-123` 恢复指定任务的工作。
- 用 `/gitea-workflow --dry-run` 预览将执行什么而不实际执行。
- 任务周期 Step 1:运行 `sync --last 1d --dry-run`,检测文档状态与实际项目状态漂移,并输出完成、部分工作和分歧的同步报告。
- 任务周期 Step 2:运行 `next` 查找最高优先级的 ready 任务,输出任务 ID、标题和建议分支名;在 `CHECKPOINT: TASK_SELECTED` 暂停确认;用户接受或选择其他任务;接受后继续实现。
- 任务周期 Step 3:运行 `implement [TASK-ID]`,在隔离 worktree 中创建 worktree、先写测试、实现并验证;输出带通过测试的可用实现;在 `CHECKPOINT: IMPL_COMPLETE` 暂停,展示测试结果和覆盖率;成功后继续审查。
- 任务周期 Step 4:运行 `review-code --uncommitted` 和 `review-tests --uncommitted`,识别质量问题、安全关注和测试缺口,输出带问题和建议的审查报告;在 `CHECKPOINT: REVIEWS_DONE` 展示合并审查结果;如有 critical 问题,必须先处理再继续;如无问题,自动继续到 PR 准备;用户决定现在应用建议还是推迟。
- 任务周期 Step 5(条件执行):运行 `apply-recommendations [review-output]`,立即应用快速修复,将复杂变更推迟为任务;输出已应用修复和创建的后续任务。
- 任务周期 Step 6:运行 `pr-prep`,验证、撰写文档并创建 PR;输出带描述、测试已验证的 PR;在 `CHECKPOINT: PR_CREATED` 展示 PR URL 和 CI 状态;等待 CI 检查完成(手动或通过 API 脚本);CI 通过且获得批准后继续合并;CI 失败则停止并处理问题。
- 任务周期 Step 7:运行 `pr-complete [PR-NUMBER]`,合并 PR、删除分支、移除 worktree 并更新状态;输出任务标记完成和清理完成。
- 任务周期 Step 8:作为 `pr-complete` 的 Phase 6 一部分,更新 epic 文件(任务 → complete)、解除依赖任务的阻塞并更新项目状态;确保 backlog 和项目状态反映实际进度,因为它们是持久 source of truth。
- 每日晨会(约 5 分钟):按顺序运行 `sync --last 1d --dry-run`、`status --brief --sprint`、`groom --ready-only`,输出今日优先级视图。
- 每日收尾(约 10 分钟):按顺序运行 `checklist`、`discovery`、`sync --last 1d`,输出知识保存和状态同步。
- 冲刺开始(约 60 分钟):按顺序运行 `sync --all`、`groom --all`、`plan sprint-goals`、`status --detailed`,输出含 groomed ready backlog 的冲刺计划。
- 冲刺结束(约 90 分钟):按顺序运行 `sync --sprint`、`retrospective`、`audit --scope sprint`、`status --metrics`、`maintenance --deep`,输出冲刺关闭、经验捕获并准备下一冲刺。
- 在每个 checkpoint:1) 总结刚完成的内容;2) 展示关键结果和问题;3) 展示下一步;4) 等待用户输入。
- 处理 checkpoint 响应:`continue`/`proceed`/`yes` → 进入下一步;`stop`/`pause` → 保存状态并退出工作流;`back` → 重新运行上一步;`skip` → 跳过当前步骤(谨慎使用);自定义输入 → 可调整下一步参数。
- 自动继续条件:`IMPL_COMPLETE` 在所有测试通过且构建成功时自动继续;`REVIEWS_DONE` 在无 critical 或 high severity 问题时自动继续;`PR_CREATED` 在 CI 通过(通过 API 验证)且获得所需批准时自动继续。
- 按命令用途调用嵌入命令:`sync` 做现实同步;`groom` 做任务细化;`next` 做任务选择;`implement` 做 TDD 实现;`review-code` 做代码质量审查;`review-tests` 做测试质量审查;`apply-recommendations` 做分类并应用修复;`pr-prep` 做 PR 创建;`pr-complete` 做 PR 合并与清理;`discovery` 做学习捕获;`retrospective` 做工作后分析;`maintenance` 做 context network 清理。
- 需要命令详细说明时查阅 `references/commands/sync.md`、`references/commands/groom.md`、`references/commands/next.md`、`references/commands/implement.md`、`references/commands/review-code.md`、`references/commands/review-tests.md`、`references/commands/apply-recommendations.md`、`references/commands/pr-prep.md`、`references/commands/pr-complete.md`、`references/commands/discovery.md`、`references/commands/retrospective.md`、`references/commands/maintenance.md`。
- 需要状态检测详细算法时查阅 `references/state-detection.md`。
- 需要任务周期详细说明时查阅 `references/phases/task-cycle.md`。
- 需要每日流程详细说明时查阅 `references/phases/daily.md`。
- 需要冲刺流程详细说明时查阅 `references/phases/sprint.md`。
- 需要 checkpoint 详细处理说明时查阅 `references/checkpoint-handling.md`。
- 检查 Gitea CI 状态:使用 `scripts/gitea-ci-status.sh` 通过 Gitea API 查询 commit statuses;手动检查 CI dashboard;在 Gitea UI 检查 PR 是否可合并。
- 使用 Tea CLI 操作 PR/issue:列出开放 PR 用 `tea pulls list --state open`;创建 PR 用 `tea pulls create --title "..." --description "..." --base main --head branch`;查看 PR 用 `tea pulls`;squash 合并用 `tea pulls merge --style squash`;merge 合并用 `tea pulls merge --style merge`;rebase 合并用 `tea pulls merge --style rebase`;批准 PR 用 `tea pulls approve`;列出 issues 用 `tea issues list`。
- 对 tea CLI 不可用的操作使用 API 脚本:`scripts/gitea-ci-status.sh` 检查 CI 状态,`scripts/gitea-pr-checks.sh` 获取 PR 审查/批准状态。
适用边界 · 注意事项
- 不适用于 GitHub 仓库;GitHub 场景应使用 `agile-workflow`。
- 不适用于缺少 `git` worktree 支持、已认证的 `tea` CLI、`context-network/backlog/` 结构、`GITEA_URL`/`GITEA_TOKEN` 环境变量或 task status 文件的场景。
- 不适用于只运行单条具体命令、仅检查状态、只做代码审查、只研究或规划而不实现,或需要并行多任务编排的场景。