# Citation Audit — JPL_AUTONOMY_EDL_05

**Candidate:** JPL_AUTONOMY_EDL_05
**Artifact audited:** `dissertation.md` reference list (READ-ONLY; the dissertation was not modified)
**Date:** 2026-06-19
**Method:** Every reference DOI was resolved against the Crossref works API; DataCite was consulted as a second registration agency for any DOI that 404'd at Crossref. Every non-DOI citation URL was fetched; NTRS citations were checked through the hardened NTRS path (`ntrs.nasa.gov/api/citations/<id>` plus the `ntrs.nasa.gov/api/citations/search` API), since the NTRS single-page app returns HTTP 200 for every route and cannot be trusted as a liveness signal. Dead DOIs were then run through the ARGOS near-miss resolver; the two dead NTRS records were resolved by exact-title search against the NTRS citations API.

## Summary

| Metric | Count |
|---|---|
| Total references | 149 |
| Resolved (live) | 147 |
| Unverifiable (403 / timeout / network — NOT counted as defects) | 0 |
| **Flagged-dead (confirmed 404)** | **2** |

### Flagged-dead by classification

| Classification | Count |
|---|---|
| mistyped_recoverable | 2 |
| misattributed | 0 |
| fabricated_neighbor | 0 |
| not_found (fabricated / non-existent) | 0 |

Both confirmed defects are recoverable: the cited source is real and exists in NASA NTRS, but the citation carries the wrong NTRS accession number. No fabricated, manufactured-by-analogy, or non-existent citation was found in this corpus. The reference list's own provenance note ("Every entry was checked to resolve at compilation") holds up: 147 of 149 entries are live, and the two that miss are accession-number typos, not invented sources.

## Detail of every flagged reference

| Ref | Author-year (short) | Cited identifier | Classification | Suggested fix |
|---|---|---|---|---|
| [2] | "2020 NASA Technology Taxonomy." (NTRS, n.d.) | `ntrs.nasa.gov/citations/20190029323` | mistyped_recoverable | Replace accession `20190029323` with `20190031953` (live, exact title "2020 NASA Technology Taxonomy"). |
| [43] | "Entry, Descent and Landing Systems Analysis Study: Phase 1 Report." (NTRS) | `ntrs.nasa.gov/citations/20100033754` | mistyped_recoverable | Replace accession `20100033754` with `20100026676` (live, exact title "Entry, Descent and Landing Systems Analysis Study: Phase 1 Report"). |

### Evidence — ref [2]

- Cited URL `https://ntrs.nasa.gov/citations/20190029323`. The NTRS citations API returned **HTTP 404** on three consecutive attempts: `GET https://ntrs.nasa.gov/api/citations/20190029323 -> 404` (x3). The NTRS search API confirms the accession does not exist: `GET .../api/citations/search?q=20190029323 -> 200` with `"total":0` and an empty `results` array. A 404 from the API combined with a zero-hit search (not a 403 or a timeout) is a confirmed dead accession, not a publisher bot-block.
- The document itself is real. An exact-title NTRS search returns multiple live records, including `20190031953` ("2020 NASA Technology Taxonomy", 2019), `20190032038`, `20200000399`, and the descriptive variant `20200000548` ("2020 NASA Technology Taxonomy: 2015 Technology Areas to 2020 Taxonomy"). Each candidate was re-checked: `GET .../api/citations/20190031953 -> 200` (title "2020 NASA Technology Taxonomy").
- **Recommended:** repoint to `20190031953`. This is a Stage-1 correction (fix the accession number); the source is genuine.

### Evidence — ref [43]

- Cited URL `https://ntrs.nasa.gov/citations/20100033754`. NTRS citations API returned **HTTP 404** on three consecutive attempts; the NTRS search API for that accession returns `"total":0`. Confirmed dead accession.
- The document is real: an exact-title NTRS search returns `20100026676` ("Entry, Descent and Landing Systems Analysis Study: Phase 1 Report"), re-checked live: `GET .../api/citations/20100026676 -> 200`.
- **Recommended:** repoint to `20100026676`. Stage-1 accession correction; the source is genuine.

## Not a defect — recorded for transparency (do NOT flag)

| Ref | Cited DOI | Why it is NOT dead |
|---|---|---|
| [117] | `10.26077/md4y-zx37` | The Crossref works API returns 404 for this DOI, but the DOI is **registered with DataCite, not Crossref**, and resolves correctly. `GET https://doi.org/10.26077/md4y-zx37 -> 200` (37 KB of real content); `GET https://api.datacite.org/dois/10.26077/md4y-zx37 -> 200` returns the exact cited title "Predicting Failures and Estimating Duration of Service Life from Satellite Telemetry" (publisher: Utah State University, year 1997, SmallSat 1997 proceedings, `digitalcommons.usu.edu/smallsat/1997/all1997/39/`); the DOI registration-agency endpoint confirms `{"DOI":"10.26077/md4y-zx37","RA":"DataCite"}`. |

**ARGOS resolver caveat for ref [117]:** Run directly, the ARGOS near-miss resolver classifies `10.26077/md4y-zx37` as `misattributed` and offers off-topic Crossref neighbors (a walrus-survey paper, a wave-buoy paper). That verdict is a **false positive** of the resolver's Crossref-only resolution path: the resolver does not consult DataCite, so a valid DataCite DOI looks dead to it and its title search then drifts onto unrelated literature. The guardrail is explicit that a DOI which resolves (here, at doi.org via DataCite) is not a defect. Ref [117] is correctly cited and needs no change. Recommended hardening: the ARGOS `resolve_doi` step should fall back to `doi.org` / DataCite before declaring a DOI non-resolving, so DataCite-registered repository DOIs are not mischaracterized.

## Method notes / reproducibility

- DOI liveness: `https://api.crossref.org/works/<doi>` (HTTP 200 = resolves; 404/410 = dead; 403/429/5xx/timeout/network = unverifiable, never dead), with DataCite fallback `https://api.datacite.org/dois/<doi>` and `https://doi.org/<doi>` for any Crossref 404.
- NTRS liveness (hardened): `https://ntrs.nasa.gov/api/citations/<id>` AND `https://ntrs.nasa.gov/api/citations/search?q=<id>`; the SPA route `ntrs.nasa.gov/citations/<id>` was deliberately NOT used as a liveness signal because it returns 200 for every route.
- OpenAlex and arXiv repository URLs were fetched with GET; all returned 200.
- ARGOS near-miss resolver: `D:/Claude_Code/brain/collegium/argos/near_miss_resolver.py --doi <doi> --title "<title>" --json`.
- Guardrail applied throughout: a 403 or a timeout is unverifiable, never dead; only a confirmed 404/410 (or a resolving near-miss analogy) counts as a real defect. Zero references fell into the unverifiable bucket in this run.
