cobusgreyling/loop-engineeringPublic

Practical patterns, starters & CLI tools for loop engineering with AI coding agents. Design systems that prompt and orchestrate agents (inspired by Addy Osmani and Boris Cherny). Includes loop-audit, loop-init, loop-cost.

AI summary: A framework for building robust agentic loops and evaluation pipelines.

Stars
9.9K
+59 today
Forks
1.3K
Watchers
65
Open issues
11
Open PRs
5
Contributors
~32
Commits
377
Branches
44

JavaScriptMITCreated Jun 9, 2026Last push todayLatest release v1.6.0+316 stars this week+391 this month

Star history

since Jun 14, 2026
02.5K5K7.5KJun 2026Jul 2026Jul 2026Aug 2026
9.9K stars as of Aug 7, 2026, tracked back to Jun 14, 2026. Historical curve reconstructed from public GitHub event archives, calibrated to the current total.

Contribution activity

commits per day, last 52 weeks
AugSepOctNovDecJanFebMarAprMayJunJulAugMonWedFri2025-08-10: 0 commits2025-08-11: 0 commits2025-08-12: 0 commits2025-08-13: 0 commits2025-08-14: 0 commits2025-08-15: 0 commits2025-08-16: 0 commits2025-08-17: 0 commits2025-08-18: 0 commits2025-08-19: 0 commits2025-08-20: 0 commits2025-08-21: 0 commits2025-08-22: 0 commits2025-08-23: 0 commits2025-08-24: 0 commits2025-08-25: 0 commits2025-08-26: 0 commits2025-08-27: 0 commits2025-08-28: 0 commits2025-08-29: 0 commits2025-08-30: 0 commits2025-08-31: 0 commits2025-09-01: 0 commits2025-09-02: 0 commits2025-09-03: 0 commits2025-09-04: 0 commits2025-09-05: 0 commits2025-09-06: 0 commits2025-09-07: 0 commits2025-09-08: 0 commits2025-09-09: 0 commits2025-09-10: 0 commits2025-09-11: 0 commits2025-09-12: 0 commits2025-09-13: 0 commits2025-09-14: 0 commits2025-09-15: 0 commits2025-09-16: 0 commits2025-09-17: 0 commits2025-09-18: 0 commits2025-09-19: 0 commits2025-09-20: 0 commits2025-09-21: 0 commits2025-09-22: 0 commits2025-09-23: 0 commits2025-09-24: 0 commits2025-09-25: 0 commits2025-09-26: 0 commits2025-09-27: 0 commits2025-09-28: 0 commits2025-09-29: 0 commits2025-09-30: 0 commits2025-10-01: 0 commits2025-10-02: 0 commits2025-10-03: 0 commits2025-10-04: 0 commits2025-10-05: 0 commits2025-10-06: 0 commits2025-10-07: 0 commits2025-10-08: 0 commits2025-10-09: 0 commits2025-10-10: 0 commits2025-10-11: 0 commits2025-10-12: 0 commits2025-10-13: 0 commits2025-10-14: 0 commits2025-10-15: 0 commits2025-10-16: 0 commits2025-10-17: 0 commits2025-10-18: 0 commits2025-10-19: 0 commits2025-10-20: 0 commits2025-10-21: 0 commits2025-10-22: 0 commits2025-10-23: 0 commits2025-10-24: 0 commits2025-10-25: 0 commits2025-10-26: 0 commits2025-10-27: 0 commits2025-10-28: 0 commits2025-10-29: 0 commits2025-10-30: 0 commits2025-10-31: 0 commits2025-11-01: 0 commits2025-11-02: 0 commits2025-11-03: 0 commits2025-11-04: 0 commits2025-11-05: 0 commits2025-11-06: 0 commits2025-11-07: 0 commits2025-11-08: 0 commits2025-11-09: 0 commits2025-11-10: 0 commits2025-11-11: 0 commits2025-11-12: 0 commits2025-11-13: 0 commits2025-11-14: 0 commits2025-11-15: 0 commits2025-11-16: 0 commits2025-11-17: 0 commits2025-11-18: 0 commits2025-11-19: 0 commits2025-11-20: 0 commits2025-11-21: 0 commits2025-11-22: 0 commits2025-11-23: 0 commits2025-11-24: 0 commits2025-11-25: 0 commits2025-11-26: 0 commits2025-11-27: 0 commits2025-11-28: 0 commits2025-11-29: 0 commits2025-11-30: 0 commits2025-12-01: 0 commits2025-12-02: 0 commits2025-12-03: 0 commits2025-12-04: 0 commits2025-12-05: 0 commits2025-12-06: 0 commits2025-12-07: 0 commits2025-12-08: 0 commits2025-12-09: 0 commits2025-12-10: 0 commits2025-12-11: 0 commits2025-12-12: 0 commits2025-12-13: 0 commits2025-12-14: 0 commits2025-12-15: 0 commits2025-12-16: 0 commits2025-12-17: 0 commits2025-12-18: 0 commits2025-12-19: 0 commits2025-12-20: 0 commits2025-12-21: 0 commits2025-12-22: 0 commits2025-12-23: 0 commits2025-12-24: 0 commits2025-12-25: 0 commits2025-12-26: 0 commits2025-12-27: 0 commits2025-12-28: 0 commits2025-12-29: 0 commits2025-12-30: 0 commits2025-12-31: 0 commits2026-01-01: 0 commits2026-01-02: 0 commits2026-01-03: 0 commits2026-01-04: 0 commits2026-01-05: 0 commits2026-01-06: 0 commits2026-01-07: 0 commits2026-01-08: 0 commits2026-01-09: 0 commits2026-01-10: 0 commits2026-01-11: 0 commits2026-01-12: 0 commits2026-01-13: 0 commits2026-01-14: 0 commits2026-01-15: 0 commits2026-01-16: 0 commits2026-01-17: 0 commits2026-01-18: 0 commits2026-01-19: 0 commits2026-01-20: 0 commits2026-01-21: 0 commits2026-01-22: 0 commits2026-01-23: 0 commits2026-01-24: 0 commits2026-01-25: 0 commits2026-01-26: 0 commits2026-01-27: 0 commits2026-01-28: 0 commits2026-01-29: 0 commits2026-01-30: 0 commits2026-01-31: 0 commits2026-02-01: 0 commits2026-02-02: 0 commits2026-02-03: 0 commits2026-02-04: 0 commits2026-02-05: 0 commits2026-02-06: 0 commits2026-02-07: 0 commits2026-02-08: 0 commits2026-02-09: 0 commits2026-02-10: 0 commits2026-02-11: 0 commits2026-02-12: 0 commits2026-02-13: 0 commits2026-02-14: 0 commits2026-02-15: 0 commits2026-02-16: 0 commits2026-02-17: 0 commits2026-02-18: 0 commits2026-02-19: 0 commits2026-02-20: 0 commits2026-02-21: 0 commits2026-02-22: 0 commits2026-02-23: 0 commits2026-02-24: 0 commits2026-02-25: 0 commits2026-02-26: 0 commits2026-02-27: 0 commits2026-02-28: 0 commits2026-03-01: 0 commits2026-03-02: 0 commits2026-03-03: 0 commits2026-03-04: 0 commits2026-03-05: 0 commits2026-03-06: 0 commits2026-03-07: 0 commits2026-03-08: 0 commits2026-03-09: 0 commits2026-03-10: 0 commits2026-03-11: 0 commits2026-03-12: 0 commits2026-03-13: 0 commits2026-03-14: 0 commits2026-03-15: 0 commits2026-03-16: 0 commits2026-03-17: 0 commits2026-03-18: 0 commits2026-03-19: 0 commits2026-03-20: 0 commits2026-03-21: 0 commits2026-03-22: 0 commits2026-03-23: 0 commits2026-03-24: 0 commits2026-03-25: 0 commits2026-03-26: 0 commits2026-03-27: 0 commits2026-03-28: 0 commits2026-03-29: 0 commits2026-03-30: 0 commits2026-03-31: 0 commits2026-04-01: 0 commits2026-04-02: 0 commits2026-04-03: 0 commits2026-04-04: 0 commits2026-04-05: 0 commits2026-04-06: 0 commits2026-04-07: 0 commits2026-04-08: 0 commits2026-04-09: 0 commits2026-04-10: 0 commits2026-04-11: 0 commits2026-04-12: 0 commits2026-04-13: 0 commits2026-04-14: 0 commits2026-04-15: 0 commits2026-04-16: 0 commits2026-04-17: 0 commits2026-04-18: 0 commits2026-04-19: 0 commits2026-04-20: 0 commits2026-04-21: 0 commits2026-04-22: 0 commits2026-04-23: 0 commits2026-04-24: 0 commits2026-04-25: 0 commits2026-04-26: 0 commits2026-04-27: 0 commits2026-04-28: 0 commits2026-04-29: 0 commits2026-04-30: 0 commits2026-05-01: 0 commits2026-05-02: 0 commits2026-05-03: 0 commits2026-05-04: 0 commits2026-05-05: 0 commits2026-05-06: 0 commits2026-05-07: 0 commits2026-05-08: 0 commits2026-05-09: 0 commits2026-05-10: 0 commits2026-05-11: 0 commits2026-05-12: 0 commits2026-05-13: 0 commits2026-05-14: 0 commits2026-05-15: 0 commits2026-05-16: 0 commits2026-05-17: 0 commits2026-05-18: 0 commits2026-05-19: 0 commits2026-05-20: 0 commits2026-05-21: 0 commits2026-05-22: 0 commits2026-05-23: 0 commits2026-05-24: 0 commits2026-05-25: 0 commits2026-05-26: 0 commits2026-05-27: 0 commits2026-05-28: 0 commits2026-05-29: 0 commits2026-05-30: 0 commits2026-05-31: 0 commits2026-06-01: 0 commits2026-06-02: 0 commits2026-06-03: 0 commits2026-06-04: 0 commits2026-06-05: 0 commits2026-06-06: 0 commits2026-06-07: 0 commits2026-06-08: 0 commits2026-06-09: 28 commits2026-06-10: 2 commits2026-06-11: 7 commits2026-06-12: 1 commit2026-06-13: 2 commits2026-06-14: 0 commits2026-06-15: 1 commit2026-06-16: 3 commits2026-06-17: 1 commit2026-06-18: 3 commits2026-06-19: 1 commit2026-06-20: 0 commits2026-06-21: 0 commits2026-06-22: 2 commits2026-06-23: 7 commits2026-06-24: 1 commit2026-06-25: 5 commits2026-06-26: 7 commits2026-06-27: 3 commits2026-06-28: 0 commits2026-06-29: 10 commits2026-06-30: 11 commits2026-07-01: 4 commits2026-07-02: 6 commits2026-07-03: 2 commits2026-07-04: 5 commits2026-07-05: 8 commits2026-07-06: 8 commits2026-07-07: 10 commits2026-07-08: 12 commits2026-07-09: 6 commits2026-07-10: 5 commits2026-07-11: 1 commit2026-07-12: 1 commit2026-07-13: 17 commits2026-07-14: 1 commit2026-07-15: 6 commits2026-07-16: 15 commits2026-07-17: 2 commits2026-07-18: 1 commit2026-07-19: 5 commits2026-07-20: 10 commits2026-07-21: 14 commits2026-07-22: 11 commits2026-07-23: 15 commits2026-07-24: 8 commits2026-07-25: 3 commits2026-07-26: 6 commits2026-07-27: 4 commits2026-07-28: 2 commits2026-07-29: 24 commits2026-07-30: 2 commits2026-07-31: 5 commits2026-08-01: 1 commit2026-08-02: 1 commit2026-08-03: 8 commits2026-08-04: 2 commits2026-08-05: 2 commits2026-08-06: 3 commits2026-08-07: 2 commits2026-08-08: 0 commits
333 commits in the last yearLessMore

