From 96dc35bfcf95e9d37fdfcccd5313be62cabf0d0e Mon Sep 17 00:00:00 2001 From: "Jonathan D.A. Jewell" Date: Thu, 24 Sep 2026 14:37:07 +0000 Subject: [PATCH] triage: ULTRAPLAN 2026-09-24 - issue-influx root cause, intake spec, templates, canon fixes - ULTRAPLAN-2026-09-24.adoc: full census (193 open / 174 closed), the 2026-09-22 91-issue wave diagnosis, complete classified backlog, spec reconciliation status, ranked next actions - docs/ISSUE-INTAKE-SPEC.adoc v1.0.0: the missing intake rules - scope filter, dedup obligation, wave-umbrella rule, mandatory templates, automation contract, no silent closes - .github/ISSUE_TEMPLATE: bug / decision / campaign templates; blank form disabled (the 2026-09-22 filing shape needs structure to recur) - 0-canon/GOVERNANCE.adoc v2.0.0: replaces the broken AI placeholder that described a non-existent multi-maintainer governance model - 0-canon/rsr/LANGUAGE-POLICY.adoc: :source-repo: cccp -> standards (#927) - rhodium-standard-repositories/.github/workflows/language-policy.yml: line-116 'replacement: Deno' -> Bun per the 2026-09-22 ruling (#920) - scripts/triage-2026-09-24-apply.sh: idempotent owner-run script applying the live actions (label the 193, close 10 with evidence comments, description + topics) - the agent token lacks issues:write Co-authored-by: arena-agent <297053741+arena-agent@users.noreply.github.com> --- .github/ISSUE_TEMPLATE/bug.yml | 56 + .github/ISSUE_TEMPLATE/campaign.yml | 36 + .github/ISSUE_TEMPLATE/config.yml | 7 + .github/ISSUE_TEMPLATE/decision.yml | 44 + 0-canon/GOVERNANCE.adoc | 149 +- 0-canon/rsr/LANGUAGE-POLICY.adoc | 2 +- ULTRAPLAN-2026-09-24.adoc | 1536 +++++++++++++++++ docs/ISSUE-INTAKE-SPEC.adoc | 170 ++ .../.github/workflows/language-policy.yml | 3 +- scripts/triage-2026-09-24-apply.sh | 373 ++++ 10 files changed, 2314 insertions(+), 62 deletions(-) create mode 100644 .github/ISSUE_TEMPLATE/bug.yml create mode 100644 .github/ISSUE_TEMPLATE/campaign.yml create mode 100644 .github/ISSUE_TEMPLATE/config.yml create mode 100644 .github/ISSUE_TEMPLATE/decision.yml create mode 100644 ULTRAPLAN-2026-09-24.adoc create mode 100644 docs/ISSUE-INTAKE-SPEC.adoc create mode 100755 scripts/triage-2026-09-24-apply.sh diff --git a/.github/ISSUE_TEMPLATE/bug.yml b/.github/ISSUE_TEMPLATE/bug.yml new file mode 100644 index 000000000..d01082d22 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug.yml @@ -0,0 +1,56 @@ +# SPDX-License-Identifier: MPL-2.0 +name: Bug / defect +description: A reproducible defect in THIS repository (a spec, script, reusable workflow, seed, config, or tool). Estate-wide defects belong in the estate register, not here — see docs/ISSUE-INTAKE-SPEC.adoc. +title: ": " +labels: [bug] +body: + - type: dropdown + id: scope + attributes: + label: Scope + description: "Where the actionable fix lives. Rules: scope:repo = fix touches a file in this repo; scope:estate = fix lives in other repos/org settings (then justify why it is filed here — usually this repo is the fix source)." + options: + - scope:repo (fix is in this repository) + - scope:estate (fix is estate-wide; this repo is the source) + validations: + required: true + - type: textarea + id: evidence + attributes: + label: Evidence + description: "The command, its actual output, and the expected result. An issue without evidence is untriageable and will be closed." + placeholder: | + $ + + Expected: + validations: + required: true + - type: textarea + id: affected + attributes: + label: Affected + description: "File(s) and line(s) in this repository, and — if this repo is the propagation source — the estate population affected (count + how it was measured)." + validations: + required: true + - type: textarea + id: acceptance + attributes: + label: Acceptance criteria + placeholder: "- [ ] " + value: "- [ ] " + validations: + required: true + - type: input + id: wave + attributes: + label: Wave / umbrella (if part of a batch) + description: "Issue number of the meta:campaign umbrella this finding belongs to. Blank only if this is a standalone finding." + validations: + required: false + - type: input + id: dedup + attributes: + label: Related issues checked + description: "Issue numbers you searched before filing (deduplication obligation, Intake Spec Rule 2). 'searched: ' is acceptable." + validations: + required: true diff --git a/.github/ISSUE_TEMPLATE/campaign.yml b/.github/ISSUE_TEMPLATE/campaign.yml new file mode 100644 index 000000000..97822be6a --- /dev/null +++ b/.github/ISSUE_TEMPLATE/campaign.yml @@ -0,0 +1,36 @@ +# SPDX-License-Identifier: MPL-2.0 +name: Campaign / wave umbrella +description: A multi-step or multi-repo effort. Per the Intake Spec (docs/ISSUE-INTAKE-SPEC.adoc), a wave of more than five findings MUST have exactly one umbrella like this, opened before the findings. +title: "[campaign] (UMBRELLA)" +labels: [meta:campaign] +body: + - type: textarea + id: source + attributes: + label: Source of findings + description: "The audit/checkpoint documents this wave came from, by name and location. If an agent produced them, name the session. Duplicated or conflicting source documents must be reconciled here before findings are filed (Intake Spec Rule 8)." + validations: + required: true + - type: textarea + id: scope + attributes: + label: Scope and boundaries + description: "What is in the wave, what is explicitly out, and which repos/estates it touches. Estate-wide steps belong in the estate register; list them by pointer." + validations: + required: true + - type: textarea + id: steps + attributes: + label: Steps / acceptance criteria + placeholder: | + - [ ] Step 1 — (issue: #) + - [ ] Step 2 — (issue: #) + validations: + required: true + - type: textarea + id: stopconditions + attributes: + label: Stop / park conditions + description: "What would park this wave (owner ruling, cost, dependency) so it is parked deliberately rather than decaying silently." + validations: + required: false diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 000000000..341917463 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,7 @@ +# SPDX-License-Identifier: MPL-2.0 +# Blank issues are disabled deliberately. +# Intake Spec (docs/ISSUE-INTAKE-SPEC.adoc) Rule 4: an issue that fits none of +# the templates (bug / decision / campaign) does not fit this repository. +# The blank form is how the 2026-09-22 unstructured bulk-filing shape becomes +# possible again; it is not an acceptable intake path. +blank_issues_enabled: false diff --git a/.github/ISSUE_TEMPLATE/decision.yml b/.github/ISSUE_TEMPLATE/decision.yml new file mode 100644 index 000000000..4ba07154e --- /dev/null +++ b/.github/ISSUE_TEMPLATE/decision.yml @@ -0,0 +1,44 @@ +# SPDX-License-Identifier: MPL-2.0 +name: Decision / owner ruling +description: A point where work is blocked on an owner decision. The answer should be batchable — one reply resolves it. +title: "[decision] " +labels: [decision, status:needs-ruling] +body: + - type: textarea + id: question + attributes: + label: The question + description: "One question, answerable in one sentence." + validations: + required: true + - type: textarea + id: options + attributes: + label: Options + description: "Each option, with its cost and what it blocks." + placeholder: | + A)