把 plan、spec 或当前对话拆成一组 tracer-bullet tickets,每个 ticket 声明 blocking edges,并发布到已配置的 tracker;本地用每 ticket 一个文件中的文本 edge,真实 tracker 用 native blocking links。
64
76%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Low
Low-risk findings worth noting
Fix and improve this skill with Tessl
tessl review fix ./skills/engineering/to-tickets/SKILL.md把 plan、spec 或 conversation 拆成一组 tickets:tracer-bullet vertical slices,每个 ticket 都声明 block 它的 tickets。
Issue tracker 和 triage label vocabulary 应该已经提供;如果没有,运行 /setup-matt-pocock-skills。
使用 conversation context 中已经存在的内容。如果用户把 reference(spec path、issue number 或 URL)作为参数传入,获取并完整读取其 body 和 comments。
如果还没有探索 codebase,先了解 code 当前状态。Ticket title 和 description 应使用项目 domain glossary vocabulary,并遵守相关 ADRs。
寻找 prefactor code、让 implementation 更容易的机会。“Make the change easy, then make the easy change.”
把工作拆成 tracer bullet tickets。
为每个 ticket 给出 blocking edges:它开始前必须完成的其他 tickets。没有 blockers 的 ticket 可以立即开始。
Wide refactors 是 vertical slicing 的例外。 Wide refactor 是一个影响整个 codebase 的 mechanical change,例如 rename column 或 retype shared symbol;一次 edit 会破坏成千上万 call sites,无法让任何 vertical slice 独立保持 green。不要强行做成 tracer bullet;应按 expand–contract 排序。先 expand:在旧形式旁加入新形式,保持一切正常。再按 blast radius 分批迁移 call sites(按 package、directory 等),每批一个 ticket,并被 expand block;旧形式仍存在,因此 CI 每批都保持 green。最后 contract:一旦没有 caller 残留,就在被所有 migrate batches block 的 ticket 中删除旧形式。如果连单独 batches 也不能保持 green,仍保留这个 sequence,但让它们共享 integration branch,并全部 block 最后的 integrate-and-verify ticket;只在最后承诺 green。
把建议的拆分作为 numbered list 展示。每个 ticket 包含:
询问用户:
迭代到用户批准拆分。
发布已批准的 tickets。具体方式取决于 /setup-matt-pocock-skills 配置的 tracker;tickets 相同,只有 blocking edges 的形状不同:
.scratch/<feature-slug>/issues/<NN>-<slug>.md 下每 ticket 写一个文件,按 dependency order(blockers 优先)从 01 编号。每个文件的 “Blocked by” 列出它依赖的 number/title。使用下面的 per-ticket template;每个文件只放一个 ticket,绝不要写成一个 combined file。ready-for-agent triage label;这些 tickets 天生可被 agent 领取。处理 frontier:所有 blockers 都完成的 tickets。纯 linear chain 就是从上到下。
不要 close 或 modify 任何 parent issue。
What to build: 这个 ticket 从用户视角打通的 end-to-end behaviour,而不是逐层 implementation list。
Blocked by: gate 这个 ticket 的 numbers/titles,或 “None — can start immediately”。
Status: ready-for-agent
Tracker 上 parent issue 的 reference(如果来源是 existing issue;否则省略本 section)。
这个 ticket 从用户视角打通的 end-to-end behaviour,而不是逐层 implementation。
无论哪种形式,都避免具体 file paths 或 code snippets;它们很快会过时。例外:如果 prototype 产出的 snippet 比 prose 更精确地编码了 decision(state machine、reducer、schema、type shape),可以内联,并简短说明来自 prototype。只保留 decision-rich parts,不要放 working demo。
f2b2464
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.