Signals and awards

derived from tracked data
  • Breakout launch

    9,942 stars in 59 days

  • Actively maintained

    Pushed within 48 hours

  • Well documented

    High community health score

  • Permissive license

    MIT

  • Continuous integration

    Automated checks passing

  • Repeat trending

    3 trending appearances

What loop-engineering does

Loop Engineering is a framework dedicated to the design, execution, and evaluation of autonomous AI agent loops. It provides the necessary infrastructure to manage state, handle API failures, and evaluate output quality in multi-step LLM interactions. The system introduces specific constructs for human-in-the-loop interventions and automated circuit breakers to prevent runaway costs. It focuses heavily on observability, logging every intermediate step of the reasoning process for later analysis.

AI engineers, prompt developers, and researchers building complex, autonomous LLM systems. Requires strong Python skills and understanding of agent architectures.

  • State management: Robustly tracks context and variables across long-running multi-step agent interactions.
  • Circuit breakers: Automatically halts execution if costs exceed thresholds or infinite loops are detected.
  • Evaluation pipelines: Built-in tools to assess the quality and accuracy of agent outputs against ground truth data.
  • Human-in-the-loop hooks: Pauses execution to request human approval or clarification for high-stakes decisions.
  • Detailed telemetry: Logs every API call, token count, and reasoning step for debugging and optimization.

