Summary
Composite runner only recognizes ::set-output and echo "name=value" >> $GITHUB_OUTPUT. Patterns like printf, single quotes, or heredocs go unnoticed, so outputs don’t propagate.
Proposed Fix
Use a more robust parser that understands the documented $GITHUB_OUTPUT contract (split on newline, handle different quoting styles).