Reconcile ratified organisation labels without deletion #87

Open
opened 2026-08-16 06:01:59 +00:00 by codexo · 2 comments
Contributor

Mandate

Following the completed ratification and migration in Ting/Ting#25, Ting, lar.ad, and swarm MUST define the ratified advanced label set as organisation-level labels. Repository-local labels remain exceptions only where the ratification table says they are local.

The ratification prerequisite and manual cutover are complete; comment 6798 preserves their evidence. This remaining work implements the durable declarative reconciler.

Jostoph reconciliation workflow

  1. Keep the canonical label specification in Jostoph's declarative Forgejo configuration, with one explicit organisation set for Ting, lar.ad, and swarm.
  2. Encode the advanced workflow vocabulary as the shared base: Compat/Breaking; Kind/{Bug,Documentation,Enhancement,Feature,Security,Testing}; Priority/{Critical,High,Medium,Low}; Reviewed/{Confirmed,Curated,Duplicate,Invalid,Won't Fix}; and Status/{Abandoned,Blocked,Conflicted,In Progress,In Review,Need More Info}. Follow #25’s ratified declaration, including Status/Ready, Status/Need Grooming, and the ratified Meta labels; do not re-open the completed vocabulary decision. Keep host Scope and Topic labels local unless separately ratified. Do not invent or retire pi:fix without evidence and ratification.
  3. Have Jostoph reconcile observed organisation labels against that declaration: create missing ratified labels and repair description/color drift only in an explicit apply mode; report undeclared labels, aliases, and use-risk as findings. It MUST NOT delete or rename labels automatically.
  4. Make the check idempotent and run it in Jostoph's normal conformance/effects workflow, producing an audit-log record of declared, performed, and refused effects.
  5. Require a re-audit of issue/PR usages and automation references before any future rename, migration, archival, or deletion. Each such change remains an owner-ratified migration, not a reconciler side effect.
  6. Add tests proving that the desired set is complete, Reviewed/Curated keeps its existing machine meaning, unprefixed legacy state names are reported as aliases, and a hand-created/undeclared label is never deleted by reconciliation.

Acceptance

  • The post-ratification org-level sets are declared for Ting, lar.ad, and swarm.
  • Reconciliation is read-only by default and auditable when applied.
  • Missing labels and metadata drift can be repaired only from the ratified declaration.
  • Undeclared labels and aliases are findings, never destructive actions.
  • Tests cover idempotence and the non-deletion guarantee.
  • The implementation links back to Ting/Ting#25 and records the ratification it follows.

Separated execution ownership

  • Ting/Jostoph#121 owns hierarchy and Deliverable-record diagnostics.
  • Ting/Jostoph#122 owns governed repository-template distribution and drift reporting.
  • Ting/Ting#29 retains hierarchy-law and template-definition ownership.

This issue owns organisation-label reconciliation only. Scope references do not create parent edges from this Deliverable. The exact Epic parent and the immutable applicable OpenSpec binding remain grooming gaps.

Provenance and delivery state

Larandar approved the split in estate-backlog-rationalization.md on 2026-09-07. Scope source: Ting/Jostoph#87. Contradiction ledger: Ting/Ting#28.

The current normative store is Ting/contracts. The exact applicable change, immutable commit, and selected requirement/scenario binding remain to be verified and recorded; this issue remains Status/Need Grooming and is not newly marked Ready. This tracker split is not implementation or deployment evidence.

## Mandate Following the completed ratification and migration in [Ting/Ting#25](https://jo.et0.pw/Ting/Ting/issues/25), **Ting, lar.ad, and swarm MUST define the ratified advanced label set as organisation-level labels**. Repository-local labels remain exceptions only where the ratification table says they are local. The ratification prerequisite and manual cutover are complete; [comment 6798](https://jo.et0.pw/Ting/Jostoph/issues/87#issuecomment-6798) preserves their evidence. This remaining work implements the durable declarative reconciler. ## Jostoph reconciliation workflow 1. Keep the canonical label specification in Jostoph's declarative Forgejo configuration, with one explicit organisation set for Ting, lar.ad, and swarm. 2. Encode the advanced workflow vocabulary as the shared base: `Compat/Breaking`; `Kind/{Bug,Documentation,Enhancement,Feature,Security,Testing}`; `Priority/{Critical,High,Medium,Low}`; `Reviewed/{Confirmed,Curated,Duplicate,Invalid,Won't Fix}`; and `Status/{Abandoned,Blocked,Conflicted,In Progress,In Review,Need More Info}`. Follow #25’s ratified declaration, including `Status/Ready`, `Status/Need Grooming`, and the ratified Meta labels; do not re-open the completed vocabulary decision. Keep host Scope and Topic labels local unless separately ratified. Do not invent or retire `pi:fix` without evidence and ratification. 3. Have Jostoph reconcile observed organisation labels against that declaration: create missing ratified labels and repair description/color drift only in an explicit apply mode; report undeclared labels, aliases, and use-risk as findings. It MUST NOT delete or rename labels automatically. 4. Make the check idempotent and run it in Jostoph's normal conformance/effects workflow, producing an audit-log record of declared, performed, and refused effects. 5. Require a re-audit of issue/PR usages and automation references before any future rename, migration, archival, or deletion. Each such change remains an owner-ratified migration, not a reconciler side effect. 6. Add tests proving that the desired set is complete, `Reviewed/Curated` keeps its existing machine meaning, unprefixed legacy state names are reported as aliases, and a hand-created/undeclared label is never deleted by reconciliation. ## Acceptance - [ ] The post-ratification org-level sets are declared for Ting, lar.ad, and swarm. - [ ] Reconciliation is read-only by default and auditable when applied. - [ ] Missing labels and metadata drift can be repaired only from the ratified declaration. - [ ] Undeclared labels and aliases are findings, never destructive actions. - [ ] Tests cover idempotence and the non-deletion guarantee. - [ ] The implementation links back to Ting/Ting#25 and records the ratification it follows. ## Separated execution ownership - [Ting/Jostoph#121](https://jo.et0.pw/Ting/Jostoph/issues/121) owns hierarchy and Deliverable-record diagnostics. - [Ting/Jostoph#122](https://jo.et0.pw/Ting/Jostoph/issues/122) owns governed repository-template distribution and drift reporting. - [Ting/Ting#29](https://jo.et0.pw/Ting/Ting/issues/29) retains hierarchy-law and template-definition ownership. This issue owns organisation-label reconciliation only. Scope references do not create parent edges from this Deliverable. The exact Epic parent and the immutable applicable OpenSpec binding remain grooming gaps. ## Provenance and delivery state Larandar approved the split in estate-backlog-rationalization.md on 2026-09-07. Scope source: [Ting/Jostoph#87](https://jo.et0.pw/Ting/Jostoph/issues/87). Contradiction ledger: [Ting/Ting#28](https://jo.et0.pw/Ting/Ting/issues/28). The current normative store is Ting/contracts. The exact applicable change, immutable commit, and selected requirement/scenario binding remain to be verified and recorded; this issue remains Status/Need Grooming and is not newly marked Ready. This tracker split is not implementation or deployment evidence.
Author
Contributor

Grooming state: Approved split applied; contract and hierarchy binding remain incomplete.
Evidence: Ting/Ting#25 comments 6721, 6722, and 6792 resolve ratification and manual migration.
Ownership: Label reconciliation remains here; diagnostics are Ting/Jostoph#121 and template distribution is Ting/Jostoph#122.
Remaining: Verify the exact Epic parent and immutable Ting/contracts binding. No parent was inferred from a leaf-to-leaf scope reference. The earlier implementation-ready claim does not establish these current delivery gates.
Ledger: Ting/Ting#28.

<!-- codexo:groom:v1 --> **Grooming state:** Approved split applied; contract and hierarchy binding remain incomplete. **Evidence:** Ting/Ting#25 comments [6721](https://jo.et0.pw/Ting/Ting/issues/25#issuecomment-6721), [6722](https://jo.et0.pw/Ting/Ting/issues/25#issuecomment-6722), and [6792](https://jo.et0.pw/Ting/Ting/issues/25#issuecomment-6792) resolve ratification and manual migration. **Ownership:** Label reconciliation remains here; diagnostics are [Ting/Jostoph#121](https://jo.et0.pw/Ting/Jostoph/issues/121) and template distribution is [Ting/Jostoph#122](https://jo.et0.pw/Ting/Jostoph/issues/122). **Remaining:** Verify the exact Epic parent and immutable Ting/contracts binding. No parent was inferred from a leaf-to-leaf scope reference. The earlier implementation-ready claim does not establish these current delivery gates. **Ledger:** [Ting/Ting#28](https://jo.et0.pw/Ting/Ting/issues/28).
larandar changed title from Proposal: Jostoph-maintained advanced organisation label conformance to Reconcile ratified organisation labels without deletion 2026-09-07 06:09:42 +00:00
Owner

Audit 2026-09-19/20, G25: narrow this mandate to the provider-owned Ting surface. The Jostoph declaration deliberately omits lar.ad and has no swarm entry; this pass chooses narrowing over adding declarations. Authoritative cross-reference: Ting/Ting#25 and the existing Jostoph label/ownership rulings. The alternative of declaring lar.ad and swarm here was declined in this pass.

<!-- larandar:groom:v1 --> Audit 2026-09-19/20, G25: narrow this mandate to the provider-owned Ting surface. The Jostoph declaration deliberately omits lar.ad and has no swarm entry; this pass chooses narrowing over adding declarations. Authoritative cross-reference: Ting/Ting#25 and the existing Jostoph label/ownership rulings. The alternative of declaring lar.ad and swarm here was declined in this pass.
Sign in to join this conversation.
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
Ting/Jostoph#87
No description provided.