Agent skill
bot-jobs
Manage Pilot Bot scheduled jobs — add, remove, pause, resume, edit, list. Live-syncs JOBS.yaml with CronCreate/CronDelete.
Install this agent skill to your Project
npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/other/other/bot-jobs
SKILL.md
Bot Jobs Skill
Manage scheduled jobs defined in JOBS.yaml at $PILOT_BOT_DIR. All changes are written to YAML and live-synced with CronCreate/CronDelete immediately.
Before using cron tools: Load them first with ToolSearch(query="select:CronList,CronCreate,CronDelete"). CronCreate uses cron (not schedule) as the parameter name for the cron expression.
Users interact with this skill via conversation (e.g., "add a job that checks X every morning") — either through Telegram (if available) or directly in the Claude Code session. The bot calls this skill internally.
Commands
| Command | Action |
|---|---|
/bot-jobs list |
Show all jobs with status |
/bot-jobs add |
Add a new job interactively |
/bot-jobs remove <id> |
Delete a job permanently |
/bot-jobs pause <id> |
Set active: false and unregister from cron |
/bot-jobs resume <id> |
Set active: true and register with cron |
/bot-jobs edit <id> |
Modify a job interactively |
Args are passed via the Skill tool's args parameter (e.g., skill: "bot-jobs", args: "pause daily-report").
Steps
Parse command
Extract the subcommand and optional job ID from args:
- No args or
list→ list add→ addremove <id>→ removepause <id>→ pauseresume <id>→ resumeedit <id>→ edit
Read JOBS.yaml
Read JOBS.yaml from $PILOT_BOT_DIR. Parse the YAML structure. Each job has:
jobs:
<id>:
schedule: "<cron expression>"
description: <short description>
active: true|false
prompt: |
<prompt text>
Execute subcommand
list
Display all jobs in a table format:
| ID | Schedule | Active | Description |
|----|----------|--------|-------------|
| daily-report | 0 9 * * * | yes | Morning status report |
Also run CronList to show which jobs are currently registered in the session.
add
Ask the user for each field:
- ID — short kebab-case identifier (e.g.,
daily-report) - Schedule — cron expression (e.g.,
0 9 * * *) - Description — one-line summary
- Prompt — the prompt text (can be multi-line)
Then:
- Write the new job entry to
JOBS.yamlusing the Edit tool - Run
CronCreatewithcron='<cron expression>'andprompt='<prompt text>' - Confirm to the user
remove
- Verify the job ID exists in
JOBS.yaml - Run
CronListto find the matching cron job, thenCronDeleteit - Remove the entry from
JOBS.yamlusing the Edit tool - Confirm to the user
pause
- Verify the job ID exists and is currently
active: true - Change
active: truetoactive: falseinJOBS.yaml - Run
CronListto find the matching cron job, thenCronDeleteit - Confirm to the user
resume
- Verify the job ID exists and is currently
active: false - Change
active: falsetoactive: trueinJOBS.yaml - Run
CronCreatewithcron='<schedule>'andprompt='<prompt>' - Confirm to the user
edit
- Verify the job ID exists
- Show the current values and ask what to change
- Update
JOBS.yamlwith the new values - If the job is active:
CronDeletethe old cron, thenCronCreatewith updated values - Confirm to the user
Matching JOBS.yaml entries to CronList
CronCreate returns a session-internal ID that differs from the JOBS.yaml job ID. To match them:
- Use CronList to list all cron jobs
- Match by the prompt text (the prompt field is unique per job)
- If no match is found, the job is not currently registered (e.g., after a session restart)
Notes
- JOBS.yaml is the source of truth for persistent job definitions
- CronCreate/CronDelete are session-scoped (lost on session end)
- Boot skill registers all
active: truejobs on every session start - Heartbeat is NOT managed here — it's registered separately by boot skill
Usage
/bot-jobs
/bot-jobs list
/bot-jobs add
/bot-jobs remove daily-report
/bot-jobs pause daily-report
/bot-jobs resume daily-report
/bot-jobs edit daily-report
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
Didn't find tool you were looking for?