Phase 4 — Run Without You (the recurring loop)
Phase 4 of building a Claude Managed Agent — make it run without you.
How to use it
Claude Code
- Run the line below. It pulls the whole folder into
~/.claude/skills/run-without-you, including the files SKILL.md points to. - Describe your job in plain words. Claude Code follows the skill from there.
Claude Code — installs the whole folder, not just SKILL.md
npx degit alirezarezvani/claude-skills/agent-launcher/skills/run-without-you#main ~/.claude/skills/run-without-youFor one project only, change the path to .claude/skills/run-without-you. This skill also uses deployment_builder.py, cron_validator.py, next_directions_writer.py, NEXT-DIRECTIONS.md, goal_state.py, loops-and-workflows.md — copying SKILL.md alone won't be enough. See the folder on GitHub.
Claude (web or desktop app)
- On this page open ⋯ → Download .md.
- Save it as SKILL.md in a folder, zip the folder, then Customize → Skills → + → Create skill → Upload a skill.
- Pick the file and Save. Claude shows the name and description and runs a security scan.
- Check the skill is switched on.
- Start a new chat and describe your job in plain words. The AI follows the skill from there.
ChatGPT or another app
- ChatGPT: make a Project and paste it into Instructions.
- Neither? Paste it at the top of a new chat — it works for that chat.
Not working?
- Check which app you pasted it into — the steps above name the right one.
- Some skills need the paid tier of Claude or ChatGPT.
Paste into Claude, ChatGPT or Cursor.
Source of Phase 4 — Run Without You (the recurring loop)
Show the full text79 lines
| name | description | version | author | license | tags | compatible_tools |
|---|---|---|---|---|---|---|
| run-without-you | 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). | 2.11.2 | Alireza Rezvani | MIT | [cma, deployment, cron, schedule, recurring, run-without-you, next-directions, dst] | [claude-code, codex-cli, cursor, antigravity, opencode, gemini-cli] |
Phase 4 — Run Without You (the recurring loop)
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.
Choose the trigger
| 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 |
Workflow (recurring)
- Validate the schedule.
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/cron_validator.py --cron "0 9 * * *" --timezone Europe/Berlin - Build the deployment payload.
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-outcomeincludes the rubric so each firing self-grades. The tool prints the BYOK curl to create it and to test it once with the manualrunendpoint before trusting the schedule. - Test before you trust. Fire one manual
run, read the verdict, only then leave the cron in place. Pin the agent version in the deployment once it passes. - Finalize the roadmap.
python3 scripts/next_directions_writer.py \ --sheet ./my-agent/build-sheet.json --loop-shape cron-loop --last-verdict satisfied --out-dir ./my-agent - Advance + hand to wrap-up.
goal_state.py set --phase wrap-up, then invoke thewrap-upskill.
Hard rules
- Test with a manual
runfirst. Never commit a schedule you haven't fired once. - Safety rails on by default.
always_askMCP,limitednetworking where you can,read_onlyuntrusted memory,max_iterationsper firing, workspace spend limit. There is no spend cap inside CMA. - DST is wall-clock. Surface the note; pick safe times.
- ≤1,000 deployments/org.
Forcing-question library (recommend + cite)
- "Cadence, event, or on-request?" Recommend: on-request v0 → cadence once graded. Cite: loops-and-workflows.md.
- "Should each firing self-grade?" Recommend: yes — nest the outcome. Cite: loops-and-workflows.md (nesting rule).
- "Which timezone, and is the time DST-safe?" Recommend: avoid 02:00–03:00 in DST zones. Cite: cma-primitives.md (wall-clock DST).
- "Did you fire one manual run first?" Recommend: always. Cite: this SKILL.
Tools
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.
| 1 | |
| 2 | name run-without-you |
| 3 | description 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). |
| 4 | version 2.11.2 |
| 5 | author Alireza Rezvani |
| 6 | license MIT |
| 7 | tags [cma, deployment, cron, schedule, recurring, run-without-you, next-directions, dst] |
| 8 | compatible_tools [claude-code, codex-cli, cursor, antigravity, opencode, gemini-cli] |
| 9 | |
| 10 | |
| 11 | # Phase 4 — Run Without You (the recurring loop) |
| 12 | |
| 13 | A **scheduled deployment** fires a fresh session on a cron cadence — the agent |
| 14 | runs without you. Each firing can carry its own outcome, nesting the bounded |
| 15 | grade→iterate loop inside every recurring run. |
| 16 | |
| 17 | See [`../../references/loops-and-workflows.md`]. |
| 18 | |
| 19 | ## Choose the trigger |
| 20 | |
| 21 | | Answer | Shape | Tool | |
| 22 | |---|---|---| |
| 23 | | "every morning / weekly / nightly" | recurring cron deployment | `deployment_builder.py` + `cron_validator.py` | |
| 24 | | "when X happens" | event-driven curl (documented, not scheduled) | `deployment_builder.py` (message only) | |
| 25 | | "only when I ask" | on-demand (no deployment) | none — just re-send a `user.message` | |
| 26 | |
| 27 | ## Workflow (recurring) |
| 28 | |
| 29 | **Validate the schedule.** |
| 30 | |
| 31 | python3 scripts/cron_validator.py --cron "0 9 * * *" --timezone Europe/Berlin |
| 32 | |
| 33 | Invalid cron/timezone → exit 1. Read the **DST note**: wall-clock semantics mean |
| 34 | spring-forward times are skipped and fall-back times fire twice — avoid |
| 35 | 02:00–03:00 in DST zones if exactly-once matters. |
| 36 | **Build the deployment payload.** |
| 37 | |
| 38 | python3 scripts/deployment_builder.py \ |
| 39 | --sheet ./my-agent/build-sheet.json --agent-id agent_123 --env-id env_456 \ |
| 40 | --nest-outcome --out ./my-agent/payloads/deployment.json |
| 41 | |
| 42 | `--nest-outcome` includes the rubric so **each firing self-grades**. The tool |
| 43 | prints the BYOK curl to create it and to **test it once** with the manual `run` |
| 44 | endpoint before trusting the schedule. |
| 45 | **Test before you trust.** Fire one manual `run`, read the verdict, only then |
| 46 | leave the cron in place. Pin the agent version in the deployment once it passes. |
| 47 | **Finalize the roadmap.** |
| 48 | |
| 49 | python3 scripts/next_directions_writer.py \ |
| 50 | --sheet ./my-agent/build-sheet.json --loop-shape cron-loop --last-verdict satisfied --out-dir ./my-agent |
| 51 | |
| 52 | **Advance + hand to wrap-up.** `goal_state.py set --phase wrap-up`, then invoke |
| 53 | the `wrap-up` skill. |
| 54 | |
| 55 | ## Hard rules |
| 56 | |
| 57 | **Test with a manual `run` first.** Never commit a schedule you haven't fired once. |
| 58 | **Safety rails on by default.** `always_ask` MCP, `limited` networking where you |
| 59 | can, `read_only` untrusted memory, `max_iterations` per firing, workspace spend |
| 60 | limit. There is no spend cap inside CMA. |
| 61 | **DST is wall-clock.** Surface the note; pick safe times. |
| 62 | **≤1,000 deployments/org.** |
| 63 | |
| 64 | ## Forcing-question library (recommend + cite) |
| 65 | |
| 66 | "Cadence, event, or on-request?" *Recommend:* on-request v0 → cadence once graded. |
| 67 | *Cite:* loops-and-workflows.md. |
| 68 | "Should each firing self-grade?" *Recommend:* yes — nest the outcome. *Cite:* |
| 69 | loops-and-workflows.md (nesting rule). |
| 70 | "Which timezone, and is the time DST-safe?" *Recommend:* avoid 02:00–03:00 in |
| 71 | DST zones. *Cite:* cma-primitives.md (wall-clock DST). |
| 72 | "Did you fire one manual run first?" *Recommend:* always. *Cite:* this SKILL. |
| 73 | |
| 74 | ## Tools |
| 75 | |
| 76 | `scripts/deployment_builder.py` — POST /v1/deployments payload (+ test-run curl). |
| 77 | `scripts/cron_validator.py` — 5-field cron + IANA tz + DST note. |
| 78 | `scripts/next_directions_writer.py` — write/refresh NEXT-DIRECTIONS.md. |
| 79 |
Discussion
Async python patternsMaster Python asyncio, concurrent programming, and async/await patterns for high-performance applications. Use when building async APIs, concurrent systems, or I/O-bound applications requiring non-blocking operations.Go concurrency patternsMaster Go concurrency with goroutines, channels, sync primitives, and context. Use when building concurrent Go applications, implementing worker pools, or debugging race conditions.Microservices patternsDesign microservices architectures with service boundaries, event-driven communication, and resilience patterns. Use when building distributed systems, decomposing monoliths, or implementing microservices.Modern javascript patternsMaster ES6+ features including async/await, destructuring, spread operators, arrow functions, promises, modules, iterators, generators, and functional programming patterns for writing clean, efficient JavaScript code. Use when refactoring legacy code, implementing modern patterns, or optimizing JavaScript applications.
Browse more free Claude skills or everything in Development.