Skip to content

fix(governance): reconcile stale stacked OpenCode ruleset audit authority #2037

Open

Description

@seonghobae

Corrected owner-path finding — 2026-09-08

The original Noema handoff overstated the leaf contract. Fresh protected ContextualWisdomLab/noema@0dbfceb850cda3a016ceb39ae1c8a1a96a9f2ad5 AGENTS.md is authoritative and says Noema's inherited Security ruleset 18794436 targets ~DEFAULT_BRANCH. A deliberately stacked PR whose base is another feature branch is intentionally outside that Security rule until it is retargeted to protected main; an absent Security Scan on such a stacked head is neither success nor, by itself, a routing defect. Once retargeted to main, Security must materialize and pass on the unchanged exact head.

That is exactly what happened to noema#556: after prerequisite #535 normally merged, #556 was non-force restacked/retargeted to default main, and fresh Security Scan runs materialized. Therefore this issue must not require Security Scan on feature-base stacked PRs, and it must not recreate a broad non-default Security ruleset to satisfy the old handoff.

Remaining central owner mismatch

A narrower .github control-plane mismatch remains independently actionable. Protected central source at the last observed .github/main@7fd571dbcdbae6acf29d8f4ee704d7ba6297e4db documents/audits organization ruleset 21732164 (CWL Stacked OpenCode required workflow), while fresh repository-effective reads from Noema, naruon, scopeweave and contextual-orchestrator did not expose that ruleset; direct repository-effective lookup on the naruon sentinel returned 404. Current scripts/ci/audit_central_required_workflows.py also carries STACKED_RULESET_ID = 21732164 and an OpenCode-only stacked contract.

That remaining mismatch is about central stacked OpenCode audit/source authority, not Noema Security. It may mean the central audit/docs are stale, the organization rule is no longer intended, or an Administration-scope view is needed to establish its current existence/scope. Do not infer which one from the leaf repository.

Repair-first acceptance

  1. Re-read the current protected .github AGENTS/CLAUDE/governance docs, current audit source/tests and an Administration-authoritative organization ruleset view before deciding the intended stacked OpenCode contract.
  2. Reproduce the current source/live mismatch deterministically: if protected audit source still requires numeric ruleset 21732164, show whether the authoritative live organization rule exists and whether repository-effective sentinel reads are an appropriate observation surface.
  3. If stacked OpenCode is no longer intended, remove the obsolete numeric-ID/source/docs/audit expectation through the canonical .github owner lane. If it remains intended, repair/adopt it through the existing governance owner plane with reviewed create/adopt semantics; do not create an ad-hoc parallel mutator.
  4. Preserve the non-default branch deadlock constraint. Do not broaden Noema Security or default-branch required workflows onto every feature ref merely to make a source audit green.
  5. Keep Noema's current contract unchanged: feature-base stacked heads may legitimately lack Security; after retarget to protected main, absent/queued/skipped/cancelled/failed Security is non-passing.
  6. Record exact protected source, authoritative live ruleset identity/scope, tests, post-change audit evidence and a real stacked OpenCode canary if that contract remains supported.

The previous acceptance language requiring "at minimum OpenCode and Security Scan" on non-default stacked refs is superseded and must not be implemented.

Activity

  1. added
    bugSomething isn't working
    area: ci-cdCI, GitHub Actions, checks, release, or supply chain
    area: securitySecurity boundary, hardening, or vulnerability prevention
    priority: criticalImmediate blocker, P0, urgent deadlock, or critical incident
    on Sep 8, 2026
  2. changed the title [-]fix(governance): require Security Scan on stacked feature-base PRs[/-] [+]fix(governance): reconcile stale stacked OpenCode ruleset audit authority[/+] on Sep 8, 2026
  3. added and removed
    priority: criticalImmediate blocker, P0, urgent deadlock, or critical incident
    area: securitySecurity boundary, hardening, or vulnerability prevention
    on Sep 8, 2026
  4. seonghobae commented on Sep 12, 2026

    @seonghobae
    ContributorAuthor

    Fresh stacked-review canary — ContextualWisdomLab/fast-mlsirm#1832

    • live base is feature branch fix/ordinal-quadrature-resolution-20260912@6782cdab34015d62a211c8c7a919c486e021e5ad;
    • exact head is 26953017f9bba20a58229f11f0e59faa962bb77b, mergeable, with one source-owned acceptance-test file;
    • repository CI 34702830717 and repository CodeQL 34702830707 are terminal GREEN on that head;
    • Reviews API returns zero submissions and review threads are zero; no OpenCode/Noema review workflow run materialized for the exact head after more than two scheduler intervals.

    This narrows the owner gap: fast-mlsirm's product verification does materialize for this feature-base PR, so it is not evidence for widening Security/default-branch rules. The missing capability is the separately documented stacked OpenCode review/admission contract. Preserve the true feature base and exact base/head identities; do not retarget to main, synthesize success, or transfer the parent's review.

  5. seonghobae commented on Oct 1, 2026

    @seonghobae
    ContributorAuthor

    Fresh stacked OpenCode canary — 2026-10-01

    ContextualWisdomLab/learning-record-store#6 is deliberately stacked on feature base agent/bootstrap-learning-record-store@e916fa0f8214ff3e43e2a6f54a0773e95a0fd488. Its unchanged exact head is ccb075763660072f8c68ac105c6fb747b52e62ff.

    The repository-owned Learning Record Store Quality workflow correctly materialized on that feature-base PR and run 36830936132 passed every PostgreSQL, Rust, formatting, lint, rustdoc and coverage stage. The exact head has no central OpenCode/Noema/Strix/Security/SAST/CodeQL workflow run; the commit workflow inventory contains only run 36830936132.

    Per this issue's corrected boundary, absent default-branch Security/SAST/CodeQL on a feature-base stack is not promoted to a routing defect or success. The absence of the documented stacked OpenCode path is a fresh consumer canary for the remaining central audit/source-authority mismatch. No leaf workflow copy, ruleset broadening, synthetic status, or merge action was attempted. The product PR remains Draft pending its prerequisite, qualifying review, retarget and unchanged-head gates.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area: ci-cdCI, GitHub Actions, checks, release, or supply chainbugSomething isn't workingmaintenancepriority: highHigh-priority or P1 workstatus: blockedBlocked by conflict, dependency, or required prerequisite

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions