本文へ移動
cccskills
無料GitHub で公開

jobs

Use when the task involves scheduling future work — any "remind me at …", "every weekday …", "check again in 30 min", or closing a fired cron job. Also use to reschedule or list jobs. NOT for one-off in-session waits. NEVER edit jobs.md by hand (the cron parser is strict).

インストール方法を見る

含まれるファイル(2)

  • SKILL.md4.3 KB
  • jobs.py4.4 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

Jobs

Durable scheduled work lives in ~/.physiclaw/jobs/jobs.md. The format is regex-parsed by the cron loop — a malformed field breaks every scheduled job in the file. Never edit jobs.md directly.

All job operations go through a single CLI:

uv run python "$SKILL_DIR/jobs.py" <subcommand> [args]

Four subcommands: create, list, get, finish. Each is a thin wrapper around the canonical engine module — the file format stays invariant no matter what you pass.

$SKILL_DIR is provided by Claude Code; it resolves to the directory containing this SKILL.md.


Create a job

uv run python "$SKILL_DIR/jobs.py" create \
  --id <user>-<topic>-<YYYY-MM-DD> \
  --kind <one-time|periodic> \
  --schedule "<5-field cron>" \
  --description "<human text>" \
  --context "<what the next wake needs to know>"
  • --kind defaults to one-time if omitted.
  • --schedule: standard 5-field cron min hour dom mon dow. Day- of-week is 0=Sun, 6=Sat. All times are naive local time. Examples:
    • Every weekday at 09:00 → "0 9 * * 1-5"
    • At 14:30 on 2026-05-01 → "30 14 1 5 *" (combined with a matching one-time kind)
    • In 30 minutes (compute wall-clock now + 30m yourself): "M H D Mo *" where M/H/D/Mo are the computed minute/hour/day/month.
  • --context: at least 10 characters. Write what the next wake needs to do — the engine injects this into the SYSTEM prompt when the job fires.

Id format: <user>-<topic>-<YYYY-MM-DD>. Lowercase letters, digits, hyphens only. The date suffix keeps repeat ids (alice-water-plants-…) unique across days without -v2 churn.

On duplicate id (even terminal), the command errors — pick a fresh id.

Example

uv run python "$SKILL_DIR/jobs.py" create \
  --id alice-water-plants-2026-05-01 \
  --schedule "0 9 1 5 *" \
  --description "Remind Alice to water the kitchen plants." \
  --context "Send Alice a friendly reminder via WeChat to water the kitchen herbs."

List jobs

uv run python "$SKILL_DIR/jobs.py" list [--status pend|fired|done|fail|cancel|all]

Default is all. Prints one job per line with id, status, kind, schedule, next fire, and short description.

Common recovery move: start a wake with jobs.py list --status fired to find orphaned fired jobs from earlier wakes that you need to close.


Get one job

uv run python "$SKILL_DIR/jobs.py" get --id <id>

Prints every field (description, type, status, schedule, context, all timestamps, execution result). Use when the one-liner from list isn't enough.


Finish a fired job

uv run python "$SKILL_DIR/jobs.py" finish \
  --id <id> --status <done|fail|cancel> --recap "<one-line outcome>"
  • done — work complete.
  • fail — blocked or impossible.
  • cancel — no longer needed, or you're rescheduling (do cancel + new create with a fresh id).

For periodic jobs, done/fail automatically reset to pend so the next cycle fires. Only cancel is permanent for periodic.

Errors on already-terminal jobs (re-finishing is a bug, not idempotent).


Reschedule = cancel + create

There is no update. Jobs are append-only; their only state change is finishing them. To reschedule:

  1. jobs.py finish --id <old> --status cancel --recap "rescheduling — new id <new>"
  2. jobs.py create --id <new> … (use a fresh id — bump the date, or append -v2 if same-day)

WAIT close pattern

When closing with >> WAIT - <reason>, pair it with a fresh job for the resume check. Otherwise the engine auto-schedules a generic 15-min follow-up — usually wrong for your situation. Only fall back to that if you genuinely don't know when to check back.

Example:

uv run python "$SKILL_DIR/jobs.py" create \
  --id alice-confirm-order-2026-05-01 \
  --schedule "$(date -v +30M '+%M %H %d %m') *" \
  --description "Re-check IM: user said they'd confirm in ~30min." \
  --context "Alice reviewed cart before leaving for a meeting; re-open WeChat and look for her OK to place the order."

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

jd

無料

Shop on the 京东 (JD) app. Use whenever the user wants to buy, order, or price something on 京东 / JD, including 京东七鲜 fresh groceries, or names the 京东 app.

日本語の概要は準備中です。原文の説明を表示しています。

physiclaw/PhysiClaw3892026年10月12日 更新

First-run setup — learn the bboxes of your three key input boxes (Spotlight search, chat input keyboard-down, chat input keyboard-up) plus the keyboard keys and Paste buttons. Run once when SYSTEM shows the first-run notice, before opening apps by search or sending messages. Screenshot each page, read the box coordinates off the returned elements, save them with the screen_layout.py CLI.

日本語の概要は準備中です。原文の説明を表示しています。

physiclaw/PhysiClaw3892026年10月12日 更新

taobao

無料

Shop on the 淘宝 (Taobao) app. Use whenever the user wants to buy, order, or price something on 淘宝 / Taobao / 淘宝闪购, or names the Taobao app.

日本語の概要は準備中です。原文の説明を表示しています。

physiclaw/PhysiClaw3892026年10月12日 更新

physiclaw のスキルをすべて見る

このスキルの問題を報告する