Important rule: every TODO / DOING task needs its own category:: property directly on the task block. Logseq's queries match on the task block itself — properties are not inherited from parent blocks.