Skip to content

Commit de86505

Browse files
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>
1 parent c56f4ec commit de86505

10 files changed

Lines changed: 2310 additions & 62 deletions

File tree

‎.github/ISSUE_TEMPLATE/bug.yml‎

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
name: Bug / defect
2+
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.
3+
title: "<component>: <one-line defect>"
4+
labels: [bug]
5+
body:
6+
- type: dropdown
7+
id: scope
8+
attributes:
9+
label: Scope
10+
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)."
11+
options:
12+
- scope:repo (fix is in this repository)
13+
- scope:estate (fix is estate-wide; this repo is the source)
14+
validations:
15+
required: true
16+
- type: textarea
17+
id: evidence
18+
attributes:
19+
label: Evidence
20+
description: "The command, its actual output, and the expected result. An issue without evidence is untriageable and will be closed."
21+
placeholder: |
22+
$ <exact command>
23+
<actual output>
24+
Expected: <what should happen>
25+
validations:
26+
required: true
27+
- type: textarea
28+
id: affected
29+
attributes:
30+
label: Affected
31+
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)."
32+
validations:
33+
required: true
34+
- type: textarea
35+
id: acceptance
36+
attributes:
37+
label: Acceptance criteria
38+
placeholder: "- [ ] <verifiable condition>"
39+
value: "- [ ] "
40+
validations:
41+
required: true
42+
- type: input
43+
id: wave
44+
attributes:
45+
label: Wave / umbrella (if part of a batch)
46+
description: "Issue number of the meta:campaign umbrella this finding belongs to. Blank only if this is a standalone finding."
47+
validations:
48+
required: false
49+
- type: input
50+
id: dedup
51+
attributes:
52+
label: Related issues checked
53+
description: "Issue numbers you searched before filing (deduplication obligation, Intake Spec Rule 2). 'searched: <terms>' is acceptable."
54+
validations:
55+
required: true
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
name: Campaign / wave umbrella
2+
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.
3+
title: "[campaign] <name> (UMBRELLA)"
4+
labels: [meta:campaign]
5+
body:
6+
- type: textarea
7+
id: source
8+
attributes:
9+
label: Source of findings
10+
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)."
11+
validations:
12+
required: true
13+
- type: textarea
14+
id: scope
15+
attributes:
16+
label: Scope and boundaries
17+
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."
18+
validations:
19+
required: true
20+
- type: textarea
21+
id: steps
22+
attributes:
23+
label: Steps / acceptance criteria
24+
placeholder: |
25+
- [ ] Step 1 — <condition that closes it> (issue: #)
26+
- [ ] Step 2 — <condition> (issue: #)
27+
validations:
28+
required: true
29+
- type: textarea
30+
id: stopconditions
31+
attributes:
32+
label: Stop / park conditions
33+
description: "What would park this wave (owner ruling, cost, dependency) so it is parked deliberately rather than decaying silently."
34+
validations:
35+
required: false

‎.github/ISSUE_TEMPLATE/config.yml‎

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# Blank issues are disabled deliberately.
2+
# Intake Spec (docs/ISSUE-INTAKE-SPEC.adoc) Rule 4: an issue that fits none of
3+
# the templates (bug / decision / campaign) does not fit this repository.
4+
# The blank form is how the 2026-09-22 unstructured bulk-filing shape becomes
5+
# possible again; it is not an acceptable intake path.
6+
blank_issues_enabled: false
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
name: Decision / owner ruling
2+
description: A point where work is blocked on an owner decision. The answer should be batchable — one reply resolves it.
3+
title: "[decision] <one-line question>"
4+
labels: [decision, status:needs-ruling]
5+
body:
6+
- type: textarea
7+
id: question
8+
attributes:
9+
label: The question
10+
description: "One question, answerable in one sentence."
11+
validations:
12+
required: true
13+
- type: textarea
14+
id: options
15+
attributes:
16+
label: Options
17+
description: "Each option, with its cost and what it blocks."
18+
placeholder: |
19+
A) <option> — cost: <...> — unblocks: <...>
20+
B) <option> — cost: <...> — unblocks: <...>
21+
validations:
22+
required: true
23+
- type: textarea
24+
id: recommendation
25+
attributes:
26+
label: Recommendation
27+
description: "Which option and why. The owner may disagree; the point is to make the disagreement cheap."
28+
validations:
29+
required: true
30+
- type: textarea
31+
id: blocked
32+
attributes:
33+
label: What is blocked
34+
description: "Issue numbers / estate work waiting on this ruling."
35+
validations:
36+
required: false
37+
- type: input
38+
id: register
39+
attributes:
40+
label: Register entry
41+
description: "This decision MUST also be added to the open owner-decision register (the meta:umbrella + decision issue). Put the register issue number here."
42+
validations:
43+
required: true

‎0-canon/GOVERNANCE.adoc‎

