Edition of Sunday 8 November 2026

Psalm 7 release: PHP security&static analysis software

Comments on “Psalm 7 release: PHP security&static analysis software”

Claim-checked. Scored by all three judges, and its checkable claims were compared with the sources it cites. How far stories are checked

Psalm 7, the PHP static analyzer, was released on November 2 by maintainer Daniil Gentili. Taint-based security analysis now runs by default in the same pass as type checking and dead code detection, and the project says it is up to 10x faster, though no benchmark is given. It adds NoSQL, LLM prompt and URL taint kinds, a Hack-style capabilities model replacing the old purity annotations, and graph-based dead code detection. Framework plugins load automatically, and the plugin API is versioned separately. Projects can opt out of taint analysis.

Read the original at psalm.dev. The judges saw only its text, with the site, the author and link domains removed; they are shown again after ranking.

Why it ranked

No. 20 of 51 with a score of 0.61. The panel rated it highest on new information (0.93) and technical depth (0.91), lowest on audience breadth (0.41). Placed No. 20, No. 19 by score alone: the fourth Programming & dev tools story of the day (−0.020), and close to “Psalm 7.0.0 [PHP static analysis tool by Vimeo]”, No. 24 on Tuesday 3 November 2026 (−0.021). The placement terms move stories; they are not part of the score.

AI judgeJudge 2claude-haiku-5-5
Major release of a PHP static analyzer with substantial technical detail on taint tracking and purity modelling; well-featured but niche to PHP developers, with some promotional tone and release-note breadth.
AI judgeJudge 3gpt-5.6-luna
A technically detailed major release of a PHP analyzer, with substantially expanded taint tracking, purity/capability modeling, dead-code analysis, type-system support, and practical upgrade guidance. It is promotional in format but contains substantial actionable technical information.

Each judge wrote its line after answering the rubric, with the site and the author still hidden. Every answer behind this is in the table under Score.

Score

0.61total under rubric v2.3

Judges’ mean answer per question, on a scale from 0 to 1. Questions marked minus count against the score.
  • Significance0.57
  • Reader interest0.66
  • Audience breadth0.41
  • Practical relevance0.75
  • Substantiated0.82
  • Technical depth0.91
  • New information0.93
  • Counts against: Promotional0.13
  • Counts against: Overclaim0.20

Each judge’s answer per question (0–1), their mean and spread, and what the question adds to the score (weight × mean).

QuestionJudge 1Judge 2Judge 3MeanSpreadWeightContribution (weight times mean)
SignificanceHow much does this change what people in tech know or can do?0.610.400.700.570.30+0.24+0.137
Reader interestWould a well-informed senior engineer or tech founder want to read this today, and likely pass it on?0.620.550.820.660.27+0.26+0.172
Audience breadthHow many people who build technology does it concern?0.470.350.420.410.12+0.13+0.054
Practical relevanceHow useful is it to someone who builds software or tech products?0.860.600.780.750.26+0.22+0.164
SubstantiatedHow well is it backed? Consider whether it is the primary source, and whether its main claims come with data, code, a demo, a reproducible method or citations.0.890.700.880.820.19+0.05+0.041
Technical depthHow technically substantive is it?0.970.850.900.910.12+0.05+0.045
New informationDoes it contain information absent from the stories covered in the last 7 days (list provided)?0.900.900.980.930.08+0.05+0.046
PromotionalIs it mainly marketing with little substance (a press release, ad or sponsored post with no real information)? A launch post that carries real news is not promotional.0.070.250.080.130.18−0.19−0.025
OverclaimDo the headline or conclusions claim more than the body supports?0.170.300.120.200.18−0.11−0.022
Sum of contributions+0.613
Claim-check penalty0.000
Total, as published0.614

Spread is the highest minus the lowest judge answer. marks a spread above 0.40: the judges disagree, and the story is marked contested.

The badge for this ranking, for the author's page or anyone's: one line of HTML, and it links back here.

Ranked #20 on Rubric, 8 Nov 2026
<a href="https://rubric.hrih.si/editions/2026-11-08/20/"><img src="https://rubric.hrih.si/badge/2026-11-08/20.svg" alt="Ranked #20 on Rubric, 8 Nov 2026" width="238" height="28"></a>

Claim check

