Invariant
track-work requires a new issue to be labelled — the label is what makes it
findable and triageable, and an unlabelled issue is invisible to every
label-scoped query the taxonomy exists to serve. That requirement must survive
delegation: an issue filed by a subagent needs the same labels as one filed
directly.
Current violation (observed 2026-08-11)
Two subagents running standardize-repo update mode filed follow-up issues from
confirmed Codex findings:
ponderousdev/omator#320 — guard:codegen fails rather than skipping cleanly
in a fresh worktree
ponderousdev/omator#321 — Foreman's max_parallel=3 races on Playwright's
fixed port
Both arrived with zero labels, and stayed that way until a retrospective
caught them. Both were good issues — reproducible, correctly scoped, worth
fixing — and both were unfindable by layer:, domain:, or bug queries.
The repo was not missing the vocabulary: setup-github-labels.sh had been run,
and all 71 labels existed. Nothing applied them.
This is the same root cause as #429 — a brief handed to a subagent carries the
task but not the skill's surrounding obligations, and the subagent does what the
brief says. The orchestrator's brief said "file follow-ups for confirmed
findings" and said nothing about labelling, so nothing was labelled.
Worth separating from #429 all the same: that issue's remedy is about the
shepherd stage and CI polling, and its acceptance criteria have no natural place
for issue hygiene. Folding this in would bury it.
Verify
# Any issue filed during a delegated run, checked for labels:
gh issue list --repo <owner/repo> --state all --limit 50 \
--json number,title,labels \
--jq '.[] | select((.labels | length) == 0) | "#\(.number) \(.title)"'
Expected on a repo where a subagent has filed follow-ups: unlabelled issues that
the maintainer never chose to leave unlabelled.
Acceptance criteria
Related: #429 (same root cause — briefs truncate the skill's requirements).
Found while running standardize-repo update mode via subagents on
ponderousdev/omator.
Invariant
track-workrequires a new issue to be labelled — the label is what makes itfindable and triageable, and an unlabelled issue is invisible to every
label-scoped query the taxonomy exists to serve. That requirement must survive
delegation: an issue filed by a subagent needs the same labels as one filed
directly.
Current violation (observed 2026-08-11)
Two subagents running
standardize-repoupdate mode filed follow-up issues fromconfirmed Codex findings:
ponderousdev/omator#320—guard:codegenfails rather than skipping cleanlyin a fresh worktree
ponderousdev/omator#321— Foreman'smax_parallel=3races on Playwright'sfixed port
Both arrived with zero labels, and stayed that way until a retrospective
caught them. Both were good issues — reproducible, correctly scoped, worth
fixing — and both were unfindable by
layer:,domain:, orbugqueries.The repo was not missing the vocabulary:
setup-github-labels.shhad been run,and all 71 labels existed. Nothing applied them.
This is the same root cause as #429 — a brief handed to a subagent carries the
task but not the skill's surrounding obligations, and the subagent does what the
brief says. The orchestrator's brief said "file follow-ups for confirmed
findings" and said nothing about labelling, so nothing was labelled.
Worth separating from #429 all the same: that issue's remedy is about the
shepherd stage and CI polling, and its acceptance criteria have no natural place
for issue hygiene. Folding this in would bury it.
Verify
Expected on a repo where a subagent has filed follow-ups: unlabelled issues that
the maintainer never chose to leave unlabelled.
Acceptance criteria
labelling requirement as one filed directly, and that a brief delegating
issue-filing must say so.
layer:,domain:, plus type labels) rather than "label it appropriately".classification instead of leaving it bare.
Related: #429 (same root cause — briefs truncate the skill's requirements).
Found while running
standardize-repoupdate mode via subagents onponderousdev/omator.