GloriousFlywheel XoxdWM First Patch Playbook 2026-04-16

GloriousFlywheel XoxdWM First Patch Playbook 2026-04-16

Snapshot date: 2026-04-16

Purpose

Define the first concrete downstream patch target for Jesssullivan/XoxdWM under #210.

GitHub owner: #210

Why XoxdWM Goes First

XoxdWM is the strongest user-owned canary in the first migration tranche:

  • it has visible downstream use of tinyland-inc/GloriousFlywheel/.github/actions/setup-flywheel@main
  • it mixes stable shared runner labels with raw [self-hosted, honey] jobs
  • it gates self-hosted behavior on github.repository == 'tinyland-inc/XoxdWM', which is exactly the kind of org-internal assumption the public contract should stop requiring

If the contract works here, GloriousFlywheel becomes much more credible for user-owned repos.

Observed Workflow Reality

From direct workflow inspection on 2026-04-16:

  • self-hosted-fast.yml
    • uses tinyland-nix
    • directly calls tinyland-inc/GloriousFlywheel/.github/actions/setup-flywheel@main
    • also contains fast-vr on raw [self-hosted, honey]
  • cache-warm.yml
    • uses tinyland-nix conditionally
    • still manages Attic setup manually
  • packaging.yml, native-deps.yml, multi-arch.yml, and runner-health.yml
    • use conditional tinyland-nix or raw [self-hosted, honey] paths
  • vr-hardware.yml
    • uses raw [self-hosted, honey] for hardware-specific workloads

First Patch Goal

Separate the stable shared-runner contract from the hardware-specific local lab contract.

That means:

  1. keep stable shared CI on tinyland-nix
  2. keep hardware-specific VR jobs on explicit compatibility selectors for now
  3. remove the repo-hardcoded tinyland-inc/XoxdWM assumption from the shared CI path
  4. reduce ad hoc manual Attic setup where the GloriousFlywheel action surface already provides the needed environment

Patch 1: Normalize the shared fast path

Target file:

  • self-hosted-fast.yml

Desired outcome:

  • fast-check and fast-build remain on tinyland-nix
  • those jobs stop depending on the repo being under tinyland-inc/XoxdWM
  • the stable shared-runner path is clearly distinguished from hardware-only jobs

Patch 2: Move cache warm closer to the shared contract

Target file:

  • cache-warm.yml

Desired outcome:

  • shared tinyland-nix use remains explicit
  • stale/manual Attic setup is reduced where GloriousFlywheel already injects the relevant runtime environment
  • cache-warm becomes a clean canary for the public Nix runner contract

Patch 3: Leave hardware jobs as compatibility

Target files:

  • vr-hardware.yml
  • any raw [self-hosted, honey] jobs in runner-health.yml

Desired outcome:

  • hardware/lab-specific jobs remain clearly marked as compatibility-only
  • they do not pollute the public shared-runner story

What Not To Do First

  • do not start by rewriting the VR hardware workflows into the public contract
  • do not try to make hardware-specific jobs define the general user-repo story
  • do not broaden from XoxdWM to other user repos until the stable shared path is clean here

Acceptance Criteria

  • XoxdWM has one stable shared CI path that reads like a public consumer of tinyland-nix
  • hardware-specific jobs are explicitly compatibility/lab-specific
  • the repo-hardcoded org assumption is no longer required for the stable shared path

GloriousFlywheel