Skip to content
PREFLIGHT 0.1.0

Flight log · 2026-10-28 · 82 departures

82 Wayne State applications run through PREFLIGHT on 2026-10-28: 0 cleared, 81 held at the gate, 1 tool error.

Each app was copied with its secrets stripped and run, inside php:8.4-cli with Wayne State's servers out of reach, through the same commands the 0.1.0 components run: proctor, composer-audit and php-test. The include block each app would add was linted too. No app would have taken off today, which is the checklist doing its job; the one time a check fell over instead of answering is on this page as well.

  • PREFLIGHT 0.1.0
  • PROCTOR 0.2.0 + fix
  • image php:8.4-cli
  • WSU servers unreachable
  • mean per app 53 s

Item 1 · The tally

Eighty-two walkarounds

An app is cleared when every component it would include ends with its pass exit code. It is held when a component ends with the exit code that fails the pipeline: that is PREFLIGHT working, and it says nothing bad about the app's code, only that its CI would stop until someone looks. A tool error is a check that crashed, printed a report GitLab cannot read, or an include that does not lint clean. Those are PREFLIGHT's problem, not the app's.

  • 0Clearedevery check that would run, green
  • 81Helda check would stop the pipeline
  • 1Tool errorPROCTOR ran out of memory on one app; fix queued
  • 0Not applicableevery app had something to check

82 applications, one square each: 0 passed, 81 flagged, 1 tool errors, 0 not applicable.

One lamp per application, in the order of its anonymous id. This repository is public, so the apps are counted and never named.

Item 2 · Check by check

What each component would have said

Counts across the 82 apps. The per-app log, with each exit code and duration, stays in the stack's internal record.

The include block
CheckAppsResult
The three-component include an app would add, through PREFLIGHT's template lint82clean every time: pinned to @0.1.0, workflow rules present
The app's own CI files, where it had any32 with lint errors (unpinned actions; an image on :latest), 1 clean

proctor

  • held: PROCTOR found something to fix81
  • tool error: out of memory1

All 81 reports were valid GitLab Code Quality JSON, every entry with a description, check name, fingerprint, severity and path. Most of what PROCTOR raised is a PHP or framework line past its support date.

composer-audit

  • passed: no advisories27
  • held: advisories or abandoned packages24
  • held: no composer.lock to audit31

php-test, for the 17 apps with tests

  • dependencies would not install15
  • installed, tests failed on 8.42

Of the 15 installs that stopped, 12 had a lock file written for an older PHP, 11 needed an extension the component's default image does not carry (oci8 7 times, gd 3, then ldap, exif and filter), and 1 needed a private package from Wayne State's GitLab, which the sandbox could not reach. The component has an image input for exactly this; an app with Oracle drivers brings its own image.

The one that fell over

On one app with a very large PHP tree and no composer.json, PROCTOR's parser ran past PHP's default 128 MB memory limit and exited 255 with no report. A pipeline would show that as a crashed job, not a finding. Raising PROCTOR's own memory limit is queued with a test, and this page will say so when it ships.

Item 3 · File your own flight plan

Run it on your own app

Add the include block to .gitlab-ci.yml and push. Or run the same commands on your machine first.

.gitlab-ci.yml

include: - component: $CI_SERVER_FQDN/enterprise-apps/preflight/proctor@0.1.0 - component: $CI_SERVER_FQDN/enterprise-apps/preflight/php-test@0.1.0 - component: $CI_SERVER_FQDN/enterprise-apps/preflight/composer-audit@0.1.0

The same checks, locally

vendor/bin/proctor check --format=codequality && composer audit --locked && vendor/bin/phpunit

The proof harness ran exactly these inside php:8.4-cli on a throwaway copy of each app, with .git, auth.json and every .env removed first, and logged each app as one line (tool commit, unit id, command, exit code, duration, outcome) in the stack's internal record.

Item 4 · Read before flight

What this does not prove

  • No pipeline ran on GitLab. These are the components' commands run the way their scripts run them; a component is proved end to end in a pipeline on the instance, not here.
  • php-test ran on PHP 8.4 only, not across 8.3, 8.4 and 8.5, and with the default image. Apps that need Oracle or another extension were stopped by the image, which is a fair reading of the defaults but not of an app that sets its own.
  • The components still to come (SBOM, Pint, PHPStan, ESLint) were not part of 0.1.0 and were not run.
  • Nothing reached a database, a sign-in service or any Wayne State server.
  • One tool error stands until PROCTOR's memory fix ships.

Zero cleared for takeoff. The tower calls that a good day: nobody left with the fuel cap off.