Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsCommunityBlog
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Authors
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

ProTermsPrivacyRefunds
Back to skills

Decomposing For Dispatch

ASecurity

Use after designing a feature, when deciding whether its parts can be built in parallel - produces the contract file that `mnemo dispatch --contract` consumes

2 stars
0 votes
0 copies
0 views
Added 9/28/2026
ai-agentsgogitfrontendbackend

Security Analysis

A100/100

Scanned 9/28/2026

Install to Claude Code

$npx -y skills add xyrlan/mnemo --skill decomposing-for-dispatch --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Decomposing For Dispatch?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Decomposing For Dispatch
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/xyrlan-decomposing-for-dispatch/badge)](https://www.skillsdirectory.com/skills/xyrlan-decomposing-for-dispatch)

More formats (shields.io, HTML) on the badges page.

Files
SKILL.md
---
name: decomposing-for-dispatch
description: Use after designing a feature, when deciding whether its parts can be built in parallel - produces the contract file that `mnemo dispatch --contract` consumes
---

# Decomposing a feature for dispatch

Turn a designed feature into a **contract**: the pieces, and the boundary
between them.

Your input is the conversation you are already in — a brainstorm, a plan, or the
maintainer describing the work out loud. Do not go looking for a plan file;
plain plan mode writes none, and the contract is the durable artifact, not a
copy of something else.

Write the contract to `docs/superpowers/contracts/YYYY-MM-DD-<feature>.md`.
Then stop. Dispatching is the maintainer's decision, not yours.

Nothing reads that directory — `--contract` takes an explicit path, so the
location is a filing convention and not a lookup. It is named here because it
is where every contract in this repo actually lives, next to the specs and
plans the decomposition came out of. An earlier version of this file
prescribed `docs/mnemo/contracts/`, which no contract ever used and which has
never existed in the repository.

## The test

For every pair of candidate pieces, ask:

> Can piece A be written and tested without reading the interior of B?

If no, they are not two pieces. Merge them and ask again.

Two pieces may depend on each other's **signatures** — that is what the contract
records. They may not depend on each other's **internals**.

## `sequential` is a real answer

If the work does not divide, write `verdict: sequential` and say why. That is a
correct outcome, not a failure. A decomposition that always finds a cut produces
only bad merges.

Cutting by area — one piece for the backend, one for the frontend, one for the
tests — almost always fails the test above, because all three land in the same
files. Teams exist because a boundary already does; the boundary does not appear
because you named teams.

## Boundary, not approach

The contract says **where** a piece may work and **what** it must deliver. It
never says **how**.

- Boundary: "only `src/mnemo/core/contracts.py`", "deliver `parse_contract(path) -> Contract`"
- Approach: "use a regex", "subclass `dict`", "cache it"

A child given an approach cannot refuse a wrong one. This has already cost a real
dispatch here (#187): the child was handed a prescribed fix, refused it, and was
right — the instructed change would have caused a large-scale regression.

## Format

```markdown
---
feature: <slug>
created: YYYY-MM-DD
verdict: parallel
---

## <piece-slug>
- **files:** path/one.py, path/two.py
- **exposes:** `literal_signature(arg) -> Type`
- **consumes:** `other_signature(x) -> T` from other-piece
- **model:** haiku
- **effort:** medium
```

Rules the parser enforces — a contract breaking one is refused before any
worktree is created:

- Slugs are lowercase letters, digits and hyphens.
- Every piece declares at least one file.
- Every `consumes` names a piece that exists, and never the consuming piece
  itself.
- `exposes` is a **literal signature**. Other pieces are written against it while
  they wait, so a prose description cannot be delivered against.
- `model` is optional and takes one `--model` value — an alias (`haiku`,
  `sonnet`, `opus`) or a full id. A sentence there is refused.
- `effort` is optional and takes one of `low`, `medium`, `high`, `xhigh`,
  `max`. Anything else is refused.
- `may` is optional and takes `push`, `pr` (push and open the PR) or `none`.
  Omitted, the piece takes `mnemo dispatch --may`, which is `pr` by default.
  `merge` is refused.

Signatures go in backticks; commas inside them are safe. `files` is a plain
comma-separated list.

`model` is the one field about *cost* rather than boundary, and it is
admissible for the same reason `files` is: it says what to spend on a piece,
never how to build it. Name it where a piece's boundary is small and its work
is mechanical — two files, one signature, nothing to decide; leave it off
where the piece has to fit itself around an interface it does not own, and it
will take whatever `mnemo dispatch --model` was given, or the machine's
default. A piece that names one wins over the flag, so a contract's per-piece
judgement survives a blanket typed at the command line. `effort` is the
same kind of field and resolves the same way against `mnemo dispatch
--effort`; leave it off unless the piece plainly needs more or less
reasoning than the dispatch gives.

`may:` is optional and defaults to `pr` — the piece's child publishes its own
pull request. Write `may: none` for a piece that should not become a branch
at all, such as an exploratory spike. `may: merge` is refused: landing belongs
to `mnemo land`.

It is a **permission**, not a budget: what the piece's child may publish once
its suite passes, without stopping to ask. Leave it off and the piece takes
whatever `mnemo dispatch --may` gave the rest, which is `pr` unless the
maintainer said otherwise.

Prose is free-form anywhere except a `##` heading, which the parser reads as a
piece slug — a section like `## Notes` is refused as an unaddressable slug.
Explain the decomposition in the preamble, in a piece's body, or in an HTML
comment. Note that a `- **files:**` bullet written *before* the first `##` is
silently ignored, because it belongs to no piece.

For a commented example that is itself parsed by the parser it documents:

    mnemo dispatch --contract --example

## After writing

Tell the maintainer the file is ready for review, and show the command:

    mnemo dispatch --contract docs/superpowers/contracts/<file>.md --dry-run

Do not run it.

Attribution

xyrlanxyrlan
View sourceMore from xyrlan →
SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Related Skills

Caveman

Ultra-compressed communication mode that cuts output tokens while keeping technical accuracy. Levels: lite, full, ultra and the wenyan variants. Use for /caveman, "caveman mode", "talk like caveman", "be brief" or "less tokens".

1074701 votes

Hyperplan

Adversarial multi-agent planning skill. Self-orchestrates 5 hostile category members (unspecified-low, unspecified-high, deep, ultrabrain, artistry) via team-mode for ruthless cross-critique debate, distills only the defensible insights, then MANDATORILY hands the distilled insight bundle to the `plan` agent for executable plan formalization. Use when planning needs maximum rigor and surfacing of weak assumptions, blind spots, and over-engineering. Triggers: 'hyperplan', 'hpp', '/hyperplan', ...

695601 votes

Mcp Code Execution

Routes multi-tool workflows through MCP servers for large datasets and pipelines. Use when Bash tool overhead is limiting throughput on data-heavy tasks.

3351 votes

catchup

Recovers the conversation and failed tool calls of a previous Codex, Claude Code, Antigravity, Cline, Copilot CLI, Cursor, DeepSeek Harness, Kimi, OpenCode, Pi Agent, or ZCode session. Use when the user says "catch up", "what did the last session do", "get me up to speed", "I switched agents", asks to recover/summarize a previous session before continuing, or asks to diagnose or report a catchup failure. Do NOT use for the current conversation, git history, or any non-agent log.

691 votes

math-skill

A comprehensive mathematical reasoning skill for AI assistants — handles arithmetic to research-level problems with rigorous step-by-step reasoning, systematic verification, and transparent uncertainty handling

381 votes
View all in ai-agents →