.agents/skills/linear-planning/SKILL.md
One idea: the planning session is where the expensive thinking happens, and it evaporates when the session ends. Write it into subtickets while you plan, one subticket per PR you intend to open, so the implementation can be handed to any agent — a cloud agent, a colleague, a session next month — and nothing is lost.
This skill owns the Linear half: whether to plan at all, and what a subticket must contain. It does not own the PR mechanics.
pr-stack-workflow. Read it for the slicing;
this file does not restate it.linear-agent-writes. Read it before your
first write.linear-context-handover.Run the context CLI on the files you are about to change, then read what it finds:
linear-context-handover → reconstruct
its history. Half the design questions have already been answered somewhere in
that chain, and a decision that was already reversed once does not need
proposing again.
The discriminator is in pr-stack-workflow →
Decide whether it needs a stack:
one sentence without an "and", a default or persisted shape that needs a
migration decision, a shared component, a click-path verification. Use that
table; it is the same question.
Two consequences for the tracker specifically:
.md. The plan is the second document, not the first.Create the whole set before any branch exists, so the plan is reviewable as a plan. Each is a subticket of the existing ticket, which needs no permission. If the work has no parent ticket yet, that parent is a top-level ticket — show it and get a yes before filing it, then plan underneath it.
The worked example is the experiments-UI rebuild: 54 commits on one branch became eight subtickets under LFE-15711 and eight chained PRs (#16912–#16919), one to one, in landing order. PR #1 merged while #2–#8 were still in review, which is the whole point of planning it as a stack rather than discovering the split at review time.
The bar is not "a human can follow this". It is: hand it to an agent with no
session history and it can implement it. Six fields, every time — paste-ready
shape in references/subticket-template.md:
98% of column-picker use on this table ends with a score column added (440 of 449 users, 90d). Without this, review re-litigates the design.4/8, branches off #16914, base retargets to main when #16914 lands.An empty field is usually a sign the slice is not understood yet, not a sign the field is optional. Not in scope is the exception — it is empty only when nothing was tempting.
Planning this way uses two of the three permitted write shapes: creating
subtickets, and writing into descriptions. The policy is not restated here —
linear-agent-writes is the authority for
which shapes are allowed, which label stamps each, and what still belongs to a
human.
The two rules you will hit immediately while planning:
AI created and AI edited.Estimates, priorities, assignees and cycle stay unset. Suggest them in your reply instead.
Wrap up with linear-context-handover: the
substantial handover on the parent, short pointers on the leaves, AI edited on
each. The parent's subticket list plus those blocks are exactly what the context
CLI hands the next agent.