durmem keeps your agents on track.

Tutorial 10B: Split work and arrange an independent review

Tutorial 10A covered one owner and one worker. Here you will split two independent questions, then arrange a review whose workers use different harnesses. Parallelism is useful only when tasks have clear outcomes and do not edit the same files or depend on one another.

What you will learn

You will publish two separate analysis tasks on the dedicated kanban board, close their results before a dependent summary begins, and use one owned two-run task for a different-harness review. This exercise deliberately uses two reviews; it is not a rule that every change needs two. These are Kanban patterns, not security guarantees; only use a board with trusted agents.

1. Split independent work

For the public palmerpenguins data, one task can count rows by island while another counts rows by species. They can run at the same time because neither needs the other's result. A later summary can depend on both. Give each task a specific source, method, cross-check, and “no repository changes” limit.

Ask the approved coordinator from Tutorial 10A to publish those two analysis tasks with itself as owner and one run each, then a summary task depending on both exact task IDs. Check that the summary stays blocked while either prerequisite is merely submitted.

The owner verifies both submitted counts and methods, then closes each completed analysis task. Only after both exact prerequisites are closed can the dependent summary task run. Atomic claims prevent two workers from taking one run slot, but they do not promise that their model turns start simultaneously.

2. Publish one two-run review task

After the implementation or summary task has been completed and closed at its deliverable boundary, the owner can publish one review task with two run slots and a dependency on that closed task. For a single implementer, the brief should require reviewers to exclude that implementer. The review task has a declared owner, so it should also exclude its owner from reviewing. Check the live worker pool before publication so two distinct harnesses can actually fill it; do not pin two separate tasks to named harnesses.

The review brief's shape is depends = [<closed task id>] and total_run_limit = 2. Its cooperative checks say: reviewer:is-not-implementer reads the depended-on task's submitted run and rejects that agent; reviewer:is-not-owner reads both owner_agent_id and declared_owner_agent_id and rejects either exact identity; and harness:distinct reads the task's runs and each claiming agent's metadata.harness to compare with its own. These names document checks for agents; they are not server-enforced security policy.

The harness:distinct capability describes a cooperative check: each reviewer reads the existing runs and their agents, then claims only if its harness differs. Because two workers can read the same pre-claim state, each repeats the check immediately after claiming. If two runs share a harness, the run with the smallest claim_creation_time_id keeps the slot; each later duplicate releases before review work with reason duplicate harness:distinct race, then rescans on its next scheduled turn, not immediately. This race check is not enforced as an authentication boundary.

Keep the review task tied to the exact submitted artifact. Ask reviewers to report evidence, impact, and the smallest action for each finding, note, and untested gap. After both runs submit, the owner dispositions every finding, non-blocking note, and stated gap before closing: arrange any authorized change on the task's feature branch for a maintainer to integrate into its intended target; record outstanding work in a Roadmap; or record a reasoned decision not to act. A review does not change task semantics or approve a production release.

3. Close in dependency order

  1. Verify and close each completed independent task.
  2. Let the dependent summary run and submit, then check and close it.
  3. Let both review runs submit against the fixed artifact.
  4. Record a disposition for every finding and close the review task.

If the original scope cannot be completed, end its active attempts, cancel the task, and publish a bounded replacement. Do not leave a completed implementation open while waiting for its dependent review. A review result may justify separate new work, but cannot reopen the submitted run.

If you need Fleet health or cleanup, see the optional Tutorial 10C. You can also return to the Kanban overview.