Extract visa-policy rules for (nationality → destination) pairs into committed, schema-validated JSON artifacts, using a Claude subscription (Claude Agent SDK) or OpenAI Codex — not a metered gateway key. Use when broadening visa data coverage (EPIC-005 slice 5), when a human says "run the visa extraction" / "fetch visa rules for X", or on a schedule. Produces a reviewable PR; the diff review is the factual-accuracy gate. Never runs at request time. SPEC-019 / ADR 062.
75
94%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
Passed
No findings from the security scan
Offline, human-gated data-acquisition for the deterministic visa evaluator. The runtime app does no AI; this skill freezes researched policy into committed JSON that is ingested into Postgres at deploy time.
Do not use it to change the schema or the evaluator — those are SPEC-015's domain.
Pick one runner:
--runner=claude, default): run claude setup-token
once and export the result:
export CLAUDE_CODE_OAUTH_TOKEN=… (subscription credits; no ANTHROPIC_API_KEY).--runner=codex): codex login (ChatGPT subscription). The CLI
must be on PATH.The shared output contract is apps/web/visa-rule.schema.json (generated from
the Zod visaRuleExtractionSchema via pnpm visa:schema). Both runners enforce
it; ingestion re-validates with Zod.
pnpm visa:schema (commit if it changed).# default nationality GBR; default runner claude
pnpm visa:extract --runner=claude JPN VNM THA AUS NZL CAN SGP
# or via Codex
pnpm visa:extract --runner=codex --nationality=GBR AUS NZLsrc/infrastructure/db/seed/visa-rules-data/<NAT>/<DEST>.json
(a VisaRuleSeed[]), schema-validated, with cross-field sanity warnings
printed for anything suspicious.sourceNote (gov.uk / official guidance). Fix or delete anything
wrong. Address every sanity warning.feat(visa-data): … or chore(visa-data): ….ingestVisaData() upserts the rows idempotently (no manual
ingest step). Verify the Visas panel shows real coverage for the new
destinations.source: 'ai-extracted'; promote to 'manual' (in visa-rule-seed.ts)
only after independent verification.2d8e79c
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.