Use when adding new error messages to React, or seeing "unknown error code" warnings.
npx skills add PaulRBerg/dot-agents --skill "delayed-command"
Install specific skill from multi-skill repository
# Description
This skill should be used when the user asks to "run npm test after 30 minutes", "git commit after 1 hour", "wait 2h then deploy", "sleep 45m and run build", "after 10m run prettier", or provides a duration followed by a shell command to execute later.
# SKILL.md
name: delayed-command
argument-hint:
context: fork
user-invocable: true
description: This skill should be used when the user asks to "run npm test after 30 minutes", "git commit after 1 hour", "wait 2h then deploy", "sleep 45m and run build", "after 10m run prettier", or provides a duration followed by a shell command to execute later.
Delayed Command Execution
Wait for a specified duration, then execute a Bash command.
Arguments
- duration: Time to wait before execution (e.g.,
30s,5m,1h,1h30m) - command: The Bash command to run after the delay
Duration Format
| Format | Example | Meaning |
|---|---|---|
Xs |
30s |
30 seconds |
Xm |
5m |
5 minutes |
Xh |
1h |
1 hour |
XhYm |
1h30m |
1 hour 30 minutes |
XhYmZs |
1h5m30s |
1 hour 5 min 30 s |
Workflow
1. Parse Duration
Convert the duration argument to seconds:
- Extract hours (
h), minutes (m), and seconds (s) components - Calculate total seconds:
hours * 3600 + minutes * 60 + seconds
Parsing logic:
duration="$1"
seconds=0
# Extract hours
if [[ $duration =~ ([0-9]+)h ]]; then
seconds=$((seconds + ${BASH_REMATCH[1]} * 3600))
fi
# Extract minutes
if [[ $duration =~ ([0-9]+)m ]]; then
seconds=$((seconds + ${BASH_REMATCH[1]} * 60))
fi
# Extract seconds
if [[ $duration =~ ([0-9]+)s ]]; then
seconds=$((seconds + ${BASH_REMATCH[1]}))
fi
2. Execute with Delay
For durations up to 10 minutes (600 seconds):
Run synchronously using the Bash tool with appropriate timeout:
sleep <seconds> && <command>
Set the Bash tool's timeout parameter to at least (seconds + 60) * 1000 milliseconds.
For durations over 10 minutes:
Run in background using run_in_background: true:
sleep <seconds> && <command>
Inform the user the command is running in background and provide the task ID for checking status.
3. Report Result
After execution completes:
- Display command output
- Report exit status
- Note total elapsed time
Examples
Short Delay (Synchronous)
User: /delayed-command 5m npm test
- Parse: 5 minutes = 300 seconds
- Execute:
sleep 300 && npm test(timeout: 360000ms) - Report test results
Long Delay (Background)
User: /delayed-command 1h git commit -m "auto-commit"
- Parse: 1 hour = 3600 seconds
- Execute in background:
sleep 3600 && git commit -m "auto-commit" - Return task ID for status checking
Combined Duration
User: /delayed-command 1h30m ./deploy.sh
- Parse: 1h30m = 5400 seconds
- Execute in background (>600s):
sleep 5400 && ./deploy.sh - Inform user of background task
Error Handling
| Error | Response |
|---|---|
| Invalid duration format | Show supported formats and examples |
| Missing command argument | Prompt for the command to execute |
| Command not found | Report error after delay completes |
| Duration exceeds 24h | Warn user and suggest alternative (cron, at) |
# Supported AI Coding Agents
This skill is compatible with the SKILL.md standard and works with all major AI coding agents:
Learn more about the SKILL.md standard and how to use these skills with your preferred AI coding agent.