ai_result_t has novalid, label or confidence field. The shipped proj_cm55/modules/ai_models/README.md:33-40 example that uses them does not compile; the real reduction is the inline ai_result_top_positive() (ai_engine.h:249-265), which returns the strongest positive class (index 0 is the negative class by registry contract) as 0..100.
ai_engine_stack_words() returning 0 means the inference task was never created; every reading on every page below is vacuous until it is non-zero.