The Gitea Actions scheduler on the current build does not offer the dependent
2nd job of a needs-chain to runners: the Tests job (needs: lint) reaches
'waiting' but is never claimed even with idle, label-matching runners, then is
reaped by ABANDONED_JOB_TIMEOUT. Verified via dispatch on idle runners (run
34933: lint claimed+success, Tests waiting/runner_id 0, never scheduled).
Drop 'needs: lint' + the always() gate; guard template repos directly so Tests
runs as an independent, schedulable job.
Claude-Session: https://claude.ai/code/session_01Wsno14cxE49MstXFs9G5KT