gensim's last push was 2025-11-01, so it crosses the 12-month activity line on 2026-11-01. It is kept on 2,904,015 downloads/month (ClickPy, 2026-10-12).
Every entry in these sections was re-checked against ClickPy downloads (2026-10-12) and live repo and PyPI state (2026-10-15); none needed a keep, drop, tier, or order change.
The hero-rise fade-in started .hero-copy, which holds the LCP <h1>, at opacity 0, and Chrome ignores opacity-0 paints for LCP, delaying it by about 455 ms.
Co-Authored-By: Claude <noreply@anthropic.com>
Entries were matched across revisions by normalized name only, so a rename (dateutil to python-dateutil, mock to unittest.mock) showed as one removal plus one addition and flagged the section as changed since its audit.
Co-Authored-By: Claude <noreply@anthropic.com>
audit_priority.py dated a section's audit from its sweep commit, so the `feat: add` commits made right after the sweep counted as changes since that audit and the just-audited section ranked first again.
Co-Authored-By: Claude <noreply@anthropic.com>
sglang was listed above vllm on a ClickPy monthly count inflated by release-day spikes. The audit kept every other entry.
- ClickPy last-30-day, fetched 2026-10-12: sglang 2,136,488, vllm 2,109,399.
- pypistats daily, mirrors excluded, fetched 2026-10-14: sglang swings between 7K and 487K a day while vllm holds 56K-82K. Last week: vllm 463,948, sglang 176,630.
Co-Authored-By: Claude <noreply@anthropic.com>
`.results-note` carried an inner `max-width: 28rem`, which breaks the rule that `.section-shell` is the only width cap.
Co-Authored-By: Claude <noreply@anthropic.com>
DESIGN.md claimed ~650 projects (README has 506) and omitted the Downloads column the table sorts by; CONTRIBUTING.md said GitHub-linked projects rank higher when build.py sorts by PyPI downloads first and uses stars only for entries without downloads; ADR 0001 said challengers are "marked" while CONTRIBUTING.md says position is the only marker.
Co-Authored-By: Claude <noreply@anthropic.com>
CONTEXT.md duplicated CONTRIBUTING.md's vocabulary, and CONTRIBUTING.md used the term Second Tier without defining it.
Co-Authored-By: Claude <noreply@anthropic.com>
Ruff 0.16 enables 413 default rules (up from 59), so make lint failed with 11 findings, and it treated website/ modules as third-party.
Co-Authored-By: Claude <noreply@anthropic.com>
The dependency-group floors still named the pre-upgrade versions (e.g. ruff>=0.15.6, ty>=0.0.33), so they no longer matched the versions the code is linted, typed, and tested against.
Co-Authored-By: Claude <noreply@anthropic.com>
uv picked CPython 3.15.0 on CI runners and the locked markupsafe 3.0.3 has no 3.15 wheel under no-build, so CI and the nightly website deploy failed at uv sync.
Co-Authored-By: Claude <noreply@anthropic.com>
Nine entries linked https://github.com/owner/repo/ while every other
entry uses the bare form. Formatting only; the site's repo regex already
accepted both.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Redirect stubs for renamed category URLs carried a robots noindex meta, so Search Console filed them under "Excluded by 'noindex' tag" instead of treating the instant meta refresh as a permanent redirect, and the old URLs' ranking was not passed to the new pages.
Co-Authored-By: Claude <noreply@anthropic.com>
The naming rule only covered catch-all subcategories, but CLI Development > CLI Development and HTTP Clients > Clients were main use cases that repeated their section's name and were renamed General too, so the rule did not describe the practice.
Co-Authored-By: Claude <noreply@anthropic.com>
The subcategory nearly repeated its section's name, so its page could compete with the section page for the same searches, as Code Analysis did.
Co-Authored-By: Claude <noreply@anthropic.com>
The subcategory shared its section's name, so its page could compete with the section page for the same searches, as Code Analysis did.
Co-Authored-By: Claude <noreply@anthropic.com>
Subcategory titles such as "JWT for Authentication" lacked searchable words, and their boilerplate descriptions never named the listed projects and said "1 projects".
Co-Authored-By: Claude <noreply@anthropic.com>
Every sitemap URL got the build date as lastmod, so all pages claimed a change on each daily deploy, and the sponsorship page used file mtime, which on CI's fresh checkout is also build time.
Co-Authored-By: Claude <noreply@anthropic.com>
The catch-all subcategory shared its section's name, so its page ("Code Analysis for Code Analysis") split the "python code analysis" query with the section page in Search Console.
Co-Authored-By: Claude <noreply@anthropic.com>
Group pages showed only tables, so visitors arriving from broad searches like "python ml library" got none of the which-one-to-pick guidance that each section's intro already gives.
Co-Authored-By: Claude <noreply@anthropic.com>