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.
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.
| Check | Apps | Result |
|---|---|---|
| The three-component include an app would add, through PREFLIGHT's template lint | 82 | clean every time: pinned to @0.1.0, workflow rules present |
| The app's own CI files, where it had any | 3 | 2 with lint errors (unpinned actions; an image on :latest), 1 clean |
proctor
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
php-test, for the 17 apps with tests
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.0The same checks, locally
vendor/bin/proctor check --format=codequality && composer audit --locked && vendor/bin/phpunitThe 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-testran 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.