# NON_EXECUTABLE — The question calls something with no executable meaning ## What it means Packages can declare boundaries: functions or relations whose signature is fixed but whose computation belongs to a system outside the package. Calls into such a boundary have a type but no runnable body here. When a question depends on one of those calls, the engine cannot execute it and says so, instead of inventing a value. This status is about executability, not truth. The question may be perfectly well-formed; there is simply no computation behind one of its steps in this setup. ## When you see it ```law language "law.core" version "0.2"; package demo.diagnostics version "0.1.0"; namespace "urn:law:demo:diagnostics"; entity Applicant; relation resident(a: Applicant) kind empirical; relation high_risk(a: Applicant) kind institutional; external opaque function risk_score(a: Applicant) -> Decimal { capability "demo-risk"; } rule RiskFlag strict { for a: Applicant; when resident(a) and risk_score(a) >= 2; then high_risk(a); } ``` ```lawtest language "law.core" version "0.2"; package demo.diagnostics version "0.1.0"; namespace "urn:law:demo:diagnostics"; test "opaque call is not executable" { given { context { legal_time @2026-03-01; decision_time @2026-03-01T09:00:00Z; knowledge_time @2026-03-01T09:00:00Z; timezone "UTC"; } assert resident(entity_ref("urn:demo:diagnostics:ann")) { origin case_input; } } evaluate truth(high_risk(entity_ref("urn:demo:diagnostics:ann"))); expect evaluation_status == NON_EXECUTABLE; } ``` The scoring function is declared but computed elsewhere. The flag that depends on its value cannot be derived here. ## What to do Either connect the boundary to the system that computes it, so the call has a value, or reframe the question to avoid the unexecutable step. Do not work around it by asserting the call's value by hand unless that value genuinely comes from the owning system. ## Related - [Testing a package](/language/testing-a-package/) — how scenarios pin outcomes. - [EXTERNAL_UNAVAILABLE](/diagnostics/EXTERNAL_UNAVAILABLE/) — when the outside dataset is missing.