Where teams use it

Autonomous research agents

Building bots that independently gather data, analyze it, and write reports while staying within budget.

Production LLM applications

Deploying multi-step AI features to production with confidence by utilizing robust error handling and circuit breakers.

Agent evaluation

Systematically testing different prompt strategies by running them through automated quality assessment loops.

Getting started: pip install loop-engineering

README

main branch

Loop Engineering

Explore the Showcase

GitHub stars loop-audit dogfood loop npm loop-audit npm loop-init npm loop-cost npm loop-sync npm loop-context npm loop-mcp-server npm loop-worktree npm MIT Pages

Loop Engineering logo

Stop prompting. Design the loop. Get a score.

Loop Engineering — design the system that prompts your agents

# Front door (recommended) — one binary for init + doctor + status
npx @cobusgreyling/loop init . --pattern daily-triage --tool grok
npx @cobusgreyling/loop doctor .

# Same as before (still fully supported — forks need not change)
npx @cobusgreyling/loop-init .
# Optional: also scaffold a versioned harness (harness-foundry)
npx @cobusgreyling/loop init . --with-foundry

loop init (or loop-init) scaffolds skills, state, and budget files, then prints your Loop Ready score and first loop command. loop doctor combines audit + sync + file checks into top-3 next actions. Swap --tool for claude, codex, or opencode. Use --with-foundry when you want the loop as a composable runtime stack. See docs/cli-front-door.md.

