Phase 4 of building a Claude Managed Agent — make it run without you. Turn a graded agent into a recurring scheduled deployment (POSIX-cron), an event-driven curl trigger, or confirmed on-demand use, then finalize the versioned roadmap. Use when the user says "run it every morning", "put it on a schedule", "nightly", "weekly", "automate this", "make it recurring", or when the orchestrator routes phase=run-without-you. deployment_builder.py builds the POST /v1/deployments payload (initial_events must include user.message; optionally nests a user.define_outcome so each firing self-grades); cron_validator.py validates the 5-field cron + IANA timezone and prints the wall-clock DST note; next_directions_writer.py writes NEXT-DIRECTIONS.md. No tool makes API calls — the deployment is created via BYOK curl. Distinct from grade-iterate (the in-session loop) and wrap-up (closeout).
A scheduled deployment fires a fresh session on a cron cadence — the agent runs without you. Each firing can carry its own outcome, nesting the bounded grade→iterate loop inside every recurring run.
See ../../references/loops-and-workflows.md.
| Answer | Shape | Tool |
|---|---|---|
| "every morning / weekly / nightly" | recurring cron deployment | deployment_builder.py + cron_validator.py |
| "when X happens" | event-driven curl (documented, not scheduled) | deployment_builder.py (message only) |
| "only when I ask" | on-demand (no deployment) | none — just re-send a user.message |
python3 scripts/cron_validator.py --cron "0 9 * * *" --timezone Europe/Berlin
Invalid cron/timezone → exit 1. Read the DST note: wall-clock semantics mean
spring-forward times are skipped and fall-back times fire twice — avoid
02:00–03:00 in DST zones if exactly-once matters.python3 scripts/deployment_builder.py \
--sheet ./my-agent/build-sheet.json --agent-id agent_123 --env-id env_456 \
--nest-outcome --out ./my-agent/payloads/deployment.json
--nest-outcome includes the rubric so each firing self-grades. The tool
prints the BYOK curl to create it and to test it once with the manual run
endpoint before trusting the schedule.run, read the verdict, only then
leave the cron in place. Pin the agent version in the deployment once it passes.python3 scripts/next_directions_writer.py \
--sheet ./my-agent/build-sheet.json --loop-shape cron-loop --last-verdict satisfied --out-dir ./my-agent
goal_state.py set --phase wrap-up, then invoke
the wrap-up skill.run first. Never commit a schedule you haven't fired once.always_ask MCP, limited networking where you
can, read_only untrusted memory, max_iterations per firing, workspace spend
limit. There is no spend cap inside CMA.scripts/deployment_builder.py — POST /v1/deployments payload (+ test-run curl).scripts/cron_validator.py — 5-field cron + IANA tz + DST note.scripts/next_directions_writer.py — write/refresh NEXT-DIRECTIONS.md.Copy a source-pinned command for your client. You run it yourself.
Destination: .claude/skills/run-without-you · pinned to the source commit
# Run from your project root
git clone https://github.com/alirezarezvani/claude-skills.git .skillboard-tmp
git -C .skillboard-tmp checkout 19392f7a08264ed00486a251f5b2098321771f94
mkdir -p ".claude/skills"
cp -r ".skillboard-tmp/agent-launcher/skills/run-without-you" ".claude/skills/"
rm -rf .skillboard-tmpReview the source before running. This copies files into your project; it is not a one-click install and does not verify runtime safety.
sudo apt update && sudo apt install -y gitnpm install -g @anthropic-ai/claude-code# Run from your project root
git clone https://github.com/alirezarezvani/claude-skills.git .skillboard-tmp
git -C .skillboard-tmp checkout 19392f7a08264ed00486a251f5b2098321771f94
mkdir -p ".claude/skills"
cp -r ".skillboard-tmp/agent-launcher/skills/run-without-you" ".claude/skills/"
rm -rf .skillboard-tmpDestination: .claude/skills/run-without-you
Scanner static-checks@0.1.0 · commit 19392f7a0826. Static checks cannot prove runtime safety – review the source and the exact diff before installing. How checks work.
Fetches remote content at runtime, which can change after review.
Evidence: curl· fingerprint 427e4b79b1f0fc90
References parent-directory traversal, which can escape a target directory.
Evidence: ../· fingerprint fa08499e14d0113b