Skip to content

About

Vendor-neutral source of truth for running multiple AI coding agents on one workspace — autonomy tiers, an external side-effect gate, and per-task git scope. MIT.

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

15 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

solo-agent-ops

A vendor-neutral source-of-truth for running multiple AI coding agents on the same workspace — without them stepping on each other or shipping things you didn't approve.

One AGENTS.md. Three autonomy tiers. One hard gate on customer-facing actions. A few shell scripts that survive iCloud and offline. Built and used in production by a solo operator.

Autonomy tiers and the External Side-Effect Gate — flowchart of how an agent's proposed change is classified and routed


Why this exists

Most people running AI agents (Claude Code, Cursor, Cline, Codex CLI, Aider, Goose, Copilot, etc.) hit the same three walls:

  1. Agents disagree about the workspace. Each tool has its own conventions, scope, commit style. Multi-agent = chaos.
  2. Agents sprawl. Without explicit per-task scope, every agent thinks the whole repo is fair game and git status becomes a yard sale.
  3. Agents ship things they shouldn't. Either you approve everything (slow) or you approve nothing (risky).

This repo is the contract layer I wrote to solve all three for myself. Every agent reads the same AGENTS.md, classifies its own changes into three tiers, and stays inside the per-task git scope. Customer-facing actions hit a hard gate no matter how confident the agent is.


What's novel

Three things I haven't seen combined elsewhere:

1. Three-tier autonomy gates (T1 / T2 / T3)

Agents classify every change by risk × reversibility, not by "what the user told me":

Tier Behavior Triggers
T1 Auto-Apply Direct commit Content output, logs, < 20-line patches, typos
T2 Auto + Decision Log Commit + append reasoning to log.md Multi-file changes, rule tuning, batches
T3 Queue for Human Write to _pending/, wait for approval Governance docs, schema migrations, anything irreversible

Result: agents ship the 95% boring stuff without asking, and reliably stop on the 5% that matters.

2. External Side-Effect Gate

Anything that affects a customer, public audience, or third-party platform is T3 by default — no matter how confident the agent is.

Outbound email, social post, customer deploy, public push, payment API call, ad-spend trigger — agent prepares the exact artifact, operator approves a named hash, agent executes. "Ship now" does not bypass this gate.

This is the single most important rule in the file. See AGENTS.md §5.5.

3. Per-task git scope + pre-commit manifest

Every task tag (feature, outbound, research, whatever yours are) has an explicit allow-list of paths it can stage. Before every commit, the agent constructs:

intended_files: []         # in-scope and actually changed
unexpected_dirty_files: [] # stranded — don't touch, just log
forbidden_files_touched: [] # in-scope but shouldn't be modified — commit blocked

No more git add -A chaos. No more "the agent silently modified my AGENTS.md while it was supposedly editing my README."


What's in this repo

.
├── AGENTS.md          ← The contract every agent reads first (~450 lines)
├── CLAUDE.md          ← symlink → AGENTS.md (for tools that read CLAUDE.md)
├── LICENSE            ← MIT
├── .gitignore
└── .sync/
    ├── sync.sh        ← launchd auto-sync: mkdir-lock, rebase-abort, offline-tolerant
    ├── commit.sh      ← manual/agent commit helper at task boundaries
    └── migration-scripts/com.example.workspace-sync.plist.tpl

Six files. No framework. No install step. No vendor lock-in.


Quick start

git clone https://github.com/<you>/solo-agent-ops ~/workspace
cd ~/workspace

# 1. Read AGENTS.md top to bottom. This is the contract.
# 2. Edit §1 (identity), §6.3 (task-tag scope), §9 (preferences) to match your work.
# 3. Copy .sync/migration-scripts/com.example.workspace-sync.plist.tpl to
#    ~/Library/LaunchAgents/, edit the {{HOME}} placeholders, then launchctl bootstrap.
# 4. Point your AI tool of choice at this directory.
#    Cursor, Cline, Codex CLI, Claude Code, Aider, Goose all work — they read AGENTS.md.

