Problem
script/ci-common.sh runs php script/bootstrap-inventory.php --check early in both ci-fast.sh and ci-local.sh. When docs/bootstrap-inventory.md drifts from the generator (file count / blocker table changes on master without a committed regen), the entire gate exits 1 before PHPUnit:
Stale /compiler/docs/bootstrap-inventory.md; run: php script/bootstrap-inventory.php
Batch 50 harness verify hit this on ./script/docker-ci-local.sh even though MiniWebApp AOT link tests pass after manual regen.
Goal
Contributors and harness hosts do not get a false-red full CI from inventory drift alone.
Scope (pick one in PR)
A (preferred): In script/ci-common.sh, run php script/bootstrap-inventory.php (write) when --check would fail, then continue — same pattern as docs/capabilities.md regen in CI.
B: Move --check to ci-fast only after a documented make bootstrap-profile prerequisite.
C: Loosen --check to warn unless BOOTSTRAP_INVENTORY_STRICT=1.
Implementation hints
| Piece |
File |
| Check |
script/bootstrap-inventory.php --check |
| Hook |
script/ci-common.sh (before capability matrix checks) |
| Doc |
docs/bootstrap-selfhost.md, #212 |
Acceptance criteria
# Touch lib/ to change inventory, run CI without manual regen:
./script/ci-fast.sh # exits 0 (regen or warn per chosen option)
./script/docker-ci-local.sh --filter VMTest
Committed docs/bootstrap-inventory.md stays in sync on PRs that change bootstrap blockers (optional follow-up: pre-commit note in #48).
Dependencies
Verification
Local/Docker only — not GitHub Actions.
Links
Problem
script/ci-common.shrunsphp script/bootstrap-inventory.php --checkearly in bothci-fast.shandci-local.sh. Whendocs/bootstrap-inventory.mddrifts from the generator (file count / blocker table changes onmasterwithout a committed regen), the entire gate exits 1 before PHPUnit:Batch 50 harness verify hit this on
./script/docker-ci-local.sheven though MiniWebApp AOT link tests pass after manual regen.Goal
Contributors and harness hosts do not get a false-red full CI from inventory drift alone.
Scope (pick one in PR)
A (preferred): In
script/ci-common.sh, runphp script/bootstrap-inventory.php(write) when--checkwould fail, then continue — same pattern asdocs/capabilities.mdregen in CI.B: Move
--checktoci-fastonly after a documentedmake bootstrap-profileprerequisite.C: Loosen
--checkto warn unlessBOOTSTRAP_INVENTORY_STRICT=1.Implementation hints
script/bootstrap-inventory.php --checkscript/ci-common.sh(before capability matrix checks)docs/bootstrap-selfhost.md, #212Acceptance criteria
Committed
docs/bootstrap-inventory.mdstays in sync on PRs that change bootstrap blockers (optional follow-up: pre-commit note in #48).Dependencies
Verification
Local/Docker only — not GitHub Actions.
Links
script/bootstrap-inventory.php,docs/bootstrap-inventory.md