Label namespaces outside the org sync: coilysiren repo labels and inbox's unprefixed taxonomy #343
Labels
No labels
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/devrel
role/eval
role/exec
role/frontend
role/gamedev
role/human
role/platform
role/qa
role/sysadmin
role/tpm
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
coilyco-flight-deck/agent-compose#343
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?
What this carries
#342 scopes its work to the three orgs the sync script covers. Two namespaces sit outside it, and this issue is the deferral record so they are not lost.
coilysirenrepo-level labelscoilysirenis a user rather than an org, so its repositories carry repo-level labels instead of inheriting an org set.coilysiren/coilysirencarries the full prefixed taxonomy, ids 339 through 414, including all nine retiredrole/*values.forgejo-label-taxonomy-sync.pycannot reach these. ItsTARGETSarecoilyco-bridgeandcoilyco-flight-deck, sourced fromcoilyco-gaming, and it calls anorg-labelverb throughout.coilyco-bridge/agentic-os-kai/scripts/backfill-personal-labels.shappears to be the separate path for user-owned repositories, and it carries its own copy of the old-to-new rename map.Two copies of the same mapping in two scripts is the drift shape #342 is fixing one layer up. Worth folding both onto the declarative taxonomy file rather than renaming in two places.
coilysiren/inboxUses a different scheme entirely. Per
coilyco-bridge/deploy/services/forgejo-mcp/docs/tool-surface.md:29, inbox "uses an unprefixed taxonomy that a prefixed rule would lock out entirely." That same line records it as a live constraint ondeploy#580, which wantscreate_issueto require labels and cannot express the rule because of it.So converting inbox is not only a relabeling job. It would unblock a wanted constraint in the MCP tool surface, which is worth weighing when this is scheduled.
Unverified
coilysiren/inboxandcoilysiren/loreare private and returned "target couldn't be found" unauthenticated, so their label state was not inspected. Everything above about inbox comes from the deploy documentation rather than from reading its labels. Confirm before planning.What to do
backfill-personal-labels.shwith the sync script so one mapping exists rather than two.coilysiren/inboxandcoilysiren/lorewith credentials.deploy#580in that decision.role/*values wherever the retired ones survive.Blocked by
Now measured: 18 issues stranded on retired label names
#342 step 2 applied, so the split this issue describes is no longer hypothetical. The three orgs carry the Core Roster v2 names. The
coilysirenuser-owned repositories carry their own repo-level labels, were out of scope, and still hold the retired ones.Counted after the rename, by querying the old names globally. Every one of these is now unreachable from the seat that owns the work:
role/engineer- 8role/design- 4role/creator- 4role/ops- 1role/ai- 1role/director- 0role/exec,role/qa- still live in the orgs too, pending #342 steps 3 and 418 issues. These reconcile exactly against the shortfall between the pre-rename and post-rename counts, which is how they surfaced: verifying that no issue lost its label during the rename turned up a population that had never been in scope to begin with.
What this changes about the plan
The rename mapping is now settled and proven, so the work here is no longer a design question. It is applying the same six mappings plus the two retirements to a different namespace, using a path the org sync cannot reach.
The mapping, for the record:
role/engineertorole/platformrole/opstorole/sysadminrole/aitorole/evalrole/directortorole/tpmrole/creatortorole/devrelrole/designtorole/frontendrole/gamedevcreated, no predecessorrole/execfolded intorole/tpm,role/qaretired,role/humanunchangedTwo things worth carrying into the fix
Repo-level labels are a different API surface.
forgejo-label-taxonomy-sync.pycallsorg-labelthroughout and its targets are org names. Reachingcoilysiren/*means the repo label endpoints, andagentic-os-kai/scripts/backfill-personal-labels.shis the existing path. Folding both onto the one declarative taxonomy file is the point of doing this at all, rather than renaming in a second place.A rename must stay an edit in place. The org converge preserved every label id, which is why no issue lost anything. Whatever touches the repo-level labels has to hold the same property, or 18 issues lose their labels instead of keeping them.
Still unverified
coilysiren/inboxandcoilysiren/loreare private and were not readable unauthenticated. The 18 above are from a global issue search, so they include those repos, but the label inventory of each was not inspected. Confirm with credentials before planning the fix.Closed in the 2026-08-26 backlog burn-down (coilyco-bridge/agentic-os-kai#901).
This issue carried
priority/P4, the icebox tier, meaning it had already been judged parked rather than planned. The burn-down changed what an open issue means: the tracker now holds work that is actually on the list, and the icebox lives in closed state instead of at the bottom of open.Nothing here was judged wrong or worthless. If this becomes live work, reopen it. The whole set is recoverable with
state:closed label:burndown-2026-08.