Context
PRs #3 and #8 added agent-browser-driven scrapers for tipo de cambio + RUC online. Pure parsers are unit-tested but live scraping is not verified in CI because GitHub Actions runners don't have Chrome + agent-browser preconfigured.
This means a SUNAT layout change can land merged + tagged + published before anyone notices.
Scope
- New workflow `.github/workflows/smoke-live.yml`
- Install Chrome + agent-browser binary
- Run `bun run bin/sunat.ts tipo-cambio` and assert reasonable USD/PEN value (1 < compra < 10, abs(c-v) < 0.5)
- Run `sunat padron ruc-online 20131312955` and assert razon social matches expected SUNAT
- Schedule: daily cron + on-PR-touching-scrapers
- Fail mode: open an issue tagging maintainers
- Skip when no Chrome (so unit-test workflow keeps running fast)
Success criteria
- Cron runs daily, alerts within 24h of layout change
- LIMITATIONS.md → "Live scraping untested in CI" lines flip from 🚧 to 🔬
Why P2
Catches drift early. Not urgent because parsers fail soft (return null) so users get clear errors.
References
- LIMITATIONS.md → tipo de cambio + padrón ruc-online sections
Context
PRs #3 and #8 added agent-browser-driven scrapers for tipo de cambio + RUC online. Pure parsers are unit-tested but live scraping is not verified in CI because GitHub Actions runners don't have Chrome + agent-browser preconfigured.
This means a SUNAT layout change can land merged + tagged + published before anyone notices.
Scope
Success criteria
Why P2
Catches drift early. Not urgent because parsers fail soft (return null) so users get clear errors.
References