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>
44 lines
2.1 KiB
Markdown
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.
|