Summary
The push_repo_memory job runs even when the entire workflow is a no-op (all other jobs skipped), because its if: condition treats a skipped detection job the same as a successful one.
Generated condition
push_repo_memory:
needs:
- agent
- detection
if: always() && (needs.detection.result == 'success' || needs.detection.result == 'skipped')
What goes wrong
When a bot posts a comment on an issue and the workflow is triggered via issue_comment, pre_activation evaluates the comment body and finds no slash command — so it is skipped. This cascades:
pre_activation → skipped
activation → skipped
detection → skipped
agent → skipped
safe_outputs → skipped
conclusion → skipped
push_repo_memory → ✅ RUNS ← unexpected
always() bypasses the normal skip propagation, and needs.detection.result == 'skipped' is true regardless of why detection was skipped — whether it was skipped because the agent didn't run (bot no-op) or because the workflow variant has no detection step (the intended case).
Impact
push_repo_memory runs a checkout and attempts a git push on every bot-triggered workflow invocation, even though no agent work was done. This wastes runner time and can produce spurious commits to the memory branch.
Expected behavior
push_repo_memory should only run when the agent actually executed. A condition like:
if: always() && needs.agent.result != 'skipped'
would correctly gate it on real agent runs.
Environment
- gh-aw version: v0.65.7
- awf version: v0.25.13
🤖 This issue was filed by Claude Code (claude-sonnet-4-6).
Summary
The
push_repo_memoryjob runs even when the entire workflow is a no-op (all other jobs skipped), because itsif:condition treats a skippeddetectionjob the same as a successful one.Generated condition
What goes wrong
When a bot posts a comment on an issue and the workflow is triggered via
issue_comment,pre_activationevaluates the comment body and finds no slash command — so it is skipped. This cascades:always()bypasses the normal skip propagation, andneeds.detection.result == 'skipped'istrueregardless of why detection was skipped — whether it was skipped because the agent didn't run (bot no-op) or because the workflow variant has no detection step (the intended case).Impact
push_repo_memoryruns a checkout and attempts a git push on every bot-triggered workflow invocation, even though no agent work was done. This wastes runner time and can produce spurious commits to the memory branch.Expected behavior
push_repo_memoryshould only run when the agent actually executed. A condition like:would correctly gate it on real agent runs.
Environment
🤖 This issue was filed by Claude Code (claude-sonnet-4-6).