Files
stef-openclaw-skills/skills/flight-finder/references/source-viability.md

3.2 KiB

Flight Finder Source Viability

This note records bounded live checks for the first implementation pass.

It is intentionally operational, not aspirational: if a source is blocked here, the skill must treat it as blocked unless later evidence replaces this note.

Required sources

  • KAYAK
  • Skyscanner
  • Expedia
  • airline direct-booking cross-check

Status

Checked on 2026-03-30 from Stefano's MacBook Air, with no VPN active, using the existing local web-automation / CloakBrowser probe scripts.

Route used for bounded checks:

  • DFW -> BLQ
  • outbound date: 2026-05-30
  • travelers: 3 adults

KAYAK

  • Status: viable
  • Probe: node flight_kayak_sweep.mjs DFW BLQ 3 /tmp/flight-finder-kayak-dates.json ...
  • Evidence:
    • title returned as DFW to BLQ, 5/30
    • results included multiple one-stop itineraries with parsed USD fares such as $877, $949, $955
    • direct-booking hints were visible for British Airways on at least some results
  • Implementation note:
    • KAYAK can be a primary source in this first implementation pass
    • parsed text is workable, but still brittle enough that bounded retries and status fallback remain necessary

Skyscanner

  • Status: viable
  • Probe: node tmp_skyscanner_probe.mjs 'https://www.skyscanner.com/transport/flights/dfw/blq/260530/?adultsv2=3&cabinclass=economy&rtn=0'
  • Evidence:
    • title returned as Cheap flights from Dallas to Bologna on Skyscanner
    • results page exposed concrete prices, total trip prices, stops, and itinerary text
    • one-stop and multi-stop options were visible in the captured text
  • Implementation note:
    • Skyscanner is viable for bounded result capture in this first pass
    • itinerary extraction should still be treated as text-scrape, not a stable API

Expedia

  • Status: viable
  • Probe: node tmp_expedia_probe.mjs 'https://www.expedia.com/Flights-Search?...'
  • Evidence:
    • title returned as DFW to BLQ flights
    • results page exposed current lowest price, airline/stops filters, and concrete per-traveler options such as $877, $949, $961
    • Expedia text already surfaced some itinerary summaries in a report-friendly format
  • Implementation note:
    • Expedia is viable for bounded result capture in this first pass
    • as with the other aggregators, source-specific timeouts and fallback rules are still required

Airline direct-booking cross-check

  • Status: degraded
  • Probe: node tmp_skyscanner_probe.mjs 'https://www.united.com/en/us/fsr/choose-flights?...'
  • Evidence:
    • United's booking shell loaded and recognized the route / date context
    • the search then returned united.com was unable to complete your request. Please try again later.
  • Implementation note:
    • direct-airline cross-checking remains in scope, but it should be treated as best-effort in the first pass
    • when a direct site fails or refuses completion, the skill should record the failure explicitly instead of hanging or pretending a clean cross-check happened

Scope decision for implementation pass 1

  • Primary bounded search sources: KAYAK, Skyscanner, Expedia
  • Direct-airline cross-check: best-effort / degraded
  • The skill should continue if the direct-airline step fails, but the report must say that the direct cross-check was not fully completed