Skip to content

DevEx: phpc doctor --selfhost — dedicated gate ladder for North Star 2 #2053

Description

@PurHur

Problem

phpc doctor --gates lists dozens of env vars; self-host probes are mixed with MiniWebApp / examples gates. #1865 added make north-star2-verify, but there is no phpc doctor --selfhost (or --gates-selfhost) that prints only:

  • BOOTSTRAP_LIB_SPINE_* / BOOTSTRAP_M3_* / BOOTSTRAP_LOOP_*
  • NORTH_STAR2_VERIFY_GATE, SELFHOST_SPINE_*_SYNC_GATE
  • One-line “run next” commands (make north-star2-verify, bootstrap-selfhost-helloworld-probe.sh)

Presenters and harness operators grep docs instead of a single CLI surface.

Goal

./phpc doctor --selfhost
# or: ./phpc doctor --gates --filter selfhost

Output sections:

  1. Inventorybootstrap-inventory.php --check status hint
  2. M2 spine — count 603/606, coverage sync gate state
  3. M3 emit — partial vs strict probe env vars (Self-host M3: Native emit for compiler compile-smoke fixture (post-#1493) #1937, CI: BOOTSTRAP_M3_COMPILE_SMOKE_STRICT_GATE opt-in in ci-local after #1937 #1968)
  4. Presentermake north-star2-verify + NORTH_STAR2_VERIFY_GATE default (DevEx: north-star2-verify presenter + M3 compile-smoke emit link #2046 when flipped)
  5. LLVM — whether ci_llvm_dir is ready (mirror doctor LLVM probe)

Scope

  • lib/Doctor.php — new flag or filter; no behavior change to default doctor
  • test/unit/PhpcDoctorTest.php — assert section headers and key env names
  • docs/bootstrap-selfhost.md, docs/GETTING-STARTED.md — link new flag

Out of scope: implementing M3 emit (#1937).

Acceptance criteria

./phpc doctor --selfhost | grep -E 'BOOTSTRAP_|NORTH_STAR2|SELFHOST_SPINE'
docker run --rm -v "$(pwd):/compiler" -w /compiler php-compiler:22.04-dev ./phpc doctor --selfhost

No GitHub Actions required.

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