Relationships
#3464 extension quality --json reports status "failed" when a rubric factor is missing, though the exit code is 0
Opened by skunk-ape · 10/14/2026
swamp extension quality --json sets status: "failed" whenever any rubric factor is missing, even when no check failed and the run exits 0. Its own source comment and the manual both say status follows the exit code and is independent of allPassed.
Where
src/presentation/renderers/extension_quality.ts (line 376 at c5d1db96):
status: failure || !score.allPassed ? "failed" : "passed",The comment above it says: "status is the run's outcome, matching the exit code: a failed check or an extension the registry cannot score fails the run whatever the rubric says. allPassed stays the rubric's own." The line dates to 9a8ec977 (swamp-club#3022).
The manual (reference/extensions/publishing.md, quality JSON output) agrees with the comment: status is "passed, or failed when a check failed or the registry cannot score the extension", and allPassed is "the rubric's own result, independent of status".
Reproduce
swamp 20261014.121640.0-sha.c5d1db96. An extension with one npm: import, with OSV.dev and the npm registry unreachable so dependency-trust is missing (swamp-club#3350):
HTTPS_PROXY=http://127.0.0.1:9 NO_PROXY=swamp-club.com \
swamp extension quality manifest.yaml --json; echo $?Result: status: "failed", allPassed: false, gateFailures: [], registryScorable: true, exit code 0. Going by the code, any missing factor (for example, no README) should do the same; only the unaudited case was run.
Why it matters
A script that checks status == "passed" treats a missing factor, or an OSV or npm outage since #3350, as a failed check. A script that checks the exit code sees success.
Expected
Either drop || !score.allPassed so status matches the exit code as the comment says, or keep the behaviour and correct the comment and the manual. The swamp-club manual currently describes the comment's intent.
Open
No activity in this phase yet.
Sign in to post a ripple.