Exam log · 2026-10-28 · 82 candidates
82 Wayne State applications run through PROCTOR on 2026-10-28: 0 passed, 81 flagged, 1 tool error.
Each app was copied with its secrets stripped and checked inside php:8.4-cli, with Wayne State's servers out of reach, against CREED's policy for that date. The first sitting turned up 31 apps PROCTOR could not grade at all. That was fixed and every app sat the exam again; these are the retake's marks.
Part 1 · The tally
Eighty-two papers, marked
An app passes when PROCTOR exits 0: no failing finding. It is flagged when PROCTOR exits 1 with a report that names each problem, its rule and its file. That is PROCTOR doing its job. A tool error is a crash, a report that does not parse, or any other exit code; those are PROCTOR's fault.
- 0Passedno failing finding
- 81Flaggeda report with at least one fail
- 1Tool errorout of memory on one very large tree; fix queued
- 0Not applicableevery app could be checked
82 applications, one square each: 0 passed, 81 flagged, 1 tool errors, 0 not applicable.
One bubble per application, in the order of its anonymous id. This repository is public, so the apps are counted and never named.
Part 2 · The marks
What PROCTOR wrote in the margin
How many of the 82 apps got each rule at least once. The per-app reports stay in the stack's internal record.
Fails: these stop a pipeline
Warnings: these get a comment
Every one of the 82 reports was valid JSON with a rule id on each finding. The same run through PREFLIGHT's proctor component produced valid GitLab Code Quality JSON for 81 apps, the 82nd being the memory crash below.
Part 3 · The retake
The first sitting failed PROCTOR, not the apps
31 of the 82 apps are plain PHP with no composer.json. On the first run PROCTOR refused them with exit 2, "not a PHP project", which is no verdict at all for the apps that most need one.
| Sitting | PROCTOR | Flagged | Tool errors |
|---|---|---|---|
| First | 0.2.0, the day before its tag | 51 | 31 |
| Retake | 0.2.0 + "apps without composer.json get a verdict" | 81 | 1 |
The fix gives such an app a failing php-floor finding and runs every other check on its files. It shipped with a fixture test before the retake. The retake then found the one remaining error: on an app with a very large PHP tree, the parser ran past PHP's default 128 MB and the process died with exit 255. Raising PROCTOR's memory limit is queued with a test.
Part 4 · Sit it yourself
Run it on your own app
Install PROCTOR as a dev dependency and point it at CREED's policy.
Install
composer require waynestate/proctor --devCheck, with the date pinned so the result repeats
vendor/bin/proctor check --path=. --format=json --policy=policy.json --today=2026-10-28The proof harness ran exactly this 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.
Part 5 · Rules of the exam
What this does not prove
- PROCTOR reads the repository. It does not see what runs on a server, so an app whose host is newer than its
composer.jsonsays still failsphp-floor. - The
unpatchedcheck needs--php-runtime, the PHP that serves the app; the run did not pass one, so that check stayed quiet. - The report's own
versionfield still says 0.1.0 on the 0.2.0 tree. The marks are right; the label is queued for a fix. - Nothing reached a database, a sign-in service or any Wayne State server.
- One tool error stands until the memory fix ships.
Eighty-one papers handed back in red. The proctor saw that.