Rubric
Contents — domains, guide and mocks

Decomposing complex problems

CCAR-P 1.514 min read · checked 21 September 2026

Task statementApply decomposition techniques for complex problem solving

How to decompose a problem

  1. Define the finishthe result and its check
  2. Map dependencieswhat needs what; shared context
  3. Assign each piececode, Claude, or a person
  4. Fix the handoffsinputs, outputs, formats
  5. Verify and combinecheck pieces, then the whole
The seams come from dependencies and shared context, not from how the work is organised today. Every piece gets an owner and a check.

Why break a problem down — and why not

Anthropic’s “Building effective agents” gives the core reason: for complex tasks with several considerations, a model generally does better when each consideration is handled by its own call, because each call gets a simpler job and full attention. Decomposition also buys things an enterprise cares about beyond accuracy: intermediate results you can inspect and log, a fixed structure you can audit, independent pieces you can run in parallel, and simple pieces you can give to a cheaper model or to ordinary code.

The counterweight is just as real. Current Claude documentation notes that, with adaptive thinking and subagents, Claude handles most multistep reasoning inside a single request, and that explicit chaining is still useful when you need to inspect intermediate outputs or enforce a specific pipeline structure. Every split costs a round trip, and every handoff is a chance to drop context the next step needed — the “telephone game” Anthropic warns about for multi-agent systems in 1.4. Good decomposition finds the fewest pieces that make the problem tractable, checkable and cheap enough.

Six decomposition techniques

Most real problems use a combination, but each piece of a design should be recognisable as one of these shapes. The workflow patterns from 1.3 are the implementation; these are the ways of cutting the problem that lead to them.

TechniqueCut the problem…Fits whenEnterprise example
Sequentialinto ordered steps, each using the last one’s outputLater steps genuinely depend on earlier onesExtract a claim’s facts, then check them against policy, then draft the letter
Parallel sectionsinto independent aspects, fixed in advanceAspects do not need each other’s resultsCheck a supplier contract for privacy, liability and termination risk at once
Map-reduceinto many like items; same operation on each, then combineThe input is large and naturally itemisedSummarise 4,000 survey comments by theme, then roll up
Dynamic (hierarchical)into subtasks chosen at run time by a plannerThe pieces cannot be known until you lookResearch every regulation that affects a new product line
Incrementalinto small units done one at a time, with state kept outsideThe whole job exceeds one context window or sessionMigrate hundreds of reports, one per session, tracked in a list
Generate-verifyinto producing and checkingClear criteria exist for a good resultDraft a disclosure, then check it against the rulebook

Which cut fits the problem?

How do the pieces relate?
  • Each needs the last
    Sequential chaingates between steps
  • Independent aspects
    Parallel sectionsrun together, then merge
  • Many items, same task
    Map-reduceper item, then combine
  • Unknown until explored
    Dynamic planplanner decides subtasks
Read the dependency shape of the work. The answer to “do the pieces need each other?” decides most of the design.

Finding the seams

The most useful question is not “what are the steps?” but “what does each piece need to know?”. Two pieces that need the same large body of context belong together; splitting them forces one to re-read or to work from a lossy summary. Two pieces that need different context — one reads the contract, one reads the customer history — are a natural seam. Anthropic’s guidance on multi-agent systems makes the same point: divide by context, not by type of work.

The second question is which pieces need a model at all. Decomposition is where you pull deterministic work out of the prompt: arithmetic, totals, lookups, date rules, format validation and routing on known fields belong in code, which is cheaper and exact. Claude takes the pieces that need reading, judgement or writing. A person takes the pieces where the decision carries accountability. A design that asks one prompt to extract, calculate, judge and approve has not been decomposed; it has been hoped for.

The third is how each handoff is described. A piece’s output is the next piece’s input, so it needs a contract: a structured format, the fields that must be present, and what happens when they are not. Anthropic’s research system learned that vague task descriptions made subagents duplicate each other and miss the point; the fix was an explicit objective, output format, tool guidance and boundaries for every piece. The same discipline applies to a two-step chain as to a fleet of agents.

Reviewing a proposed decomposition

  • Passes: The finished result and its check are definedresolution letter, rubric-scored
  • Passes: Each step needs the one before itextract → assess → draft
  • Fails: Compensation amount calculated in codeprompt currently does the maths
  • Check: Handoffs use a fixed schemafree text between steps 2 and 3
  • Passes: Steps that share the file stay together
  • Missing: A person approves payouts over the limit
A decomposition review for a proposed complaint-handling pipeline. Fails and gaps are where handoffs will break in production.

Work bigger than one context window

Some problems are too big for any single session, however well prompted. Anthropic’s work on long-running agents found two failure modes when an agent faced a large job whole: it tried to do everything at once and ran out of context midway, or it saw some progress and declared the job done. The fix was incremental decomposition. A first session set up the work: a structured list of every feature with a pass or fail flag, a progress notes file, a setup script and version control. Every later session took one item, completed and tested it, recorded progress and committed.

Claude’s prompting guidance generalises this: use the first context window to set up a framework and later windows to iterate on a to-do list; keep structured state such as test status in JSON and free-form progress in notes; and use version control as a log and set of checkpoints. It also notes that when a context window is cleared, starting fresh and letting the model rediscover state from files can work better than compaction. The long-running-agents write-up adds that JSON was chosen for the task list partly because models were less likely to change a JSON file inappropriately than a Markdown one.

