Re-added as a Challenger alongside pydantic-ai. The maintainer reviewed the committed-drops audit (all 36 removals re-verified against live data 2026-08-15) and flipped crewai back: 19.4M downloads/month, 57.1K stars, repo active same-day. The original 'buzz peaked' drop was judgment the audit data did not support.
Co-Authored-By: Claude <noreply@anthropic.com>
Qualitative keep/drop reasoning previously relied on training-data
recollections that went unverified while only download numbers were
checked live, as happened in the Data & Science preview. Key Rules now
require every keep/drop reason to be verified against current online
data at decision time.
Co-Authored-By: Claude <noreply@anthropic.com>
Provides per-sitting download evidence for prune sweeps, per the
shortlist-reform tooling plan. Shells out to the bq CLI against
bigquery-public-data.pypi.file_downloads, parses entry names from
README.md via readme_parser, and supports --dry-run and --names-file.
Merges results into the gitignored cache at
website/data/pypi_downloads.tsv.
The table is clustered on file.project, so scanned bytes grow with the
IN-list size: a dry run against the full README (~530 names) scanned
1.21 TB, past the 1 TB/month free tier. Per-sitting --names-file
fetches are used instead of one big query.
Co-Authored-By: Claude <noreply@anthropic.com>
Adds a reusable skill that generates the interactive keep/drop review page (seeded verdicts + reasons, maintainer Keep/Drop toggles and reason fields, JSON feedback export) and processes the pasted feedback, so every future prune sweep or batch entry edit reuses the pattern proven in the shortlist-reform reviews. Removes .claude/skills/ and the dead .agents/ line from .gitignore so the skill is tracked, per maintainer direction.
Co-Authored-By: Claude <noreply@anthropic.com>
Per ADR-0001, restructure first: split GUI / Web Testing into Browser
Automation (playwright-python, selenium), Load Testing (locust), and
API Testing (schemathesis). Then cap. Maintainer-adjudicated 2026-08-15
at the preview review: robotframework, schemathesis, respx, vcrpy, and
mimesis keep against the old dry-run verdicts; respx and vcrpy take the
two Mock Challenger slots, nox stays the Test Runners Challenger
(listed after tox per the Challenger-ordering rule).
Removed (downloads are PyPI last-month, fetched 2026-08-15):
- scanapi (3.3K/month): near-zero usage
- unittest: stdlib rule - a stdlib module survives only where it is
itself the Obvious Choice; for test frameworks that is pytest
- pyautogui (2.5M/month): desktop GUI automation, not web testing; no
Use Case slot after the Split
- mocket (273K/month): socket-level mocking; small audience next to
responses
Co-Authored-By: Claude <noreply@anthropic.com>
Per ADR-0001. No restructure needed: Plotting caps to matplotlib,
plotly, seaborn plus altair as Challenger (listed last per the
Challenger-ordering rule); Specialized (cartopy, graphify, pygraphviz)
and Dashboards and Apps (gradio, streamlit) already fit.
Removed (downloads are PyPI last-month via pypistats, 2026-08-14/15):
- bokeh (8.4M/month): Plotting at cap; interactive plotting job covered
by plotly
- plotnine (3.1M/month): below the shortlist bar
- vispy (1.4M/month): below the shortlist bar
- pyqtgraph (1.0M/month): below the shortlist bar
- bqplot (381K/month): below the shortlist bar
- pygal: legacy; downloads fetch failed
- ultraplot (3.9K/month): no adoption
Co-Authored-By: Claude <noreply@anthropic.com>
Per ADR-0001, restructure first: split MS Office into Excel, Word, and
PowerPoint; mint File Conversion (docling re-homed from General,
markitdown re-homed from Markdown) and HTML-to-PDF (weasyprint re-homed
from PDF). Then cap. xlsxwriter and weasyprint keep their slots via the
Splits (decision reversing their earlier drop verdicts).
Removed (downloads are PyPI last-month via pypistats, 2026-08-14/15):
- xberg (26K/month): xberg-io coordinated self-promotion plant
- xlwings (941K/month): different job (calling Python from Excel), not
the Excel file-format use case
- docxtpl: templating layer over python-docx, which holds the Word slot
- pyexcel (2.2M/month): abstraction over the per-format libraries that
hold the slots
- pikepdf (10.6M/month): PDF use case at cap; pypdf, reportlab, and
pdfminer.six are the obvious choices
- pdf_oxide (142K/month): no adoption evidence against the incumbents
- csvkit (506K/month): not the obvious choice for CSV work
Co-Authored-By: Claude <noreply@anthropic.com>
Anthropic's Python SDK for building AI agents on Claude Code's harness.
~32.6M downloads/month (pepy, 2026-08-15; approximate, includes
mirrors — pypistats was rate-limited). Lands beside openai-agents in
the Vendor Agent SDKs use case minted in the AI and Agents sweep.
Co-Authored-By: Claude <noreply@anthropic.com>
Per ADR-0001, restructure first: split Pre-trained Models and Inference
into Pre-trained Models, LLM Inference and Serving, and LLM Gateways;
mint Vendor Agent SDKs, Personal Assistants, Prompt Optimization, Image
and Video Generation, and Fine-tuning subcategories. Re-home
openai-agents (Vendor Agent SDKs), hermes-agent (Personal Assistants,
description reworded to personal assistant), dspy (Prompt Optimization),
diffusers (Image and Video Generation), unsloth (Fine-tuning), and
graphify (Data Visualization > Specialized). Then cap.
Removed (downloads are PyPI last-month via pypistats, 2026-08-14/15):
- nuwa-skill: persona prompts, not engineering
- crewai (19.4M/month): buzz peaked; no longer named unprompted
- autogen (1.1M/month): fork war with ag2 split its community
- ag2 (441K/month): other half of the same fork war
- smolagents (651K/month): Hugging Face ecosystem niche
- TradingAgents (11.9K/month): vertical trading app, not general
orchestration
- bub (5.6K/month): no adoption
- bindu (210/month): no adoption
- livetalking: no PyPI presence, no adoption evidence
- bernstein: no PyPI presence, no adoption evidence
- promptise: no PyPI presence, no adoption evidence
- OpenChronicle: no PyPI presence, no adoption evidence
- outlines (2.5M/month): same job as instructor, which holds the slot
- entroly (3.1K/month): no adoption
- lumen (1.8K/month): no adoption
- liter-llm (3.5K/month): xberg-io coordinated self-promotion plant
- SenseVoice: whisper wins the use case
- voxcpm (101K/month): no track record
Co-Authored-By: Claude <noreply@anthropic.com>
Land the shortlist-reform rules approved by the maintainer (rules
first; entry sweeps are not authorized yet).
- CONTRIBUTING.md: replace the Industry Standard / Rising Star / Hidden
Gem lanes with a single admission rule per use case (up to 3 obvious
choices + up to 2 challengers, hard max 5), add Displacement, the
stdlib rule, and editorial-judgment-as-final evidence guidance; scope
test becomes Serves Python Developers; document entry ordering
(obvious choices then challengers, each alphabetical).
- README.md: add the shortlist promise paragraph pointing rejected
contributors to linked awesome-* catalogs and to CONTRIBUTING.md.
- CLAUDE.md: sync Key Rules with the new ordering and shortlist cap,
and add the prune-sweep one-commit-per-section exception.
- docs/adr/0001-shortlist-not-catalog.md: flip status from proposed to
accepted.
Co-Authored-By: Claude <noreply@anthropic.com>
A 2026-08-15 grilling round replaced the Challenger marking
convention: within a Use Case, Obvious Choices are listed first
(alphabetically), then Challengers (alphabetically), with no marker
in the entry text. Update the Challenger definition in CONTEXT.md.
Co-Authored-By: Claude <noreply@anthropic.com>
CONTEXT.md review found several definitions had drifted from the
settled shortlist-reform decisions:
- Entry: pypi-name placeholder contradicted the serves-Python-developers
scope test, which explicitly treats implementation language and
packaging as irrelevant; now named by PyPI package name when one
exists, else repository name
- Subcategory: example referenced a name that no longer matches the
current README structure (Mock, not Mocking)
- Thematic Group: referenced elsewhere in the doc but never defined;
added
- Use Case, Obvious Choice, Split: updated to match the settled
cap/evidence/restructure decisions (maintainer-only structure
changes, PyPI-download judgment with known failure modes noted,
Split considered before trimming)
Co-Authored-By: Claude <noreply@anthropic.com>
Per maintainer choice, the new scope test replaces the old primarily-written-in-Python (>50%) requirement: implementation language and packaging no longer matter as long as Python developers use the thing in their Python work (e.g. uv and ty are Rust; agent skill packs are markdown), while pure-Python projects nobody uses in Python work still don't qualify. Folded into the existing ADR rather than filed as a separate one.
Co-Authored-By: Claude <noreply@anthropic.com>
ADR review found three stale claims: an unreviewed Testing dry-run cited as
evidence for the projected list size, the Challenger path missing from the
lane-rejection rationale, and no mention of judgment overriding known
failure modes of the download-signal (CI/dependency-inflated counts, model
weights vs. pip installs, large-but-specific audiences misread as niche).
Co-Authored-By: Claude <noreply@anthropic.com>
Cap changed to 3 obvious choices + up to 2 challengers (hard max 5)
during review, but the ADR still described the old cap of 3 with at
most one challenger.
Co-Authored-By: Claude <noreply@anthropic.com>
Records the outcome of a grilling session with the maintainer that
settled the redesign of awesome-python from a catalog into a curated
shortlist of Obvious Choices per Use Case. Execution is held pending
maintainer go-ahead, so these files let a fresh agent resume without
re-litigating settled decisions:
- CONTEXT.md: glossary of the editorial vocabulary (Use Case, Obvious
Choice, Challenger, Displacement, Split, etc).
- docs/adr/0001-shortlist-not-catalog.md: the ADR recording the
decision, considered options, and consequences (status: proposed).
- .gitignore: docs/ was wholesale-ignored; carve out docs/adr/ so the
ADR can be tracked.
Co-Authored-By: Claude <noreply@anthropic.com>