LetItLoop Logo
🛡️ Zero-Trust Verification & Durability for AI Coding Agents

Deterministic Execution.
Crash-Resilient Agent Loops.

AI coding agents fail when processes crash or when whole-file rewrites destroy code syntax. LetItLoop provides AST source-span node splicing, zero-token WAL crash recovery, and signed PR verification gates.

$ pip install letitloop

The Three Ecosystem Pillars

A decoupled tripartite architecture designed for benchmarking, CI verification, and local execution.

📊
agent-durability-bench
DCP-1.0 Benchmark
The first open crash-resilience benchmark measuring agent recovery fidelity, token waste, and process cleanup under deterministic SIGKILL failure injections.
  • Zero-token synthetic harness ($0.00 cost)
  • Live conformance leaderboard
  • BaseAdapter conformance suite
View Benchmark Repo →
🛡️
letitloop-action
GitHub Action Gate
Drop-in GitHub Action running AST invariant checks, scope fencing, and automated test gates on AI-generated Pull Requests with signed SHA-256 proof receipts.
  • Zero runtime node_modules (~1.1MB bundle)
  • Floating @v1 major version tag
  • Markdown PR receipt comments
View Action Repo →
⚙️
letitloop
Core Execution Engine
Deterministic supervisor engine with method-level AST Node Splicing (100% comment/decorator retention) and SQLite/JSONL Write-Ahead Log recovery.
  • 5-Pillar verification firewall
  • 2ms crash resumption from WAL
  • CLI (lil) & Python SDK APIs
View Core Engine →

Integrate in Under 60 Seconds

Use the CLI tool, orchestrate in Python, or guard your GitHub Pull Requests.

# 1. Propose execution contract DAG
$ lil propose "Add rate limiter middleware to FastAPI app"

# 2. Run supervisor loop with strict verification firewall
$ lil run --strict

# 3. Inspect atomic Write-Ahead Log (WAL) checkpoints
$ lil status
# .github/workflows/letitloop-verify.yml
name: Verify AI Pull Request
on: [pull_request]
jobs:
  verify:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-python@v5
        with: { python-version: '3.11' }
      - uses: sdageltc/letitloop-action@v1
        with:
          github-token: ${{ secrets.GITHUB_TOKEN }}
          strict-ast: 'true'
          test-command: 'pytest -q'
from orchestrator.ast_node_splicer import splice_ast_function
from harness.injector import ProcessLifecycleGuard

# Source-span function splicing with zero comment stripping
clean_code = splice_ast_function(
    original_source=file_content,
    target_function_name="process_event",
    new_function_code=generated_snippet
)

Why Durability Bench (DCP-1.0)?

Comparing crash resilience evaluation against industry single-shot benchmarks.

Evaluation Dimension Durability Bench (DCP-1.0) SWE-bench GAIA
Primary Metric Crash Survival & Resumption Fidelity Single-Shot Issue Resolution Multimodal Tool Execution
Failure Injection Deterministic SIGKILL, OOM, Spot Eviction None (Runs to completion) None
State Corruption Check AST Invariants & File Integrity Proofs Pytest Exit Code Only Regex String Match
Cost to Run (100 Tasks) $0.00 (Zero-API Synthetic Engine) ~$450.00 (Cloud LLM Tokens) ~$120.00 (LLM API)
Runtime Duration < 15 Seconds 4–12 Hours 1–3 Hours