ariadne-loop
Write verifiable Loop Engineering specs for Codex, Claude Code, OpenClaw, and AI coding agents.
SKILL.mdskills/ariadne-loop/SKILL.md
GitHubAriadne Loop
Use this skill to turn vague agent work into a bounded loop contract for OpenClaw, Codex, Claude Code, or another coding agent. The goal is not to make a longer prompt. The goal is to make the next agent turn verifiable.
When to Use
Use this skill when the user asks for any of these:
- a loop, agent loop, or Loop Engineering spec,
- a resumable handoff for OpenClaw, Codex, Claude Code, or another coding agent,
- a GitHub issue converted into an executable agent task,
- release, refactor, bugfix, or documentation work that needs explicit gates,
- supervision rules for repeated agent reports.
Preferred Workflow
Identify the source shape:
- rough notes,
- GitHub issue title and body,
- release/refactor/bugfix request,
- long thread handoff.
Create a snapshot JSON with:
title,goal,current_state,recent_progress,constraints,verifiers,external_effects,execution_policywhen the agent may perform selected external effects,risk.
Generate or write an agent packet that includes:
- inspect -> act -> verify -> persist -> decide cycle,
- concrete verifiers,
- stop rules,
- rollback behavior,
- durable memory updates before stop decisions,
- policy-aware human gates for external effects,
- JSON-only report contract.
If the user wants a first-run demo and the Ariadne Loop CLI is installed:
ariadne-loop quickstart --output .ariadne/quickstartThis creates a Loop Run Kit with a snapshot, loop JSON, agent packet, progress file, runbook, control prompts, report log, and supervision decision.
To continue the loop through natural-language control, generate the next prompt from the current decision:
ariadne-loop prompt --dir .ariadne/quickstartFor real work, prefer using the CLI:
ariadne-loop init --preset bugfix --output loop-snapshot.json ariadne-loop write --input loop-snapshot.json --output loop-report.md --format markdown ariadne-loop make --input loop-snapshot.json --output loop.json --format json ariadne-loop check --input loop.jsonIf the work starts from a GitHub issue body:
ariadne-loop from-issue \ --title "Issue title" \ --body-file issue.md \ --output issue-loop.jsonFor running loops, ask the agent to append JSON reports to JSONL and use:
ariadne-loop supervise \ --loop loop.json \ --reports reports.jsonl \ --output decision.json ariadne-loop prompt --dir .
If the CLI Is Not Installed
Do not block. Produce the snapshot JSON and the agent packet directly in the response or in files. Tell the user they can use the browser builder:
https://zhangzeyu99-web.github.io/ariadne-loop/playground.html
Use this report contract:
{
"action_id": "inspect|act|verify|persist|decide",
"status": "continue|stop|needs_human|rollback",
"evidence": ["specific evidence observed in this turn"],
"next_step": "the next concrete action",
"passed_verifiers": ["gate ids that passed in this turn"],
"failed_verifiers": ["gate ids that failed in this turn"]
}
Verifier Rules
Prefer observable gates:
- command output,
- rendered page or screenshot readback,
- generated artifact exists and validates,
- remote GitHub issue, PR, release, or Pages output is read back,
- diff contains no unrelated churn,
- failing reproduction now passes.
Avoid weak gates:
- "looks good",
- "done",
- "agent says it completed",
- unverified screenshots,
- claims about remote state without readback.
Human Gates
By default, require human confirmation before:
commit,push,- tag or release creation,
- package publish,
- deploy,
- deletion,
- sending external messages,
- payment or billing actions.
An execution_policy may allow selected declared effects such as commit or
push. Effects in human_required_effects, and undeclared effects, always
require confirmation.
After any approved external effect, read back the real target before reporting success.