Loop Ready score climbs from 10 to 100 in 15 seconds

Loop engineering replaces you as the person who prompts the agent — you design the system that does it instead.

New here? Quickstart (5 min) · Interactive picker

For developers using Grok, Claude Code, Codex, Cursor, and other AI coding agents.

→ Interactive showcase + pattern picker · Essay · Addy Osmani

Contents

Quick Links

Start here Description
Quickstart (5 min) loop initloop doctor → first loop — start here if you just landed
CLI front door Unified @cobusgreyling/loop — old packages stay open
Loop Engineering essay The concept, primitives, and Grok mapping — read for the why
Pattern Picker Which loop to run first — start here if unsure
Primitives Matrix Cross-tool loop primitive mapping — bookmark this
Loop Design Checklist Ship readiness rubric
Patterns 7 production patterns + interactive picker
Starters Clone-and-run kits (Grok, Claude Code, Codex, Opencode)
Opencode examples CLI-first loops: cron/systemd + opencode run, skills, worktrees
loop (front door) Unified CLInpx @cobusgreyling/loop init | doctor | status | audit | cost · cli-front-door
loop-audit Loop Readiness Score CLI (v1.7 — constraints + governance + Harness Runtime) — npx @cobusgreyling/loop audit . --suggest · also loop-audit
loop-init Scaffold starters + budget/run-log + constraints (v1.5) — npx @cobusgreyling/loop init . --pattern daily-triage --tool grok · also loop-init
harness-foundry Companion runtime: versioned stacks, sessions, traces — npx @cobusgreyling/harness-foundry init --from loop-engineering:daily-triage
outerloop Companion governance: evidence → verdict → answerability
loop-cost Token spend estimator — npx @cobusgreyling/loop-cost
loop-sync Drift detection between STATE.md and LOOP.mdnpx @cobusgreyling/loop-sync .
loop-context Stateful memory manager + circuit breaker for long runs — npx @cobusgreyling/loop-context --check --ledger run.json
loop-mcp-server MCP runtime lookup for patterns, skills, state — npx @cobusgreyling/loop-mcp-server
loop-worktree Manage isolated git worktrees per fix attempt — npx @cobusgreyling/loop-worktree create --run-id <id> --pattern <p>
loop-gate Mechanical enforcement of the path denylist + auto-merge allowlist from gate.yamlnpx @cobusgreyling/loop-gate check --action auto-merge --paths <f1,f2,...>
loop-sandbox Ephemeral git worktree isolation + patch capture — npx @cobusgreyling/loop-sandbox run -- <cmd>
loop-action GitHub Composite Action for running loops in CI — uses: cobusgreyling/loop-engineering/tools/loop-action@main
Goal Engineering Companion: loops discover, goals finish — /goal + stack cookbook (npx @cobusgreyling/goal doctor .)
Memory Engineering Companion: stop re-explaining the repo — tiers, budget, Memory Ready score (node tools/memory-init/cli.js .)
Fleet Engineering Companion: govern populations of agents — registry, inbox, Fleet Ready score (npx @cobusgreyling/fleet-init .)
Stories Real wins and honest failures

Ecosystem stack

memory-engineering → loop-engineering → harness-foundry → outerloop → fleet-engineering
   (persist)            (patterns)         (runtime)        (verdict)     (population)
Layer You get Start
Memory Tiers, recall budget, Memory Ready score memory-engineering
Design (this repo) Patterns, starters, Loop Ready score npx @cobusgreyling/loop init . then loop doctor .
Runtime Versioned harness, traces, evolve npx @cobusgreyling/loop init . --with-foundry or Foundry showcase
Govern Evidence, verdict, answerability outerloop
Fleet Registry, inbox, budgets, kill switch npx @cobusgreyling/fleet-init . · Fleet Ready

Scale beyond one loop: when agents forget across sessions, add memory-engineering. When you have many agents/loops on a team, add fleet-engineering.

Next after Loop Ready 80+: version the loop as a harness — loop-init prints the CTA automatically; loop-audit recommends Foundry when the score is strong but .foundry/stack.yaml is missing.

Community & announcements

Discussion Summary
Contributor quickstart Help wanted: open good first issues — comment I'll take this to get assigned · see Help wanted
Community update July 4: 5.5k stars, traffic sources, contributor merges
Community week (Jul 8) loop-worktree npm, MCP quickstart, tool appendices
npm update (Jul 16) loop-context 1.2.0 + loop-worktree 1.1.0 — daily budget, path locks
Maintenance (Jul 10) Doc sync, branch prune, loop-audit 1.6.0 follow-up
Prior release notes v1.5.0 — loop-sync, constraints, MCP server
Add your project Pinned: Loop Ready badge + adopters list

Why This Matters

Peter Steinberger:

“You shouldn’t be prompting coding agents anymore. You should be designing loops that prompt your agents.”

