Ariadne 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,
risk.
Generate or write an agent packet that includes:
- inspect -> act -> verify -> decide cycle,
- concrete verifiers,
- stop rules,
- rollback behavior,
- 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/quickstart
This creates a snapshot, loop JSON, agent packet, sample reports, and a
supervision decision.
For 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.json
If the work starts from a GitHub issue body:
ariadne-loop from-issue \
--title "Issue title" \
--body-file issue.md \
--output issue-loop.json
For 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
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|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
Require human confirmation before:
commit,
push,
- tag or release creation,
- package publish,
- deploy,
- deletion,
- sending external messages,
- payment or billing actions.
After any approved external effect, read back the real target before reporting
success.
1---2name: ariadne-loop3description: Write verifiable Loop Engineering specs for Codex, Claude Code, OpenClaw, and AI coding agents.4---5
6# Ariadne Loop
7
8Use this skill to turn vague agent work into a bounded loop contract for
9OpenClaw, Codex, Claude Code, or another coding agent. The goal is not to make
10a longer prompt. The goal is to make the next agent turn verifiable.
11
12## When to Use
13
14Use this skill when the user asks for any of these:
15
16- a loop, agent loop, or Loop Engineering spec,
17- a resumable handoff for OpenClaw, Codex, Claude Code, or another coding agent,
18- a GitHub issue converted into an executable agent task,
19- release, refactor, bugfix, or documentation work that needs explicit gates,
20- supervision rules for repeated agent reports.
21
22## Preferred Workflow
23
241. Identify the source shape:
25 - rough notes,
26 - GitHub issue title and body,
27 - release/refactor/bugfix request,
28 - long thread handoff.
292. Create a snapshot JSON with:
30 - `title`,
31 - `goal`,
32 - `current_state`,
33 - `recent_progress`,
34 - `constraints`,
35 - `verifiers`,
36 - `external_effects`,
37 - `risk`.
383. Generate or write an agent packet that includes:
39 - inspect -> act -> verify -> decide cycle,
40 - concrete verifiers,
41 - stop rules,
42 - rollback behavior,
43 - human gates for external effects,
44 - JSON-only report contract.
454. If the user wants a first-run demo and the Ariadne Loop CLI is installed:
46
47 ```bash
48 ariadne-loop quickstart --output .ariadne/quickstart
49 ```
50
51 This creates a snapshot, loop JSON, agent packet, sample reports, and a
52 supervision decision.
53
545. For real work, prefer using the CLI:
55
56 ```bash
57 ariadne-loop init --preset bugfix --output loop-snapshot.json
58 ariadne-loop write --input loop-snapshot.json --output loop-report.md --format markdown
59 ariadne-loop make --input loop-snapshot.json --output loop.json --format json
60 ariadne-loop check --input loop.json
61 ```
62
636. If the work starts from a GitHub issue body:
64
65 ```bash
66 ariadne-loop from-issue \
67 --title "Issue title" \
68 --body-file issue.md \
69 --output issue-loop.json
70 ```
71
727. For running loops, ask the agent to append JSON reports to JSONL and use:
73
74 ```bash
75 ariadne-loop supervise \
76 --loop loop.json \
77 --reports reports.jsonl \
78 --output decision.json
79 ```
80
81## If the CLI Is Not Installed
82
83Do not block. Produce the snapshot JSON and the agent packet directly in the
84response or in files. Tell the user they can use the browser builder:
85
86```text
87https://zhangzeyu99-web.github.io/ariadne-loop/playground.html
88```
89
90Use this report contract:
91
92```json
93{
94 "action_id": "inspect|act|verify|decide",
95 "status": "continue|stop|needs_human|rollback",
96 "evidence": ["specific evidence observed in this turn"],
97 "next_step": "the next concrete action",
98 "passed_verifiers": ["gate ids that passed in this turn"],
99 "failed_verifiers": ["gate ids that failed in this turn"]
100}
101```
102
103## Verifier Rules
104
105Prefer observable gates:
106
107- command output,
108- rendered page or screenshot readback,
109- generated artifact exists and validates,
110- remote GitHub issue, PR, release, or Pages output is read back,
111- diff contains no unrelated churn,
112- failing reproduction now passes.
113
114Avoid weak gates:
115
116- "looks good",
117- "done",
118- "agent says it completed",
119- unverified screenshots,
120- claims about remote state without readback.
121
122## Human Gates
123
124Require human confirmation before:
125
126- `commit`,
127- `push`,
128- tag or release creation,
129- package publish,
130- deploy,
131- deletion,
132- sending external messages,
133- payment or billing actions.
134
135After any approved external effect, read back the real target before reporting
136success.