agentleFS
davidondrejdavidondrej/cloudroom-core/skills/create-loop/SKILL.md

create-loop

Skill1.2k starsChanged 4 days agoApache-2.0View on GitHub

Create a recurring Cloudroom Loop that starts an agent to check one thing, archives its thread when all is fine, and reports only when something needs the user. Use for "create loop", "create-loop", "create automation", or any "every N hours, have an agent check X" request.

  • Reads credentials

We split this skill into the rules it gives an agent

4 rules. About 0 are common, 2 are distinctive, and 2 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈2

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 2

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Schedule: every 4 hours in the user's timezone: --cron "0 */4 * * *" --timezone <IANA zone>.

    line 12
  2. Distinctive:

    Access: read only. No edits, commits, or pushes until the user approves a fix.

    line 16
  3. Distinctive:

    Finish: all fine → 1-2 lines, then the thread archives itself.

    line 19
  4. Very specific:

    Create it: Write the prompt to /tmp/<name>-prompt.txt, then:

    line 26

≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Create loop

The user describes the job in a sentence. Fill in everything else from the defaults. Anything the user says overrides a default. Ask only when the job itself is unclear. For flags, Cloud loops, and scripts, read the automations skill.

Defaults

  • Schedule: every 4 hours in the user's timezone: --cron "0 */4 * * *" --timezone <IANA zone>.
  • Agent: the same harness, model, and effort as this thread (room-cli thread show --self --json).
  • Where: a Local loop in the project's main checkout (first line of git worktree list). No new worktrees. Use a Cloud loop when it must run with the Mac off, and always from a Cloud thread.
  • One thread per run: every run is its own top-level thread. Never point a loop at one manager thread that re-prompts and spawns sub-agents: the runs pile up nested under it. Local loops and Cloud --cron loops already start a fresh thread per run, so don't add --same-thread. A script that starts threads itself spawns them top-level: no --parent-self on the Mac, --top-level in a Cloud thread, never --shared-sandbox.
  • Access: read only. No edits, commits, or pushes until the user approves a fix.
  • Secrets: a Cloud loop gets only the API keys its job needs: --secrets KEY,.env or --secrets none.
  • Safety: include the safety sentence below verbatim in every Local or Cloud loop prompt, including prompts embedded in scripts.
  • Finish: all fine → 1-2 lines, then the thread archives itself. Something matters → a short verdict, thread left open for the user's Review tab.
  • No repeats: skip issues already reported in open threads with the same title.

Steps

  1. Read the area first. Find the real files, docs, and skills the job touches. The loop's agent starts cold, so put concrete paths in its prompt.
  2. Write a short prompt from the template below. Simple and short beats thorough: a few lines, at most about 15, in calm, plain words. No long checklists, nothing adversarial. One job per loop. If the loop may push, delete, or flag a serious security issue, have it ask a subagent on another model to check first, in a few lines, like: "Branch X removes Y. Check it won't break anything. Only flag serious issues, not nitpicks. End with SHIP or HOLD: reason."
  3. Create it. Write the prompt to /tmp/<name>-prompt.txt, then:

    room-cli loop create --project "$ROOM_PROJECT_ID" --name "<Name> (every 4 hours)" \
      --cron "0 */4 * * *" --timezone <zone> \
      --provider <id> --model '<model>' --reasoning <level> \
      --environment "<main checkout>" --prompt "$(cat /tmp/<name>-prompt.txt)" --json
  4. Test it once. room-cli loop run ID --project "$ROOM_PROJECT_ID", then room-cli loop runs ID --project "$ROOM_PROJECT_ID" --limit 1 --json gives its thread. Confirm it started and renamed itself.
  5. Tell the user the loop's name, schedule, and test thread, plus anything surprising from step 1.

Prompt template

<Name>. Read only: do not edit, commit, or push anything.
Never test destructive edge cases on live services; mock the API and reject missing or empty IDs before delete requests.

1. Rename this thread: `room-cli thread update --self --title "<Name> · $(date '+%b-%d %H:%M')"`.
2. Read: <concrete files and docs>.
3. Check: <what to look for, in plain words>.
4. Skip issues already reported in open threads titled "<Name>".

Finish:
- Nothing major: write 1-2 lines on what you checked, then run `room-cli thread archive --self --json`.
- Something worth fixing (<what counts as major for this job>): don't archive. Explain the single most important issue in 2-3 short, plain sentences, then one sentence on the safe fix. Then wait.

Keep paid calls cheap

For jobs that pay per item (scrapes, search, paid APIs):

  • Fetch only what's new. Save the last run time in a file and fetch only items after it.
  • Keep a pool. Save good candidates for later runs instead of re-fetching the whole window.
  • Skip hours nobody reads, e.g. 0 8-22/3 * * *.

Gotchas

  • Pass --project on every Local loop command.
  • Threads a loop starts cannot create loops.
  • Quote models with brackets: 'claude-opus-5-5[1m]'.

Download now (ZIP)

Trending

More talk lately.about the whole repository

Dec 2025: 0 mentionsJan 2026: 0 mentionsFeb 2026: 0 mentionsMar 2026: 0 mentionsApr 2026: 0 mentionsMay 2026: 0 mentionsJun 2026: 0 mentionsJul 2026: 0 mentionsAug 2026: 0 mentionsSep 2026: 0 mentionsOct 2026: 32 mentionsNov 2026: 0 mentions
Dec 2025Jun 2026Nov 2026
Mentions a month of the davidondrej/cloudroom-core repository that our weekly crawl found. There is no adoption data for this file yet.

Who's talking about davidondrej/cloudroom-core

The biggest 5 of 32 mentions linking to the repository that our crawl found. Each line is their own headline.

See all 32

Talked about on GitHub (32 times).

On GitHub · 32

27 more on GitHub
  • Other versions1 project uses a version of this.

    Word for word · 1

    1. davidondrej/cloudroom★ 1.2k100% same

    Edited · 0

    None found.

    Wrote their own version · 0

    None found.

    How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.

  • In this repository8 other files it gives its agents.

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.