External state for incremental work (illustrative)json
{
  "job": "Migrate finance reports to the new warehouse",
  "items": [
    { "id": "R-014", "name": "Monthly accruals",  "status": "passing" },
    { "id": "R-015", "name": "Aged receivables",  "status": "failing",
      "note": "totals differ by FX rounding; see notes" },
    { "id": "R-016", "name": "Cost-centre spend", "status": "not_started" }
  ],
  "rule": "One item per session. Never delete or edit another item."
}

Traps the wrong answers are built from

Tempting but wrongDo this instead
One prompt that extracts, calculates, judges and approvesSplit by what each piece needs; give exact work to code and approvals to people.
Splitting into many steps because smaller feels saferUse the fewest pieces the scenario justifies; each handoff costs latency and context.
Dividing work by job role rather than by contextKeep pieces that share context together; split where context separates.
Free-text handoffs between stepsDefine a structured output contract for every piece, with required fields.
Letting a long job live only in the model’s contextKeep a structured task list, progress notes and checkpoints outside the model.

You should now be able to

  • Explain the benefits and costs of decomposing a problem, including when not to split.
  • Recognise sequential, parallel, map-reduce, dynamic, incremental and generate-verify decompositions from a scenario.
  • Find seams using dependencies and shared context rather than organisational roles.
  • Separate deterministic steps for code from judgement steps for Claude and accountable decisions for people.
  • Design structured handoffs and a check for each piece and for the whole.
  • Plan work that exceeds one context window as small verifiable units with external state.

Practice questions

Original questions written for this lesson, in the exam’s style. Answer first, then open the reasoning — every option is explained, including why the wrong ones are tempting.

  1. Question 1

    A retailer’s customer-insight team feeds 12,000 free-text survey responses into a single request and asks for the top themes with counts. The counts are inconsistent between runs and later responses are under-represented.

    Which decomposition is most appropriate?

    1. ATag each batch of responses with themes in separate calls, then count and roll up the tags in code.
    2. BKeep one request but instruct Claude to give equal weight to every response.
    3. CBuild a planner, analyst, statistician and writer agent that pass the survey along.
    4. DSample 200 responses at random and report their themes as the result.
    Show answer and reasoning
    1. ACorrect. The input is large and itemised, so map-reduce fits; counting is exact work that belongs in code.
    2. BIncorrect. An instruction does not fix attention thinning across a very long input, or make counting exact.
    3. CIncorrect. Role-based handoffs add cost and lose context without addressing the size of the input.
    4. DIncorrect. Sampling may be fine for exploration, but it discards data the team asked to analyse and gives no exact counts.
  2. Question 2

    A bank’s credit team proposes a seven-step chain for small-business loan memos: read statements, summarise, extract ratios, compute ratios, assess risk, write the memo, check tone. Latency is high and the risk assessment often contradicts figures in the statements.

    What is the best change to the decomposition?

    1. AAdd an eighth step that re-reads all earlier outputs and reconciles contradictions.
    2. BCollapse everything into one prompt so the model sees the statements throughout.
    3. CExtract figures to a schema, compute ratios in code, assess risk from statements and ratios.
    4. DRun all seven steps in parallel so that total latency drops.
    Show answer and reasoning
    1. AIncorrect. Another step adds latency and treats the symptom; the assessment is working from a lossy summary.
    2. BIncorrect. This loses the exact calculation and the checkable handoffs the process needs.
    3. CCorrect. It merges steps that share context, moves arithmetic to code and removes the summary the assessment was relying on.
    4. DIncorrect. The steps depend on each other, so they cannot run in parallel without breaking the chain.
  3. Question 3

    Which are good signals that a piece of a problem should be split out as its own step? (Select 2.)

    1. AIt needs different context from the rest of the task.
    2. BAn approval or audit point must see its output before work continues.
    3. CA different department performs that part of the work today.
    4. DIt is short and closely tied to the step before it.
    5. EThe project plan would look more thorough with more steps.
    Show answer and reasoning
    1. ACorrect. A distinct context need is a natural seam; splitting there loses little and focuses the step.
    2. BCorrect. Inspection and enforced structure are two of the clearest reasons for an explicit step.
    3. CIncorrect. Organisational lines are not context boundaries and often make lossy handoffs.
    4. DIncorrect. Tightly coupled, small work usually belongs with its neighbour; splitting adds cost without benefit.
    5. EIncorrect. More steps add latency, cost and handoff risk; the scenario, not appearance, should justify each split.
  4. Question 4

    An insurer asks an agent to rewrite 600 policy-wording templates to a new plain-language standard. After one long session the agent reports “all templates updated”, but spot checks show fewer than a hundred were changed.

    What should the architect do?

    1. ARaise the session’s turn limit so the agent has room to finish all 600.
    2. BAsk the agent to double-check its work before claiming completion.
    3. CAssign the rewrite to a human team and use Claude only for spell-checking.
    4. DKeep a structured list of templates with a pass flag and a check; do one or a few per session.
    Show answer and reasoning
    1. AIncorrect. More turns in one context invites the same loss of track; the job still exceeds a single session.
    2. BIncorrect. Self-assertion is the failure; without external state and a check, the claim cannot be verified.
    3. CIncorrect. This abandons a feasible automation because of a fixable design flaw.
    4. DCorrect. Incremental decomposition with external state makes progress verifiable and prevents premature “done”.

Sources

Drafted with AI assistance and checked against the sources above; expert review is in progress. Spotted an error? Tell us and it gets fixed, dated and listed on how this is written.