agentleFS
Kastalien-ResearchKastalien-Research/thoughtbox/.agents/skills/ulc-loop/SKILL.md

ulc-loop

Skill64 starsChanged 4 months agoMITView on GitHub

Start a Unified Loop Controller session via Ralph Wiggum. Autonomously works through backlog, dispatches agents, and explores via QD when idle.

The file

We split this skill into the rules it gives an agent

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

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈6

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 4

    Very specific

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

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Start an autonomous improvement loop powered by Ralph Wiggum.

    line 11
  2. Distinctive:

    Verify Ralph Wiggum plugin is installed:

    line 25
  3. Very specific:

    If not installed, tell the user to run: Codex plugin install ralph-wiggum@Codex-plugins

    line 29
  4. Distinctive:

    Check for existing Ralph loop:

    line 31
  5. Very specific:

    If ACTIVE, warn: "A Ralph loop is already running.

    line 35
  6. Distinctive:

    Check git state is clean:

    line 37
  7. Distinctive:

    If dirty, warn and suggest committing first.

    line 41
  8. Very specific:

    Read the ULC decision procedure from .Codex/skills/ulc-loop/ulc-prompt.md.

    line 45
  9. Distinctive:

    Create the initial ULC state file if it doesn't exist:

    line 49
  10. Very specific:

    Write .Codex/ralph-loop.local.md with YAML frontmatter and the ULC prompt as the body:

    line 68

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 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

ULC Loop

Start an autonomous improvement loop powered by Ralph Wiggum.

Setup

Parse arguments from: $ARGUMENTS

Defaults:

  • --budget: 5 (USD)
  • --max-iterations: 20

Workflow

Step 1: Pre-flight Checks

  1. Verify Ralph Wiggum plugin is installed:
    ls .Codex/plugins/cache/Codex-plugins/ralph-wiggum/ 2>/dev/null || echo "NOT INSTALLED"
    If not installed, tell the user to run: Codex plugin install ralph-wiggum@Codex-plugins
  2. Check for existing Ralph loop:
    cat .Codex/ralph-loop.local.md 2>/dev/null && echo "ACTIVE" || echo "INACTIVE"
    If ACTIVE, warn: "A Ralph loop is already running. Run /cancel-ralph first."
  3. Check git state is clean:
    git status --porcelain
    If dirty, warn and suggest committing first.

Step 2: Read the ULC Prompt

Read the ULC decision procedure from .Codex/skills/ulc-loop/ulc-prompt.md.

Step 3: Initialize ULC State

Create the initial ULC state file if it doesn't exist:

cat > .Codex/ulc-state.local.json << 'EOF'
{
  "iteration": 0,
  "cumulative_cost_usd": 0,
  "budget_usd": <BUDGET>,
  "actions": [],
  "exploration_misses": 0,
  "started_at": "<ISO timestamp>"
}
EOF

Replace <BUDGET> with the parsed budget value.

Step 4: Create Ralph State File

Write .Codex/ralph-loop.local.md with YAML frontmatter and the ULC prompt as the body:

---
active: true
iteration: 1
max_iterations: <MAX_ITERATIONS>
completion_promise: "BUDGET EXHAUSTED OR ALL WORK COMPLETE"
started_at: "<ISO timestamp>"
---

<contents of ulc-prompt.md>

Step 5: Confirm and Start

Output:

ULC Loop activated via Ralph Wiggum.

Budget: $<budget> USD
Max iterations: <max_iterations>
Completion promise: "BUDGET EXHAUSTED OR ALL WORK COMPLETE"

The loop will:
1. Check backlog for ready work
2. Dispatch sub-agents for substantial tasks
3. Explore via QD when backlog is empty
4. Stop when budget is exhausted or all work is complete

State file: .Codex/ulc-state.local.json
Ralph state: .Codex/ralph-loop.local.md

Starting first OODA cycle...

Then immediately begin executing the ULC prompt — perform the first OODA cycle (Observe → Orient → Decide → Act).

Notes

  • The ULC prompt is re-fed by Ralph's stop hook on each iteration
  • Inter-iteration continuity is via .Codex/ulc-state.local.json and git
  • Sub-agents are dispatched via Task tool with subagent_type: "general-purpose"
  • Cost tracking is approximate — the agent estimates based on model and turns
  • The loop does NOT push to remote — human reviews and pushes

Download now (ZIP)

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.