skill-work-slicing
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
- License 许可
- Apache-2.0
- 最近更新
- 2026-11-13
- Stars
- ★ 1.6k
- Forks
- 483
01 前言 Front Matter
- name
- skill-work-slicing
- description
- 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
- disable-model-invocation
- true
02 资源文件 1
- 参考文档agents/openai.yaml171 B
03 SKILL.md 正文
Host: 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.
Work Slicing
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.
When To Use
- A plan or spec exists and needs cutting into fileable work.
- A tracking epic is too big to claim and needs children.
- Several people or sessions will work in parallel and need boundaries.
When Not To Use
- Decisions are still open. Slicing unresolved work produces tickets that get
reopened. Use
skill-pressure-test. - The work fits one session. File one ticket, or none.
- You want parallel execution across agents right now, with worktrees and
waves. That is
/octo:parallel, which decomposes into work packages it then runs. This produces tracker state for humans and future sessions.
Inputs
The plan, spec, or conversation. Optionally a parent epic id to hang the slices under.
Workflow
1. Slice vertically
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.
- A completed slice is demoable or verifiable on its own.
- Each is sized to fit one fresh context window.
- "Add the database columns" is horizontal and untestable alone. "Store and display the user's timezone, end to end" is vertical.
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.
2. Declare what blocks what
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.
3. File them
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 readylists what is takeable — open, unblocked, and not in progress.- GitHub issues are the public surface, via
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.
4. When bd will not accept writes
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:
- Emit the ready-to-run
bd createandbd dep addcommands, complete and in dependency order, so they can be run unmodified once writes return. - Write them into the plan or a roadmap note under
docs/roadmaps/, which is the practice this repo already follows. - Say plainly, in the output, that nothing was filed and why.
Provider Or Data Priority
- The plan or spec as written.
- The repository, to check whether a slice is already partly built.
- The user, for sizing and priority. Do not invent priorities.
Stop Or Checkpoint Rules
- Stop and recut if any slice cannot be verified on its own.
- Stop if the blocking graph has a cycle.
- Stop before filing if more than about ten slices come out of one plan — that usually means the plan is really several, and filing them all buries the first.
- Confirm the slice list with the user before filing anything. Filing is visible to others and awkward to undo.
Output Contract
- Slice list — title, one-line scope, and what it blocks on.
- Order — which slices are takeable now, and which wait.
- Filed or not filed — ids and links if filed; if not, the exact commands and the reason they were not run.
- Left unsliced — anything in the plan too vague to cut, stated as such rather than forced into a ticket.
Verification
- Every slice is demoable or verifiable alone.
- No slice is a single layer's worth of work.
- The blocking graph is acyclic and every edge is a real constraint.
- If bd was unavailable, the emitted commands run unmodified — check the parent ids and the dependency order.
04 同仓库更多 Skills
migrate-to-e2e
Moves an existing Playwright, Cypress, Selenium, Appium, Detox, Maestro, or TesterArmy suite to e2e one slice at a time, with the old suite running beside the new one until each ported test is proven. Keeps a MIGRATION.md progress file so any later session resumes where the last stopped. Optionally plants a defect to show both suites catch it. Use for /migrate-to-e2e, "migrate our tests to e2e", "port these Maestro flows", "move our TesterArmy tests", or when a project has an e2e config and an older suite still running.
e2e
Writes, runs, and debugs end-to-end tests for web and mobile apps with e2e, the agentic test runner, which mixes agent.act goals with exact locator assertions on a Playwright browser or an iOS or Android device. Also drives a project's running app live over the e2e MCP server to look at a screen, check a UI change, take a screenshot or record a video, and try a locator; and runs bug bashes, parallel e2e explore runs with each bug proven by a repro test. Use when a project depends on e2e or has an e2e.config.ts, when asked for end-to-end, browser, mobile, or agentic UI tests, to check a change in the running app, to QA or bug bash an app or branch, or when an e2e run fails.
create-verification-skill
Generate a project-local verify-<app> skill on top of e2e, so any coding agent can launch the app, check it is worth driving, exercise a feature the way a user does, keep evidence, and bug bash it. Writes the skill, a feature map with one explore charter per feature, and proves it once. Use for /create-verification-skill, "make a verification skill for this repo", or when a project has no scripted way to prove UI behavior.
deja-search
deja-vu memory — search the user's past AI coding sessions with the deja CLI. Holds what they already settled and never wrote into the repo (naming rules, banned or already-tried tools, required checks before merge, preferred values, who owns what). Use before your first edit in a task, before you call a change done or ready to merge, before you recommend a tool, library, design or reviewer, before re-debugging an error that may already be solved, when they say 'didn't we fix this before', 'what did we decide about X' or 'I already have that', and before telling them something on this machine does not exist.
deja-reflect
End-of-session reflection and memory curation with deja-vu. Review what was decided, what commands broke and what repaired them, and record durable project rules or decisions with deja remember so the next session starts with them.
revid
Make, edit, export and post AI videos with Revid (revid.ai) through the Revid MCP server. Use whenever the user wants a short-form or long-form video made (from an idea, a script, a URL, an article, a PDF, a tweet, a product page, their own clips, or a song), wants to find what is going viral on TikTok, YouTube, Instagram or X before making something, wants to edit or re-export an existing Revid project, generate a standalone AI image or clip, make a series episode, or publish and schedule a finished video to connected social accounts. Covers setup (hosted MCP with OAuth, or an API key), the 36 tools, credits, polling and the rules for publishing. Routes to the more specific revid-* skills when one fits.