Break a plan or spec into vertical slices that each declare what blocks them — use when work is agreed but not yet cut into fileable pieces
60
68%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
Fix and improve this skill with Tessl
tessl review fix ./skills/skill-work-slicing/SKILL.mdHost: Codex CLI — This skill was designed for Claude Code and adapted for Codex. Cross-reference commands use installed skill names in Codex rather than
/octo:*slash commands. Use the active Codex shell and subagent tools. Do not claim a provider, model, or host subagent is available until the current session exposes it. For host tool equivalents, seeskills/blocks/codex-host-adapter.md.
Turn a plan, spec, or the conversation so far into a set of tickets. Each one is a vertical slice — a narrow but complete path through every layer — and each declares the tickets that block it.
This is the step between "we know what we are building" and "someone can pick up
a piece of it". It does not decide anything: if decisions are still open, run
skill-pressure-test first.
Before slicing, map unresolved decision records and their dependencies. Each record names its question, required evidence, owner, resolution, and unblocked implementation. A dependency cycle withholds ready status until it is recut. Invalidated decisions reopen affected work rather than leaving stale completion.
Adapted from to-tickets in
mattpocock/skills (MIT), retargeted at
this repo's trackers.
skill-pressure-test./octo:parallel, which decomposes into work packages it then
runs. This produces tracker state for humans and future sessions.The plan, spec, or conversation. Optionally a parent epic id to hang the slices under.
Each slice cuts a narrow but complete path through every layer it touches — schema, API, UI, tests. It is not a horizontal slice of one layer.
The first slice through a new area is the tracer bullet: thin, complete, and proves the path exists before anything is built out along it.
For every slice, name the slices that must close first. Only real ordering constraints — not preference, not tidiness. Two slices that merely touch the same file are not blocked on each other; two where one cannot be verified until the other exists are.
Cycles mean the slicing is wrong, not that the tracker needs a workaround. Recut.
This repo has two trackers and they are not interchangeable:
bd (beads) is the system of record for work. bd create --parent=<id>
makes a child; bd dep add <issue> <depends-on> makes a blocking edge;
bd ready lists what is takeable — open, unblocked, and not in progress.gh. Use them when the work is
externally visible or a contributor needs to see it.Put the detail in the ticket body, not in the parent. The parent indexes; the ticket holds.
Use the tracker's atomic claim operation and read ownership back before editing a slice. If the tracker cannot claim atomically, use one integrator and do not treat an assignee read followed by a write as a lock. Never overwrite another owner's claim.
bd is periodically write-blocked by pending Dolt schema migrations, and the
repository rule is explicit: do not run the migration unless you are the
single designated migrator, because migrating a second clone forks the schema
irrecoverably.
When writes are blocked, do not pretend the work was filed and do not silently drop it. Instead:
bd create and bd dep add commands, complete and
in dependency order, so they can be run unmodified once writes return.docs/roadmaps/, which is
the practice this repo already follows.0093dab
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.