Skip to content

Actions allow-list is selected with 0 patterns — any third-party action dies at startup with jobs=0; owner PUT of the canon needed #16

Description

@hyperpolymath

Measured (2026-09-22)

  • gh api repos/hyperpolymath/choreographic-types/actions/permissions → allowed_actions: selected; …/selected-actions → patterns_allowed: [], github_owned_allowed: true, verified_allowed: true.
  • Canon: hyperpolymath/standards config/settings/actions-allowlist.json @ ed5e3f65 = 93 patterns. Positive control: echo-types live = 92 (missing only tailscale/github-action@*).
  • Mutant proof on residual-evidence-types (same posture, 2026-09-22): a workflow with one third-party uses: step dies startup_failure with jobs=0; the same head minus that step runs jobs=1 green.
  • Today the only caller is secret-scanner.yml → hyperpolymath/standards/.github/workflows/secret-scanner-reusable.yml (same-owner, admitted under selected), so nothing is killed by this posture yet. Any future prover workflow that uses a marketplace action will be.

Why it matters

A 0-pattern selected posture is the predicted shape of a mid-sweep death of the estate allow-list rollout (2 of the 8 family repos: residual-evidence-types, created 09-09, already existed at the 2026-09-15 census that recorded zero empty pattern lists, so it is a counterexample to that census; this repo postdates it). It is silent until the first third-party action.

Acceptance criteria

  1. gh api repos/hyperpolymath/choreographic-types/actions/permissions/selected-actions --jq '.patterns_allowed|length' returns the count of the payload that was PUT (compare to the payload, never to a remembered number; 93 at ed5e3f65).
  2. Positive control in the same command: echo-types returns the same count after its own refresh.
  3. The PUT is owner-only (the auto-mode classifier denies it from an agent session). With the canon file saved as payload.json ({"github_owned_allowed":true,"verified_allowed":true,"patterns_allowed":[…]}):
gh api -X PUT repos/hyperpolymath/choreographic-types/actions/permissions/selected-actions --input payload.json

Note

The scanner reds on this repo are the billing refusal described in #15, not this posture.

🤖 Generated with Claude Code

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

    cicdCI/CD: workflows, actions, lockfiles, pins, runners, release gatespriority:p1High - schedule nextscope:estateAffects many or all repos across the estatestatus:blockedCannot proceed until a dependency clears

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions