Draft spec 0.1 · 2026Introducing EILAID

Engineers decide. Agents build. The project remembers.

EILAID is a methodology and open toolkit for building and growing large software projects with AI agents, with engineers in the loop.

npx eilaid init
Agent field
ClickTap anywhere to dispatch agents

Product illustration with sample data: EILAID Mission control for a demo Payments workspace. A board shows work moving through the loop: Shape, Gate 1, Build, Verify, Gate 2 and Merged. Agents build in parallel, engineers approve at the two gates, a live ledger records every claim, answer and approval, and a budget meter tracks spend for the day and the cost per merged item.

Designed to work with the tools you already use

  • runtimes
    • Claude Code
    • Codex
    • OpenCode
    • Custom agents
  • models
    • Frontier models
    • Fast models
    • Local models
  • trackers
    • Jira
    • Linear
    • GitHub Issues
    • Azure Boards
    • Any MCP server
  • stack
    • Git
    • Your CI
    • Slack
    • Postgres + pgvector
    • Docker Compose
    • Helm

01The methodhow work flows

Why EILAID

Today, every agent starts blind.

Most teams hand agents one ticket at a time. Each one starts with no context, works with no awareness of the others, and forgets everything when the session ends.

Without EILAID: five agents each work alone in their own corner. Two of them reach for the same file and collide, two carousel libraries get added, the same question is asked again, and context is lost when each session ends. Project memory drains.

What goes wrong, every sessionThe three things every agent gets

01No context

Each session starts empty, with whatever someone pasted in.

02No awareness

Agents edit the same files and add the same library twice.

03No memory

Decisions and answers vanish when the session ends.

The loop

Two human gates. Agents do everything in between.

Every work item runs the same eight steps. The process is sized by track, so a one-line bug never pays for an epic's ceremony.

Normal feature work. A Shaper drafts the brief, and an engineer holds both gates.

Intake

PAY-412
System

PAY-412 arrives from the tracker. It is sized, given a track and a human owner, and logged in the ledger.

Produces
PAY-412track: featureledger entry
Feature track · owner @sam

The EILAID loop has eight steps: Intake, Shape, Gate 1, Build, Verify, Gate 2, Merge and Learn. Gate 1 and Gate 2 are human decisions made by an engineer; agents do the steps in between, and failed checks in Verify loop back to Build. In Learn, the system turns review notes and failures into rules, tests or context, and the item's owner approves each one. Patch work skips Shape and passes Gate 1 automatically when a failing reproduction exists. Epics add an Architect who splits the work into Features that run in parallel.

Agents

A specialist for every step.

Seven personas, each with its own tools, context and output. Need another? Your team writes one as a markdown file.

Builder

step 4 · build

Implements one approved brief, test-first, inside its declared footprint. Several run in parallel, each in its own git worktree.

Three Builders run in parallel, each in its own git worktree: PAY-412 partial refunds, PAY-512 image gallery and BILL-38 queue worker. The PAY-412 Builder works through its plan: claim a lease on src/api/refunds.ts, write a failing test, implement, run 12 of 12 tests green, commit, open draft pull request 1842 and hand off to Verify. The ledger shows five items in flight and no collisions.

toolsreadedittestoracleledger
runs onClaude Codefrontier

Shaper

step 2 · shape

Researches the codebase, asks the Oracle, drafts the brief.

Shaper drafting the brief for PAY-512, image gallery: goal, three acceptance criteria ticked, context files attached, ready for Gate 1.

toolsreadoracleledgertracker
runs onCustomfast

Architect

epics · spec

Writes the spec for an epic, then splits it into features that run in waves.

Architect writes the spec for epic BILL-37, invoice queue, which passes its spec gate, then splits it into three features. BILL-38 queue worker and BILL-39 retry policy run in parallel in wave 1. BILL-40 admin view depends on the queue worker, so it runs in wave 2.

toolsreadoracledocsledger
runs onClaude Codefrontier

