Agent SkillsGoogleCloudPlatform/scion › scion-scheduler

scion-scheduler

GitHub

指导智能体使用 Scion CLI 调度一次性或周期性事件,对比延迟消息与持久化调度的适用场景,并规范外部等待时的阻塞状态与自唤醒配对机制。

resources/platform_skills/scion-scheduler/SKILL.md GoogleCloudPlatform/scion

Trigger Scenarios

需要安排未来执行的任务 处理定时检查或循环任务 等待外部进程完成需设置阻塞状态

Install

npx skills add GoogleCloudPlatform/scion --skill scion-scheduler -g -y
More Options

Non-standard path

npx skills add https://github.com/GoogleCloudPlatform/scion/tree/main/resources/platform_skills/scion-scheduler -g -y

Use without installing

npx skills use GoogleCloudPlatform/scion@scion-scheduler

指定 Agent (Claude Code)

npx skills add GoogleCloudPlatform/scion --skill scion-scheduler -a claude-code -g -y

安装 repo 全部 skill

npx skills add GoogleCloudPlatform/scion --all -g -y

预览 repo 内 skill

npx skills add GoogleCloudPlatform/scion --list

SKILL.md

Frontmatter
{
    "name": "scion-scheduler",
    "description": "Schedule one-shot and recurring events for agents using the Scion CLI. Covers when to use scheduled events vs inline message delays, recurring cron schedules, lifecycle management, and the blocked-wait pairing rule."
}

Scion Scheduler

Schedule future events that deliver messages to agents — either one-shot (fire once at a specific time) or recurring (fire on a cron schedule). All schedules are project-scoped — an agent can only create and manage schedules within its own project.

For full command syntax: scion schedule --help and its subcommands.

Two ways to schedule — when to use which

Scion has two scheduling mechanisms. They solve different problems:

scion message --in/--at scion schedule create / create-recurring
Nature fire-and-forget delayed send durable, project-scoped event
Manageable no handle once sent list, inspect, cancel, pause, resume, delete, history
Visibility only sender knows it exists any agent in the project can scion schedule list
Recurrence no yes (create-recurring --cron)

Use scion message --in for a simple self-callback during your own wait — you need a poke, not a managed object.

Use scion schedule create when any of these apply:

  • The event is recurring
  • Another agent may need to inspect, cancel, or take over the schedule
  • The wait outlives the current agent's session
  • You need execution history or failure tracking

Waiting on external processes — the blocked-wait pairing rule

When waiting on an external, non-agent process (CI run, build job, deploy, third-party API), calling sciontool status blocked "..." alone is not sufficient. That command marks intentional waiting for the stall detector — it does not poll anything or wake you when the external condition resolves. Without a separate wake mechanism, you go fully idle and only resume if an unrelated inbound message happens to arrive.

Correct pattern: schedule a self-callback, then set blocked status.

scion message --in 5m agent:<self> "recheck CI status"
sciontool status blocked "Waiting for CI run to complete"

The self-callback delivers the wake-up; status blocked prevents the stall detector from flagging you during the wait. Neither replaces the other.

  • status blocked alone → stall detector is happy, but you never wake up
  • Self-callback alone → you wake up, but the stall detector may flag you first

sciontool status blocked alone is sufficient when waiting on another agent or a scheduled event already tracked by the orchestration system — those fire their own state-change notifications.

Self-scheduling

To schedule a message to yourself, resolve your own agent name first:

scion schedule create --non-interactive --type message \
  --agent "$(scion whoami --non-interactive --format json | jq -r .name)" \
  --message "Check if deployment completed" \
  --in 15m

Two event types

One-shot events

Fire once, then done. Specify timing with --in (relative delay: 30m, 2h) or --at (absolute ISO 8601 timestamp, UTC).

Recurring schedules

Fire on a cron expression (5-field: minute hour day-of-month month day-of-week, UTC). Each recurring schedule has a name, can be paused and resumed, and maintains execution history.

Message-to-orchestrator pattern

To create agents on a timer, message a long-lived orchestrator rather than dispatching agents directly from the schedule. The orchestrator receives the message and creates/manages task agents as needed — keeping agent lifecycle owned by something that can reason about it.

Lifecycle management

Action Command
List all events and schedules scion schedule list
List only recurring scion schedule list --show recurring
List only one-shot scion schedule list --show events
Inspect scion schedule get <id>
Cancel a one-shot event scion schedule cancel <id>
Pause a recurring schedule scion schedule pause <id>
Resume a paused schedule scion schedule resume <id>
Delete a recurring schedule scion schedule delete <id>
View execution history scion schedule history <id>

Gotchas

  • Cron is UTC. There is no timezone configuration — convert from local time before writing the expression.
  • cancel vs pause vs delete: cancel is for one-shot events only. pause and delete are for recurring schedules only. Using the wrong command on the wrong type will result in an error.
  • Schedule names must be unique within the project.
  • Clean up recurring schedules when the task they serve is complete — they fire indefinitely until paused or deleted.
  • Check existing schedules with scion schedule list before creating new ones — duplicate schedules deliver duplicate messages.

Version History

  • 0.1.0-dev Current 2026-08-20 01:53

Same Skill Collection

.scion/templates/web-dev/skills/chrome-devtools/SKILL.md
resources/platform_skills/git-operations/SKILL.md
resources/platform_skills/git-sandbox/SKILL.md
resources/platform_skills/scion-agent-manage/SKILL.md
resources/platform_skills/scion-cli-operations/SKILL.md
resources/platform_skills/scion-messaging/SKILL.md
resources/platform_skills/team-creation/SKILL.md

Metadata

Files
0
Version
0.1.0-dev
Hash
399be8a6
Indexed
2026-08-20 01:53

inicio - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-08-25 05:48
浙ICP备14020137号-1 $mapa de visitantes$