Boris Cherny (Head of Claude Code at Anthropic):

“I don’t prompt Claude anymore. I have loops running that prompt Claude and figuring out what to do. My job is to write loops.”

The leverage point has moved from crafting individual prompts to designing the control systems that orchestrate agents over time.

The Five Building Blocks + Memory

Primitive Job in the Loop
Automations / Scheduling Discovery + triage on a cadence
Worktrees Safe parallel execution
Skills Persistent project knowledge
Plugins & Connectors Reach into your real tools (MCP)
Sub-agents Maker / checker split
+ Memory / State Durable spine outside any conversation

Full detail: docs/primitives.md · Cross-tool matrix: docs/primitives-matrix.md

Visual Overview

The Five Building Blocks + Memory — Loop Engineering

Anatomy of a Loop

Animated loop flow — schedule, triage, state, worktree, implement, verify, MCP, human gate

Mermaid diagram (copy-friendly)
flowchart LR
    A[Schedule / Automation] --> B[Triage Skill]
    B --> C[Read + Write STATE / Memory]
    C --> D[Isolated Worktree]
    D --> E[Implementer Sub-agent]
    E --> F[Verifier Sub-agent<br/>tests + gates]
    F --> G[MCP / Git / Tickets]
    G --> H{Human Gate?}
    H -->|safe / allowlisted| I[Commit / PR / Action]
    H -->|risky / ambiguous| J[Escalate to human<br/>with full context]
    I --> A
    J --> A
Loading

Deeper diagrams — the actor-level sequence within one run, the run lifecycle's states, autonomy levels L1-L3, and how tools/ maps onto the primitives — live in docs/architecture-diagrams.md.

This reference repo now runs its own validate-patterns + audit workflows on every push/PR (see .github/workflows/). We also added LOOP.md describing the loops that will maintain it.

Patterns

Seven production loop patterns with cadence and token cost

Pattern Cadence Starter Week 1 Token cost
Daily Triage 1d–2h minimal-loop L1 report Low
PR Babysitter 5–15m pr-babysitter L1 watch High
CI Sweeper 5–15m ci-sweeper L2 cautious Very high
Dependency Sweeper 6h–1d dependency-sweeper L2 patch-only Medium
Changelog Drafter 1d or tag changelog-drafter L1 draft Low
Post-Merge Cleanup 1d–6h post-merge-cleanup L1 off-peak Low
Issue Triage 2h–1d issue-triage L1 propose-only Low

Not sure which to pick? Try the interactive picker or pattern-picker.

Machine-readable index: patterns/registry.yaml (7 patterns)

Getting Started (5 minutes)

# 1. Scaffold + Loop Ready score (printed automatically)
npx @cobusgreyling/loop init . --pattern daily-triage --tool grok

# 2. One health check (audit + sync + files → top 3 actions)
npx @cobusgreyling/loop doctor .

# 3. Optional: cost estimate / badge / day-2 dashboard
npx @cobusgreyling/loop cost --pattern daily-triage --level L1
npx @cobusgreyling/loop badge .
npx @cobusgreyling/loop status .

# 4. See scores climb: empty → L1 → L2
bash scripts/before-after-demo.sh

# 5. Start report-only (Grok example)
/loop 1d Run loop-triage. Update STATE.md. No auto-fix in week one.

Same as before: npx @cobusgreyling/loop-init and loop-audit still work — CLI front door.

All npm CLIs publish from tagged releases — see docs/RELEASE.md. No clone required.

Develop from source (monorepo contributors):

cd tools/loop && npm ci && npm test && node dist/cli.js doctor ../..
cd tools/loop-init && npm ci && npm test && node dist/cli.js /path/to/project --pattern daily-triage --tool grok
cd tools/loop-audit && npm ci && npm test && node dist/cli.js /path/to/project --suggest
cd tools/loop-cost && npm ci && npm test && node dist/cli.js --pattern ci-sweeper --cadence 15m

Phased rollout: L1 report → L2 assisted fixes → L3 unattended — see loop-design-checklist.

Examples by Tool

Operating & Safety

Caveats

Loop engineering amplifies judgment — both good and bad.

  • Token costs can explode with sub-agents and long-running loops.
  • Verification is still on you. Unattended loops make unattended mistakes.
  • Comprehension debt grows faster unless you read what the loop ships.
  • Two people can run the same loop and get opposite results. The loop doesn't know. You do.

Addy Osmani:

“Build the loop. But build it like someone who intends to stay the engineer, not just the person who presses go.”

Help wanted

First PR? Pick one open issue below. Stories and adopters get same-day review when possible. See CONTRIBUTORS.md and the contributor quickstart.

11 open good first issues (refreshed 2026-07-29). Comment "I'll take this" for assignment.

