From 8b4400b0c0e03739b00609bd1215d0a2daa22e53 Mon Sep 17 00:00:00 2001 From: Kyle Tse Date: Tue, 6 Oct 2026 17:46:09 +0000 Subject: [PATCH 1/2] ci: stack-conformance check fails a new departure from the default stack Adds the shared stack-conformance check (SylphxAI/.github#208) to the gate, so a change that adds a backend service off Rust or a migration engine other than atlas fails unless the baseline already lists it. --- .github/workflows/ci.yml | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f7d2160f..fbf0fc60 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -500,12 +500,29 @@ jobs: uses: ./.github/workflows/verify.yml secrets: inherit + # No new departure from the default stack (docs/stack-conformance.md in + # SylphxAI/.github): a backend service off Rust or a migration engine other + # than atlas fails unless .github/stack-departures.txt, which may only + # shrink, already lists it. Reads git objects only; a few seconds. + stack: + runs-on: ubuntu-latest + timeout-minutes: 5 + permissions: + contents: read + steps: + - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0 + with: + filter: blob:none + - uses: SylphxAI/.github/.github/actions/stack-conformance@bc664ac7410c00d233fe4f729b6747969a4a9bed # SylphxAI/.github#208 + with: + base: ${{ github.event.pull_request.base.sha || github.event.merge_group.base_sha || '' }} + # Not required today (the ruleset names the seven jobs above); the single # check to require once the ruleset is reduced to one. ci-ok: name: ci-ok if: always() - needs: [main-state, plan, identifiers, lint-and-typecheck, security, unit-tests, build, rust-api, migrations, suite] + needs: [main-state, plan, identifiers, lint-and-typecheck, security, unit-tests, build, rust-api, migrations, suite, stack] runs-on: ubuntu-latest timeout-minutes: 5 steps: From 89e24ae008ede0502aed61c1bbb111073d777c3d Mon Sep 17 00:00:00 2001 From: Kyle Tse Date: Sun, 11 Oct 2026 00:54:36 +0000 Subject: [PATCH 2/2] ci: seed empty stack baseline to reject later departures --- .github/stack-departures.txt | 2 ++ README.md | 4 ++++ 2 files changed, 6 insertions(+) create mode 100644 .github/stack-departures.txt diff --git a/.github/stack-departures.txt b/.github/stack-departures.txt new file mode 100644 index 00000000..f6d4bf8c --- /dev/null +++ b/.github/stack-departures.txt @@ -0,0 +1,2 @@ +# Recorded departures from the default stack (SylphxAI/owner standards/stack.md). +# This list may only shrink; the stack-conformance check enforces it. diff --git a/README.md b/README.md index 0daf202c..670b4d9c 100644 --- a/README.md +++ b/README.md @@ -72,6 +72,10 @@ schema migrations applied by an Atlas job first. After a deploy, run `bun run verify:live` to check production ([docs/reference/live-verification.md](docs/reference/live-verification.md)). +The merge gate's `stack` check compares against the change's base commit. +[`.github/stack-departures.txt`](.github/stack-departures.txt) has no entries; +keep the file so a later change cannot seed a new departure as existing debt. + ### Daily Web Push configuration The existing manifest/icons and install prompt are reused; `/sw.js` adds