{"version":"2.1.234","anchor":"goals-nudge-themselves-when-background-work-is-blocking-them","canonical_anchor":"goals-nudge-themselves-when-background-work-is-blocking-them","heading":"Goals nudge themselves when background work is blocking them","tier":"use","area":"Goals","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.234\/e\/goals-nudge-themselves-when-background-work-is-blocking-them","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.234","markdown":"### Goals nudge themselves when background work is blocking them\n\nGoals now nudge Claude every 30 minutes when background shells or agents are blocking evaluation.\n\n**What**\n\nWhen a `\/goal` cannot be evaluated because background shells or agents are still running, Claude Code now injects a check-in message on an interval. It says either \"Goal check-in: background work still running\", listing the blocking shells and agents and telling Claude to check their progress, or \"Goal check-in: background work no longer running\". The default interval is 30 minutes; set `CLAUDE_CODE_GOAL_CHECKIN_MINUTES` to override it, or to 0 to switch check-ins off.\n\n**Details**\n\n- The override is validated as a whole number of minutes between 0 and 10080 (one week).\n- Gated on `tengu_saffron_wren`, which defaults on when the server says nothing.\n- Each injection reports `tengu_goal_checkin_injected` with what triggered it, how long evaluation has been deferred, and how many check-ins have fired.\n\n**Usage**\n\n`export CLAUDE_CODE_GOAL_CHECKIN_MINUTES=10`\n\n- Flag `tengu_saffron_wren`: Not enough to say (read for one account on one subscription tier against v2.1.234; this account: no value returned, anonymous baseline: no value returned, compiled default: on)\n- Area: Goals\n- Names: `\/goal`, `CLAUDE_CODE_GOAL_CHECKIN_MINUTES`\n- Tier: Use it now\n- Useful: 3\/5\n- Signal: 3\/5"}