docs(mock-validity): a missing use in a callback signature passes the suite - #125
Conversation
… suite Signed-off-by: Sebastian Mendel <info@sebastianmendel.de>
Dependency Review✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.Scanned FilesNone |
The paragraph cited an ordering rule in quality-tools.md that does not exist in that page. What IS verifiable there is that the recommended PHPStan config lists Tests in paths; the ordering now stands on its own instead of on a citation. Signed-off-by: Sebastian Mendel <info@sebastianmendel.de>
|
|
Self-review (Copilot quota-blocked all day; this is the review of record). One finding, fixed here — and it is the failure this skill's own guidance warns about. The paragraph cited "the ordering rule in What is verifiable there, and now what the text says: the recommended PHPStan configuration lists Refutations attempted on the technical claim:
|
Minor release. Delta since v5.19.1: mock-validity — a missing use import in a callback signature passes the suite (#125).



mock-validity.mdalready covers a callback whose parameter list is stale. This adds the sibling failure, where the list is right and a parameter type is not imported.PHP resolves a parameter's class type only when a value is checked against it, and
nullnever is. So a?SomeType $x = nullin awillReturnCallbacksignature whoseuseis missing resolves to the current namespace, is never loaded, and the test is green — until production passes a real object, at which point the failure names a class nobody recognises.PHPStan catches it (
Parameter $run of anonymous function has invalid type …\Tests\Unit\…\AgentRunReference) and the suite structurally cannot. That makes it the concrete reason for the "run the analyser after writing tests" ordering already inquality-tools.md— a greenrunTests.sh -s unitis not evidence a new test file is type-correct.Two habits included: copy a signature's
usestatements along with the signature, and treat every?Type $x = nullin a test double as unverified until something passes a non-null value.Found 2026-08-13 in netresearch/t3x-nr-llm: two new tests passed with
OK (2 tests, 3 assertions)while the import was missing.