AFK
在单次会话中驱动 Gracie 作品集网站直至完成:反复找出所有无需人类输入即可实施的工单,将每个工单一路推进到 Done 状态,并集成结果 —— 一轮接一轮 —— 直到没有剩余工单。手动测试只在最后进行一次,针对整个项目的统一指南,而不是每个工单单独测试。
前沿工单
当工单带有 ready-for-agent 标签,且其所有 blocked_by 依赖项所指向的文件都已位于 .../Done/ 中时,该工单即为前沿工单。从 .gracie-vault/Projects/gracie-portfolio/issues/Ready/ 计算得出;仅当 Ready/ 中没有符合条件的工单时,才从 Backlog/ 中计算。前沿工单不需要人类提供任何输入 —— 它们可以安全地并行交给子代理,因为它们之间没有阻塞关系。
步骤
- 阅读知识摘要:运行
scan-knowledge.sh .gracie-vault/Knowledge(来自knowledge技能);提取最相关的要点。 - 计算前沿工单(参见上文):优先从
Ready/计算,如果Ready/中没有符合条件的工单,则从Backlog/计算。 - 前沿工单为空?
Backlog/中包含未标记为ready-for-agent的工单:这些工单需要/triage才能处理。报告数量并停止。Backlog/也为空(或其中所有剩余工单均被阻塞):项目已完成 —— 跳至步骤 8。
- 在一条消息中调度整个前沿工单集合 —— 每个工单分配一个子代理,每个子代理使用
isolation: worktree。并行调度是安全的,因为前沿工单之间不会相互阻塞。告知每个子代理在其隔离的副本中执行以下操作:- 端到端运行
/slice <ticket>—— 这会将工单推进到Review阶段,并勾选现在成立的验收标准。 - 在
/slice会暂停等待人类输入的地方,改为自行闭环:根据差异重新读取工单的验收标准。每个复选框均已勾选,并且make build/make lint以及make test全部通过,这些就代替了人类审查 —— 将工单从Review移至Done,并提交该移动操作。 - 返回工单名称、其最终状态(
Done,或者如果有复选框未通过则留在Review并注明原因),以及/slice生成的手动测试步骤。
- 端到端运行
- 逐个集成,按调度顺序 —— 当每个子代理报告返回时:合并其工作树分支(包括所有提交,以及
Done的移动操作),然后在集成分支上重新运行make build/make lint,再运行make test,以捕获只有组合时才会出现的问题。使用resolving-merge-conflicts技能解决冲突,切勿使用--abort。合并后删除工作树。将报告的手动测试步骤追加到一个持续运行的项目级列表中,并按工单名称索引。 - 落后者。 留在
Review中的工单 —— 验收标准未勾选、子代理无法修复的失败验证、或在切片过程中遇到的人机交互(HITL)阻塞 —— 是落后者,而不是本轮重试的目标。将其留在原处,将其添加到持续运行的落后者列表中并注明原因,然后继续;它仍然会合并(步骤 5),因此其差异不会丢失。 - 重新计算前沿工单 —— 已合并到
Done/中的工单可能会解除其他工单的阻塞 —— 然后转到步骤 4。 - 编写手动测试指南。 一个文件,
.gracie-vault/Projects/gracie-portfolio/MANUAL-TESTING.md:每个Done工单一个章节(名称、链接、收集的步骤),外加一个简短的端到端项目范围测试,前提是这些工单涉及相关领域。这是人类唯一的手动测试入口 —— 无需每个工单单独测试。提交它,然后报告:所有已交付到Done的内容、落后者列表,以及对指南的引用。