Files
claude-skills/.wiki/concepts/delegate-task-review-weight.md
vitya fedb6fc1cd fix(delegate-task): inherit review-task weight from impl (floor needs-claude) v0.2.3
Step 5 created the paired <slug>-review task without a `weight`, so fleet
routing/reconciler skipped it (root cause of manual patch c0af151). Now the
review task sets weight explicitly, inherited from the impl-task with a
needs-claude floor:
  impl needs-human  -> review needs-human
  impl needs-claude -> review needs-claude
  impl cheap-ok     -> review needs-claude (floor)

Floor (not pure inheritance) keeps the doc internally consistent with the
existing "What NOT to do" bullet that forbids cheap-ok for review tasks.
Added a What-NOT-to-do bullet against weightless review tasks. PATCH bump.
Wiki: concepts/delegate-task-review-weight.md + index + log.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-09 19:53:05 +03:00

44 lines
2.1 KiB
Markdown

---
title: delegate-task review-task weight inheritance
type: concept
tags: [delegate-task, fleet-routing, review-task, weight]
updated: 2026-06-09
---
# delegate-task review-task `weight` inheritance
`delegate-task` v0.2.3 makes Step 5 (the paired `<slug>-review` task) set an explicit `weight`,
inherited from the impl-task with a `needs-claude` floor.
## Problem
Step 5 created the review task with `status=blocked` + `blocker=<slug>` but **never set `weight`**.
A review task with no weight is invisible to fleet routing — the reconciler/poller skips it, so it
never gets claimed. This surfaced as commit `c0af151` ("add Weight: needs-claude to 4 review tasks
— reconciler was skipping them"), a manual after-the-fact patch of the symptom. The root cause was
in the authoring skill: it omitted the field.
## Design
Step 5 now sets the review-task weight by **inheriting from the impl-task, floored at `needs-claude`**:
- impl `needs-human` → review `needs-human` — a critical-infra change cannot be reviewed by a weaker
tier; the review inherits the impl's strictness.
- impl `needs-claude` → review `needs-claude`.
- impl `cheap-ok` → review `needs-claude` — the floor. Review is discipline-critical (it must honour
the `invoke` instructions and acceptance criteria), and the skill's own "What NOT to do" already
forbids `cheap-ok` for review/security/migration tasks. So `cheap-ok` is never propagated.
### Why a floor, not pure inheritance
The delegating task said "inherit weight from impl". Pure inheritance would let a `cheap-ok` impl
produce a `cheap-ok` review — directly contradicting the skill's existing "What NOT to do" bullet
(no `cheap-ok` for review) and the `needs-claude` convention the manual fix established. The floor
is the reading that keeps the document internally consistent: inherit upward (so `needs-human`
propagates), clamp the bottom (so review never drops below `needs-claude`).
## Versioning
PATCH bump (0.2.2 → 0.2.3): tightens guidance on an existing step, no new step or breaking change.
Target version fixed by the delegating task.