Time Issue What you ship
~10 min #120 — Adopters list One row in docs/adopters.md (or Add Adopter template)
~15–20 min #118 — Daily Triage story · #173 — Issue Triage story · #119 — PR Babysitter failure · #427 — loop-sandbox story Honest stories/ write-up + index row
~20–25 min #425 — MiniMax foundry flags · #426 — worktree lock import Additive QUICKSTART notes for MiniMax + public loop-worktree/lock
~25–30 min #424 — loop-swarm QUICKSTART · #428 — budget-negotiator docs Discoverability for swarm consensus + L3 budget negotiation
~40–45 min #387 — Hermes CI Sweeper · #388 — Hermes Issue Triage Fill pattern-coverage gaps in examples/hermes/
Anytime Templates Add Adopter · Share a story
Hubs Discussions Show your loop · Ask anything

Recently shipped (thanks!): Windsurf examples (#384–#386), loop-action/sandbox/gate QUICKSTART (#389–#391), CI Sweeper story (#392), loop-action hardening (#393/#395).

Maintainers re-seed the backlog with bash scripts/create-good-first-issues.sh (idempotent; skips existing titles). Prefer live open GFI filter over this table if a row looks stale.

Contributing

Share production patterns, tool mappings, and failure stories. See CONTRIBUTING.md (contribution ladder + good first issue backlog), Code of Conduct, adopters, and hubs: Show your loop · Ask anything.

Sources

License

MIT


Practical, tool-aware reference for loop engineering, patterns you can clone, checklists you can ship against, and stories that include what broke.

Essay · Showcase · Cobus Greyling

Star History Chart

Static chart (CI-updated daily). Live chart needs a GitHub token — stored in your browser only.

View on GitHub

Recent activity

commits and pull requests

Recent open issues

view all

Discussions

all 19

Releases and announcements

2 total
  1. # v1.6.0 — Foundry funnel + loop-gate **Three things that matter:** 1. **Design → runtime in one flag** — `loop-init --with-foundry` scaffolds your loop *and* a versioned harness stack (`.foundry/stack.yaml`). `loop-audit` **1.7** scores **Harness Runtime**. 2. **`loop-gate` is live** — mechanical path denylist + auto-merge allowlist from `gate.yaml` (`npx @cobusgreyling/loop-gate`). Wired into starters and MCP. 3. **Longer, safer runs** — `loop-context` stagnation detection + `loop-worktree --wait` queue; community docs (Devin matrix, architecture diagrams). <p align="center"> <img src="https://raw.githubusercontent.com/cobusgreyling/loop-engineering/main/assets/visuals/loop-audit-demo.gif" alt="Loop Ready score climbing in ~15 seconds" width="100%" /> </p> ## Quickstart (copy-paste) ```bash # Scaffold + score (optional Foundry harness) npx @cobusgreyling/loop-init . --pattern daily-triage --tool grok # or: npx @cobusgreyling/loop-init . --pattern daily-triage --tool grok --with-foundry # Readiness + next steps npx @cobusgreyling/loop-audit . --suggest # Gate check (if you use auto-merge / denylist) npx @cobusgreyling/loop-gate check --action auto-merge --paths path/to/fi

  2. # v1.5.0 — Community Tools Drop Seven community PRs merged. Three new tools ship. One command to try everything. ## Quickstart (copy-paste) ```bash # Scaffold your first loop (any git repo) npx @cobusgreyling/loop-init . --pattern daily-triage --tool grok # Check token cost before you schedule npx @cobusgreyling/loop-cost --pattern daily-triage --level L1 --cadence 1d # Score readiness + get next steps npx @cobusgreyling/loop-audit . --suggest # Detect drift between STATE.md and LOOP.md npx @cobusgreyling/loop-sync . ``` **New here?** [Quickstart (5 min)](docs/QUICKSTART.md) · [Interactive pattern picker](https://cobusgreyling.github.io/loop-engineering/#interactive) --- ## What's new ### New: `loop-sync` CLI (npm v1.0.0) Detect configuration drift between `STATE.md`, `LOOP.md`, and skill versions. Run in CI or locally: ```bash npx @cobusgreyling/loop-sync . -v ``` Contributed via [#47](https://github.com/cobusgreyling/loop-engineering/pull/47) — thanks @community. ### New: `loop-constraints` Structured guardrails file + enforcement skill. `loop-init` now scaffolds `loop-constraints.md` and the `loop-constraints` skill on every run. `loop-audit` scores constraints pr

Code frequency

additions and deletions
+13.9K-13.9KWeek of 2026-06-07: +13,941 linesWeek of 2026-06-07: -1,087 linesWeek of 2026-06-14: +860 linesWeek of 2026-06-14: -98 linesWeek of 2026-06-21: +6,760 linesWeek of 2026-06-21: -244 linesWeek of 2026-06-28: +5,993 linesWeek of 2026-06-28: -424 linesWeek of 2026-07-05: +5,664 linesWeek of 2026-07-05: -584 linesWeek of 2026-07-12: +5,612 linesWeek of 2026-07-12: -543 linesWeek of 2026-07-19: +10,393 linesWeek of 2026-07-19: -1,301 linesWeek of 2026-07-26: +1,101 linesWeek of 2026-07-26: -224 linesJun 7, 2026Jul 26, 2026
+50.3K lines added, -4.5K removed over the last year.

Commits per week

last 52 weeks
660Week of 2025-08-10: 0 commitsWeek of 2025-08-17: 0 commitsWeek of 2025-08-24: 0 commitsWeek of 2025-08-31: 0 commitsWeek of 2025-09-07: 0 commitsWeek of 2025-09-14: 0 commitsWeek of 2025-09-21: 0 commitsWeek of 2025-09-28: 0 commitsWeek of 2025-10-05: 0 commitsWeek of 2025-10-12: 0 commitsWeek of 2025-10-19: 0 commitsWeek of 2025-10-26: 0 commitsWeek of 2025-11-02: 0 commitsWeek of 2025-11-09: 0 commitsWeek of 2025-11-16: 0 commitsWeek of 2025-11-23: 0 commitsWeek of 2025-11-30: 0 commitsWeek of 2025-12-07: 0 commitsWeek of 2025-12-14: 0 commitsWeek of 2025-12-21: 0 commitsWeek of 2025-12-28: 0 commitsWeek of 2026-01-04: 0 commitsWeek of 2026-01-11: 0 commitsWeek of 2026-01-18: 0 commitsWeek of 2026-01-25: 0 commitsWeek of 2026-02-01: 0 commitsWeek of 2026-02-08: 0 commitsWeek of 2026-02-15: 0 commitsWeek of 2026-02-22: 0 commitsWeek of 2026-03-01: 0 commitsWeek of 2026-03-08: 0 commitsWeek of 2026-03-15: 0 commitsWeek of 2026-03-22: 0 commitsWeek of 2026-03-29: 0 commitsWeek of 2026-04-05: 0 commitsWeek of 2026-04-12: 0 commitsWeek of 2026-04-19: 0 commitsWeek of 2026-04-26: 0 commitsWeek of 2026-05-03: 0 commitsWeek of 2026-05-10: 0 commitsWeek of 2026-05-17: 0 commitsWeek of 2026-05-24: 0 commitsWeek of 2026-05-31: 0 commitsWeek of 2026-06-07: 40 commitsWeek of 2026-06-14: 9 commitsWeek of 2026-06-21: 25 commitsWeek of 2026-06-28: 38 commitsWeek of 2026-07-05: 50 commitsWeek of 2026-07-12: 43 commitsWeek of 2026-07-19: 66 commitsWeek of 2026-07-26: 44 commitsWeek of 2026-08-02: 18 commitsAug 10, 2025Aug 2, 2026
333 commits in the last 52 weeks.

When work happens

weekday and hour
SunMonTueWedThuFriSat036912151821Sun 0:00 — 1 commitsSun 1:00 — 3 commitsSun 2:00 — 1 commitsSun 3:00 — 5 commitsSun 4:00 — 0 commitsSun 5:00 — 1 commitsSun 6:00 — 0 commitsSun 7:00 — 0 commitsSun 8:00 — 0 commitsSun 9:00 — 0 commitsSun 10:00 — 0 commitsSun 11:00 — 0 commitsSun 12:00 — 0 commitsSun 13:00 — 0 commitsSun 14:00 — 0 commitsSun 15:00 — 3 commitsSun 16:00 — 1 commitsSun 17:00 — 0 commitsSun 18:00 — 1 commitsSun 19:00 — 2 commitsSun 20:00 — 2 commitsSun 21:00 — 1 commitsSun 22:00 — 0 commitsSun 23:00 — 0 commitsMon 0:00 — 3 commitsMon 1:00 — 0 commitsMon 2:00 — 0 commitsMon 3:00 — 3 commitsMon 4:00 — 0 commitsMon 5:00 — 1 commitsMon 6:00 — 0 commitsMon 7:00 — 1 commitsMon 8:00 — 1 commitsMon 9:00 — 4 commitsMon 10:00 — 4 commitsMon 11:00 — 2 commitsMon 12:00 — 7 commitsMon 13:00 — 5 commitsMon 14:00 — 4 commitsMon 15:00 — 9 commitsMon 16:00 — 4 commitsMon 17:00 — 5 commitsMon 18:00 — 3 commitsMon 19:00 — 0 commitsMon 20:00 — 3 commitsMon 21:00 — 0 commitsMon 22:00 — 0 commitsMon 23:00 — 1 commitsTue 0:00 — 0 commitsTue 1:00 — 0 commitsTue 2:00 — 0 commitsTue 3:00 — 3 commitsTue 4:00 — 0 commitsTue 5:00 — 0 commitsTue 6:00 — 0 commitsTue 7:00 — 1 commitsTue 8:00 — 13 commitsTue 9:00 — 7 commitsTue 10:00 — 15 commitsTue 11:00 — 3 commitsTue 12:00 — 10 commitsTue 13:00 — 4 commitsTue 14:00 — 5 commitsTue 15:00 — 0 commitsTue 16:00 — 2 commitsTue 17:00 — 0 commitsTue 18:00 — 0 commitsTue 19:00 — 5 commitsTue 20:00 — 3 commitsTue 21:00 — 3 commitsTue 22:00 — 4 commitsTue 23:00 — 1 commitsWed 0:00 — 1 commitsWed 1:00 — 1 commitsWed 2:00 — 1 commitsWed 3:00 — 3 commitsWed 4:00 — 0 commitsWed 5:00 — 1 commitsWed 6:00 — 0 commitsWed 7:00 — 0 commitsWed 8:00 — 2 commitsWed 9:00 — 2 commitsWed 10:00 — 5 commitsWed 11:00 — 1 commitsWed 12:00 — 2 commitsWed 13:00 — 1 commitsWed 14:00 — 8 commitsWed 15:00 — 2 commitsWed 16:00 — 2 commitsWed 17:00 — 5 commitsWed 18:00 — 0 commitsWed 19:00 — 10 commitsWed 20:00 — 7 commitsWed 21:00 — 1 commitsWed 22:00 — 2 commitsWed 23:00 — 6 commitsThu 0:00 — 1 commitsThu 1:00 — 0 commitsThu 2:00 — 0 commitsThu 3:00 — 3 commitsThu 4:00 — 0 commitsThu 5:00 — 1 commitsThu 6:00 — 2 commitsThu 7:00 — 0 commitsThu 8:00 — 4 commitsThu 9:00 — 3 commitsThu 10:00 — 15 commitsThu 11:00 — 5 commitsThu 12:00 — 1 commitsThu 13:00 — 4 commitsThu 14:00 — 2 commitsThu 15:00 — 7 commitsThu 16:00 — 2 commitsThu 17:00 — 0 commitsThu 18:00 — 4 commitsThu 19:00 — 5 commitsThu 20:00 — 2 commitsThu 21:00 — 1 commitsThu 22:00 — 0 commitsThu 23:00 — 0 commitsFri 0:00 — 0 commitsFri 1:00 — 0 commitsFri 2:00 — 0 commitsFri 3:00 — 3 commitsFri 4:00 — 2 commitsFri 5:00 — 1 commitsFri 6:00 — 1 commitsFri 7:00 — 3 commitsFri 8:00 — 4 commitsFri 9:00 — 2 commitsFri 10:00 — 7 commitsFri 11:00 — 2 commitsFri 12:00 — 2 commitsFri 13:00 — 1 commitsFri 14:00 — 0 commitsFri 15:00 — 2 commitsFri 16:00 — 1 commitsFri 17:00 — 1 commitsFri 18:00 — 0 commitsFri 19:00 — 0 commitsFri 20:00 — 0 commitsFri 21:00 — 1 commitsFri 22:00 — 0 commitsFri 23:00 — 0 commitsSat 0:00 — 0 commitsSat 1:00 — 0 commitsSat 2:00 — 0 commitsSat 3:00 — 3 commitsSat 4:00 — 0 commitsSat 5:00 — 1 commitsSat 6:00 — 0 commitsSat 7:00 — 0 commitsSat 8:00 — 0 commitsSat 9:00 — 2 commitsSat 10:00 — 2 commitsSat 11:00 — 0 commitsSat 12:00 — 0 commitsSat 13:00 — 0 commitsSat 14:00 — 0 commitsSat 15:00 — 2 commitsSat 16:00 — 0 commitsSat 17:00 — 1 commitsSat 18:00 — 0 commitsSat 19:00 — 2 commitsSat 20:00 — 1 commitsSat 21:00 — 2 commitsSat 22:00 — 0 commitsSat 23:00 — 0 commits
Commit volume by weekday and hour (UTC). Larger dots mean more commits.

Who is committing

last 52 weeks
Maintainer commits124 (33%)
Community commits251 (67%)

375 commits in total over the last year.

DateListRankStars gained
Jul 3, 2026daily#19+11
Jun 27, 2026daily#13+38
Jun 26, 2026daily#22+15
  • react/react

    The library for web and native user interfaces.

    247.1K stars · JavaScript

  • affaan-m/ECC

    The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.

    238.5K stars · JavaScript

  • affaan-m/ECC

    The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.

    234.7K stars · JavaScript

  • NousResearch/hermes-agent

    The agent that grows with you

    227K stars · Python

  • Significant-Gravitas/AutoGPT

    AutoGPT is the vision of accessible AI for everyone, to use and to build on. Our mission is to provide the tools, so that you can focus on what matters.

    186.2K stars · Python

  • f/prompts.chat

    f.k.a. Awesome ChatGPT Prompts. Share, discover, and collect prompts from the community. Free and open source — self-host for your organization with complete privacy.

    166.9K stars · HTML