Other

/cron-payload-discipline

Discipline for cron/loop/monitor payloads. Triggers: cron, /loop, recurring tick, merge queue, no-progress.

$ golems-cli skills install cron-payload-discipline
100% best pass rate
28 assertions
7 evals
fixtures

Updated 2 weeks ago

Cron payloads must query reality first. If the prompt already claims the state, the loop is rotten before it runs.

When to Use

  • Writing a new /loop, cron tick, or recurring monitor payload
  • Reviewing a payload that mentions PR state, agent state, collab state, or filesystem freshness
  • Debugging repeated identical tick frames or "SILENT" loops that keep restating stale facts
  • Any payload that is long enough to hide stale assumptions inside boilerplate
  • Supervising merge queues, worker queues, collab tails, file-producing tasks, or quiet cmux workers
  • Deciding whether a repeated parsed-only surface is genuinely idle, frozen, or still active

The Shared Primitive

Anthropic-native ! preprocessing is the foundation here:

"The ! syntax runs shell commands before the skill content is sent to Claude."

That means the payload should render live facts before Claude reasons about them. Claude should see current data, not a baked claim like BLOCKED REVIEW_REQUIRED.

The Rule

Never hardcode state strings inside a cron payload when the state can be queried live.

Forbidden examples:

  • PR #123 is BLOCKED REVIEW_REQUIRED
  • 3 PRs are waiting at merge gate
  • surface:7 is idle
  • no collab changes since last tick

Required replacement pattern:

Tick frame:
- now: $(date -Iseconds)
- cycle: <N>
- last-action-timestamp: <ISO-8601>
 
Step 1: run a live query with `!`
  !gh pr view <repo> <pr> --json mergeable,mergeStateStatus,reviewDecision
  !list_surfaces
  !find <dir> -newer <last-action-timestamp>
  !brain_search "<topic>"
 
Step 2: reason from the rendered output, not from the template text
Step 3: dispatch, verify-and-decrement, or escalate-park based on the live result

For monitor loops, extend the frame:

- last-genuine-dispatch-time: <ISO-8601>
- consecutive-no-change-ticks: <N>
- consecutive-no-push-ticks: <N>
- park-threshold: <N>