Tester

step 5 · verify

Writes the failing reproduction first, then the checks that prove the fix.

Tester on AUTH-221, session refresh: writes six failing reproduction tests, including a concurrent refresh race; once the fix lands in pull request 1851 all six pass.

toolsreadtestedit:testsledger
runs onClaude Code

Reviewer

step 5 · verify

Reviews every diff against the brief. Can run on two vendors at once.

Reviewer reads the PAY-412 diff on two vendors, leaves one comment and sends the change back to Build automatically.

toolsreaddiffcommentledger
runs onClaude Code + Codex

Steward

nightly · 02:00

The night shift: dependency bumps, flaky tests, stale docs, re-indexing.

Steward at 02:00 bumps dependencies, fixes a flaky test, refreshes stale docs and rebuilds the Oracle index, batched into one morning review.

toolsdepstesteditindex
runs onClaude Codefast

Oracle

any step · on call

Answers from the project's own knowledge, with citations. Unsure means it asks a human.

Oracle answers 'Any precedent for a swiper library?': none in use, standards allow a small well-documented package, Swiper fits, lazy-load it. Three citations above the 0.60 threshold: docs/standards.md#dependencies, apps/shop/package.json and decisions/0007-frontend-bundle-budget.md.

toolssearchciteescalate
runs onCustomfast

Write your own