Claim check: 2 no source given · 6 couldn’t check. Each claim is compared with the source the article itself cites; a flag is published only when both checkers agree.

  1. No source givenCausal conclusion

    Psalm 7's security analysis is up to 10x faster because taints are stored as a bitmask and the taint graph is resolved over compact summaries of each function.

    The article gives no link or citation for it.

    The article says

    “Taints are now stored as a bitmask, and the taint graph is resolved over compact summaries of each function. This makes security analysis up to 10x faster”

    The source says

    No source to compare with.

  2. Couldn’t checkVersion

    Psalm 7 runs type checking, security analysis and dead code detection together in one combined run, so taint analysis is on by default.

    The source was unreachable, paywalled or too long, or the two checkers disagreed.

    The article says

    “Combined analysis (#11384) runs type checking, security analysis and dead code detection together in one run, so taint analysis is now on by default”

    The source says

    No passage could be compared.

    Source cited by the article: github.com/vimeo/psalm/pull/11399

  3. No source givenVersion

    Psalm 7 runs on 64-bit PHP 8.2 to 8.6.

    The article gives no link or citation for it.

    The article says

    “Psalm 7 runs on 64-bit PHP 8.2 to 8.6”

    The source says

    No source to compare with.

  4. Couldn’t checkNumber

    Taint analysis results no longer change between runs or with the thread count.

    The source was unreachable, paywalled or too long, or the two checkers disagreed.

    The article says

    “The results no longer change between runs or with the thread count”

    The source says

    No passage could be compared.

    Source cited by the article: github.com/vimeo/psalm/pull/11946

  5. Couldn’t checkVersion

    The @psalm-pure, @psalm-mutation-free and @psalm-external-mutation-free annotations are replaced by capabilities modelled on Hack's contexts and capabilities.

    The source was unreachable, paywalled or too long, or the two checkers disagreed.

    The article says

    “psalm-pure, @psalm-mutation-free and @psalm-external-mutation-free are replaced by capabilities, modelled on”

    The source says

    No passage could be compared.

    Source cited by the article: github.com/vimeo/psalm/pull/11984

  6. Couldn’t checkVersion

    Psalm 7 uses a graph of references for dead code detection, reporting code reachable only from other unused code, including cycles.

    The source was unreachable, paywalled or too long, or the two checkers disagreed.

    The article says

    “Code is used only if it can be reached from an entry point, so classes and methods referenced only by other unused code, cycles included, are reported”

    The source says

    No passage could be compared.

    Source cited by the article: github.com/vimeo/psalm/pull/11939

  7. Couldn’t checkVersion

    Psalm 7's version number no longer tracks the plugin API; the psalm/psalm-plugin-api metapackage tracks breaking plugin API changes instead.

    The source was unreachable, paywalled or too long, or the two checkers disagreed.

    The article says

    “Psalm's version number no longer tracks the plugin API. Breaking changes to the plugin API may ship in any Psalm release, including minor and patch releases”

    The source says

    No passage could be compared.

    Source cited by the article: github.com/vimeo/psalm/pull/11739

  8. Couldn’t checkVersion

    Psalm ships bundled plugins for PHPUnit, Mockery, Symfony, Laravel and sabre/event, enabled automatically when composer.json uses the matching library.

    The source was unreachable, paywalled or too long, or the two checkers disagreed.

    The article says

    “Psalm requires psalm/plugin-phpunit, plugin-mockery, plugin-symfony, plugin-laravel and plugin-sabre-event, and enables each one”

    The source says

    No passage could be compared.

    Source cited by the article: github.com/vimeo/psalm/pull/12568

Also covered by

No other coverage was clustered with this story.

Elsewhere

Elsewhere: HN 1 pts, not on front page

Discussion on Hacker News

Recorded for context only, checked 8 Nov 2026, 05:46 UTC. It played no part in the ranking.

Panel for this edition

Four AI agents ranked this edition: three judges scored every story blind to its site and author, and a fourth compared the top stories’ claims with the sources they cite. Summaries are written by AI.

Model versions are pinned for every edition. How ranking works describes rubric v2.3.

Comments

Readers’ comments on this story have a page of their own, ranked by a public rubric rather than by votes.

Comments on “Psalm 7 release: PHP security&static analysis software”

More on Rubric

From the last 7 editions, chosen by shared topic, score and date.

  1. Score 0.79

    Zlib 1.4