Skip to content

CI: Wave 3 roadmap drift guard (docs/roadmap-wave3.md vs #1380) #1802

Description

@PurHur

Problem

Wave 3 progress is tracked in three places that drift:

Source Stale example (2026-05-24)
#1380 issue body M2 spine 444/586 (master is 567/586)
docs/roadmap-wave3.md Language/stdlib tables vs merged PRs
ROADMAP #78 Batch notes vs #1751 close-out

#1769 ✅ closed a one-off sync PR; there is no automated guard preventing the tracker from lying after the next merge batch.

Goal

Add script/check-wave3-roadmap-sync.php (or extend script/bootstrap-inventory.php --check pattern) that fails when:

  1. Open language issues in docs/roadmap-wave3.md disagree with Roadmap wave 3: full PHP language + stdlib gaps tracker (#1354–#1379) #1380 checklist
  2. Optional: M2 spine require_once count in issue Roadmap wave 3: full PHP language + stdlib gaps tracker (#1354–#1379) #1380 / M2 spine growth: batch tracker (compiler_lib_spine_smoke → full inventory) #1419 footer matches test/selfhost/compiler_lib_spine_smoke/main.php

Wire opt-in gate into ci-fast.sh inventory phase (default off until stable).

Implementation hints

Piece Path Notes
Checker script/check-wave3-roadmap-sync.php Parse docs/roadmap-wave3.md tables + gh-less regex for issue states
Test test/unit/Wave3RoadmapSyncTest.php Assert checker passes on master
CI script/ci-fast.sh WAVE3_ROADMAP_SYNC_GATE=1 opt-in
Docs docs/README.md Document regen: php script/capability-matrix.php + manual wave3 table

Suggested checks (v1)

- Count open language rows in roadmap-wave3.md == 1 (#1354 only)
- Stdlib open count == 0
- Spine require_once count == wc -l compiler_lib_spine_smoke/main.php

Acceptance criteria

php script/check-wave3-roadmap-sync.php
WAVE3_ROADMAP_SYNC_GATE=1 ./script/ci-fast.sh

Docker:

docker run --rm -v "$(pwd):/compiler" -w /compiler php-compiler:22.04-dev \
  php script/check-wave3-roadmap-sync.php

No GitHub Actions.

Dependencies

Links

Activity

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

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions