Skip to content

chore(m3h): close historical SMV backlog and guard immutable release/main ancestry #377

chore(m3h): close historical SMV backlog and guard immutable release/main ancestry

chore(m3h): close historical SMV backlog and guard immutable release/main ancestry #377

name: CI Routing Policy
on:
pull_request:
paths:
- '.github/workflows/**'
- 'scripts/check_ci_trigger_policy.py'
- 'docs/CI_WORKFLOW_ROUTING.md'
- 'docs/integration/**'
- 'tools/integration_preservation_audit.py'
push:
branches: [main]
paths:
- '.github/workflows/**'
- 'scripts/check_ci_trigger_policy.py'
- 'docs/CI_WORKFLOW_ROUTING.md'
- 'docs/integration/**'
- 'tools/integration_preservation_audit.py'
permissions:
contents: read
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
jobs:
routing-contract:
runs-on: ubuntu-latest
timeout-minutes: 2
steps:
- uses: actions/checkout@v4
- name: Verify scoped PR workflow routing
run: python3 scripts/check_ci_trigger_policy.py
- name: Verify preservation manifest and all 37 non-chain source inventories
shell: bash
run: |
if [ -f docs/integration/PR_PRESERVATION_SNAPSHOT_2026-10-22.json ]; then
python3 tools/integration_preservation_audit.py --verify-only
else
echo 'No integration manifest in this branch; no-op.'
fi