First Audit of the section. Restructure first, maintainer-chosen at the
preview review: the flat section splits into Clients and a minted URL
Manipulation Subcategory holding yarl (661.9M/month via BigQuery,
aio-libs, active 2026-08) and httpx.URL as a no-signal pointer to the
URL class bundled with the kept httpx. Client tiers: requests, httpx,
aiohttp Obvious; urllib3 in the Challenger slot by structure (transport
layer under requests, count inflated by that), ordered by
downloads/month. Maintainer-adjudicated 2026-08-16.
Removed (downloads are PyPI last-30-day via ClickPy, fetched 2026-08-16):
- furl (6.3M/month via BigQuery, same source as the yarl comparison):
URL manipulation, not an HTTP client; stdlib urllib.parse covers
parsing/joining/encoding and the minted Subcategory carries the
ergonomic successors - yarl outpulls it 105x; repo quiet since
2026-02
- httptap (1.7K/month): CLI diagnostic tool, repo created 2025-10,
790 stars; no adoption
Co-Authored-By: Claude <noreply@anthropic.com>
Authored by the parallel fetch-scripts session (its intended 0cffb5f
never landed; the content rode into an audit commit by accident and is
extracted here): fetch_pypi_downloads_via_clickpy.py becomes the
flagless full-README sweep and sole writer of data/pypi_downloads.tsv;
new fetch_pypi_downloads_via_bigquery.py is a print-only cross-check
taking explicit names behind a 400 GB billing cap; audit-the-list
SKILL.md step 2 updated to match.
Co-Authored-By: Claude <noreply@anthropic.com>
Follow-up to d07440f: the definition's placement clause described only
companion projects (flower/celery), but awesome-* also-see lists are
Sub-items too.
Co-Authored-By: Claude <noreply@anthropic.com>
fetch_pypi_downloads.py becomes fetch_pypi_downloads_via_clickpy.py and
fetch_pepy_downloads.py becomes fetch_pypi_downloads_via_pepy.py, ahead
of splitting the BigQuery path into its own file. Updates the usage
strings, the cross-file import, and the audit-the-list skill's
references to match. Pure rename, no behavior change.
Co-Authored-By: Claude <noreply@anthropic.com>
The device now has two precedents (aws-sdk-pandas under pandas, flower
under celery in the 2026-08-16 Web Development Audit) plus the awesome-*
links; future Audits need the term - an indented link that holds no slot
and rides its parent outside the Cap.
Co-Authored-By: Claude <noreply@anthropic.com>
Format-only outcomes of the 2026-08-16 Web Development Audit (no
removals): OAuth entries reordered by downloads/month (oauthlib,
authlib, django-allauth Obvious; django-oauth-toolkit Challenger),
Web Asset Management reordered (django-storages, django-compressor)
and its description gains "storing" to cover django-storages'
actual job. Template Engines, JWT, Permissions, WebSocket keeps
already sat in rule order.
Co-Authored-By: Claude <noreply@anthropic.com>
First Audit of the section; maintainer adjudicated 2026-08-16.
Reordered by downloads/month (pelican, nikola).
Removed (downloads are PyPI last-30-day via BigQuery, fetched 2026-08-16):
- lektor (12.5K/month): maintained (pushed 2026-08) but never named
unprompted; close call vs nikola - judgment call
Co-Authored-By: Claude <noreply@anthropic.com>
First Audit of the section; maintainer adjudicated 2026-08-16.
Reordered by downloads/month (wagtail, django-cms).
Removed (downloads are PyPI last-30-day via BigQuery, fetched 2026-08-16):
- indico (3.2K/month): event-management application (CERN), not a CMS
library; readers under CMS want wagtail/django-cms - judgment call
Co-Authored-By: Claude <noreply@anthropic.com>
First Audit of the section (flat Section = one Use Case, 7 entries over
the cap). Restructure first: flower is the Celery monitoring dashboard,
not an admin-panel library - it re-homes to Task Queues as a sub-item
under celery (outside the cap, aws-sdk-pandas precedent; Task Queues
sits at the hard max 5). Kept: flask-admin, django-unfold (Obvious),
django-grappelli (Challenger), ordered by downloads/month.
Maintainer-adjudicated 2026-08-16.
Removed (downloads are PyPI last-30-day via BigQuery, fetched 2026-08-16):
- ajenti (4.5K/month; its ajenti-panel package adds 4.5K): Linux server
control panel application, not a Python admin library
- func-to-web (3.5K/month): repo created 2025-10, 425 stars; no adoption
- jet-bridge (3.7K/month): bridge into the Jet Admin SaaS, not a library
readers seek here
Co-Authored-By: Claude <noreply@anthropic.com>
First Audit of the section; maintainer adjudicated 2026-08-16 at the
preview review, flipping autobahn-python to keep (enters as the
Challenger; Obvious slots are websockets, channels, flask-socketio).
Reordered by downloads/month within tiers.
Removed (downloads are PyPI last-30-day via BigQuery, fetched 2026-08-16):
- picows (66.3K/month): 290 stars; Challenger bar (adoption
trajectory) not met
Co-Authored-By: Claude <noreply@anthropic.com>
First Audit of the section. Restructure first: the RPC Subcategory is
not an "ASGI and WSGI compatible web server" - it moves to Web APIs,
whose description gains RPC; grpcio rides the move. ASGI reordered by
downloads/month (uvicorn Obvious; granian, hypercorn Challengers -
hypercorn kept with a watch, repo quiet since 2025-11).
Maintainer-adjudicated 2026-08-16.
Removed (downloads are PyPI last-30-day via BigQuery, fetched 2026-08-16):
- daphne (6.5M/month): installed as Django Channels' dependency, not
chosen standalone; judgment call
- uwsgi (2.0M/month): officially in maintenance mode; repo quiet since
2025-10
- rpyc (1.6M/month): repo last push 2025-08-14, exactly 12 months -
at the abandonment line
Co-Authored-By: Claude <noreply@anthropic.com>
First Audit of the section; maintainer adjudicated 2026-08-16 at the
preview review, flipping django-modern-rest to keep (enters as the
Django Challenger; Obvious slots stay django-rest-framework,
django-ninja, strawberry-django). Tiers reordered by downloads/month.
Removed (downloads are PyPI last-30-day via BigQuery, fetched 2026-08-16):
- falcon (1.8M/month): active, but not named unprompted since
fastapi/litestar; judgment call
- sanic (1.8M/month): same judgment as falcon - declining mindshare,
successor to nothing
- webargs (3.8M/month): request-parsing helper, not an API framework;
wrong job for the section
Co-Authored-By: Claude <noreply@anthropic.com>
First Audit of the section; maintainer adjudicated 2026-08-16 at the
preview review, flipping pyramid to keep (enters as Synchronous
Challenger beside fasthtml; the three Obvious slots stay flask, django,
bottle). Both tiers reordered by downloads/month per the ordering rule.
Removed (downloads are PyPI last-30-day via BigQuery, fetched 2026-08-16):
- masonite (26.4K/month): no adoption; Laravel-style niche
- microdot (10.4K/month): MicroPython-targeted, genuinely small audience
- robyn (50.9K/month): installs never followed the buzz
Co-Authored-By: Claude <noreply@anthropic.com>
Maintainer registered a free pepy API key (PEPY_TECH_API_KEY in the gitignored repo-root .env). fetch_pepy_downloads.py sums the most recent 30 days from the v2 per-day data, throttled to the free tier's 5 requests/minute, and prints TSV without touching the single-source cache file.
The audit-the-list skill's downloads bullet is rewritten in the same commit because the ClickPy-default change made its old --dry-run-first instruction fail; it now documents all three sources (ClickPy, BigQuery, pepy/pypistats) and the never-mix-mirror-counting rule.
Co-Authored-By: Claude <noreply@anthropic.com>
BigQuery required a personal Google Cloud account, so only the maintainer could run it and overruns cost real money. ClickPy is ClickHouse's free, keyless public mirror of the same PyPI download dataset, so it becomes the default source with a single batched query covering the full README in under a second.
BigQuery stays available behind a new --bigquery flag as the canonical-source cross-check; --dry-run now only applies to that path.
Live-tested: ClickPy full path (2/2 names), the --dry-run guard, and the BigQuery dry-run.
Co-Authored-By: Claude <noreply@anthropic.com>
Live bq show verified the pypi.file_downloads table clusters on the
top-level project column, not file.project as the docstring claimed.
Filtering on project (values verified identical to file.project across
408M rows, zero mismatches) gets cluster pruning and cuts the
full-README scan estimate from >1.2TB to ~275GB upper bound, with
actual billed bytes lower still (33.7GB measured for a single name) -
so full sweeps now fit the 1 TiB/month free tier.
Also adds --maximum_bytes_billed=400GB as a safety cap, enforced by
BigQuery pre-run against the dry-run upper-bound estimate.
Co-Authored-By: Claude <noreply@anthropic.com>
Verb-first naming per maintainer preference. Directory, frontmatter
name, and the audit-the-list reference updated together; template.html
moves with the directory unchanged.
Co-Authored-By: Claude <noreply@anthropic.com>
Packages the audit process proven across the shortlist-reform sweeps
as a reusable skill: resolve scope from the arguments (AskUserQuestion
when ambiguous or absent), fetch live evidence for every entry
(BigQuery downloads, repo state, PyPI metadata), draft verdicts with
restructure-before-cap and tier promotions/demotions, review through
the verdict-preview page, execute one commit per section on explicit
go, and record durable conclusions into CONTRIBUTING.md, CLAUDE.md,
AGENTS.md, and CONTEXT.md. CONTEXT.md gains the Audit glossary term
(the reform sweeps were the first Audits). Rules stay single-sourced in
CONTRIBUTING.md — the skill carries process only.
Co-Authored-By: Claude <noreply@anthropic.com>
AGENTS.md still carried pre-reform Key Rules (mandatory alphabetical
ordering, "quality over quantity" lanes-era language, no prune-sweep
commit exception, no live-verification rule). Bring it in line with
CLAUDE.md and CONTRIBUTING.md: downloads-descending tier ordering,
3+2 cap, sweep-commit exception, verification rule. Also record the
UV_PYTHON=3.13 workaround for Python-3.14-only machines in both files'
Makefile notes, and complete CLAUDE.md's Makefile target list.
Co-Authored-By: Claude <noreply@anthropic.com>
Apply the new ordering rule (downloads/month descending within each
tier, no-signal entries last alphabetically) to all ten swept sections.
Sixteen use cases change order: Vendor Agent SDKs, LLM Inference and
Serving, Speech, File Conversion, PDF, Markdown, Data Visualization
Specialized and Dashboards, Testing Frameworks and Mock, Financial
Data, Data Validation, Geolocation, Science Core and Simulation and
Modeling, Quantum Computing challengers. Unswept sections keep their
current order until their own sweeps. Bundled as a single
categorization commit per the Key Rules bundling exception.
Co-Authored-By: Claude <noreply@anthropic.com>
Maintainer decision 2026-08-16, amending the ordering half of the
Challenger-marking rule: within a use case, obvious choices still come
first and challengers still follow (position stays the marker), but
each tier now orders by PyPI downloads per month descending instead of
alphabetically. Entries without a download signal (stdlib modules,
agent skill packs) sort last within their tier, alphabetically.
Updated in CONTRIBUTING.md (Entry Ordering), CONTEXT.md (Challenger),
and CLAUDE.md (Key Rules).
Co-Authored-By: Claude <noreply@anthropic.com>
Per ADR-0001, maintainer-adjudicated at the Data & Science preview
review (2026-08-15). No removals — all four entries keep: qiskit and
qutip as Obvious Choices (circuit SDK and quantum physics simulation,
distinct jobs), cirq and pennylane as Challengers, ordered per the
Challenger-ordering rule. Format fixes bundled per the Key Rules
bundling exception: three em-dash separators normalized to hyphens,
Cirq lowercased to its PyPI name.
Co-Authored-By: Claude <noreply@anthropic.com>
Per ADR-0001, maintainer-adjudicated at the Data & Science preview
review (2026-08-15, all rows live-verified). Restructure first: Core
narrows to numba, numpy, scipy; mint Symbolic Mathematics (sympy),
Statistics (statsmodels), Graphs and Networks (networkx), and
Computational Geometry (shapely) — five co-obvious tools doing five
different jobs, the decision-13 pattern. Other shrinks to a two-entry
grab-bag; colour renamed to colour-science per the PyPI-name convention
(bare 'colour' on PyPI is an unrelated color-conversion library). Then
cap.
Removed (downloads are PyPI last-30-days via BigQuery, 2026-08-15):
- cclib (29.7K/month): computational-chemistry log parsing, small
audience
- openbabel (54.9K/month pip; conda-forge adds only 1.8M all-time):
legacy toolbox next to rdkit
- pydy (1.2K/month): near-zero usage
- PythonRobotics: educational algorithm compilation ("sample codes and
textbook" per its own description), not a library; not on PyPI
- pathsim (6.3K/month): no adoption
Co-Authored-By: Claude <noreply@anthropic.com>
Per ADR-0001, maintainer-adjudicated at the Data & Science preview
review (2026-08-15, all rows live-verified). Keeps geojson, geopandas,
and geopy as Obvious Choices; geodjango kept by maintainer flip and
listed last as Challenger (the cap allows three obvious choices).
Removed (downloads are PyPI last-30-days via BigQuery, 2026-08-15):
- django-countries (2.3M/month): country choices for Django forms and
models — Django form tooling, not geolocation work
Co-Authored-By: Claude <noreply@anthropic.com>
Per ADR-0001, maintainer-adjudicated at the Data & Science preview
review (2026-08-15, all rows live-verified). Keeps jsonschema, pandera,
and pydantic as Obvious Choices for their distinct validation jobs.
Removed (downloads are PyPI last-30-days via BigQuery, 2026-08-15):
- cerberus (6.7M/month): pre-pydantic era passed; repo alive but slow
- voluptuous (8.0M/month): pre-pydantic era passed; repo description
opens with "CONTRIBUTIONS ONLY" (maintenance mode)
Co-Authored-By: Claude <noreply@anthropic.com>
Per ADR-0001, maintainer-adjudicated at the Data & Science preview
review (2026-08-15, all rows live-verified). General keeps dlt (sole
entry). Financial Data keeps akshare and yfinance as Obvious Choices
with edgartools and openbb as Challengers (openbb on the platform
judgment: 71.9K stars against 132K pip installs).
Removed (downloads are PyPI last-30-days via BigQuery, 2026-08-15):
- lumibot (168.2K/month): algorithmic trading and backtesting framework
with broker execution — not financial data; vertical app
(TradingAgents precedent)
Co-Authored-By: Claude <noreply@anthropic.com>
Per ADR-0001, maintainer-adjudicated at the Data & Science preview
review (2026-08-15, all rows live-verified). Keeps: pandas and polars
as Obvious Choices, ibis as Challenger — renamed to ibis-framework per
the PyPI-name convention (maintainer-confirmed; bare 'ibis' on PyPI is
an unrelated template engine). aws-sdk-pandas returns as a sub-item
under pandas per maintainer direction (sub-items sit outside the cap,
awesome-pytest pattern).
Removed (downloads are PyPI last-30-days via BigQuery, 2026-08-15):
- data-profiling (18.2K/month under fg-data-profiling): YData's
profiler, but the listed name is not on PyPI and a profiling layer is
not an obvious choice for this use case
- datasette (178.6K/month): data publishing and exploration tool, a
different job
- desbordante (3.4K/month): no adoption
- modin (1.6M/month): the pandas-at-scale job moved to polars and dask;
repo quiet since 2026-02
- pathway (16.5K/month): stars far ahead of usage (62.5K stars); ETL
job, mis-homed here
- percentify (182.2K/month): personal project, 11-month-old repo, 418
stars — count not credible against the footprint
Co-Authored-By: Claude <noreply@anthropic.com>
The maintainer re-verified all 36 removals from the committed-drops audit against live data on 2026-08-15 and flipped bokeh back: 8.4M downloads/month, 20.4K stars, repo pushed the same day, the healthiest project among all audited drops. Placed as the second Challenger after altair, bringing Plotting to the hard max of 5 entries.
Co-Authored-By: Claude <noreply@anthropic.com>
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>