The label taxonomy is correct in git and stale in every org: the converge needs a token no agent has, and its own drift detector is wired into nothing #983
Labels
No labels
burndown-2026-06
burndown-2026-08
autonomy
async-consult
autonomy
epic
autonomy
headless
autonomy
live-collab
coherence-core
priority
P0
priority
P1
priority
P2
priority
P3
priority
P4
qa-fixture
role/advocate
role/director
role/exec
role/frontend
role/gamedev
role/human
role/platform
role/qa
role/science
role/sysadmin
state
ambient
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
coilyco-flight-deck/infrastructure#983
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Filed by Portia (director seat), 2026-08-29, after Kai observed that the role slugs on the labels are wrong again. The "again" is the important word: this is a recurrence, and the mechanism that makes it recur is visible in this repository.
The declared file is correct
config/forgejo-label-taxonomy.yamldeclares exactly the Core Roster v2 seats, verified against the roster:Seven seats plus
role/human. Nothing missing, nothing extra. The file is not the problem.Live is stale, observed rather than inferred
From issue payloads read in the
coilyco-flight-deckorg today:role/evalonagent-proxy#111, #125, #128, #129, #131. Retired.renamesmaps it torole/science.role/qaonagent-proxy#107. Retired, and absent fromlabels:on purpose.role/platformid 382, live description "requires work from the Developer Platform Engineer seat". Declared description is "requires work from the Platform Engineer seat".role/platformid 373 incoilyco-bridge, same wrong description.So at least two retired slugs are still live and being applied, and at least one declared description has never been driven onto the live label.
Why it recurs, which is the actual defect
Two independent breaks, and either alone would cause this.
1. Nothing can apply the converge. The sync's own docstring:
Kai's 2026-08-29 grant moved
coilyco-opsto repository admin, which does not help: org label writes need org ownership. So no agent seat can converge the taxonomy, ever, and the file advances in git while the world does not.2. Nothing detects that it has not been applied.
just forgejo-label-taxonomy-checkexists, exits non-zero on divergence, and is read-only. The justfile comment says so plainly: "Exit non-zero when any org diverges from the declared Forgejo label taxonomy. Reads only."It is wired into nothing. Not
.forgejo/workflows/(seven workflows, none calls it), not.pre-commit-config.yaml. Grepped both.The detector for this exact condition is already written and not connected. That is why it is "again" rather than "still": the file gets corrected, the correction never lands, nothing goes red, and agents keep labelling from the stale live vocabulary until a human notices by eye.
The class
This belongs in
coilysiren/inbox#484. It is a control that is present, correct, reviewed, version-controlled, and binds nothing — with its own conformance check sitting one line of CI away from working. Every property that makes a control trustworthy is satisfied except the one that matters.It is also the second half of a pattern this repository already fixed once. The sync exists precisely because "a label change was an API call with no diff, no review, and no commit," which is how
role/*drifted last time. Authority moved into git and the drift moved with it: now the declared value is right and unenforced instead of wrong and enforced.Fix, two separable pieces
Immediate, and it needs Kai because it needs an org owner token:
Renames are edits in place, so
role/eval→role/sciencecarries every issue currently holding it and costs no per-issue work.role/qaandrole/execwill be reportedundeclared, left aloneand need their issues rehomed before an operator removes them, peragent-compose#342.Durable, and it is the half that stops the recurrence: wire
just forgejo-label-taxonomy-checkinto CI in this repository. It reads only, needs no owner token, and already exits non-zero. A scheduled run catches drift introduced outside this repo; a run on pull requests catches a taxonomy edit that has not been applied.Without the second piece the first one buys a few weeks and then this issue gets filed a third time.
Not in scope
coilysiren/inbox's 19 repository-level labels. It is a user account, absent fromorgs:, and the sync touches no user or repo endpoint. Tracked atagentic-os#1377.state/ambient, minted imperatively and undeclared. Tracked atagentic-os#1380, and it should be added to this taxonomy in the same pass that runs the converge.Refs
coilysiren/inbox#484,agent-compose#342,agentic-os#1377,#1380