A Hydra sketch with no .out() is guaranteed blank, so .out() presence is the [NOW] proxy for a black-frame check
The true black-frame check — measuring mean canvas luminance — is [L3]-blocked because it needs a screenshot. Its static [NOW] proxy is whether the sketch contains an .out() call at all: a Hydra chain with no .out() renders nothing, so its absence guarantees a blank canvas and is checkable today by reading the code. A present .out() does not guarantee a non-black frame (the content could still be dark), so the proxy is a necessary-not-sufficient screen: it catches the guaranteed-blank case without perception.
Examples
osc(30).kaleid(4) with no trailing .out() is guaranteed blank — flag it now. osc(30).kaleid(4).out() passes the proxy, though it could still render dark for other reasons a screenshot would catch.
Assessment
Explain why the presence of .out() is a necessary-but-not-sufficient [NOW] proxy for a black-frame check. What does its absence guarantee?