// the find
teorth/erdosproblems
A community database for the problems on the erdosproblems.com site
A YAML-backed database tracking the status (open/proved/disproved), prize money, Lean formalizations, and OEIS links for the problems listed on erdosproblems.com, with a generated markdown table and a standalone JS browsing/filtering UI published via GitHub Pages. It's aimed at number theorists, combinatorialists, and anyone doing formalization or OEIS linkage work who wants machine-readable metadata instead of scraping a website.
The YAML file is the actual source of truth and everything else (README table, STATISTICS.md, the Pages site) is generated from it via CI workflows, so there's no drift between docs and data. It validates community PRs against a JSON schema (schema/problems.schema.json via scripts/validate.py) before merge, which matters a lot once you have 900+ entries being edited by random contributors. Several problems ship an actual verification script plus a matching unit test (scripts/foo.py + tests/test_foo.py), which is more rigor than you'd expect from a 'database' repo. Cross-linking to the google-deepmind/formal-conjectures Lean repo and OEIS is kept current through a dedicated update workflow rather than being a one-time import.
It's a single flat YAML file carrying 900+ records edited by PR; at this scale merge conflicts between simultaneous contributions are going to be routine and there's no sharding or per-problem file structure to mitigate that. The Lean formalization links point at an external repo's file paths, which is fragile — a rename or restructure over there silently breaks hundreds of links unless the sync workflow specifically checks for that. AI-assisted solving attempts, a genuinely important provenance signal, were tracked informally in a wiki page that's now frozen rather than as a structured field in the schema, so that information isn't queryable or enforced going forward. The browsing UI (docs/app.js, filters.js, utils.js) is hand-rolled vanilla JS with only one test file (test-url-state.cjs) covering it, so most of the client-side filtering/sorting logic has no test coverage.