To Tickets 是 agent-skills 流水线中的拆分阶段技能,位置为:wayfinder(决策)→ to-spec(写规格)→ to-tickets(拆工单)→ implement(逐工单构建)。它的目标是把一份 spec 切成若干 tracer-bullet 垂直切片工单,每个工单声明阻塞它的其他工单,是流水线追踪的最小单元。
用途与流程:技能先从对话中收集上下文;若用户提供 spec 路径或无 spec 时的 wayfinder map,则读取其全文与评论。目标为既有代码库时,检查当前状态,沿用项目领域词汇(GLOSSARY.md 或旧版 CONTEXT.md)并遵守相关 ADR;绿地或非代码工作则直接从已有上下文继续。技能还会寻找预重构机会,把“先让改动变容易,再做容易的改动”作为前置工单。
主要能力:把 spec 切成垂直切片工单——每个工单贯穿其所需各层,形成窄但完整的路径(以典型 Laravel 功能为例:migration → model/factory → 行为层 → route → 功能测试),而非单层水平切片;完成的工单可独立演示或验证。每个工单按一次全新 agent 会话的规模设定。有 spec 时,工单引用父级 Build Contract 及所需的其他标题;无 spec 路径则把决策内联进工单。预重构工单排在最前。每个工单标注阻塞边,无阻塞者可立即开始。
宽泛重构是垂直切片的例外,按 expand–contract 排序:expand 增加新形式并存旧形式;migrate 按影响范围分批迁移调用点或数据(数据回填为独立工单);contract 在无调用者后删除旧形式,且是唯一破坏性步骤,由所有 migrate 批次阻塞。若批次无法单独保持绿色,则共享集成分支,全部阻塞一个最终 integrate-and-verify 工单。
使用方式:粒度、阻塞边和切割轴由技能依据规则自行判定,不逐项向用户确认。完成后以编号列表展示:每个工单的标题、被谁阻塞、交付的端到端行为。随后只问一个问题:按列表发布(推荐)还是先调整。仅在获得确认后才发布,向 .scratch/<slug>/tickets/ 每个工单写一个 markdown 文件(无外部追踪器),状态设为 ready-for-agent(或 .agents/triage-labels.md 中的 AFK-ready 角色串),按依赖顺序(阻塞者在前)幂等发布,不关闭或修改父 spec;直接作用于无 spec 的 map 时,将 map.md frontmatter 置为 status: closed。除非 .scratch 被 git 忽略,否则用 git add 与 git commit 提交工单。工单模板为规范格式,包含 title、status、claimed-by、blocked-by、deploy-gate 等 frontmatter,以及 Parent、Parent context、What to build、Acceptance criteria 等章节。文件从 01 起按拓扑序编号,阻塞者编号低于被阻塞者。
适用场景与后续:适用于已有 spec 需要拆成可并行或按序执行的构建工单;需要显式管理依赖与部署门禁(deploy-gate: true 表示必须先单独部署);需要把宽泛重构安全落地。发布后可用 implement 逐个处理前沿工单,或用 implement-spec 并行构建整个图。限制:不创建外部追踪器;不做功能、收费或效果承诺;依赖既有 .agents/issue-tracker.md 与 triage-labels 配置(缺失时建议运行 /setup);直接调用需要已有 spec 或 map 作为输入。