eloop
Autonomous improvement loop for AO + Antigravity — observe, measure, diagnose, fix, repeat. Targets zero-touch rate as quality metric.
- License 许可
- MIT
- 最近更新
- 2026-11-14
- Stars
- ★ 6
- Forks
- 0
01 前言 Front Matter
- name
- eloop
- type
- skill
- description
- Autonomous improvement loop for AO + Antigravity — observe, measure, diagnose, fix, repeat. Targets zero-touch rate as quality metric.
03 SKILL.md 正文
eloop — Autonomous Self-Improving Loop
Loop interval: 10m | Max duration: 12h (72 iterations)
Purpose
Autonomous self-improving loop that observes AO + Antigravity, measures zero-touch rate, diagnoses friction, creates beads for gaps, dispatches fixes via /claw, and records everything.
Invoked via /loop 10m /eloop or run manually with /eloop.
System Profile
SYSTEM_NAME: AO + Antigravity
QUALITY_METRIC: zero-touch rate (autonomous PR merges / total PR merges)
REPOS: jleechanorg/agent-orchestrator-ts, jleechanorg/worldai_claw
WORKER_PATTERN: tmux sessions matching (ao|jc|wa|cc|ra|wc)-[0-9]+
IDE_MONITOR: Antigravity (via /antig skill)
ISSUE_TRACKER: br (beads, .beads/issues.jsonl)
FINDINGS_LOG: roadmap/evolve-loop-findings.md
AUTOMATION_CODE: .github/workflows/skeptic-cron.yml, packages/core/src/lifecycle-manager.ts
HEALTHY_THRESHOLD: 20% (below = chronic problem, triggers code-level diagnosis)
Loop Body (executed every 10 minutes)
Phase 1: OBSERVE
# Worker sessions
tmux list-sessions 2>/dev/null | grep -E '(ao|jc|wa|cc|ra|wc)-[0-9]+' || echo "no workers"
# Open PRs across repos
for repo in jleechanorg/agent-orchestrator-ts jleechanorg/worldai_claw; do
gh api "repos/$repo/pulls?state=open&per_page=10" \
--jq '.[]|"\(.number) \(.title[:60]) \(.mergeable_state)"' 2>/dev/null
done
# Worker output (last 20 lines)
for sess in $(tmux list-sessions -F '#{session_name}' 2>/dev/null | grep -E '(ao|jc|wa|cc|ra|wc)-[0-9]+'); do
echo "=== $sess ==="; tmux capture-pane -t "$sess" -p 2>/dev/null | tail -20
done
Phase 2: MEASURE
# Merged PRs in last 24h — zero-touch rate
gh api 'repos/jleechanorg/agent-orchestrator-ts/pulls?state=closed&per_page=30&sort=updated&direction=desc' \
--jq '.[] | select(.merged_at != null) | {number, title: .title[:70], autonomous: (.title | test("^\\[agento\\]"))}' \
2>/dev/null | python3 -c "
import sys, json
merged = [json.loads(l) for l in sys.stdin if l.strip()]
autonomous = sum(1 for m in merged if m['autonomous'])
total = len(merged)
rate = autonomous/max(total,1)*100
print(f'Zero-touch: {autonomous}/{total} = {rate:.1f}%')
" 2>/dev/null || echo "no recent merges"
Phase 3: DIAGNOSE
- Quality metric unchanged AND above 20% AND no new friction → SKIP to Phase 7
- Below 20% for 3+ cycles → run Phase 4-6 with code-level diagnosis
- New dead worker or failure → run Phase 4-6
- Worker stuck (same output 3 checks) → kill + respawn
# Stale in-progress beads
cat .beads/issues.jsonl 2>/dev/null | python3 -c "
import sys, json
for line in sys.stdin:
try:
d = json.loads(line.strip())
if d.get('status') == 'in_progress':
print(f\"{d['id']} | {d.get('title','')[:60]}\")
except: pass
" | head -10
Phase 4: PLAN
Run /nextsteps for situational assessment. Prioritize:
- P0: Unblock multiple stalled items
- P1: Prevent recurring friction
- P2: Nice-to-have
Phase 5: RECORD
# Create beads for new friction
# Append to roadmap/evolve-loop-findings.md
git add roadmap/evolve-loop-findings.md .beads/issues.jsonl 2>/dev/null
git commit -m "docs(evolve): cycle $(date +%Y-%m-%d_%H:%M)" 2>/dev/null || true
Phase 6: FIX
# Dispatch /claw for actionable beads
# Babysit open PRs — merge if green, fix if failing
# Run /er on items approaching full-green
Phase 7: RECAP
## Evolve Loop Cycle — HH:MM
- Zero-touch rate: X% (trend: ↑/↓/→)
- Workers: N alive, N dead, N stuck
- PRs: N open, N merged since last cycle
- Friction: N new points
- Fixes: N dispatched, N direct
- Beads: N created, N updated
touch /tmp/evolve_loop_last_run
Anti-Stall Rules
- GraphQL exhausted → switch to REST immediately
- Session cap hit (>30) → report and defer, don't spawn
- Worker stuck (3x same output) → kill and respawn
- /claw fails twice on same bead → fix directly
- Main repo on wrong branch →
git checkout mainsilently - Build broken on main → fix before dispatching
Invocation
/loop 10m /eloop # Start loop
/eloop # One cycle manually
Key Files
roadmap/evolve-loop-findings.md— cumulative findings.beads/issues.jsonl— bead tracker~/.openclaw/SOUL.md— zero-touch convention ([agento] prefix)~/.openclaw/agent-orchestrator.yaml— agentRules confignovel/— worker friction narratives
04 同仓库更多 Skills
instinct
Use when the user invokes /instinct or /in, or asks to "message Instinct", "ask Instinct", "tell Instinct", "check Instinct", or read replies from the configured peer assistant. iMessage first, WhatsApp Web as fallback.
hr
Compatibility alias for history-resume; produce the same fresh-state, provenance-aware resume briefing.
history-resume
Resume briefing for the current repository branch or worktree using fresh state and admitted history sources.
grok
Alias for the canonical grokbot browser conversation workflow; /grok talks to the Grok bot the same way /dot talks to Dot.
codexa-bench
Compare `codexa` and normal `codex` on a fair split of comparable work by default; use `--strict` for duplicate runs of the exact same task.
frontend-design
Create distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, artifacts, posters, or applications (examples include websites, landing pages, dashboards, React components, HTML/CSS layouts, or when styling/beautifying any web UI). Generates creative, polished code and UI design that avoids generic AI aesthetics.