Lines changed: 89 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -1,60 +1,89 @@
1-
== Governance
2-
3-
=== Overview
4-
5-
This project is governed by the following principles and structures to
6-
ensure transparent, inclusive, and effective decision-making.
7-
8-
=== Roles and Responsibilities
9-
10-
==== Maintainers
11-
12-
Maintainers are responsible for: - Reviewing and merging pull requests -
13-
Managing releases and versioning - Ensuring code quality and standards -
14-
Triaging issues and bug reports - Community engagement and support
15-
16-
==== Contributors
17-
18-
Contributors are expected to: - Follow the code of conduct - Submit
19-
well-documented pull requests - Write tests for new functionality -
20-
Maintain existing tests - Update documentation as needed
21-
22-
=== Decision Making
23-
24-
==== Minor Changes
25-
26-
* Can be made by any maintainer
27-
* Include bug fixes, documentation updates, dependency updates
28-
29-
==== Major Changes
30-
31-
* Require discussion in issues or pull requests
32-
* Include new features, architectural changes, API changes
33-
* Need approval from at least 2 maintainers
34-
35-
==== Breaking Changes
36-
37-
* Require RFC (Request for Comments) process
38-
* Need approval from majority of maintainers
39-
* Must include migration guide
40-
41-
=== Code of Conduct
42-
43-
All participants are expected to follow our Code of Conduct. Violations
44-
can be reported to the maintainers.
45-
46-
=== Communication
47-
48-
* *Issues*: For bug reports and feature requests
49-
* *Discussions*: For questions and general discussion
50-
* *Pull Requests*: For code contributions
51-
52-
=== Licensing
53-
54-
All contributions are made under the terms of the repository’s LICENSE
55-
file. By submitting a pull request, you agree to license your
56-
contributions accordingly.
57-
58-
'''''
59-
60-
_Last updated: 2026-07-18_
1+
// SPDX-License-Identifier: CC-BY-SA-4.0
2+
// SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell (hyperpolymath) <j.d.a.jewell@open.ac.uk>
3+
= Governance
4+
:author: Jonathan D.A. Jewell (hyperpolymath)
5+
:revnumber: 2.0.0
6+
:revdate: 2026-09-24
7+
:toc:
8+
:icons: font
9+
10+
[NOTE]
11+
====
12+
v2.0.0 replaces a generic placeholder (v1) that did not describe this estate
13+
and carried a broken document tail. The placeholder said, for example, that
14+
major changes "need approval from at least 2 maintainers" — a statement that
15+
is not true of a single-owner estate and that contradicted the constitution.
16+
Authority for this document is derived from the
17+
link:constitution/README.adoc[Constitutional District], which it summarises
18+
for orientation and does not supersede.
19+
====
20+
21+
== What governs this repository
22+
23+
This repository is the standards host of the Hyperpolymath estate: it holds
24+
the constitutional district, the RSR (Repository Standard) canon, the
25+
machine-readable format definitions, and the reusable CI/CD and security
26+
workflows that the estate consumes.
27+
28+
* The *constitutional district* (link:constitution/README.adoc[0-canon/constitution/])
29+
is the highest estate-level authority. It states what may govern: authority
30+
classes and precedence, the assurance constitution, the contribution
31+
constitution, exceptions and ANCHORs, known tensions, and the change
32+
procedure.
33+
* *Normative standards* (the RSR tree, the format trees, the policies under
34+
`docs/`) govern within constitutional bounds.
35+
* *Implementation* (scripts, reusable workflows, gates) may enforce rules
36+
but cannot create them.
37+
38+
Where this document and the constitution differ, the constitution wins.
39+
40+
== Roles
41+
42+
*Owner*::
43+
The estate is single-owner (hyperpolymath). The owner holds the authority
44+
classes the constitution assigns to the estate: rulings on `status:needs-ruling`
45+
matters, ANCHOR usage, licence and scope decisions, and changes to this
46+
document and the canon.
47+
48+
*Maintainers*::
49+
There are no separate maintainers. The owner may delegate scoped, revocable
50+
permissions via repository rulesets and branch protection; delegation is
51+
recorded in the rulesets, not in this document.
52+
53+
*Agents and automation*::
54+
Agents and bots act under the owner's authority and under the constraints of
55+
link:constitution/CONTRIBUTION-CONSTITUTION.adoc[Contribution Constitution]
56+
and `0-AI-MANIFEST.a2ml`. Automation may open issues only under the contract
57+
in link:../docs/ISSUE-INTAKE-SPEC.adoc[Issue Intake Specification] Rule 6.
58+
59+
== Decision making
60+
61+
* *Constitutional changes* — via link:constitution/CHANGE-PROCEDURE.adoc[Change
62+
Procedure]; they identify what they supersede.
63+
* *Normative standard changes* — proposal in an issue or PR, reviewed against
64+
the precedence test (link:constitution/AUTHORITY-AND-PRECEDENCE.adoc[Authority
65+
and Precedence]); a change that contradicts a higher class is a recorded
66+
contradiction, not a silent amendment.
67+
* *Local changes* (docs, scripts, config) — normal PR review; required checks
68+
on `main` are the mechanical floor.
69+
* *Owner rulings* — batched in the owner-decision register; a decision
70+
template issue names the register entry so one reply resolves a batch.
71+
72+
== Communication
73+
74+
* *Issues* — one issue, one actionable defect, correct scope, per the
75+
link:../docs/ISSUE-INTAKE-SPEC.adoc[Issue Intake Specification]. Estate-wide
76+
findings live in the estate register, not here.
77+
* *Pull requests* — the only path by which a change reaches `main` on the
78+
protected branches.
79+
* *Evidence* — claims in this repository that assert current state must
80+
carry their evidence (command + output, or the run that produced them).
81+
A number without a measurement method is a comment, not a claim.
82+
83+
== Licensing
84+
85+
This repository is licensed under MPL-2.0 (see `LICENSE`). Constitutional and
86+
RSR canon documents carry CC-BY-SA-4.0 headers per the estate licence axis.
87+
`LICENSES/` and the REUSE sidecars keep the per-file record; a file that cannot
88+
carry a header needs its sidecar (see the open REUSE findings in the issue
89+
tracker) — the record is part of the standard, not optional furniture.

‎0-canon/rsr/LANGUAGE-POLICY.adoc‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
:revdate: 2026-09-22
88
:toc: left
99
:icons: font
10-
:source-repo: https://github.com/hyperpolymath/cccp
10+
:source-repo: https://github.com/hyperpolymath/standards
1111

1212
[NOTE]
1313
====

0 commit comments

Comments
 (0)