fix(forgejo): declare state/ambient so it stops reading as taxonomy drift #984
No reviewers
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!984
Loading…
Reference in a new issue
No description provided.
Delete branch "aos/claude/uv47-state-ambient-taxonomy"
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
Declares
state/ambientinconfig/forgejo-label-taxonomy.yaml, and documents thestate/*axis in the file header beside the others.Why
I minted three
state/ambientorg labels earlier today throughaosguard ops forgejo-admin org-label create, for the maintained-document surface decided incoilysiren/inbox#482. I did not know this file existed. Kai's question, "doesn't the infra repo use exactly that", is what surfaced it.The converge saw them exactly as you would expect:
It would have said that forever. Their colour and description had no declared owner, so nothing could ever drive them to a correct value, and the only way to change them was another imperative call from the same second writer that created the problem.
After this change, on all three orgs:
state/ambientis gone from the undeclared list and appears in no create or edit line, because it is declared at the value that is already live. The converge is a no-op for this label, which is the point: this PR closes a governance gap without touching the cluster.The colour is the open question, and it belongs in this diff
0e8a16is what I picked when I created them, arbitrarily. Portia raised that it sits close torole/*'s70c24a, and two greens a few shades apart read as one family in a label list, which is wrong for what is meant to be a fourth distinct axis.006b75was proposed instead.I have deliberately not changed it here. Declaring the live value keeps this PR a pure no-op, and turns the colour from an imperative call into a reviewed line. Changing it is a one-line follow-up plus a converge run, and it is free right now because no issue carries the label. That window closes the moment the
#482documents are minted.Not addressed here
--checkstill fails on three pending renames (role/devrel,role/eval,role/tpm), two edits (role/frontend,role/platform), androle/exec/role/qabeing retired-but-present. All of that predates this branch and is owned byagent-compose#342.aosguard ops forgejo-admin org-label createis a second writer, on a different principal, to a resource this file declares. Filed asagentic-os#1380, and it is platform's call whether that verb is removed, gated, or documented as break-glass.coilyco-opsis a member rather than an owner. No apply is needed for this label anyway, since it is already at the declared value.Verification
uv run python scripts/forgejo-label-taxonomy-sync.py --checkbefore and after, output above. Read-only.pre-commit run --files config/forgejo-label-taxonomy.yamlpasses.