Full 584-line manifest-driven extractor — identical to loop01 PASS artifact. Written to disk at `research_loop/runs/gw-forecast-production-001-loop02/artifacts/production/ORCL/extractor.py` (21,032 bytes). Runnable:

```bash
python3 production/ORCL/extractor.py --manifest production/ORCL/source_manifest.csv --output production/ORCL/forecast_vintage.csv
```

Key behaviors: manifest-driven metric dispatch, live SEC/IR HTML fetch + parse, `earnings_call_webcast` rows for call-only guidance (repeatable source family: company-hosted webcast replay linked from IR release pages), YTD-state for derived quarterly capex, dedupe by source priority, validation gates (≥8 `as_of_period`, ≥4 FY2026 `capex_guidance`). Regenerates 16 rows; `normalized_gw` intentionally blank.

Complete file content is on disk; see `output.md` in the fixer agent_io directory for the verbatim 584-line source.

---
