Informative site with EoL dates of everything
This report summarizes scanner evidence for endoflife-date/endoflife.date, a Ruby project with 3,425 GitHub stars. SynthScan examined 94,930 lines of code across 563 source files, recording 51 pattern matches distributed across 6 syntactic categories. The legacy adjusted pattern signal is 0.6 (Low pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.
Can maintainers explain intent, assumptions, and trade-offs? 51 finding(s).
Are imports declared and package/API names verified? 0 finding(s).
Are wrappers, guards, and repeated structures necessary? 18 finding(s).
Which changes need focused human review? 51 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 51 distinct pattern matches across 6 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | CONTRIBUTING.md | 41 | COMMENT | |
| LOW | CONTRIBUTING.md | 61 | # - standard: standards and protocols. | COMMENT |
| LOW | CONTRIBUTING.md | 81 | # - set a product vendor such as adobe, amazon or apache, | COMMENT |
| LOW | CONTRIBUTING.md | 101 | # Command that can be used to check the current product version (optional). | COMMENT |
| LOW | CONTRIBUTING.md | 121 | # It supports the same variables as changelogTemplate. | COMMENT |
| LOW | CONTRIBUTING.md | 141 | COMMENT | |
| LOW | CONTRIBUTING.md | 161 | # - used in table includes, such as in https://github.com/endoflife-date/endoflife.date/blob/master/products/ansible.md | COMMENT |
| LOW | CONTRIBUTING.md | 181 | COMMENT | |
| LOW | CONTRIBUTING.md | 201 | # Mark auto-update as being cumulative (optional, default = false). | COMMENT |
| LOW | CONTRIBUTING.md | 221 | # Python-compatible regex that defines which tags should be excluded (optional). | COMMENT |
| LOW | CONTRIBUTING.md | 241 | # The value must be the distribution ID. It can be found in the distribution URL. | COMMENT |
| LOW | CONTRIBUTING.md | 261 | # The value must be the script name in the release-data repository, without its '.py' extension. | COMMENT |
| LOW | CONTRIBUTING.md | 281 | # - pkg:golang/pypi/gem/maven/npm etc for common package managers | COMMENT |
| LOW | CONTRIBUTING.md | 301 | # Codename of the release (optional, not displayed anywhere by default). | COMMENT |
| LOW | CONTRIBUTING.md | 321 | # - When a date is used, this is the date where bug fixes stop coming in. | COMMENT |
| LOW | CONTRIBUTING.md | 341 | # and false otherwise. | COMMENT |
| LOW | CONTRIBUTING.md | 361 | latest: "1.2.3" | COMMENT |
| LOW | products/cockroachdb.md | 61 | lts: "Initial Release" | COMMENT |
| LOW | products/azul-zulu.md | 21 | COMMENT | |
| LOW | products/perl.md | 21 | COMMENT | |
| LOW | _plugins/generate-api-v1.rb | 1 | # This script creates API files for version 1 of the endoflife.date API. | COMMENT |
| LOW | _plugins/end-of-life-filters.rb | 1 | require 'nokogiri' | COMMENT |
| LOW | _plugins/end-of-life-filters.rb | 61 | # | COMMENT |
| LOW | _plugins/end-of-life-filters.rb | 101 | # | COMMENT |
| LOW | _plugins/product-data-enricher.rb | 1 | # This plugin enriches the product pages by setting or precomputing its metadata, so that it can be | COMMENT |
| LOW | _plugins/product-data-enricher.rb | 141 | end | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | _plugins/generate-api-v1.rb | 85 | def add_products_related_pages(site, products) | CODE |
| LOW | _plugins/generate-api-v1.rb | 100 | def add_all_products_and_releases_page(site, products) | CODE |
| LOW | _plugins/generate-api-v1.rb | 117 | def add_categories_related_pages(site, products) | CODE |
| LOW | _plugins/generate-api-v1.rb | 169 | def add_identifiers_related_pages(site, products) | CODE |
| LOW | _plugins/generate-api-v1.rb | 194 | def add_all_identifier_types_page(site, types) | CODE |
| LOW | _plugins/generate-api-v1.rb | 200 | def add_identifiers_for_type_page(site, type, identifiers) | CODE |
| LOW | _plugins/product-data-validator.rb | 355 | def is_not_a_boolean_nor_a_date(property) | CODE |
| LOW | _plugins/product-data-validator.rb | 362 | def is_not_a_boolean_nor_a_string(property) | CODE |
| LOW | _plugins/product-data-validator.rb | 378 | def inconsistent_support_status(earlier_support_phase, later_support_phase) | CODE |
| LOW | _plugins/product-data-validator.rb | 389 | def not_ordered_by_release_cycles(property) | CODE |
| LOW | _plugins/product-data-validator.rb | 448 | def custom_field_type_is_invalid(property) | CODE |
| LOW | _plugins/product-data-enricher.rb | 133 | def set_overridden_columns_label(page) | CODE |
| LOW | _plugins/product-data-enricher.rb | 162 | def flag_oldest_unmaintained_releases(page) | CODE |
| LOW | _plugins/product-data-enricher.rb | 189 | def mark_cycles_that_can_be_hidden(ordered_by_date_desc_releases) | CODE |
| LOW | _plugins/product-data-enricher.rb | 260 | def set_cycle_discontinued_fields(cycle) | CODE |
| LOW | _plugins/product-data-enricher.rb | 272 | def explode_date_or_boolean_field(cycle, field_name, boolean_field_name, date_field_name) | CODE |
| LOW | _plugins/product-data-enricher.rb | 328 | def add_lts_label_to_cycle_label(page, cycle) | CODE |
| LOW | assets/register-show-hidden-releases-handler.js | 14 | function registerShowHiddenReleasesHandler() { | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | _plugins/end-of-life-filters.rb | 17 | # Usage: | COMMENT |
| LOW | _plugins/end-of-life-filters.rb | 53 | # Usage: | COMMENT |
| LOW | _plugins/end-of-life-filters.rb | 65 | # Usage: | COMMENT |
| LOW | _plugins/end-of-life-filters.rb | 102 | # Usage: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | .vacuumignore.yml | 1 | # This file is used to ignore specific linting rules for the OpenAPI specification. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | api_v1/openapi.yml | 429 | # 'Response' to facilitate maintenance and reading. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | _plugins/product-data-enricher.rb | 227 | # Set lts to false if it has no value and explode it to is_lts (boolean) and lts_from (Date). | COMMENT |