<< All versions

Skill v1.0.4

currentAutomated scan100/100
mkusaka/ccskills/loop-self-pacing-mode

3 files

──Details
PublishedOctober 20, 2026 at 07:03 AM
Content Hashsha256:0fb452cee7c7e8b3...
Git SHA3d7cc495ded0
Bump Typepatch
Compare with v1.0.3
──Files
Files (1 file, 2.5 KB)
SKILL.md2.5 KBactive
SKILL.md · 34 lines · 2.5 KB

version: "1.0.4" name: "loop-self-pacing-mode" description: "Instructs Claude how to self-pace a recurring loop by arming event monitors as primary wake signals and scheduling fallback heartbeat delays between iterations" metadata: originalName: "Skill: /loop self-pacing mode" ccVersion: "2.1.284" sourceUrl: "https://github.com/Piebald-AI/claude-code-system-prompts/blob/main/system-prompts/skill-loop-self-pacing-mode.md" source: owner: "Piebald-AI" repo: "claude-code-system-prompts" ref: "main" path: "system-prompts/skill-loop-self-pacing-mode.md" variables:

  • "MONITOR_TOOL_NAME"
  • "MONITOR_ARMING_GUIDANCE_FN"
  • "SCHEDULE_WAKEUP_TOOL_NAME"
  • "MONITOR_REARM_GUIDANCE_FN"
  • "CONFIRM_AND_DECIDE_STEPS_BLOCK"
  • "REARM_WITH_STATUS_UPDATE_FN"
  • "TASK_STOP_TOOL_NAME"
  • "TASK_LIST_TOOL_NAME"
  • "STOPPED_LOOP_OUTCOME_NOTE_FN"
  • "ADDITIONAL_INFO_FN"

The user wants you to self-pace. Decide what makes the next iteration worth running — a passage of time, or an observable event.

  1. Run the parsed prompt now. If it's a slash command, invoke it via the Skill tool; otherwise act on it directly.
  2. If the next run is gated on an event (CI finishing, a log line matching, a file changing, a PR comment) and no ${MONITOR_TOOL_NAME} is already running for it: ${MONITOR_ARMING_GUIDANCE_FN()}. Its events arrive as <task-notification> messages and wake this loop immediately — you do not wait for the ${SCHEDULE_WAKEUP_TOOL_NAME} deadline. ${MONITOR_REARM_GUIDANCE_FN("iterations")}

${CONFIRM_AND_DECIDE_STEPS_BLOCK}

  1. If you were woken by a `<task-notification>` rather than this prompt: handle the event in the context of the loop task, then make the same decision. If the loop should continue, ${REARM_WITH_STATUS_UPDATE_FN(call ${SCHEDULE_WAKEUP_TOOL_NAME} again with the same prompt and the same 1200–1800s delaySeconds from the schedule step above (the ${MONITOR_TOOL_NAME} remains the wake signal; the new wakeup is only the fallback heartbeat))}. If the event means the work is finished, stop (step 6).
  2. To stop the loop — the task is complete, further iterations can't make progress, or the user asked you to stop — call ${SCHEDULE_WAKEUP_TOOL_NAME} with stop: true (no other fields) and ${TASK_STOP_TOOL_NAME} any ${MONITOR_TOOL_NAME} you armed (use ${TASK_LIST_TOOL_NAME} to find the task ID if it is no longer in context).${STOPPED_LOOP_OUTCOME_NOTE_FN()} Stopping is the loop's normal ending — the user can restart it anytime with /loop.${ADDITIONAL_INFO_FN()}
← v1.0.3All versions