Originally Posted by
Mwenenzi
The various rule 4 clauses are very basic.
These are implemented:
Rule Test Results
Rule: §4(c) Open-jaw
File: rule_4c_open_jaw.yaml
Expected: FAIL
Actual: FAIL
Key Output: "LHR→CDG: not permitted. United Kingdom and France are not a permitted open-jaw pair"
────────────────────────────────────────
Rule: §4(f) Country limit
File: rule_4f_country_limit.yaml
Expected: FAIL
Actual: FAIL
Key Output: "2 intl departures from UK — limit is 1" + "2 intl arrivals into UK — limit is 1"
────────────────────────────────────────
Rule: §4(i) Surface ban
File: rule_4i_surface_ban.yaml
Expected: FAIL
Actual: FAIL
Key Output: "1 transoceanic surface sector (LAX→LHR) — not permitted"
────────────────────────────────────────
Rule: §4(j) Codeshare
File: rule_4j_codeshare.yaml
Expected: FAIL+WARN
Actual: FAIL+WARN
Key Output: S7 VIOLATION + JQ/IB plating WARNING
────────────────────────────────────────
Rule: §4(l) AU transcon
File: rule_4l_au_transcon.yaml
Expected: FAIL
Actual: FAIL
Key Output: "2 AU transcontinental between east coast and Perth — only 1 permitted"
────────────────────────────────────────
Rule: §8 City-pair
File: rule_s8_citypair.yaml
Expected: FAIL
Actual: FAIL
Key Output: "DOH→LHR flown 2 times. Resolved as DOH→LON (same city group)"
────────────────────────────────────────
Rule: Implicit Asia
File: rule_implicit_asia.yaml
Expected: PASS+INFO
Actual: PASS+INFO
Key Output: "SYD-DOH cross Asian airspace. Asia counted as visited continent"
7/7 rules triggered their expected violations/warnings. Every rule correctly identifies the specific
issue and provides actionable fix suggestions.