agentleFS
adamentwistleadamentwistle/fable-skills/task-decomposition/SKILL.md

task-decomposition

Skill98 starsChanged 2 months agoMITView on GitHub

Planning discipline for multi-step work — acceptance check first, read the terrain, dependency-ordered steps, de-risk the riskiest step early, re-plan on surprise. Use at the start of any task touching 3+ files or steps, for "implement", "build", "migrate" or "add feature" requests, and mid-task when a discovery invalidates the approach. Not for single-file edits with an obvious fix.

18 other projects use a version of this.

Adopted by

Most recently taken up by

The file

We split this skill into the rules it gives an agent

1 rule. 0 are common, 1 is distinctive, and 0 are very specific to this project.

  • 0

    Common

    Most of the 14 edited versions we read keep these.

  • 1

    Distinctive

    This author's own choices. Worth a look.

  • 0

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Read the project instructions (CLAUDE.md, AGENTS.md) for constraints that override defaults.

    line 17

“Common” is measured: kept by at least 6 in 10 of the 14 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Task Decomposition

Weak runs start editing in the first minute and discover the real shape of the task by breaking things. Strong runs spend the first 10–20% of the task front-loading understanding, commit to a sequence, and change the sequence the moment reality contradicts it.

1. Restate the goal as an acceptance check

One or two sentences plus the exact command or observation that proves it: "Done means npm test -- export passes and the CSV opens with headers." Run that check once now. Expected result: it fails or does not exist yet. If it already passes, the task is misunderstood; reread the request. If the request is genuinely ambiguous on a decision the user owns, ask ONE batched set of questions now, not a drip mid-task. Ambiguity you can resolve from the code is yours to resolve.

2. Read the terrain before planning the route

Before proposing steps:

  • Read the project instructions (CLAUDE.md, AGENTS.md) for constraints that override defaults.
  • Open every file you expect to edit, plus one caller or consumer of each. Blast radius is defined by callers, not by the file you were pointed at.
  • Find the last similar change (git log, the newest analog in the tree) and plan to imitate it, not invent.

3. Write the step list, dependency-ordered

3–8 concrete steps, each independently verifiable, ordered so the build stays green as long as possible: types and schemas, then implementations, then call sites, then UI. For each step write the files touched and the command that verifies it. "Verify" without a command is not a step.

More than 8 steps means the task is two tasks; split it into phases and finish one before starting the next. Track the list visibly (todo list) for 3+ steps; mark exactly one step in progress at a time, and run its verification before marking it done.

4. Identify the risky step and de-risk it first

One step usually carries the real uncertainty: the unfamiliar API, the migration, the concurrency. Probe THAT step first with a spike, a dry run, or a one-file prototype, before investing in the safe steps. Discovering step 5 is impossible after finishing steps 1–4 is the expensive failure.

5. Re-plan on surprise, don't push through

When reality contradicts the plan (an API doesn't exist, a test reveals hidden coupling, a file is generated, a second attempt at the same step fails), STOP editing. Rewrite the plan explicitly: what changed, which steps die, which are added. Pushing the original plan through contradicting evidence produces half-finished hybrid states. If the surprise changes the scope the user asked for, surface it with options instead of silently redefining the task.

6. Keep a ledger on long tasks

For work spanning many steps or likely to hit context limits: maintain a short scratchpad file with goal, decisions made and why, steps done, steps remaining, current blockers. Update it at each milestone.

Exit condition

The task is done when the step list is empty AND the acceptance check from step 1 passes, run again after the last edit and pasted into the report. Verified, not assumed.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

Reviews can't be read right now.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.