ce2e: dual-origin CLI + occupancy + library contract

Closed
CJ
2mo ago
+2191-7

Summary

  • Dual-origin CLI runtime (devtools/jext-cli/run.sh + configs/complete-e2e adapter) so cli:jext-cli reconciles static+runtime.
  • Occupancy prove scripts (repository.py / entity.py / fault scripts) with identity-bound named receipts.
  • PHPUnit CompleteE2e library contract (export / invalid-input / error-semantics).
  • Root run.sh fail-closed gate (JEXT_CLI_ALLOWED) for missing-env occupancy.

Test plan

  • bash scripts/complete-e2e/prove.sh
  • php vendor/bin/phpunit -c phpunit.xml
  • complete-e2e exhaustive → CERTIFIED → squash-merge

Summary by cubic

Introduces a dual-origin CLI runtime with a fail-closed root gate, occupancy prove scripts, and a PHPUnit library contract so the project can be machine-proven for the complete-e2e certification ladder.

New Features

  • Adds devtools/jext-cli/run.sh with status, config, validate, and version commands that check CLI surfaces and identify required files.
  • Adds scripts/complete-e2e/prove.sh, repository.py, and entity.py occupancy provers that emit named receipts into .hurc-harness.
  • Adds a runtime adapter (configs/complete-e2e/runtime.json and list-runtime-clis.sh) to reconcile static and runtime CLI origins.
  • Adds tests/CompleteE2e/CompleteE2eLibraryContractTest.php covering public type loading, empty-input rejection, and documented error semantics.

Migration

  • Root run.sh now exits unless JEXT_CLI_ALLOWED=yes.
  • Requires PHPUnit and its dependencies via composer install; the test script runs phpunit --no-coverage.