.eilaid/personas/*.md

A persona is a short markdown file: instructions, tools, budget and context. Commit it, review it like code, and the loop can schedule it on any runtime.

  • Versioned in git with everything else
  • Least-privilege tools, per persona
  • Its own budget, so it can't run away

Example persona file personas/accessibility.md with name accessibility, tools read, edit, a11y and oracle, a 20 minute budget, context AGENTS.md, the brief and tokens.md, and instructions to check each changed view against WCAG AA. eilaid doctor validates it, the feature track schedules it in the Verify step next to the Tester and Reviewer, and it loads on Claude Code, Codex, OpenCode or a custom runtime.

Runtimes are adapters. Pick Claude Code, Codex, OpenCode or Custom per persona in config.yaml, with a fallback.Models and runtimes

Models & runtimes

The right model for every role.

Every persona picks its own runtime and model, with fallbacks for when a vendor is down. Frontier where judgement matters, fast for chores, local when nothing may leave your network. No vendor lock-in.

Interactive configurator. Each persona (Builder, Reviewer, Tester, Shaper, Steward, Oracle) picks a runtime (Claude Code, Codex, OpenCode or Custom) and a model tier (Frontier, Balanced, Fast or Local), or start from a preset: Max quality, Balanced, Lean or Air-gapped. Use the arrow keys to choose within a group. The config.yaml preview and the illustrative cost per merged item update as you change them. A silent auto-demo cycles the presets until you focus a control.

Auto-demo · touch any control to take over · tap to take over
  • BuilderWrites the code
  • ReviewerReviews every diff
  • TesterRepros and checks
  • ShaperDrafts briefs
  • StewardNightly upkeep
  • OracleAnswers questions

If a vendor is down, each persona falls back to another runtime and the next tier down.

config.yaml
  1. # .eilaid/config.yaml
  2. preset: balanced
  3. personas:
  4. builder:
  5. runtime: claude-code
  6. model: frontier
  7. reviewer:
  8. runtime: [claude-code, codex]
  9. model: balanced
  10. tester:
  11. runtime: claude-code
  12. model: balanced
  13. shaper:
  14. runtime: custom
  15. model: fast
  16. steward:
  17. runtime: claude-code
  18. model: fast
  19. oracle:
  20. runtime: custom
  21. model: fast
  22. fallback: # when a vendor is down
  23. runtime: codex
  24. model: next-tier-down
  25. network: { egress: allowed }
validsaved3 runtimes · 3 tiers · fallback on
Estimated cost per merged itemIllustrative
$8.73baselineAPI spend, per item
  • Builder$6.60
  • Reviewer$1.26
  • Tester$0.72
  • Shaper$0.08
  • Steward$0.05
  • Oracle$0.03
QualityHigh
SpeedQuick

The Oracle

Ask the project anything.

Drop in context files in whatever form you have them. Agents ask in plain English, mid-task, and every answer cites its sources. Anything the Oracle can't answer goes to an engineer, once.

eilaid ask

An interactive demo of the Oracle. Pick an example question. The Oracle expands it with the asker's task, files and related terms into several search queries, retrieves the nearest passages from the project's indexed context, and writes an answer only from those passages, with numbered citations. When confidence is low, the question is routed to the owning engineer, and their answer is saved to context so the next ask is instant.

Answerwritten only from retrieved passages

  1. 01

    Index

    Every context file is split into passages, each gets a line of context, then it is embedded and stored. Re-runs on every merge.

  2. 02

    Expand

    A short question is widened with the asker's task, files and related terms, then written as several queries, not one.

  3. 03

    Retrieve

    Nearest passages from every query are merged, de-duplicated and ranked. Anything below the threshold is dropped.

  4. 04

    Answer & learn

    Written only from the passages, with citations. Thin evidence goes to the owning engineer once; their answer is saved.

02At scalecost, people, time

Cost control

Every token on a budget.

Every step runs on a budget of minutes and tokens. Chores go to cheaper models, the Oracle answers repeat questions from cache, and the board shows cost per merged item. A step that blows its budget is marked stuck and sent to its owner, never retried forever.

Illustration: the Builder step on PAY-412 burns tokens steadily, then loops on one failing test. Its token use crosses the 80% alert and hits the two million token budget, so the step is stopped, marked stuck and routed to its owner, @sam, with no automatic retry.

Spend this week
illustrative
$412.8014% vs last week
Per merged item$10.86
Merged38
Stuck, caught3
Step budgets
4 running

Minutes and tokens, per step. Blow the budget and a human gets it, with no endless retries.

Illustration: four agent steps run with minute and token budgets. The Builder on PAY-412 reaches its two million token budget, is marked stuck and is routed to its owner, @sam, instead of retrying.

Parallelism you control
illustrative
Throughput8.8items/day
Spend$95/day
Median to merge11.7h
4 agents · 3 building, 1 queuedOverlapping work is queued by leases
Smart savings
−68%per run

Steward on a fast model

Dependency bumps, flaky tests, stale docs. 22 runs, $9.00 this week.

71%hit rate

Oracle answers from cache

912 repeat questions answered free this week, keyed by question and commit.

Saved this week −10%≈ $44.57
Guardrails
  • Daily cap $120New steps wait for tomorrow
  • Per-item cap $15Item pauses for its owner
  • Alert at 80% $96Ping on phone or Slack
  • Pause on anomaly 3× spikeSpend spike stops new runs
Today$35.30 / $120

All guardrails on

Remote monitoring

Watch every agent. From anywhere.

A live board of every agent and step, with heartbeats, logs and budget used. When something needs a person, it finds you, and one tap puts the agent back to work.

Illustration: a live Runs dashboard lists five agent runs with their step, heartbeat, elapsed time and tokens against budget, and streams the log of PAY-512. When the Shaper's brief for AUTH-226 is ready for Gate 1, the Reviewer on WEB-88 asks a question, and the Tester on AUTH-221 hits its token budget, each event is sent to the owner's phone. Approving, replying or extending the budget from the phone updates the run on the board.

EILAIDAUTH-226now

Gate 1 · brief ready for review

Rotate signing keys, by Shaper

EILAIDWEB-88now

Question from Reviewer

Is there a copy style guide?

EILAIDAUTH-221now

Tester hit its token budget

800k of 800k used → needs you

Multi-engineer teams

Many engineers. Many agents. Zero collisions.

Ownership routes every gate and question to the engineer who owns the code. Leases stop agents and people colliding, and everyone works from one shared ledger.

Codebase mapmain
ledgerEvery claim, lease, question and gate#1,284
  1. 14:02queueWEB-88 queued behind PAY-412 · overlaps payments/checkout/summary.ts@alex
  2. 14:01askPAY-512 Extend Lightbox or replace it? → owner of web/gallery@alex
  3. 14:00leasePAY-412 leased 5 files across payments api db@sam
  • Leases, not locksoverlaps wait their turn
  • Routed to the ownergates and questions
  • One shared ledgersame view for everyone

Illustration: a live codebase map with eight modules, each owned by an engineer. @sam owns payments and db/migrations, @maria owns billing and notifications, @jun owns auth and api, and @alex owns web/gallery and search. Agents lease the files their brief needs: the PAY-412 Builder leases five files across payments, api and db/migrations. WEB-88 needs payments/checkout/summary.ts, which PAY-412 holds, so it waits in the queue and takes its lease only after @sam accepts and merges PAY-412. The PAY-512 Shaper reads web/gallery without a lease. PAY-512 is @sam's item, but web/gallery is @alex's code, so the Shaper's question about the Lightbox goes to @alex and its brief goes to @sam for Gate 1. Questions on AUTH-221 and BILL-37 go to @jun and @maria. Every event is written to one shared ledger that everyone sees.

Continuous development

It never stops shipping. It never stops learning.

The same loop runs features, bug fixes, migrations, nightly maintenance and learning. Only the trigger and the track change, and every rejection makes next week’s work smoother.

Always onOne day on the board, replayed
09:24
09:24
Drag the time chip or click the dayillustrative

Illustration of one day of continuous development, from midnight to midnight.

  • 02:00 to 03:12: the Steward's nightly batch bumps dependencies, fixes a flaky test, refreshes docs and re-indexes the Oracle. @alex approves all four chores in one review at 09:00.
  • Features: WEB-88 checkout copy merges at 10:20; PAY-412 partial refunds merges at 13:35 after one review round; PAY-512 image gallery is sent back at Gate 2, fixed and merged at 18:42; BILL-37 invoice queue, wave 2 of a migration, waits at Gate 2 for @maria.
  • Bug fixes: incident AUTH-221 at 10:14 is reproduced by a Tester, fixed by a Builder, accepted by @jun at Gate 2 and merged at 11:02. An evening PDF export error is fixed and accepted from a phone at 22:02.
  • Learning: five rules, tests and context files are added after rejections, review comments and a routed question, each approved by its owner.
It gets better every week
Illustrative
Escalations per 10 items1.13.6−69%
Review rounds per change1.42.8−50%
Rules, tests and context learned, cumulativehover to read a week
Learned today
0/5 approved

Every rejection, review comment and repeated question becomes a file in git, approved by its owner.

  1. +testSession refresh regression testtests/auth/session-refresh.spec.tsfrom AUTH-221 incident · approved by @jun11:15
  2. +ruleMoney values use the Money type.eilaid/rules/money-type.mdfrom Review round on PAY-412 · approved by @sam12:51
  3. +contextGallery image sizes, answered once.eilaid/context/gallery-images.mdfrom Routed question on PAY-512 · approved by @sam14:25
  4. +ruleLazy-load carousel libraries.eilaid/rules/lazy-load-carousels.mdfrom Gate 2 note on PAY-512 · approved by @sam17:13
  5. +testPDF export timeout reproductiontests/billing/pdf-export.spec.tsfrom Error report · approved by @maria22:18

03Foundationswhere it runs

Platform

Your tracker. Your agents. Your servers.

A built-in tracker designed for agents, adapters for the one you already use, any agent runtime, and it runs on a laptop, inside your network or hosted.

Diagram: the EILAID core sits in the middle. Trackers (the built-in tracker, Jira, Linear, GitHub Issues and Azure Boards), agent runtimes (Claude Code, Codex, OpenCode and custom agents) and infrastructure (Git and CI, Slack, Postgres with pgvector) connect to it through adapters. Every tracker adapter does the same five things: imports work items, maps statuses both ways, writes the brief, handoffs and pull request back, mirrors gates, and mirrors blockers and questions. Select a node to read more.

Trackersboth ways
Agent runtimesone adapter
Infra & notify
EILAID coreledger.* · oracle.* over MCP

Deployment

Runs on a laptop, inside your network, or hosted.

All three run the same code on the same data model. Start on a laptop and move to a server without migrating anything.

Local

A single binary: CLI, terminal board and a local web UI.

~/payments-api
$ eilaid init
✓created.eilaid/config.yaml, personas/
✓ledgersqlite · .eilaid/ledger.db
✓oracleindexed 1,284 passages
→nexteilaid board
Storage
SQLite and files in the repo
Best for
One developer or a small team trying it out
Self-hosted

Docker Compose or a Helm chart, inside your network.

infra/eilaid
$ docker compose up -d
✓corerunning · sso enabled
✓postgrespgvector ready
✓runners4 sandboxed
✓modelsprivate endpoint
$ helm install eilaid ./eilaid
✓releaseeilaid deployed
✓podscore, oracle, runners ×4
✓postgrespgvector ready
✓egressinside your network
Storage
Postgres with pgvector
Best for
Data residency, single sign-on, audit needs and local models
Cloud

A hosted service. Sign in and connect your repo and tracker.

~/payments-api
$ eilaid login
✓signed in@sam
✓workspacepayments · own tenant
✓linkedrepo + tracker
→nexteilaid board
Storage
Managed, per tenant
Best for
Teams that want nothing to operate

Same code, same data. Move between modes without a migration.

Agents get the least access they need.

  • Least-privilege toolsEach persona gets its own tool allowlist.
  • Sandboxed runnersOne persona per step, in an isolated worktree.
  • No production secretsRunners never hold prod credentials.
  • Every action in the ledgerClaims, edits and decisions, append-only.
  • Only humans mergeAgents propose. An engineer merges to main.

Principles

Nine rules behind the loop.

Tracks, personas, gates and the Oracle all fall out of these. When in doubt, an agent (or an engineer) comes back here.

methodology.mdRead them in full
  1. 01

    Engineers own intent and acceptance; agents own execution.

    Humans sit at gates, not inside every loop.

    Diagram: a ticket moves through the eight loop steps. Agents run Intake, Shape, Build, Verify, Merge and Learn. An engineer appears only at Gate 1, to approve the brief, and at Gate 2, to accept the change. A failing check loops back to Build with no human involved.

  2. 02ledger

    State lives outside agents.

    If it is not in the ledger or the repo, it did not happen.

  3. 03

    Context is assembled, not accumulated.

    Each step starts with a fresh context window, built for that step.

    Brief, footprint, decisions and cited answers. Nothing stale.

  4. 04

    Verification is the contract.

    Every acceptance criterion maps to an automated check.

    A criterion nobody can check is an open question, not a requirement.

  5. 05main a3f9c2e

    Everything is a file in git.

    Briefs, personas, decisions and knowledge are plain files.

  6. 06

    Ask, don't guess.

    Unsure? Ask the Oracle, then a human. Never invent an answer.

    Each human answer is saved, so it is only asked once.

  7. 0712 weeks

    Every failure compounds.

    Each mistake becomes a rule, a test, a lint check or a skill.

  8. 08

    Right-sized process.

    A typo fix must not need a requirements document.

    Patch, Feature or Epic: the track fits the work.

  9. 09config.yaml

    Vendor-neutral.

    Trackers, agent runtimes and models are swappable adapters.

Close the loop.

Start with the method: a brief, two gates and a shared ledger. Add the tools when you need them. Everything is plain files in git, so nothing is locked in.

npx eilaid init
proposed CLI
  • Engineers decide.
  • Agents build.
  • The project remembers.