Conversation
There was a problem hiding this comment.
Pull request overview
Adds a new P1 backlog row (B-0155) to plan a GitHub repo-settings refactor that splits a monolithic ruleset into three always-on concern-aligned rulesets and migrates CI required checks from legacy branch protection into rulesets (“git-native preferred”).
Changes:
- Add
docs/backlog/P1/B-0155-…describing the phased ruleset-splitting + migration plan and acceptance criteria. - Regenerate/update
docs/BACKLOG.mdto include the new B-0155 row.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 5 comments.
| File | Description |
|---|---|
| docs/backlog/P1/B-0155-github-settings-ruleset-split-git-native-preferred-aaron-2026-05-01.md | New backlog row documenting the intended GitHub settings refactor plan and milestones |
| docs/BACKLOG.md | Adds B-0155 to the P1 index list |
…e preferred (Aaron 2026-05-01) Aaron 2026-05-01: *"the settings that are there are accidental complexity not intentional, we want best practices and to prefer the git native settings over the legacy github ui/cli only settings, these are nasty thats why they are legacy"* + earlier *"splitting rulesets so you could have all always on but multiple smaller rulesets"*. Three composing directives captured: 1. Treat current settings as accidental complexity (not load-bearing) 2. Split single big ruleset → three concern-aligned smaller always-on rulesets (Branch integrity / Review process / CI gate) 3. Prefer git-native (declarative-in-tree + ruleset-as-code) over legacy UI/CLI-only branch-protection settings Phase plan: audit + design, split implementation, branch-protection cleanup, documentation. Reconciliation script (tools/hygiene/apply-github-settings.sh) as mechanization candidate that makes click-ops drift structurally impossible. depends_on: B-0154 (sibling host-config refactor work).
…e-ruleset target shape Phase 1 deliverable for B-0155 — audit-only, no host changes yet. Captures: 1. Migration matrix — every legacy branch-protection field mapped to its ruleset rule equivalent (or "no equivalent, keep in legacy") so future maintainers + the reconciliation script (Phase 2) have a ground-truth reference for what migrates and what stays. 2. Three-ruleset target shape — Branch integrity / Review process / CI gate. Each concern-aligned, all always-on, smaller blast-radius per Aaron's "splitting rulesets so you could have all always on but multiple smaller rulesets" framing. 3. Minimized branch protection — post-migration, only `allow_fork_syncing` (legacy-only) remains in branch protection. Everything else moves to rulesets where rule equivalents exist. 4. Git-native rationale — captures Aaron's "these are nasty thats why they are legacy" framing + the reconciliation script direction that closes the loop on click-ops drift. 5. Reconciliation script vision — `tools/hygiene/apply-github-settings.sh` as the third verb (alongside snapshot + check) that makes drift structurally impossible. Audit-only commit; Phase 2 (snapshot edit + reconciliation script + apply) is a separate PR after this row's audit lands.
3baa2de to
a938463
Compare
…low + visibility-constraint clarification + B-0154 forward-ref annotation Three substantive fixes: 1. **Line-leading `+` on continuation** (MD004 lint, recursive irony from B-0153's class 1) — reflowed "+ tick-history-order" to "and tick-history-order" so the continuation doesn't read as a nested bullet. 2. **Visibility-constraint memory reference** — referenced filename doesn't exist in repo (rule is referenced PROSEFULLY in MEMORY.md + multiple memory files but never landed as its own dedicated memory file). Replaced broken pointer with prose acknowledgement + verbatim Aaron 2026-04-28 quote, and noted the rule is referenced-not-yet-filed. 3. **B-0154 depends_on forward-ref** — annotated as "(forward-ref to PR #1125 not yet merged on main)" so the DAG semantics are explicit. Threads PRRT_kwDOSF9kNM5_Awkw + PRRT_kwDOSF9kNM5_AwlS (about "Current state" inconsistency with snapshot showing code_quality + strict:true) are now stale — post-rebase, this branch reflects post-PR-#1126 state which matches the row content. Resolving those without code change.
… — graduates from accidental to canonical Aaron 2026-05-01: *"no we want false"* + *"yes that is not accidentally"* — explicit confirmation that `required_status_checks.strict: false` is the intentional design choice, not accidental complexity. Sharpens the everything-greenfield rule: the DEFAULT prior at week-one is "configs are accidental candidates," but specific configs can graduate to confirmed-deliberate via direct maintainer signal. `strict: false` is one such confirmed- deliberate setting (parallel-PR-friendly cadence is the architecture). Composes with feedback_everything_greenfield_at_week_one's cause-attribution refinement (the click-vs-decision discipline; Aaron just made the click-then-decision graduation explicit for this specific setting).
There was a problem hiding this comment.
Pull request overview
Adds a new backlog row (B-0155) and extends the GitHub settings documentation to capture the intended “ruleset split + git-native preferred” direction for an upcoming github-settings refactor, then updates the generated backlog index.
Changes:
- Add new P1 backlog row B-0155 describing the multi-phase GitHub ruleset refactor plan.
- Extend
docs/GITHUB-SETTINGS.mdwith a Phase 1 audit/migration matrix and target three-ruleset architecture. - Regenerate
docs/BACKLOG.mdto include B-0155.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 4 comments.
| File | Description |
|---|---|
| docs/backlog/P1/B-0155-github-settings-ruleset-split-git-native-preferred-aaron-2026-05-01.md | New backlog row defining scope, phases, and acceptance criteria for the refactor. |
| docs/GITHUB-SETTINGS.md | Adds an audit section + migration matrix + target ruleset split architecture description. |
| docs/BACKLOG.md | Index update to include the new B-0155 row. |
| Rules: | ||
|
|
||
| - `required_status_checks` migrated from branch protection. Contexts: the 7 currently in branch protection (`build-and-test (macos-26)` / `build-and-test (ubuntu-24.04)` / `build-and-test (ubuntu-24.04-arm)` / `lint (actionlint)` / `lint (markdownlint)` / `lint (semgrep)` / `lint (shellcheck)`) plus the memory-* lints + backlog-index-integrity + tick-history-order | ||
| - `strict: false` (parallel-PR-friendly; preserved per session-cluster experience) |
| depends_on: | ||
| - B-0154 |
| - **One** `Default` ruleset with 5 rules (deletion, non_fast_forward, | ||
| copilot_code_review, pull_request, required_linear_history) | ||
| - **Plus** legacy branch protection on `main` with | ||
| `required_status_checks` (7 contexts, `strict: false`) + |
| | `block_creations` | `false` | (no direct equivalent) | Off anyway; can remove | | ||
| | `enforce_admins` | `false` | (rulesets default-enforce against admins unless bypass-actors set) | Rulesets handle admins differently; verify policy intent | | ||
| | `lock_branch` | `false` | (no equivalent) | Off anyway; can remove | | ||
| | `required_conversation_resolution` | `true` | `required_review_thread_resolution` rule (verify exact name in REST API) | **MIGRATE** — add rule to Review-process ruleset | |
Summary
Aaron 2026-05-01 directional input + full-permission grant on github-settings refactor:
Three composing directives captured in row
Phase plan
Mechanization candidate
Reconciliation script makes click-ops drift structurally impossible — every settings change must flow through editing expected.json + running the script. Drift workflow stays green by construction.
depends_on / composes_with
Test plan
🤖 Generated with Claude Code