Adapt this to your work

The architecture is general; the defaults are mine. Minimum to adapt:

  1. Identity (AGENTS.md §1) — replace with your domain
  2. Task tags (AGENTS.md §6.3) — pick 8-15 that match your work (feature, bugfix, outbound, client-deliverable, research, etc.)
  3. Per-task scope table (AGENTS.md §6.3) — for each task tag, list the paths it can stage. Tighter is safer.
  4. Tier thresholds (AGENTS.md §5.2 / §5.3 / §5.4) — start conservative (everything T3), then demote things to T1/T2 after watching them work safely 5-10 times.
  5. External Side-Effect Gate triggers (AGENTS.md §5.5) — explicitly enumerate. "Customer-facing stuff" is not a gate. "Outbound email, proposal send, calendar invite, public post" is.
  6. launchd plist — replace {{HOME}} and Label with your username; pick StartInterval 120s (interactive) or 300s (always-on).

Why no docs/adapting-to-your-domain.md? Because the six steps above are the whole adaptation. If you need more, open an issue.


A note on .git/ + iCloud / Dropbox / OneDrive

If you're tempted to put ~/workspace/ inside iCloud Drive or any cloud file sync: don't. They will corrupt your .git/objects/ eventually. Cloud file sync clients don't understand git's atomic write patterns; storage-optimization will evict pack files; multi-device race will truncate writes mid-flight.

This repo's two-machine pattern uses git itself as the sync mechanism (via a GitHub remote). The .sync/ scripts make that ~2-min latency without manual intervention. Cheap, robust, no new dependencies.

Sync topology — two machines, one repo, safe sync via GitHub; never put .git/ inside iCloud/Dropbox/OneDrive


Compatible agents

Many agents, one contract, one workspace — Cursor, Cline, Claude Code, Codex CLI, Aider, Copilot, Hermes all read the same AGENTS.md; OpenClaw connects read-only

Follows the emerging AGENTS.md convention (single canonical file all agents read). Works with:

  • Read/write: Cursor · Cline · Codex CLI · Claude Code · Aider · Goose · Copilot · self-hosted agents (e.g. Hermes)
  • Read-only review/audit: OpenClaw and similar sandboxed reviewers (see AGENTS.md §4.1)
  • Any LLM-based agent that respects an AGENTS.md / CLAUDE.md / .cursorrules file

The included CLAUDE.md → AGENTS.md symlink handles tools that look for CLAUDE.md.


What this repo is NOT

  • Not a framework or library — nothing to install
  • Not an LLM wrapper or orchestrator — your existing agent tools do the LLM calling; this shapes how they behave
  • Not opinionated about model or vendor
  • Not about RAG or knowledge management — see "What this repo is not (yet)" below

What this repo is NOT (yet)

Earlier versions of this system also included hallucination gates (source-required, inline citation, SHA256 reality-sync of source files) and outcome evidence schemas for a knowledge-base layer. Those are a separate concern (grounded retrieval, not multi-agent governance) and may show up as a sister repo. Not in scope here.


Roadmap

  • Linter to validate AGENTS.md schema and per-task scope at agent start
  • Linux cron equivalent for .sync/sync.sh
  • Adapter docs for specific agents (Cursor rules, Cline rules, etc.)
  • More worked task-tag/scope examples by archetype (solo dev, consultant, researcher, B2B operator)

Contributions welcome. Open an issue.


Acknowledgments

  • Andrej Karpathy — AGENTS.md §5.0 extends his four coding rules (Think Before Coding / Simplicity First / Surgical Changes / Goal-Driven Execution). The tier system started as "how do I let agents skip rule 1 safely."
  • Nous Research / Teknium — my always-on agent is named Hermes in homage.
  • The AGENTS.md convention community — for converging on a vendor-neutral SOT.

License

MIT. Use it, fork it, ship it.

About

Vendor-neutral source of truth for running multiple AI coding agents on one workspace — autonomy tiers, an external side-effect gate, and per-task git scope. MIT.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages