Skip to content
Registry

deepwork

Multi-agent workflows on iii with the kanban board as the task list: one lead per ticket with its own sub-agents, parallel waves, independent verify and review, and bounded rounds. Code goals get a dev flow: approved design and plan, test-first tickets each in its own git worktree, a branch review and a finish you choose.

Install0.1.1

# With the iii engine running

iii trigger directory::download-kit kit=iii/deepwork@0.1.1
8Installs
6Last 7 days
2Today
30 days

Exact versions are immutable. Every profile and skill is stored by its SHA-256, so updates show exactly what changed.

README.md

ultracode

Dynamic multi-agent workflows on iii, with the kanban board as the task manager. Give Ultracode a goal: it breaks the goal into tickets, gives each ticket a lead that runs it through its phases with its own sub-agents, runs the leads in parallel in bounded waves, and loops in bounded rounds until the goal is done, nothing is left, progress stalls, rounds run out or the budget is spent.

A goal that changes code in a git repository gets the superpowers flow: you approve the design and the plan, every code ticket (ultracode-impl) is built test-first in a git worktree with one commit, an independent verifier and a code reviewer check every commit, the whole branch is reviewed, and you choose how it finishes. Reading and research tickets (ultracode-worker) in the same run are done and verified without a commit.

Profile Role Model
ultracode the orchestrator you talk to; the only writer of ticket fields yours (the session's)
ultracode-lead (hidden) runs one ticket through its phases and reports back pin a fast, cheap model
ultracode-worker (hidden) the work phase: research, reading, analysis set one, or inherit
ultracode-impl (hidden) the tests and code phases: failing test, least code, commit pin a strong model
ultracode-verifier (hidden) judge (one per model), critic and branch review; base of the check tiers none (nor on Default): judges pick per spawn
ultracode-qa (hidden) verify and code review in each check (the default verifier) pin a mid-tier model

No workflow worker, code runner or fp pipeline: just harness, state, kanban and ide (the shell and file functions the tiers preload).

Install

iii trigger directory::download-kit kit=iii/ultracode apply=true --timeout-ms 1200000

apply=true installs at once when the plan has no warnings, blocks or pending decisions (for example, a profile with the same id already exists). Otherwise the reply is a plan: review and apply it in the ADE (Directory → Kits), or run iii trigger directory::kits::apply plan_id= --timeout-ms 1200000. Applying adds or updates workers through Compose and can take minutes; if the command still times out, the apply keeps running: check Directory → Kits instead of re-running it.

Once it is applied, pin the models of the tiers. The kit ships them without model because it cannot know your providers. Edit agents/ultracode-lead.md, agents/ultracode-impl.md and agents/ultracode-qa.md (and ultracode-worker.md if you like) and add model: , e.g. model: anthropic::claude-opus-5-5. Use the provider::model form: it pins the provider and lets reasoning_effort reach it. An unpinned lead runs on the orchestrator's model, and it takes a turn per phase. A tier without its own model inherits one set on Default (agents/default.md, which the Directory editor writes), and that beats both the orchestrator's model and the judge models; with judges= the run refuses to start if ultracode-verifier resolves a model. Editing an installed kit file is fine; a kit update merges your edits.

Run it

From the console: pick Ultracode and type the goal, optionally followed by an args: line:

Add per-user rate limits to the login route.
args: max_rounds=2 concurrency=4 budget_usd=5
Arg Default Meaning
flow auto dev (the superpowers flow) when the goal changes code or files in a git repository, else plain; set dev or plain to force one
approve on the dev flow waits for you on the design, the plan and the finish; off runs straight through and keeps the branch
max_rounds 3 retry cycles over the queue
attempts 2 code (or work) attempts a lead makes per round; a rejected attempt goes back to the same code session with the reasons
concurrency 8 leads per wave (max 8). Every ticket whose Depends on tickets are done starts in parallel; a dependent ticket waits for a later wave (a Depends on: KAN-12 line on a card you add counts too). In the dev flow, tickets that share a file or test target never share a wave
verify on run each ticket's check step
verifier ultracode-qa tier for verify and review (ultracode-qa* or ultracode-verifier*)
judges – comma-separated model ids (at most 7 in the dev flow, 8 in the plain one): one ultracode-verifier per model in each check, majority wins
deadline_min 20 per-phase deadline: each phase sub-agent gets it from its own start. A lead may run 3 × attempts phases for a dev ticket, 2 × attempts with a check in the plain flow (or without one in the dev flow), attempts for work alone, each with two minutes of slack; its wave closes one minute after that
critic on one completeness critic when the queue runs dry; in the dev flow it is the branch review: full test suite, linter and a review of the whole diff
max_items 5 × K cap on tickets the run creates; K = leads per wave = min(concurrency, 8)
budget_usd – soft cap: checked with harness::metrics before each wave and at each round close; no new wave starts once it is reached. When a model has no catalog pricing or usage is missing, the cost is a lower bound (marked incomplete when the harness total is null; one generation without usage is left out silently), so the cap can be overshot
notify – a function id called with the final report (e.g. a Slack or email send)
project – an existing kanban project (id or name) to file the run under. Without it, Ultracode creates one project per run (ultracode: · ) (the repository rule set allows a create whose lead is ultracode, see Prerequisites), so the board's Project filter shows just that run; subtasks you add join it when their round starts
release – an existing kanban release (id or name), the same way. Agents can't create releases: make them in the console first

With hard caps: console runs have only the soft budget_usd. For a hard ceiling, start the run from the CLI (or any non-agent client):

iii trigger harness::send --json '{"message":"<goal + args>","model":"<provider::model>","options":{"agent":"ultracode","max_cost_usd":5,"max_total_tokens":2000000}}'

model is required because the profile sets none. Every model used in a capped run, every tier and judge included, needs catalog pricing. The dev flow's design, plan and finish questions appear in that session in the console; pass approve=off to run without them.

The dev flow

  1. Design. Ultracode reads the repository (git status, the tree) and asks you what the code can't settle, one question card at a time, with two or three approaches and its recommendation first.
  2. Plan. The design goes into the run ticket's description and each task becomes a subtask with a test-first card: Files:, Test first:, Implement:, Verify:, Commit:. A task is two to five minutes of work. You get one card: Start, Stop, or type your changes. A change rewrites the design on the run ticket first, then the affected subtasks (new ones are added, dropped ones are canceled with a comment), and the card comes back.
  3. Worktree. git worktree add .worktrees/ -b ultracode/ (the slug ends with part of the session id, so runs never share a branch); run Ultracode from the repository's top folder. .worktrees/ is excluded locally (.git/info/exclude), so your files stay untouched. The test suite runs once for a baseline.
  4. Per code ticket (ultracode-impl; a research ticket runs work then verify, without tests or a commit), its lead runs tests (write the failing test, see it fail for the right reason), code (the least change that passes it, then one commit ()), then verify (re-runs the Verify lines) and review (reads the commit, checks the test files are unchanged and nothing outside Files: moved) at the same time. A rejection goes back to the same code session with the reasons; a reason about the test reruns the tests phase. Tickets that touch the same file never run in the same wave: they share the worktree.
  5. Branch review. When the queue runs dry, one reviewer runs the full suite and the linter and reviews git diff .... Findings become tickets for the next round.
  6. Finish. A card: merge into your branch (then the worktree is removed), push and open a PR, keep the branch, or discard it. Ultracode does only what you pick; it never pushes, merges or deletes on its own.

Sub-agents never push, merge, rebase, reset, switch, stash or clean, and they work inside the worktree: their filesystem_root anchors every relative path there, and a stack whose filesystem boundary is workspace also refuses writes outside it. Loose ends a sub-agent notices but the goal doesn't need become Backlog subtasks labelled pending.

The board

  • The run ticket is titled ultracode: with the label uc:run. Every run item is one of its subtasks: its page lists them with a done/total progress bar, and each round adds a summary comment with the cost. Filter the board by the run ticket to see only the run.
  • The run's subtasks in To do, in board order, are the queue. In progress means its lead is running; the session tree shows each lead as · </code> with its phases (<code class="readme-inline-code"><KEY> tests</code>, <code class="readme-inline-code">code</code>, <code class="readme-inline-code">verify</code>, <code class="readme-inline-code">review</code>) under it.</li> <li><strong>Route a ticket:</strong> set its assignee to a work tier (<code class="readme-inline-code">ultracode-worker*</code> or <code class="readme-inline-code">ultracode-impl*</code>). Any other assignee (e.g. kanban's <code class="readme-inline-code">backend-engineer</code>) does not run that profile: the ticket runs as <code class="readme-inline-code">ultracode-impl</code> when its Deliverable changes code or files, else as <code class="readme-inline-code">ultracode-worker</code>, with a comment saying so. A new assignee takes effect on the next attempt that starts after the previous one stopped. Add your own tiers as <code class="readme-inline-code">agents/ultracode-impl-<name>.md</code> with <code class="readme-inline-code">extends: ultracode-impl</code> (or <code class="readme-inline-code">ultracode-worker</code>) and a <code class="readme-inline-code">model</code>.</li> <li><strong>Change the plan mid-run:</strong> tell Ultracode in the chat. It rewrites the design on the run ticket, edits the queued subtasks, adds new ones and cancels the rest, starting next round. Subtasks already In progress keep running; a follow-up subtask aligns each one after it is done.</li> <li><strong>Steer between rounds:</strong> add a subtask on the run ticket's page (it starts in the first column) and drag it to To do, drag To do cards to reorder, comment on a ticket to steer its retry, drag a Backlog card to To do to re-queue it (a <code class="readme-inline-code">stuck</code> card runs again only after its lead has stopped; until then it goes back to Backlog).</li> <li><strong>Don't</strong> drag In progress cards: the orchestrator's next write wins. Move a queued card to Backlog to skip it (it is skipped from its wave on). A deleted card, or one detached from the run ticket, leaves the run and is listed as <code class="readme-inline-code">removed</code> in the report. Deleting the run ticket only stops writes to it (round comments, report, final move) and new items; the existing items keep moving and the report goes only to the chat and to <code class="readme-inline-code">notify</code>.</li> <li>Outcomes: Done carries <code class="readme-inline-code">verified</code> or <code class="readme-inline-code">accepted</code>; Backlog carries <code class="readme-inline-code">blocked</code>, <code class="readme-inline-code">failed</code>, <code class="readme-inline-code">unverified</code>, <code class="readme-inline-code">unfinished</code>, <code class="readme-inline-code">stuck</code>, or <code class="readme-inline-code">pending</code> for a loose end. A ticket dropped from the plan (or every ticket, when you stop before Start) is <code class="readme-inline-code">canceled</code>: it goes to the board's canceled column (kanban's <code class="readme-inline-code">canceled_status</code>, which new boards have and which leaves canceled tickets out of every progress total; on an older board, add a Canceled column in the Kanban settings), else to a column whose id or name is Canceled, else to Backlog with the <code class="readme-inline-code">canceled</code> label, where it still counts in the run ticket's progress total. A ticket whose dependency was canceled or parked is <code class="readme-inline-code">blocked</code>. The orchestrator edits only the outcome labels, so your own labels stay.</li> </ul> <h2 id="prerequisites" class="scroll-mt-20">Prerequisites</h2> <ul> <li>kanban's column ids <code class="readme-inline-code">backlog</code>, <code class="readme-inline-code">todo</code>, <code class="readme-inline-code">in_progress</code> and <code class="readme-inline-code">done</code>, with <code class="readme-inline-code">done_status: done</code> (the default, the last column) so the run ticket's progress counts finished items.</li> <li>state with the kv adapter (the redis adapter refuses <code class="readme-inline-code">state::barrier</code>), <code class="readme-inline-code">store_method: file_based</code> (the default; <code class="readme-inline-code">in_memory</code> loses barrier progress and results on restart) and <code class="readme-inline-code">triggers_enabled: true</code> (the default).</li> <li>harness <code class="readme-inline-code">max_depth</code> of at least 3 (the default): orchestrator → lead → phase; and <code class="readme-inline-code">max_children</code> of at least <code class="readme-inline-code">concurrency</code> (the default 8 matches it): a wave spawns one lead per ticket in one turn, and spawns past the limit are refused.</li> <li><strong>Approval gate.</strong> Allow these to run without a prompt:<ul> <li><code class="readme-inline-code">state::barrier</code>, unattended: the harness calls it on every state write in a wave's or phase's scope.</li> <li>for the phase sub-agents: <code class="readme-inline-code">state::compare-and-set</code>, <code class="readme-inline-code">kanban::ticket::get</code>, <code class="readme-inline-code">kanban::comment::create</code>, <code class="readme-inline-code">shell::exec</code>, <code class="readme-inline-code">coder::read-file</code> (plus <code class="readme-inline-code">coder::create-file</code> and <code class="readme-inline-code">coder::update-file</code> for <code class="readme-inline-code">ultracode-impl</code>, and <code class="readme-inline-code">state::get</code> for verifiers), and whatever else the work needs. A call held for approval in a phase sub-agent parks its ticket as <code class="readme-inline-code">blocked</code> with the function to approve; a wave of leads held on approvals ends the run as <code class="readme-inline-code">blocked</code>.</li> <li>for leads: <code class="readme-inline-code">harness::spawn</code>, <code class="readme-inline-code">engine::register_trigger</code>, <code class="readme-inline-code">state::list</code>, <code class="readme-inline-code">state::compare-and-set</code>, <code class="readme-inline-code">harness::status</code>, <code class="readme-inline-code">harness::stop</code>, <code class="readme-inline-code">kanban::comment::create</code>.</li> <li>for the orchestrator: <code class="readme-inline-code">harness::spawn</code>, <code class="readme-inline-code">harness::metrics</code>, <code class="readme-inline-code">state::compare-and-set</code>, <code class="readme-inline-code">kanban::ticket::list</code>, <code class="readme-inline-code">kanban::project::create</code>, <code class="readme-inline-code">shell::exec</code>, <code class="readme-inline-code">harness::stop</code>, and <code class="readme-inline-code">directory::agents::get</code> when <code class="readme-inline-code">judges=</code> is used. Without a rule, each <code class="readme-inline-code">harness::stop</code> of a timed-out lead or phase waits for your approval. The repository rule set (<code class="readme-inline-code">iii-permissions.yaml</code>) denies it with <code class="readme-inline-code">'!harness::stop'</code>; to allow it, remove that line from your approval-gate rules and add <code class="readme-inline-code">- harness::stop</code> (an allow above a <code class="readme-inline-code">'!…'</code> line is not enough: the console turns every deny rule into a session-wide deny). If you keep the deny, timed-out leads are parked as <code class="readme-inline-code">stuck</code>. Project creation is allowed by the rule set for a create whose <code class="readme-inline-code">lead</code> is <code class="readme-inline-code">ultracode</code> (rule <code class="readme-inline-code">ultracode-run-project</code>, iii-hq/workers#1415); with older rules that still say <code class="readme-inline-code">'!kanban::project::create'</code>, replace that line with the same structured allow, or pass <code class="readme-inline-code">project=</code> with a project you made in the console. Refused, the run goes on without a project and says so on the run ticket.</li> </ul> </li> <li><strong>Trust.</strong> Any agent allowed <code class="readme-inline-code">kanban::ticket::create</code> or <code class="readme-inline-code">kanban::ticket::update</code> can add a subtask to the run ticket, which then runs with the orchestrator's permissions.</li> </ul> <h2 id="how-it-works" class="scroll-mt-20">How it works</h2> <ol> <li>Each round takes a snapshot of the run ticket's To do subtasks (<code class="readme-inline-code">kanban::ticket::list</code> with <code class="readme-inline-code">parent_id</code>) and runs it in waves of <code class="readme-inline-code">concurrency</code> leads.</li> <li>Per wave, the orchestrator arms one <code class="readme-inline-code">state</code> wake gated by <code class="readme-inline-code">state::barrier</code> with a deadline, moves the tickets to In progress and spawns one <code class="readme-inline-code">ultracode-lead</code> per ticket.</li> <li>A lead runs its ticket's phases the same way: per phase, one barrier wake with a deadline and one spawn per key; each phase sub-agent posts one comment and writes one document with set-if-absent <code class="readme-inline-code">state::compare-and-set</code>. The lead retries rejected attempts, then writes one result for the orchestrator.</li> <li>The wave's barrier wakes the orchestrator once when every lead has written, or the deadline does. It reads all results with one <code class="readme-inline-code">state::list</code>. A missing, malformed or rewritten result is null: the lead is stopped if still running (the stop cascades to its phases, but not to <code class="readme-inline-code">shell::exec_bg</code> jobs they started) and the ticket is retried next round in the same lead session while rounds remain, or parked as <code class="readme-inline-code">stuck</code> if it cannot be stopped.</li> <li>Verified or accepted tickets go to Done; blocked, unverified and stuck ones to Backlog; failed ones back to To do while rounds remain.</li> <li>The run stops on <code class="readme-inline-code">max_rounds</code>, no progress, nothing left (after one critic or branch review), the budget, blocked approvals or your stop. The report goes on the run ticket, into the chat and to <code class="readme-inline-code">notify</code>; in the dev flow it then asks how to finish the branch.</li> </ol> <p><strong>Why fan-in is on state, not on kanban events.</strong> A <code class="readme-inline-code">kanban:change</code> wake gated by the same barrier works mechanically, but it counts every change to a ticket (including the orchestrator's own moves) as an arrival, kanban delivers events fire-and-forget with no catch-up, and results kept in comments have no compare-and-set. A kanban outage would lose results instead of delaying them.</p> <p><strong>Not in 0.1:</strong> a run-level cost cap from the console, one worktree per ticket (tickets that share a file wait for a later wave instead).</p> </div></div></section></div><aside class="flex flex-col gap-y-4 @4xl:sticky @4xl:top-20 @4xl:self-start @4xl:max-h-[calc(100dvh-6rem)] @4xl:overflow-y-auto"><section class="shrink-0 overflow-hidden rounded-xl border border-line bg-paper scroll-mt-20"><div class="flex min-h-11 items-center justify-between gap-x-3 border-b border-line px-4"><span class="font-mono text-[10px] uppercase tracking-[0.08em] text-muted-foreground">Details</span></div><div class="p-4 flex flex-col gap-y-3"><div class="flex items-baseline justify-between text-[13px] gap-x-3 min-w-0"><span class="text-muted-foreground shrink-0">Version</span><span class="text-foreground truncate text-right min-w-0 font-mono text-[12px] tabular-nums">v<!-- -->0.1.1</span></div><div class="flex items-baseline justify-between text-[13px] gap-x-3 min-w-0"><span class="text-muted-foreground shrink-0">Published</span><span class="text-foreground truncate text-right min-w-0 font-mono text-[12px] tabular-nums" title="2026-10-15T20:40:16.170Z">2026-10-15 · 1d ago</span></div><div class="flex items-baseline justify-between text-[13px] gap-x-3 min-w-0"><span class="text-muted-foreground shrink-0">License</span><span class="text-foreground truncate text-right min-w-0">Apache-2.0</span></div><div class="flex items-baseline justify-between text-[13px] gap-x-3 min-w-0"><span class="text-muted-foreground shrink-0">Kit ID</span><span class="text-foreground truncate text-right min-w-0 font-mono text-[12px] tabular-nums" title="iii/deepwork">iii/deepwork</span></div><div class="flex items-baseline justify-between gap-x-3 min-w-0 text-[13px]"><span class="shrink-0 text-muted-foreground">Repo</span><a href="https://github.com/iii-hq/workers/tree/main/kits/deepwork" target="_blank" rel="noreferrer" class="inline-flex min-w-0 items-center gap-x-1 font-mono text-foreground transition-colors duration-150 hover:text-brand justify-end text-right text-[12px]"><span class="truncate">iii-hq/workers/tree/main/kits/deepwork</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-up-right size-3 shrink-0" aria-hidden="true"><path d="M7 7h10v10"></path><path d="M7 17 17 7"></path></svg></a></div></div></section><section class="shrink-0 overflow-hidden rounded-xl border border-line bg-paper scroll-mt-20"><div class="flex min-h-11 items-center justify-between gap-x-3 border-b border-line px-4"><span class="font-mono text-[10px] uppercase tracking-[0.08em] text-muted-foreground">Author</span></div><div class="p-4 flex flex-col gap-y-4"><a class="group flex items-center gap-x-2.5 min-w-0 text-[13px]" href="/kits/iii"><img src="https://iii.dev/docs/_mintlify/favicons/motiadev/AFkVbz_UcSL_5jsm/_generated/favicon/apple-touch-icon.png" alt="" class="size-7 shrink-0 rounded-full object-cover"/><span class="flex min-w-0 flex-col"><span class="inline-flex items-center gap-x-1 min-w-0"><span class="truncate font-medium text-foreground transition-colors group-hover:text-brand">iii</span><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="1em" height="1em" fill="currentColor" focusable="false" class="size-[13px] shrink-0 text-verified" aria-label="verified"><path fill-rule="evenodd" clip-rule="evenodd" d="M15.5837 10.5577L11.5107 14.6327C11.3697 14.7737 11.1787 14.8527 10.9797 14.8527C10.7807 14.8527 10.5897 14.7737 10.4497 14.6327L8.47274 12.6527C8.18075 12.3587 8.18075 11.8837 8.47375 11.5907C8.76775 11.2987 9.24174 11.2997 9.53475 11.5917L10.9807 13.0407L14.5227 9.49667C14.8157 9.20367 15.2907 9.20367 15.5837 9.49667C15.8767 9.78967 15.8767 10.2647 15.5837 10.5577ZM20.7037 10.0857L20.0047 9.38667C19.6857 9.06667 19.5107 8.64067 19.5107 8.18967V7.18967C19.5107 5.70067 18.2987 4.48967 16.8107 4.48967H15.8087C15.3557 4.48967 14.9307 4.31467 14.6127 3.99667L13.9017 3.28667C12.8447 2.23867 11.1327 2.24367 10.0837 3.29767L9.38674 3.99667C9.06574 4.31567 8.64075 4.49067 8.18875 4.49067H7.18775C5.71675 4.49167 4.51675 5.67567 4.48975 7.14167C4.48874 7.15767 4.48775 7.17367 4.48775 7.19067V8.18767C4.48775 8.63967 4.31275 9.06467 3.99375 9.38367L3.28575 10.0927C3.28475 10.0957 3.28175 10.0967 3.27975 10.0987C2.23475 11.1567 2.24375 12.8687 3.29675 13.9117L3.99575 14.6127C4.31375 14.9317 4.48975 15.3557 4.48975 15.8077V16.8127C4.48975 18.3007 5.69975 19.5117 7.18775 19.5117H8.18675C8.63975 19.5127 9.06475 19.6877 9.38275 20.0047L10.0957 20.7157C10.6037 21.2207 11.2777 21.4987 11.9947 21.4987H12.0067C12.7277 21.4957 13.4037 21.2117 13.9097 20.7027L14.6107 20.0027C14.9257 19.6887 15.3617 19.5087 15.8067 19.5087H16.8127C18.2977 19.5087 19.5087 18.2997 19.5117 16.8127V15.8097C19.5117 15.3587 19.6867 14.9337 20.0037 14.6147L20.7147 13.9037C21.7647 12.8477 21.7587 11.1347 20.7037 10.0857Z"></path></svg></span></span></a></div></section></aside></div></div></div><!--$--><!--/$--></main></div></div><footer class="border-t border-line bg-background text-foreground"><div class="mx-auto max-w-[1280px] px-9 pt-16 max-sm:px-[22px] max-sm:pt-11"><div class="grid grid-cols-[minmax(0,1fr)_minmax(0,1.4fr)] gap-20 max-[900px]:grid-cols-1 max-[900px]:gap-10"><div><a href="https://iii.dev" aria-label="iii home" class="inline-flex size-7 focus-visible:rounded-xs focus-visible:outline-2 focus-visible:outline-offset-4 focus-visible:outline-foreground"><svg viewBox="0 0 1075.74 1075.74" aria-hidden="true" focusable="false" class="block shrink-0 size-full" fill="currentColor"><rect x="0" y="0.05" width="268.94" height="268.94"></rect><rect x="403.4" y="0.05" width="268.94" height="268.94"></rect><rect x="806.81" y="0.05" width="268.94" height="268.94"></rect><rect x="0" y="403.45" width="268.94" height="672.24"></rect><rect x="403.4" y="403.45" width="268.94" height="672.24"></rect><rect x="806.81" y="403.45" width="268.94" height="672.24"></rect></svg></a><p class="mt-[18px] max-w-[340px] text-[15px] leading-[1.65] text-muted-foreground">A next-generation software system.<br/>Workers. Triggers. Functions.</p><p class="mt-2 max-w-[340px] text-[13px] leading-[1.65] text-muted-foreground">Pronounced<!-- --> <span class="text-foreground">"three eye"</span></p></div><nav aria-label="Footer" class="grid grid-cols-3 gap-8 max-sm:grid-cols-2 max-sm:gap-x-4 max-sm:gap-y-6"><div><h3 class="mb-3 text-[13px] font-medium tracking-[0.06em] text-muted-foreground uppercase">Product</h3><ul class="list-none p-0"><li><a href="https://iii.dev/docs" class="group flex min-h-9 items-center gap-2.5 text-[14px] text-muted-foreground transition-[color] duration-150 ease-[ease] hover:text-foreground max-sm:min-h-11 focus-visible:rounded-xs focus-visible:outline-2 focus-visible:outline-offset-4 focus-visible:outline-foreground"><span>Docs</span></a></li><li><a href="https://iii.dev/docs/quickstart" class="group flex min-h-9 items-center gap-2.5 text-[14px] text-muted-foreground transition-[color] duration-150 ease-[ease] hover:text-foreground max-sm:min-h-11 focus-visible:rounded-xs focus-visible:outline-2 focus-visible:outline-offset-4 focus-visible:outline-foreground"><span>Quickstart</span></a></li><li><a href="/" class="group flex min-h-9 items-center gap-2.5 text-[14px] text-muted-foreground transition-[color] duration-150 ease-[ease] hover:text-foreground max-sm:min-h-11 focus-visible:rounded-xs focus-visible:outline-2 focus-visible:outline-offset-4 focus-visible:outline-foreground"><span>Worker registry</span></a></li><li><a href="https://iii.dev/roadmap" class="group flex min-h-9 items-center gap-2.5 text-[14px] text-muted-foreground transition-[color] duration-150 ease-[ease] hover:text-foreground max-sm:min-h-11 focus-visible:rounded-xs focus-visible:outline-2 focus-visible:outline-offset-4 focus-visible:outline-foreground"><span>Roadmap</span></a></li><li><a href="https://iii.dev/manifesto" class="group flex min-h-9 items-center gap-2.5 text-[14px] text-muted-foreground transition-[color] duration-150 ease-[ease] hover:text-foreground max-sm:min-h-11 focus-visible:rounded-xs focus-visible:outline-2 focus-visible:outline-offset-4 focus-visible:outline-foreground"><span>Manifesto</span></a></li><li><a href="https://iii.dev/blog" class="group flex min-h-9 items-center gap-2.5 text-[14px] text-muted-foreground transition-[color] duration-150 ease-[ease] hover:text-foreground max-sm:min-h-11 focus-visible:rounded-xs focus-visible:outline-2 focus-visible:outline-offset-4 focus-visible:outline-foreground"><span>Blog</span></a></li></ul></div><div><h3 class="mb-3 text-[13px] font-medium tracking-[0.06em] text-muted-foreground uppercase">Community</h3><ul class="list-none p-0"><li><a href="https://github.com/iii-hq/iii" class="group flex min-h-9 items-center gap-2.5 text-[14px] text-muted-foreground transition-[color] duration-150 ease-[ease] hover:text-foreground max-sm:min-h-11 focus-visible:rounded-xs focus-visible:outline-2 focus-visible:outline-offset-4 focus-visible:outline-foreground" target="_blank" rel="noopener noreferrer"><svg viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" focusable="false" class="size-4 shrink-0"><path fill-rule="evenodd" clip-rule="evenodd" d="M12 2.69922C6.762 2.69922 2.5 6.96122 2.5 12.1992C2.5 16.3252 5.24 20.0532 9.164 21.2662C9.324 21.3182 9.498 21.2822 9.627 21.1762C9.757 21.0702 9.825 20.9062 9.809 20.7392C9.669 19.3462 10.47 17.8702 10.812 17.5162C10.944 17.3812 10.988 17.1822 10.925 17.0042C10.862 16.8252 10.704 16.6962 10.516 16.6732C8.725 16.4452 7.067 15.8372 7.067 12.9472C7.063 12.2282 7.337 11.5412 7.836 11.0122C7.968 10.8732 8.009 10.6712 7.941 10.4922C7.75 9.98722 7.729 9.42222 7.877 8.90022C8.168 8.94822 8.731 9.11922 9.608 9.70522C9.728 9.78622 9.877 9.80722 10.015 9.77222C11.312 9.42422 12.682 9.42422 13.979 9.77222C14.116 9.80722 14.266 9.78622 14.386 9.70522C15.27 9.11422 15.835 8.94522 16.115 8.89622C16.264 9.42022 16.245 9.98622 16.054 10.4932C15.986 10.6732 16.027 10.8752 16.16 11.0132C16.654 11.5332 16.927 12.2172 16.927 12.9382C16.927 15.8772 15.273 16.4642 13.486 16.6612C13.296 16.6812 13.135 16.8092 13.071 16.9882C13.006 17.1682 13.049 17.3692 13.182 17.5062C13.512 17.8472 14.321 19.3622 14.185 20.7502C14.168 20.9172 14.236 21.0812 14.367 21.1862C14.457 21.2612 14.569 21.2992 14.682 21.2992C14.732 21.2992 14.783 21.2912 14.832 21.2752C18.82 20.0202 21.5 16.3732 21.5 12.1992C21.5 6.96122 17.238 2.69922 12 2.69922Z"></path></svg><span>GitHub</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-up-right ml-auto size-3 opacity-0 group-hover:opacity-100" aria-hidden="true"><path d="M7 7h10v10"></path><path d="M7 17 17 7"></path></svg></a></li><li><a href="https://discord.gg/iiidev" class="group flex min-h-9 items-center gap-2.5 text-[14px] text-muted-foreground transition-[color] duration-150 ease-[ease] hover:text-foreground max-sm:min-h-11 focus-visible:rounded-xs focus-visible:outline-2 focus-visible:outline-offset-4 focus-visible:outline-foreground" target="_blank" rel="noopener noreferrer"><svg viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" focusable="false" class="size-4 shrink-0"><path fill-rule="evenodd" clip-rule="evenodd" d="M10.4919 12.798C10.4928 12.7793 10.4916 12.7606 10.489 12.7421C10.4613 12.5469 10.4514 12.347 10.3951 12.1599C10.1841 11.4539 9.74808 10.9469 9.00608 10.7969C8.29208 10.6539 7.71308 10.9269 7.28508 11.5059C6.70508 12.2879 6.76108 13.4529 7.40208 14.1859C8.09108 14.9729 9.21108 14.9939 9.92408 14.2269C10.2967 13.8258 10.4673 13.3434 10.4919 12.798ZM17.1383 12.7812C17.1389 12.7644 17.1379 12.7475 17.1357 12.7308C17.1132 12.5616 17.1039 12.3878 17.0601 12.2239C16.8721 11.5239 16.4651 11.0089 15.7441 10.8189C15.1071 10.6509 14.5481 10.8339 14.0951 11.3089C13.3501 12.0899 13.3461 13.4249 14.0781 14.2169C14.7981 14.9939 15.9331 14.9789 16.6201 14.1779C16.9636 13.7773 17.1191 13.306 17.1383 12.7812ZM17.0985 17.278C17.2735 17.1939 17.3406 16.9478 17.1827 16.8346C17.0669 16.7515 16.9741 16.7834 16.7571 16.8759C13.5891 18.2239 10.4191 18.2099 7.24908 16.8849C7.02096 16.7895 6.93273 16.7517 6.82128 16.8227C6.65302 16.93 6.71802 17.1898 6.89748 17.277C7.23862 17.4429 7.58015 17.609 7.93832 17.7829C8.09958 17.8613 8.15678 18.0626 8.06083 18.214C7.77618 18.6633 7.49507 19.108 7.20508 19.5459C7.17408 19.5919 7.04108 19.6069 6.97208 19.5859C5.25708 19.0449 3.67108 18.2459 2.22008 17.1829C2.14608 17.1289 2.08208 17.0159 2.07408 16.9239C1.74508 13.2929 2.51308 9.90588 4.35508 6.75988C5.05808 5.55888 5.05608 5.53788 6.55408 5.06188C7.34208 4.81188 8.15408 4.63988 8.95308 4.42288C9.12908 4.37588 9.21708 4.42788 9.28708 4.58688C9.37508 4.78388 9.50608 4.96388 9.57408 5.16688C9.65508 5.40888 9.77908 5.46588 10.0301 5.42988C11.4051 5.23188 12.7811 5.26188 14.1551 5.44288C14.2295 5.45351 14.3008 5.4087 14.3344 5.34142C14.4633 5.08312 14.5955 4.82606 14.7171 4.56288C14.7801 4.42488 14.8581 4.38688 15.0111 4.41588C16.3001 4.65988 17.5471 5.03488 18.7421 5.57688C18.8641 5.63288 18.9861 5.73388 19.0601 5.84488C20.4731 7.95488 21.4261 10.2489 21.8121 12.7659C22.0241 14.1449 22.0491 15.5309 21.9241 16.9189C21.9151 17.0179 21.8391 17.1399 21.7561 17.1989C20.3161 18.2439 18.7501 19.0439 17.0491 19.5739C16.9661 19.5999 16.8091 19.5849 16.7731 19.5309C16.4849 19.0998 16.2096 18.6599 15.9282 18.2116C15.8329 18.0598 15.8907 17.8587 16.0522 17.781C16.4087 17.6095 16.7514 17.4448 17.0985 17.278Z"></path></svg><span>Discord</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-up-right ml-auto size-3 opacity-0 group-hover:opacity-100" aria-hidden="true"><path d="M7 7h10v10"></path><path d="M7 17 17 7"></path></svg></a></li><li><a href="https://x.com/iiidevs" class="group flex min-h-9 items-center gap-2.5 text-[14px] text-muted-foreground transition-[color] duration-150 ease-[ease] hover:text-foreground max-sm:min-h-11 focus-visible:rounded-xs focus-visible:outline-2 focus-visible:outline-offset-4 focus-visible:outline-foreground" target="_blank" rel="noopener noreferrer"><svg viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" focusable="false" class="size-4 shrink-0"><path transform="translate(1.5 1.5) scale(0.875)" d="M18.901 1.153h3.68l-8.04 9.19L24 22.846h-7.406l-5.8-7.584-6.638 7.584H.474l8.6-9.83L0 1.154h7.594l5.243 6.932ZM17.61 20.644h2.039L6.486 3.24H4.298Z"></path></svg><span>Twitter / X</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-up-right ml-auto size-3 opacity-0 group-hover:opacity-100" aria-hidden="true"><path d="M7 7h10v10"></path><path d="M7 17 17 7"></path></svg></a></li><li><a href="https://www.linkedin.com/company/iii-dev" class="group flex min-h-9 items-center gap-2.5 text-[14px] text-muted-foreground transition-[color] duration-150 ease-[ease] hover:text-foreground max-sm:min-h-11 focus-visible:rounded-xs focus-visible:outline-2 focus-visible:outline-offset-4 focus-visible:outline-foreground" target="_blank" rel="noopener noreferrer"><svg viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" focusable="false" class="size-4 shrink-0"><path fill-rule="evenodd" clip-rule="evenodd" d="M5.4 2.5h13.2a2.9 2.9 0 0 1 2.9 2.9v13.2a2.9 2.9 0 0 1-2.9 2.9H5.4a2.9 2.9 0 0 1-2.9-2.9V5.4a2.9 2.9 0 0 1 2.9-2.9Zm2.33 7.1H5.6v7.9h2.13V9.6ZM6.67 6.1a1.24 1.24 0 1 0 0 2.48 1.24 1.24 0 0 0 0-2.48Zm11.73 7.1c0-2.26-1.21-3.31-2.82-3.31-1.3 0-1.88.72-2.21 1.22V9.6H11.2c.03.6 0 7.9 0 7.9h2.17v-4.41c0-.24.02-.47.09-.64.19-.47.62-.96 1.35-.96.95 0 1.33.73 1.33 1.79v4.22h2.26V13.2Z"></path></svg><span>LinkedIn</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-up-right ml-auto size-3 opacity-0 group-hover:opacity-100" aria-hidden="true"><path d="M7 7h10v10"></path><path d="M7 17 17 7"></path></svg></a></li></ul></div><div><h3 class="mb-3 text-[13px] font-medium tracking-[0.06em] text-muted-foreground uppercase">Ask about iii</h3><ul class="list-none p-0"><li><a href="https://chatgpt.com/?q=Read%20https%3A%2F%2Fiii.dev%2Fllms.txt%20and%20explain%20iii%20to%20me%3A%20its%20three%20primitives%20(Worker%2C%20Trigger%2C%20Function)%2C%20what%20it%20replaces%20in%20a%20typical%20backend%2C%20and%20how%20I%20would%20install%20it%20and%20build%20a%20first%20service." class="group flex min-h-9 items-center gap-2.5 text-[14px] text-muted-foreground transition-[color] duration-150 ease-[ease] hover:text-foreground max-sm:min-h-11 focus-visible:rounded-xs focus-visible:outline-2 focus-visible:outline-offset-4 focus-visible:outline-foreground" target="_blank" rel="noopener noreferrer"><svg viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" focusable="false" class="size-4 shrink-0"><path d="M22.2819 9.8211a5.9847 5.9847 0 0 0-.5157-4.9108 6.0462 6.0462 0 0 0-6.5098-2.9A6.0651 6.0651 0 0 0 4.9807 4.1818a5.9847 5.9847 0 0 0-3.9977 2.9 6.0462 6.0462 0 0 0 .7427 7.0966 5.98 5.98 0 0 0 .511 4.9107 6.051 6.051 0 0 0 6.5146 2.9001A5.9847 5.9847 0 0 0 13.2599 24a6.0557 6.0557 0 0 0 5.7718-4.2058 5.9894 5.9894 0 0 0 3.9977-2.9001 6.0557 6.0557 0 0 0-.7475-7.0729zm-9.022 12.6081a4.4755 4.4755 0 0 1-2.8764-1.0408l.1419-.0804 4.7783-2.7582a.7948.7948 0 0 0 .3927-.6813v-6.7369l2.02 1.1686a.071.071 0 0 1 .038.052v5.5826a4.504 4.504 0 0 1-4.4945 4.4944zm-9.6607-4.1254a4.4708 4.4708 0 0 1-.5346-3.0137l.142.0852 4.783 2.7582a.7712.7712 0 0 0 .7806 0l5.8428-3.3685v2.3324a.0804.0804 0 0 1-.0332.0615L9.74 19.9502a4.4992 4.4992 0 0 1-6.1408-1.6464zM2.3408 7.8956a4.485 4.485 0 0 1 2.3655-1.9728V11.6a.7664.7664 0 0 0 .3879.6765l5.8144 3.3543-2.0201 1.1685a.0757.0757 0 0 1-.071 0l-4.8303-2.7865A4.504 4.504 0 0 1 2.3408 7.872zm16.5963 3.8558L13.1038 8.364 15.1192 7.2a.0757.0757 0 0 1 .071 0l4.8303 2.7913a4.4944 4.4944 0 0 1-.6765 8.1042v-5.6772a.79.79 0 0 0-.407-.667zm2.0107-3.0231l-.142-.0852-4.7735-2.7818a.7759.7759 0 0 0-.7854 0L9.409 9.2297V6.8974a.0662.0662 0 0 1 .0284-.0615l4.8303-2.7866a4.4992 4.4992 0 0 1 6.6802 4.66zM8.3065 12.863l-2.02-1.1638a.0804.0804 0 0 1-.038-.0567V6.0742a4.4992 4.4992 0 0 1 7.3757-3.4537l-.142.0805L8.704 5.459a.7948.7948 0 0 0-.3927.6813zm1.0976-2.3654l2.602-1.4998 2.6069 1.4998v2.9994l-2.5974 1.4997-2.6067-1.4997Z"></path></svg><span>ChatGPT</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-up-right ml-auto size-3 opacity-0 group-hover:opacity-100" aria-hidden="true"><path d="M7 7h10v10"></path><path d="M7 17 17 7"></path></svg></a></li><li><a href="https://claude.ai/new?q=Read%20https%3A%2F%2Fiii.dev%2Fllms.txt%20and%20explain%20iii%20to%20me%3A%20its%20three%20primitives%20(Worker%2C%20Trigger%2C%20Function)%2C%20what%20it%20replaces%20in%20a%20typical%20backend%2C%20and%20how%20I%20would%20install%20it%20and%20build%20a%20first%20service." class="group flex min-h-9 items-center gap-2.5 text-[14px] text-muted-foreground transition-[color] duration-150 ease-[ease] hover:text-foreground max-sm:min-h-11 focus-visible:rounded-xs focus-visible:outline-2 focus-visible:outline-offset-4 focus-visible:outline-foreground" target="_blank" rel="noopener noreferrer"><svg viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" focusable="false" class="size-4 shrink-0"><path d="m4.7144 15.9555 4.7174-2.6471.079-.2307-.079-.1275h-.2307l-.7893-.0486-2.6956-.0729-2.3375-.0971-2.2646-.1214-.5707-.1215-.5343-.7042.0546-.3522.4797-.3218.686.0608 1.5179.1032 2.2767.1578 1.6514.0972 2.4468.255h.3886l.0546-.1579-.1336-.0971-.1032-.0972L6.973 9.8356l-2.55-1.6879-1.3356-.9714-.7225-.4918-.3643-.4614-.1578-1.0078.6557-.7225.8803.0607.2246.0607.8925.686 1.9064 1.4754 2.4893 1.8336.3643.3035.1457-.1032.0182-.0728-.164-.2733-1.3539-2.4467-1.445-2.4893-.6435-1.032-.17-.6194c-.0607-.255-.1032-.4674-.1032-.7285L6.287.1335 6.6997 0l.9957.1336.419.3642.6192 1.4147 1.0018 2.2282 1.5543 3.0296.4553.8985.2429.8318.091.255h.1579v-.1457l.1275-1.706.2368-2.0947.2307-2.6957.0789-.7589.3764-.9107.7468-.4918.5828.2793.4797.686-.0668.4433-.2853 1.8517-.5586 2.9021-.3643 1.9429h.2125l.2429-.2429.9835-1.3053 1.6514-2.0643.7286-.8196.85-.9046.5464-.4311h1.0321l.759 1.1293-.34 1.1657-1.0625 1.3478-.8804 1.1414-1.2628 1.7-.7893 1.36.0729.1093.1882-.0183 2.8535-.607 1.5421-.2794 1.8396-.3157.8318.3886.091.3946-.3278.8075-1.967.4857-2.3072.4614-3.4364.8136-.0425.0304.0486.0607 1.5482.1457.6618.0364h1.621l3.0175.2247.7892.522.4736.6376-.079.4857-1.2142.6193-1.6393-.3886-3.825-.9107-1.3113-.3279h-.1822v.1093l1.0929 1.0686 2.0035 1.8092 2.5075 2.3314.1275.5768-.3218.4554-.34-.0486-2.2039-1.6575-.85-.7468-1.9246-1.621h-.1275v.17l.4432.6496 2.3436 3.5214.1214 1.0807-.17.3521-.6071.2125-.6679-.1214-1.3721-1.9246L14.38 17.959l-1.1414-1.9428-.1397.079-.674 7.2552-.3156.3703-.7286.2793-.6071-.4614-.3218-.7468.3218-1.4753.3886-1.9246.3157-1.53.2853-1.9004.17-.6314-.0121-.0425-.1397.0182-1.4328 1.9672-2.1796 2.9446-1.7243 1.8456-.4128.164-.7164-.3704.0667-.6618.4008-.5889 2.386-3.0357 1.4389-1.882.929-1.0868-.0062-.1579h-.0546l-6.3385 4.1164-1.1293.1457-.4857-.4554.0608-.7467.2307-.2429 1.9064-1.3114Z"></path></svg><span>Claude</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-up-right ml-auto size-3 opacity-0 group-hover:opacity-100" aria-hidden="true"><path d="M7 7h10v10"></path><path d="M7 17 17 7"></path></svg></a></li><li><a href="https://www.perplexity.ai/search?q=Read%20https%3A%2F%2Fiii.dev%2Fllms.txt%20and%20explain%20iii%20to%20me%3A%20its%20three%20primitives%20(Worker%2C%20Trigger%2C%20Function)%2C%20what%20it%20replaces%20in%20a%20typical%20backend%2C%20and%20how%20I%20would%20install%20it%20and%20build%20a%20first%20service." class="group flex min-h-9 items-center gap-2.5 text-[14px] text-muted-foreground transition-[color] duration-150 ease-[ease] hover:text-foreground max-sm:min-h-11 focus-visible:rounded-xs focus-visible:outline-2 focus-visible:outline-offset-4 focus-visible:outline-foreground" target="_blank" rel="noopener noreferrer"><svg viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" focusable="false" class="size-4 shrink-0"><path d="M22.3977 7.0896h-2.3106V.0676l-7.5094 6.3542V.1577h-1.1554v6.1966L4.4904 0v7.0896H1.6023v10.3976h2.8882V24l6.932-6.3591v6.2005h1.1554v-6.0469l6.9318 6.1807v-6.4879h2.8882V7.0896zm-3.4657-4.531v4.531h-5.355l5.355-4.531zm-13.2862.0676 4.8691 4.4634H5.6458V2.6262zM2.7576 16.332V8.245h7.8476l-6.1149 6.1147v1.9723H2.7576zm2.8882 5.0404v-3.8852h.0001v-2.6488l5.7763-5.7764v7.0111l-5.7764 5.2993zm7.0212-7.0212v-7.0111l5.7764 5.7764v2.6488h.0001v3.8852l-5.7765-5.2993zm8.9765 2.0444h-1.9727l-6.1149-6.1147h8.0876v6.1147z"></path></svg><span>Perplexity</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-up-right ml-auto size-3 opacity-0 group-hover:opacity-100" aria-hidden="true"><path d="M7 7h10v10"></path><path d="M7 17 17 7"></path></svg></a></li><li><a href="https://grok.com/?q=Read%20https%3A%2F%2Fiii.dev%2Fllms.txt%20and%20explain%20iii%20to%20me%3A%20its%20three%20primitives%20(Worker%2C%20Trigger%2C%20Function)%2C%20what%20it%20replaces%20in%20a%20typical%20backend%2C%20and%20how%20I%20would%20install%20it%20and%20build%20a%20first%20service." class="group flex min-h-9 items-center gap-2.5 text-[14px] text-muted-foreground transition-[color] duration-150 ease-[ease] hover:text-foreground max-sm:min-h-11 focus-visible:rounded-xs focus-visible:outline-2 focus-visible:outline-offset-4 focus-visible:outline-foreground" target="_blank" rel="noopener noreferrer"><svg viewBox="0 0 24 24" fill="currentColor" aria-hidden="true" focusable="false" class="size-4 shrink-0"><path d="M9.27 15.29l7.978-5.897c.391-.29.95-.177 1.137.272.98 2.369.542 5.215-1.41 7.169-1.951 1.954-4.667 2.382-7.149 1.406l-2.711 1.257c3.889 2.661 8.611 2.003 11.562-.953 2.341-2.344 3.066-5.539 2.388-8.42l.006.007c-.983-4.232.242-5.924 2.75-9.383.06-.082.12-.164.179-.248l-3.301 3.305v-.01L9.267 15.292M7.623 16.723c-2.792-2.67-2.31-6.801.071-9.184 1.761-1.763 4.647-2.483 7.166-1.425l2.705-1.25a7.808 7.808 0 00-1.829-1A8.975 8.975 0 005.984 5.83c-2.533 2.536-3.33 6.436-1.962 9.764 1.022 2.487-.653 4.246-2.34 6.022-.599.63-1.199 1.259-1.682 1.925l7.62-6.815"></path></svg><span>Grok</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-up-right ml-auto size-3 opacity-0 group-hover:opacity-100" aria-hidden="true"><path d="M7 7h10v10"></path><path d="M7 17 17 7"></path></svg></a></li></ul></div></nav></div><div class="mt-13 border-t border-line py-[22px] text-[13px] text-muted-foreground max-sm:mt-9"><p class="flex items-center gap-2">© <!-- -->2026<!-- --> Motia LLC<!-- --> <span aria-hidden="true">·</span> <a href="https://iii.dev/privacy-policy" class="hover:text-foreground focus-visible:rounded-xs focus-visible:outline-2 focus-visible:outline-offset-4 focus-visible:outline-foreground">Privacy</a></p></div></div></footer><div data-slot="dialog-header" class="flex flex-col gap-2 sr-only"><h2 id="base-ui-_R_2v9b_" data-slot="dialog-title" class="font-heading text-base leading-none font-medium">Search the registry</h2><p id="base-ui-_R_4v9b_" data-slot="dialog-description" class="text-sm text-muted-foreground *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground">Find workers, kits and executables, or jump to a page.</p></div><script src="/_next/static/chunks/0i2y6ku2mpaxs.js?dpl=dpl_4dx6J4sdCC1diu65QuAyD1awL5Fy" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n3:I[90280,[\"/_next/static/chunks/04ylibgf-0e6d.js?dpl=dpl_4dx6J4sdCC1diu65QuAyD1awL5Fy\",\"/_next/static/chunks/0f8jgu0hu0~vn.js?dpl=dpl_4dx6J4sdCC1diu65QuAyD1awL5Fy\"],\"default\"]\n4:I[69616,[\"/_next/static/chunks/04ylibgf-0e6d.js?dpl=dpl_4dx6J4sdCC1diu65QuAyD1awL5Fy\",\"/_next/static/chunks/0f8jgu0hu0~vn.js?dpl=dpl_4dx6J4sdCC1diu65QuAyD1awL5Fy\"],\"default\"]\n6:I[51557,[\"/_next/static/chunks/04ylibgf-0e6d.js?dpl=dpl_4dx6J4sdCC1diu65QuAyD1awL5Fy\",\"/_next/static/chunks/0f8jgu0hu0~vn.js?dpl=dpl_4dx6J4sdCC1diu65QuAyD1awL5Fy\"],\"OutletBoundary\"]\n7:\"$Sreact.suspense\"\na:I[51557,[\"/_next/static/chunks/04ylibgf-0e6d.js?dpl=dpl_4dx6J4sdCC1diu65QuAyD1awL5Fy\",\"/_next/static/chunks/0f8jgu0hu0~vn.js?dpl=dpl_4dx6J4sdCC1diu65QuAyD1awL5Fy\"],\"ViewportBoundary\"]\nc:I[51557,[\"/_next/static/chunks/04ylibgf-0e6d.js?dpl=dpl_4dx6J4sdCC1diu65QuAyD1awL5Fy\",\"/_next/static/chunks/0f8jgu0hu0~vn.js?dpl=dpl_4dx6J4sdCC1diu65QuAyD1awL5Fy\"],\"MetadataBoundary\"]\ne:I[50609,[\"/_next/static/chunks/0bo4tx~_nrwwb.js?dpl=dpl_4dx6J4sdCC1diu65QuAyD1awL5Fy\",\"/_next/static/chunks/02q_l477hmi84.js?dpl=dpl_4dx6J4sdCC1diu65QuAyD1awL5Fy\",\"/_next/static/chunks/0g.iu.n6r6kbr.js?dpl=dpl_4dx6J4sdCC1diu65QuAyD1awL5Fy\",\"/_next/static/chunks/0tclp6.7qxzgs.js?dpl=dpl_4dx6J4sdCC1diu65QuAyD1awL5Fy\",\"/_next/static/chunks/0w_agc1b2gf-n.js?dpl=dpl_4dx6J4sdCC1diu65QuAyD1awL5Fy\"],\"default\"]\n:HL[\"/_next/static/chunks/0tnvp7a9r1_ev.css?dpl=dpl_4dx6J4sdCC1diu65QuAyD1awL5Fy\",\"style\"]\n:HL[\"/_next/static/chunks/14fuvofs58gld.css?dpl=dpl_4dx6J4sdCC1diu65QuAyD1awL5Fy\",\"style\"]\n:HL[\"/_next/static/media/797e433ab948586e-s.p.08e28id.o-okb.woff2?dpl=dpl_4dx6J4sdCC1diu65QuAyD1awL5Fy\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2?dpl=dpl_4dx6J4sdCC1diu65QuAyD1awL5Fy\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"kits\",\"iii\",\"deepwork?version=0.1.1\"],\"q\":\"?version=0.1.1\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"kits\",{\"children\":[[\"author\",\"iii\",\"d\",null],{\"children\":[[\"name\",\"deepwork\",\"d\",null],{\"children\":[\"__PAGE__?{\\\"version\\\":\\\"0.1.1\\\"}\",{}]}]}]}]},\"$undefined\",\"$undefined\",16],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0tnvp7a9r1_ev.css?dpl=dpl_4dx6J4sdCC1diu65QuAyD1awL5Fy\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/14fuvofs58gld.css?dpl=dpl_4dx6J4sdCC1diu65QuAyD1awL5Fy\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/0bo4tx~_nrwwb.js?dpl=dpl_4dx6J4sdCC1diu65QuAyD1awL5Fy\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/02q_l477hmi84.js?dpl=dpl_4dx6J4sdCC1diu65QuAyD1awL5Fy\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-2\",{\"src\":\"/_next/static/chunks/0g.iu.n6r6kbr.js?dpl=dpl_4dx6J4sdCC1diu65QuAyD1awL5Fy\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-3\",{\"src\":\"/_next/static/chunks/0tclp6.7qxzgs.js?dpl=dpl_4dx6J4sdCC1diu65QuAyD1awL5Fy\",\"async\":true,\"nonce\":\"$undefined\"}]],\"$L2\"]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[\"$L5\",[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/0b71_6rlbzjzh.js?dpl=dpl_4dx6J4sdCC1diu65QuAyD1awL5Fy\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"$L6\",null,{\"children\":[\"$\",\"$7\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@8\"}]}]]}],{},null,false,null]},null,false,\"$@9\"]},null,false,\"$@9\"]},null,false,\"$@9\"]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$La\",null,{\"children\":\"$Lb\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Lc\",null,{\"children\":[\"$\",\"$7\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Ld\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$e\",[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0tnvp7a9r1_ev.css?dpl=dpl_4dx6J4sdCC1diu65QuAyD1awL5Fy\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/14fuvofs58gld.css?dpl=dpl_4dx6J4sdCC1diu65QuAyD1awL5Fy\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]]],\"S\":false,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"f:[]\n9:\"$Wf\"\nb:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"11:I[77792,[\"/_next/static/chunks/0bo4tx~_nrwwb.js?dpl=dpl_4dx6J4sdCC1diu65QuAyD1awL5Fy\",\"/_next/static/chunks/02q_l477hmi84.js?dpl=dpl_4dx6J4sdCC1diu65QuAyD1awL5Fy\",\"/_next/static/chunks/0g.iu.n6r6kbr.js?dpl=dpl_4dx6J4sdCC1diu65QuAyD1awL5Fy\",\"/_next/static/chunks/0tclp6.7qxzgs.js?dpl=dpl_4dx6J4sdCC1diu65QuAyD1awL5Fy\"],\"Providers\"]\n12:I[84148,[\"/_next/static/chunks/0bo4tx~_nrwwb.js?dpl=dpl_4dx6J4sdCC1diu65QuAyD1awL5Fy\",\"/_next/static/chunks/02q_l477hmi84.js?dpl=dpl_4dx6J4sdCC1diu65QuAyD1awL5Fy\",\"/_next/static/chunks/0g.iu.n6r6kbr.js?dpl=dpl_4dx6J4sdCC1diu65QuAyD1awL5Fy\",\"/_next/static/chunks/0tclp6.7qxzgs.js?dpl=dpl_4dx6J4sdCC1diu65QuAyD1awL5Fy\"],\"SiteHeader\"]\n13:I[46610,[\"/_next/static/chunks/0bo4tx~_nrwwb.js?dpl=dpl_4dx6J4sdCC1diu65QuAyD1awL5Fy\",\"/_next/static/chunks/02q_l477hmi84.js?dpl=dpl_4dx6J4sdCC1diu65QuAyD1awL5Fy\",\"/_next/static/chunks/0g.iu.n6r6kbr.js?dpl=dpl_4dx6J4sdCC1diu65QuAyD1awL5Fy\",\"/_next/static/chunks/0tclp6.7qxzgs.js?dpl=dpl_4dx6J4sdCC1diu65QuAyD1awL5Fy\",\"/_next/static/chunks/0b71_6rlbzjzh.js?dpl=dpl_4dx6J4sdCC1diu65QuAyD1awL5Fy\"],\"\"]\n10:[\"$\",\"iframe\",null,{\"src\":\"https://www.googletagmanager.com/ns.html?id=GTM-N8DCTFB8\",\"height\":\"0\",\"width\":\"0\",\"style\":{\"display\":\"none\",\"visibility\":\"hidden\"},\"title\":\"Google Tag Manager\"}]\n"])</script><script>self.__next_f.push([1,"2:[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"antialiased inter_fe8b9d92-module__LINzvG__variable geist_mono_8d43a2aa-module__8Li5zG__variable\",\"data-theme\":\"light\",\"suppressHydrationWarning\":true,\"children\":[\"$\",\"body\",null,{\"className\":\"bg-background text-foreground font-sans min-h-full flex flex-col\",\"children\":[[[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"\\n try {\\n var stored = localStorage.getItem('iii-theme');\\n if (stored === 'dark' || stored === 'light') {\\n document.documentElement.dataset.theme = stored;\\n } else {\\n document.documentElement.dataset.theme = 'light';\\n }\\n } catch (_) {\\n document.documentElement.dataset.theme = 'light';\\n }\\n\"}}],[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"\\n (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':\\n new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],\\n j=d.createElement(s),dl=l!='dataLayer'?'\u0026l='+l:'';j.async=true;j.src=\\n 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);\\n })(window,document,'script','dataLayer','GTM-N8DCTFB8');\\n\"}}]],[\"$\",\"noscript\",null,{\"children\":\"$10\"}],[\"$\",\"a\",null,{\"href\":\"#main-content\",\"className\":\"sr-only focus:not-sr-only focus:fixed focus:top-3 focus:left-3 focus:z-[60] focus:rounded-lg focus:bg-foreground focus:px-3 focus:py-2 focus:text-sm focus:font-medium focus:text-background\",\"children\":\"Skip to content\"}],[\"$\",\"$L11\",null,{\"children\":[[\"$\",\"$L12\",null,{\"stats\":{\"stars\":\"18,845\",\"members\":\"2.4k\",\"starsCount\":18845,\"membersCount\":2406}}],[\"$\",\"div\",null,{\"className\":\"mx-auto w-full max-w-7xl has-[.registry-home]:max-w-none @container flex-1 bg-bg flex flex-col\",\"children\":[\"$\",\"div\",null,{\"className\":\"flex-1 overflow-x-clip flex flex-col\",\"children\":[\"$\",\"main\",null,{\"id\":\"main-content\",\"className\":\"flex-1\",\"tabIndex\":-1,\"children\":[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"div\",null,{\"className\":\"page-transition flex flex-1 flex-col\",\"children\":[[\"$\",\"header\",null,{\"className\":\"flex items-end justify-between flex-wrap gap-x-8 gap-y-5 px-[22px] pt-12 sm:px-9 sm:pt-16 pb-0 sm:pb-0\",\"children\":[[\"$\",\"div\",null,{\"className\":\"min-w-0\",\"children\":[[\"$\",\"div\",null,{\"className\":\"mb-3 font-mono text-[10px] leading-[normal] uppercase tracking-[0.08em] text-muted-foreground\",\"children\":\"error / not found\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center flex-wrap gap-x-3 gap-y-2\",\"children\":[[\"$\",\"h1\",null,{\"className\":\"text-[32px] sm:text-[40px] font-[550] leading-[1.1] tracking-[-0.04em] text-foreground text-balance\",\"children\":[\"$\",\"span\",null,{\"className\":\"block text-[64px] leading-none tracking-[-0.05em] tabular-nums sm:text-[88px]\",\"children\":\"404\"}]}],\"$undefined\",null]}],[\"$\",\"p\",null,{\"className\":\"mt-4 max-w-[60ch] text-[15px] leading-[1.7] text-muted-foreground text-pretty\",\"children\":\"This page isn’t in the registry. It may have been renamed, or never published.\"}]]}],null]}],[\"$\",\"div\",null,{\"className\":\"flex flex-wrap items-center gap-3 px-[22px] pt-8 pb-24 sm:px-9 sm:pb-32\",\"children\":[[\"$\",\"$L13\",null,{\"href\":\"/\",\"className\":\"inline-flex items-center justify-center gap-x-2 whitespace-nowrap rounded-xl font-medium transition-[background-color,color,border-color,opacity,transform] duration-150 ease-out focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-brand disabled:pointer-events-none disabled:opacity-50 select-none active:scale-[0.96] motion-reduce:active:scale-100 [\u0026_svg]:size-3.5 [\u0026_svg]:shrink-0 bg-foreground text-background hover:opacity-[0.88] h-10 px-4 text-[14px]\",\"children\":\"Back to the registry\"}],[\"$\",\"$L13\",null,{\"href\":\"/search\",\"className\":\"inline-flex items-center justify-center gap-x-2 whitespace-nowrap rounded-xl font-medium transition-[background-color,color,border-color,opacity,transform] duration-150 ease-out focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-brand disabled:pointer-events-none disabled:opacity-50 select-none active:scale-[0.96] motion-reduce:active:scale-100 [\u0026_svg]:size-3.5 [\u0026_svg]:shrink-0 border border-line bg-background text-foreground hover:border-[color-mix(in_srgb,var(--foreground)_22%,var(--line))] hover:bg-paper h-10 px-4 text-[14px]\",\"children\":[\"$L14\",\"Search\"]}]]}]]}],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}]}],\"$L15\"]}]]}]}]\n"])</script><script>self.__next_f.push([1,"16:I[41074,[\"/_next/static/chunks/0bo4tx~_nrwwb.js?dpl=dpl_4dx6J4sdCC1diu65QuAyD1awL5Fy\",\"/_next/static/chunks/02q_l477hmi84.js?dpl=dpl_4dx6J4sdCC1diu65QuAyD1awL5Fy\",\"/_next/static/chunks/0g.iu.n6r6kbr.js?dpl=dpl_4dx6J4sdCC1diu65QuAyD1awL5Fy\",\"/_next/static/chunks/0tclp6.7qxzgs.js?dpl=dpl_4dx6J4sdCC1diu65QuAyD1awL5Fy\",\"/_next/static/chunks/0b71_6rlbzjzh.js?dpl=dpl_4dx6J4sdCC1diu65QuAyD1awL5Fy\"],\"default\"]\n14:[\"$\",\"$L16\",null,{\"ref\":\"$undefined\",\"iconNode\":[[\"path\",{\"d\":\"m21 21-4.34-4.34\",\"key\":\"14j7rj\"}],[\"circle\",{\"cx\":\"11\",\"cy\":\"11\",\"r\":\"8\",\"key\":\"4ej97u\"}]],\"className\":\"lucide-search\",\"aria-hidden\":\"true\"}]\n"])</script><script>self.__next_f.push([1,"15:[\"$\",\"footer\",null,{\"className\":\"border-t border-line bg-background text-foreground\",\"children\":[\"$\",\"div\",null,{\"className\":\"mx-auto max-w-[1280px] px-9 pt-16 max-sm:px-[22px] max-sm:pt-11\",\"children\":[[\"$\",\"div\",null,{\"className\":\"grid grid-cols-[minmax(0,1fr)_minmax(0,1.4fr)] gap-20 max-[900px]:grid-cols-1 max-[900px]:gap-10\",\"children\":[[\"$\",\"div\",null,{\"children\":[[\"$\",\"a\",null,{\"href\":\"https://iii.dev\",\"aria-label\":\"iii home\",\"className\":\"inline-flex size-7 focus-visible:rounded-xs focus-visible:outline-2 focus-visible:outline-offset-4 focus-visible:outline-foreground\",\"children\":[\"$\",\"svg\",null,{\"viewBox\":\"0 0 1075.74 1075.74\",\"aria-hidden\":\"true\",\"focusable\":\"false\",\"className\":\"block shrink-0 size-full\",\"fill\":\"currentColor\",\"children\":[[[\"$\",\"rect\",\"0\",{\"x\":0,\"y\":\"0.05\",\"width\":\"268.94\",\"height\":\"268.94\"}],[\"$\",\"rect\",\"403.4\",{\"x\":403.4,\"y\":\"0.05\",\"width\":\"268.94\",\"height\":\"268.94\"}],[\"$\",\"rect\",\"806.81\",{\"x\":806.81,\"y\":\"0.05\",\"width\":\"268.94\",\"height\":\"268.94\"}]],[[\"$\",\"rect\",\"stem-0\",{\"x\":0,\"y\":\"403.45\",\"width\":\"268.94\",\"height\":\"672.24\"}],[\"$\",\"rect\",\"stem-403.4\",{\"x\":403.4,\"y\":\"403.45\",\"width\":\"268.94\",\"height\":\"672.24\"}],[\"$\",\"rect\",\"stem-806.81\",{\"x\":806.81,\"y\":\"403.45\",\"width\":\"268.94\",\"height\":\"672.24\"}]]]}]}],[\"$\",\"p\",null,{\"className\":\"mt-[18px] max-w-[340px] text-[15px] leading-[1.65] text-muted-foreground\",\"children\":[\"A next-generation software system.\",[\"$\",\"br\",null,{}],\"Workers. Triggers. Functions.\"]}],[\"$\",\"p\",null,{\"className\":\"mt-2 max-w-[340px] text-[13px] leading-[1.65] text-muted-foreground\",\"children\":[\"Pronounced\",\" \",[\"$\",\"span\",null,{\"className\":\"text-foreground\",\"children\":\"\\\"three eye\\\"\"}]]}]]}],[\"$\",\"nav\",null,{\"aria-label\":\"Footer\",\"className\":\"grid grid-cols-3 gap-8 max-sm:grid-cols-2 max-sm:gap-x-4 max-sm:gap-y-6\",\"children\":[[\"$\",\"div\",\"Product\",{\"children\":[[\"$\",\"h3\",null,{\"className\":\"mb-3 text-[13px] font-medium tracking-[0.06em] text-muted-foreground uppercase\",\"children\":\"Product\"}],[\"$\",\"ul\",null,{\"className\":\"list-none p-0\",\"children\":[[\"$\",\"li\",\"Docs\",{\"children\":[\"$\",\"a\",null,{\"href\":\"https://iii.dev/docs\",\"className\":\"group flex min-h-9 items-center gap-2.5 text-[14px] text-muted-foreground transition-[color] duration-150 ease-[ease] hover:text-foreground max-sm:min-h-11 focus-visible:rounded-xs focus-visible:outline-2 focus-visible:outline-offset-4 focus-visible:outline-foreground\",\"children\":[null,[\"$\",\"span\",null,{\"children\":\"Docs\"}],null]}]}],[\"$\",\"li\",\"Quickstart\",{\"children\":[\"$\",\"a\",null,{\"href\":\"https://iii.dev/docs/quickstart\",\"className\":\"group flex min-h-9 items-center gap-2.5 text-[14px] text-muted-foreground transition-[color] duration-150 ease-[ease] hover:text-foreground max-sm:min-h-11 focus-visible:rounded-xs focus-visible:outline-2 focus-visible:outline-offset-4 focus-visible:outline-foreground\",\"children\":[null,[\"$\",\"span\",null,{\"children\":\"Quickstart\"}],null]}]}],[\"$\",\"li\",\"Worker registry\",{\"children\":[\"$\",\"a\",null,{\"href\":\"/\",\"className\":\"group flex min-h-9 items-center gap-2.5 text-[14px] text-muted-foreground transition-[color] duration-150 ease-[ease] hover:text-foreground max-sm:min-h-11 focus-visible:rounded-xs focus-visible:outline-2 focus-visible:outline-offset-4 focus-visible:outline-foreground\",\"children\":[null,[\"$\",\"span\",null,{\"children\":\"Worker registry\"}],null]}]}],[\"$\",\"li\",\"Roadmap\",{\"children\":[\"$\",\"a\",null,{\"href\":\"https://iii.dev/roadmap\",\"className\":\"group flex min-h-9 items-center gap-2.5 text-[14px] text-muted-foreground transition-[color] duration-150 ease-[ease] hover:text-foreground max-sm:min-h-11 focus-visible:rounded-xs focus-visible:outline-2 focus-visible:outline-offset-4 focus-visible:outline-foreground\",\"children\":[null,[\"$\",\"span\",null,{\"children\":\"Roadmap\"}],null]}]}],[\"$\",\"li\",\"Manifesto\",{\"children\":[\"$\",\"a\",null,{\"href\":\"https://iii.dev/manifesto\",\"className\":\"group flex min-h-9 items-center gap-2.5 text-[14px] text-muted-foreground transition-[color] duration-150 ease-[ease] hover:text-foreground max-sm:min-h-11 focus-visible:rounded-xs focus-visible:outline-2 focus-visible:outline-offset-4 focus-visible:outline-foreground\",\"children\":[null,\"$L17\",null]}]}],\"$L18\"]}]]}],\"$L19\",\"$L1a\"]}]]}],\"$L1b\"]}]}]\n"])</script><script>self.__next_f.push([1,"28:I[18418,[\"/_next/static/chunks/04ylibgf-0e6d.js?dpl=dpl_4dx6J4sdCC1diu65QuAyD1awL5Fy\",\"/_next/static/chunks/0f8jgu0hu0~vn.js?dpl=dpl_4dx6J4sdCC1diu65QuAyD1awL5Fy\"],\"IconMark\"]\n17:[\"$\",\"span\",null,{\"children\":\"Manifesto\"}]\n18:[\"$\",\"li\",\"Blog\",{\"children\":[\"$\",\"a\",null,{\"href\":\"https://iii.dev/blog\",\"className\":\"group flex min-h-9 items-center gap-2.5 text-[14px] text-muted-foreground transition-[color] duration-150 ease-[ease] hover:text-foreground max-sm:min-h-11 focus-visible:rounded-xs focus-visible:outline-2 focus-visible:outline-offset-4 focus-visible:outline-foreground\",\"children\":[null,[\"$\",\"span\",null,{\"children\":\"Blog\"}],null]}]}]\n1c:T4c4,M12 2.69922C6.762 2.69922 2.5 6.96122 2.5 12.1992C2.5 16.3252 5.24 20.0532 9.164 21.2662C9.324 21.3182 9.498 21.2822 9.627 21.1762C9.757 21.0702 9.825 20.9062 9.809 20.7392C9.669 19.3462 10.47 17.8702 10.812 17.5162C10.944 17.3812 10.988 17.1822 10.925 17.0042C10.862 16.8252 10.704 16.6962 10.516 16.6732C8.725 16.4452 7.067 15.8372 7.067 12.9472C7.063 12.2282 7.337 11.5412 7.836 11.0122C7.968 10.8732 8.009 10.6712 7.941 10.4922C7.75 9.98722 7.729 9.42222 7.877 8.90022C8.168 8.94822 8.731 9.11922 9.608 9.70522C9.728 9.78622 9.877 9.80722 10.015 9.77222C11.312 9.42422 12.682 9.42422 13.979 9.77222C14.116 9.80722 14.266 9.78622 14.386 9.70522C15.27 9.11422 15.835 8.94522 16.115 8.89622C16.264 9.42022 16.245 9.98622 16.054 10.4932C15.986 10.6732 16.027 10.8752 16.16 11.0132C16.654 11.5332 16.927 12.2172 16.927 12.9382C16.927 15.8772 15.273 16.4642 13.486 16.6612C13.296 16.6812 13.135 16.8092 13.071 16.9882C13.006 17.1682 13.049 17.3692 13.182 17.5062C13.512 17.8472 14.321 19.3622 14.185 20.7502C14.168 20.9172 14.236 21.0812 14.367 21.1862C14.457 21.2612 14.569 21.2992 14.682 21.2992C14.732 21.2992 14.783 21.2912 14.832 21.2752C18.82 20.0202 21.5 16.3732 21.5 12.1992C21.5 6.96122 17.238 2.69922 12 2.69922Z1d:T894,"])</script><script>self.__next_f.push([1,"M10.4919 12.798C10.4928 12.7793 10.4916 12.7606 10.489 12.7421C10.4613 12.5469 10.4514 12.347 10.3951 12.1599C10.1841 11.4539 9.74808 10.9469 9.00608 10.7969C8.29208 10.6539 7.71308 10.9269 7.28508 11.5059C6.70508 12.2879 6.76108 13.4529 7.40208 14.1859C8.09108 14.9729 9.21108 14.9939 9.92408 14.2269C10.2967 13.8258 10.4673 13.3434 10.4919 12.798ZM17.1383 12.7812C17.1389 12.7644 17.1379 12.7475 17.1357 12.7308C17.1132 12.5616 17.1039 12.3878 17.0601 12.2239C16.8721 11.5239 16.4651 11.0089 15.7441 10.8189C15.1071 10.6509 14.5481 10.8339 14.0951 11.3089C13.3501 12.0899 13.3461 13.4249 14.0781 14.2169C14.7981 14.9939 15.9331 14.9789 16.6201 14.1779C16.9636 13.7773 17.1191 13.306 17.1383 12.7812ZM17.0985 17.278C17.2735 17.1939 17.3406 16.9478 17.1827 16.8346C17.0669 16.7515 16.9741 16.7834 16.7571 16.8759C13.5891 18.2239 10.4191 18.2099 7.24908 16.8849C7.02096 16.7895 6.93273 16.7517 6.82128 16.8227C6.65302 16.93 6.71802 17.1898 6.89748 17.277C7.23862 17.4429 7.58015 17.609 7.93832 17.7829C8.09958 17.8613 8.15678 18.0626 8.06083 18.214C7.77618 18.6633 7.49507 19.108 7.20508 19.5459C7.17408 19.5919 7.04108 19.6069 6.97208 19.5859C5.25708 19.0449 3.67108 18.2459 2.22008 17.1829C2.14608 17.1289 2.08208 17.0159 2.07408 16.9239C1.74508 13.2929 2.51308 9.90588 4.35508 6.75988C5.05808 5.55888 5.05608 5.53788 6.55408 5.06188C7.34208 4.81188 8.15408 4.63988 8.95308 4.42288C9.12908 4.37588 9.21708 4.42788 9.28708 4.58688C9.37508 4.78388 9.50608 4.96388 9.57408 5.16688C9.65508 5.40888 9.77908 5.46588 10.0301 5.42988C11.4051 5.23188 12.7811 5.26188 14.1551 5.44288C14.2295 5.45351 14.3008 5.4087 14.3344 5.34142C14.4633 5.08312 14.5955 4.82606 14.7171 4.56288C14.7801 4.42488 14.8581 4.38688 15.0111 4.41588C16.3001 4.65988 17.5471 5.03488 18.7421 5.57688C18.8641 5.63288 18.9861 5.73388 19.0601 5.84488C20.4731 7.95488 21.4261 10.2489 21.8121 12.7659C22.0241 14.1449 22.0491 15.5309 21.9241 16.9189C21.9151 17.0179 21.8391 17.1399 21.7561 17.1989C20.3161 18.2439 18.7501 19.0439 17.0491 19.5739C16.9661 19.5999 16.8091 19.5849 16.7731 19.5309C16.4849 19.0998 16.2096 18.6599 15.9282 18.2116C15.8329 18.0598 15.8907 17.8587 16.0522 17.781C16.4087 17.6095 16.7514 17.4448 17.0985 17.278Z"])</script><script>self.__next_f.push([1,"19:[\"$\",\"div\",\"Community\",{\"children\":[[\"$\",\"h3\",null,{\"className\":\"mb-3 text-[13px] font-medium tracking-[0.06em] text-muted-foreground uppercase\",\"children\":\"Community\"}],[\"$\",\"ul\",null,{\"className\":\"list-none p-0\",\"children\":[[\"$\",\"li\",\"GitHub\",{\"children\":[\"$\",\"a\",null,{\"href\":\"https://github.com/iii-hq/iii\",\"className\":\"group flex min-h-9 items-center gap-2.5 text-[14px] text-muted-foreground transition-[color] duration-150 ease-[ease] hover:text-foreground max-sm:min-h-11 focus-visible:rounded-xs focus-visible:outline-2 focus-visible:outline-offset-4 focus-visible:outline-foreground\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"children\":[[\"$\",\"svg\",null,{\"viewBox\":\"0 0 24 24\",\"fill\":\"currentColor\",\"aria-hidden\":true,\"focusable\":\"false\",\"className\":\"size-4 shrink-0\",\"children\":[\"$\",\"path\",null,{\"fillRule\":\"evenodd\",\"clipRule\":\"evenodd\",\"d\":\"$1c\"}]}],[\"$\",\"span\",null,{\"children\":\"GitHub\"}],[\"$\",\"$L16\",null,{\"ref\":\"$undefined\",\"iconNode\":[[\"path\",{\"d\":\"M7 7h10v10\",\"key\":\"1tivn9\"}],[\"path\",{\"d\":\"M7 17 17 7\",\"key\":\"1vkiza\"}]],\"className\":\"lucide-arrow-up-right ml-auto size-3 opacity-0 group-hover:opacity-100\",\"aria-hidden\":\"true\"}]]}]}],[\"$\",\"li\",\"Discord\",{\"children\":[\"$\",\"a\",null,{\"href\":\"https://discord.gg/iiidev\",\"className\":\"group flex min-h-9 items-center gap-2.5 text-[14px] text-muted-foreground transition-[color] duration-150 ease-[ease] hover:text-foreground max-sm:min-h-11 focus-visible:rounded-xs focus-visible:outline-2 focus-visible:outline-offset-4 focus-visible:outline-foreground\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"children\":[[\"$\",\"svg\",null,{\"viewBox\":\"0 0 24 24\",\"fill\":\"currentColor\",\"aria-hidden\":true,\"focusable\":\"false\",\"className\":\"size-4 shrink-0\",\"children\":[\"$\",\"path\",null,{\"fillRule\":\"evenodd\",\"clipRule\":\"evenodd\",\"d\":\"$1d\"}]}],\"$L1e\",\"$L1f\"]}]}],\"$L20\",\"$L21\"]}]]}]\n"])</script><script>self.__next_f.push([1,"22:T5b4,"])</script><script>self.__next_f.push([1,"M22.2819 9.8211a5.9847 5.9847 0 0 0-.5157-4.9108 6.0462 6.0462 0 0 0-6.5098-2.9A6.0651 6.0651 0 0 0 4.9807 4.1818a5.9847 5.9847 0 0 0-3.9977 2.9 6.0462 6.0462 0 0 0 .7427 7.0966 5.98 5.98 0 0 0 .511 4.9107 6.051 6.051 0 0 0 6.5146 2.9001A5.9847 5.9847 0 0 0 13.2599 24a6.0557 6.0557 0 0 0 5.7718-4.2058 5.9894 5.9894 0 0 0 3.9977-2.9001 6.0557 6.0557 0 0 0-.7475-7.0729zm-9.022 12.6081a4.4755 4.4755 0 0 1-2.8764-1.0408l.1419-.0804 4.7783-2.7582a.7948.7948 0 0 0 .3927-.6813v-6.7369l2.02 1.1686a.071.071 0 0 1 .038.052v5.5826a4.504 4.504 0 0 1-4.4945 4.4944zm-9.6607-4.1254a4.4708 4.4708 0 0 1-.5346-3.0137l.142.0852 4.783 2.7582a.7712.7712 0 0 0 .7806 0l5.8428-3.3685v2.3324a.0804.0804 0 0 1-.0332.0615L9.74 19.9502a4.4992 4.4992 0 0 1-6.1408-1.6464zM2.3408 7.8956a4.485 4.485 0 0 1 2.3655-1.9728V11.6a.7664.7664 0 0 0 .3879.6765l5.8144 3.3543-2.0201 1.1685a.0757.0757 0 0 1-.071 0l-4.8303-2.7865A4.504 4.504 0 0 1 2.3408 7.872zm16.5963 3.8558L13.1038 8.364 15.1192 7.2a.0757.0757 0 0 1 .071 0l4.8303 2.7913a4.4944 4.4944 0 0 1-.6765 8.1042v-5.6772a.79.79 0 0 0-.407-.667zm2.0107-3.0231l-.142-.0852-4.7735-2.7818a.7759.7759 0 0 0-.7854 0L9.409 9.2297V6.8974a.0662.0662 0 0 1 .0284-.0615l4.8303-2.7866a4.4992 4.4992 0 0 1 6.6802 4.66zM8.3065 12.863l-2.02-1.1638a.0804.0804 0 0 1-.038-.0567V6.0742a4.4992 4.4992 0 0 1 7.3757-3.4537l-.142.0805L8.704 5.459a.7948.7948 0 0 0-.3927.6813zm1.0976-2.3654l2.602-1.4998 2.6069 1.4998v2.9994l-2.5974 1.4997-2.6067-1.4997Z"])</script><script>self.__next_f.push([1,"1a:[\"$\",\"div\",\"Ask about iii\",{\"children\":[[\"$\",\"h3\",null,{\"className\":\"mb-3 text-[13px] font-medium tracking-[0.06em] text-muted-foreground uppercase\",\"children\":\"Ask about iii\"}],[\"$\",\"ul\",null,{\"className\":\"list-none p-0\",\"children\":[[\"$\",\"li\",\"ChatGPT\",{\"children\":[\"$\",\"a\",null,{\"href\":\"https://chatgpt.com/?q=Read%20https%3A%2F%2Fiii.dev%2Fllms.txt%20and%20explain%20iii%20to%20me%3A%20its%20three%20primitives%20(Worker%2C%20Trigger%2C%20Function)%2C%20what%20it%20replaces%20in%20a%20typical%20backend%2C%20and%20how%20I%20would%20install%20it%20and%20build%20a%20first%20service.\",\"className\":\"group flex min-h-9 items-center gap-2.5 text-[14px] text-muted-foreground transition-[color] duration-150 ease-[ease] hover:text-foreground max-sm:min-h-11 focus-visible:rounded-xs focus-visible:outline-2 focus-visible:outline-offset-4 focus-visible:outline-foreground\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"children\":[[\"$\",\"svg\",null,{\"viewBox\":\"0 0 24 24\",\"fill\":\"currentColor\",\"aria-hidden\":true,\"focusable\":\"false\",\"className\":\"size-4 shrink-0\",\"children\":[\"$\",\"path\",null,{\"d\":\"$22\"}]}],[\"$\",\"span\",null,{\"children\":\"ChatGPT\"}],[\"$\",\"$L16\",null,{\"ref\":\"$undefined\",\"iconNode\":\"$19:props:children:1:props:children:0:props:children:props:children:2:props:iconNode\",\"className\":\"lucide-arrow-up-right ml-auto size-3 opacity-0 group-hover:opacity-100\",\"aria-hidden\":\"true\"}]]}]}],[\"$\",\"li\",\"Claude\",{\"children\":[\"$\",\"a\",null,{\"href\":\"https://claude.ai/new?q=Read%20https%3A%2F%2Fiii.dev%2Fllms.txt%20and%20explain%20iii%20to%20me%3A%20its%20three%20primitives%20(Worker%2C%20Trigger%2C%20Function)%2C%20what%20it%20replaces%20in%20a%20typical%20backend%2C%20and%20how%20I%20would%20install%20it%20and%20build%20a%20first%20service.\",\"className\":\"group flex min-h-9 items-center gap-2.5 text-[14px] text-muted-foreground transition-[color] duration-150 ease-[ease] hover:text-foreground max-sm:min-h-11 focus-visible:rounded-xs focus-visible:outline-2 focus-visible:outline-offset-4 focus-visible:outline-foreground\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"children\":[[\"$\",\"svg\",null,{\"viewBox\":\"0 0 24 24\",\"fill\":\"currentColor\",\"aria-hidden\":true,\"focusable\":\"false\",\"className\":\"size-4 shrink-0\",\"children\":\"$L23\"}],\"$L24\",\"$L25\"]}]}],\"$L26\",\"$L27\"]}]]}]\n"])</script><script>self.__next_f.push([1,"1b:[\"$\",\"div\",null,{\"className\":\"mt-13 border-t border-line py-[22px] text-[13px] text-muted-foreground max-sm:mt-9\",\"children\":[\"$\",\"p\",null,{\"className\":\"flex items-center gap-2\",\"children\":[\"© \",2026,\" Motia LLC\",\" \",[\"$\",\"span\",null,{\"aria-hidden\":\"true\",\"children\":\"·\"}],\" \",[\"$\",\"a\",null,{\"href\":\"https://iii.dev/privacy-policy\",\"className\":\"hover:text-foreground focus-visible:rounded-xs focus-visible:outline-2 focus-visible:outline-offset-4 focus-visible:outline-foreground\",\"children\":\"Privacy\"}]]}]}]\n8:null\n"])</script><script>self.__next_f.push([1,"d:[[\"$\",\"title\",\"0\",{\"children\":\"iii/deepwork - iii worker\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Multi-agent workflows on iii with the kanban board as the task list: one lead per ticket with its own sub-agents, parallel waves, independent verify and review, and bounded rounds. Code goals get a dev flow: approved design and plan, test-first tickets each in its own git worktree, a branch review and a finish you choose.\"}],[\"$\",\"meta\",\"2\",{\"name\":\"robots\",\"content\":\"index, follow\"}],[\"$\",\"link\",\"3\",{\"rel\":\"canonical\",\"href\":\"https://workers.iii.dev/kits/iii/deepwork\"}],[\"$\",\"meta\",\"4\",{\"property\":\"og:title\",\"content\":\"iii/deepwork - iii kit\"}],[\"$\",\"meta\",\"5\",{\"property\":\"og:description\",\"content\":\"Multi-agent workflows on iii with the kanban board as the task list: one lead per ticket with its own sub-agents, parallel waves, independent verify and review, and bounded rounds. Code goals get a dev flow: approved design and plan, test-first tickets each in its own git worktree, a branch review and a finish you choose.\"}],[\"$\",\"meta\",\"6\",{\"property\":\"og:url\",\"content\":\"https://workers.iii.dev/kits/iii/deepwork\"}],[\"$\",\"meta\",\"7\",{\"name\":\"twitter:card\",\"content\":\"summary_large_image\"}],[\"$\",\"meta\",\"8\",{\"name\":\"twitter:title\",\"content\":\"iii/deepwork - iii kit\"}],[\"$\",\"meta\",\"9\",{\"name\":\"twitter:description\",\"content\":\"Multi-agent workflows on iii with the kanban board as the task list: one lead per ticket with its own sub-agents, parallel waves, independent verify and review, and bounded rounds. Code goals get a dev flow: approved design and plan, test-first tickets each in its own git worktree, a branch review and a finish you choose.\"}],[\"$\",\"link\",\"10\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?favicon.0n6vou73am7b3.ico\",\"sizes\":\"48x48\",\"type\":\"image/x-icon\"}],[\"$\",\"$L28\",\"11\",{}]]\n"])</script><script>self.__next_f.push([1,"1e:[\"$\",\"span\",null,{\"children\":\"Discord\"}]\n1f:[\"$\",\"$L16\",null,{\"ref\":\"$undefined\",\"iconNode\":\"$19:props:children:1:props:children:0:props:children:props:children:2:props:iconNode\",\"className\":\"lucide-arrow-up-right ml-auto size-3 opacity-0 group-hover:opacity-100\",\"aria-hidden\":\"true\"}]\n20:[\"$\",\"li\",\"Twitter / X\",{\"children\":[\"$\",\"a\",null,{\"href\":\"https://x.com/iiidevs\",\"className\":\"group flex min-h-9 items-center gap-2.5 text-[14px] text-muted-foreground transition-[color] duration-150 ease-[ease] hover:text-foreground max-sm:min-h-11 focus-visible:rounded-xs focus-visible:outline-2 focus-visible:outline-offset-4 focus-visible:outline-foreground\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"children\":[[\"$\",\"svg\",null,{\"viewBox\":\"0 0 24 24\",\"fill\":\"currentColor\",\"aria-hidden\":true,\"focusable\":\"false\",\"className\":\"size-4 shrink-0\",\"children\":[\"$\",\"path\",null,{\"transform\":\"translate(1.5 1.5) scale(0.875)\",\"d\":\"M18.901 1.153h3.68l-8.04 9.19L24 22.846h-7.406l-5.8-7.584-6.638 7.584H.474l8.6-9.83L0 1.154h7.594l5.243 6.932ZM17.61 20.644h2.039L6.486 3.24H4.298Z\"}]}],[\"$\",\"span\",null,{\"children\":\"Twitter / X\"}],[\"$\",\"$L16\",null,{\"ref\":\"$undefined\",\"iconNode\":\"$19:props:children:1:props:children:0:props:children:props:children:2:props:iconNode\",\"className\":\"lucide-arrow-up-right ml-auto size-3 opacity-0 group-hover:opacity-100\",\"aria-hidden\":\"true\"}]]}]}]\n21:[\"$\",\"li\",\"LinkedIn\",{\"children\":[\"$\",\"a\",null,{\"href\":\"https://www.linkedin.com/company/iii-dev\",\"className\":\"group flex min-h-9 items-center gap-2.5 text-[14px] text-muted-foreground transition-[color] duration-150 ease-[ease] hover:text-foreground max-sm:min-h-11 focus-visible:rounded-xs focus-visible:outline-2 focus-visible:outline-offset-4 focus-visible:outline-foreground\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"children\":[[\"$\",\"svg\",null,{\"viewBox\":\"0 0 24 24\",\"fill\":\"currentColor\",\"aria-hidden\":true,\"focusable\":\"false\",\"className\":\"size-4 shrink-0\",\"children\":[\"$\",\"path\",null,{\"fillRule\":\"evenodd\",\"clipRule\":\"evenodd\",\"d\":\"M5.4 2.5h13.2a2.9 2.9 0 0 1 2.9 2.9v13.2a2.9 2.9 0 0 1-2.9 2.9H5.4a2.9 2.9 0 0 1-2.9-2.9V5.4a2.9 2.9 0 0 1 2.9-2.9Zm2.33 7.1H5.6v7.9h2.13V9.6ZM6.67 6.1a1.24 1.24 0 1 0 0 2.48 1.24 1.24 0 0 0 0-2.48Zm11.73 7.1c0-2.26-1.21-3.31-2.82-3.31-1.3 0-1.88.72-2.21 1.22V9.6H11.2c.03.6 0 7.9 0 7.9h2.17v-4.41c0-.24.02-.47.09-.64.19-.47.62-.96 1.35-.96.95 0 1.33.73 1.33 1.79v4.22h2.26V13.2Z\"}]}],[\"$\",\"span\",null,{\"children\":\"LinkedIn\"}],[\"$\",\"$L16\",null,{\"ref\":\"$undefined\",\"iconNode\":\"$19:props:children:1:props:children:0:props:children:props:children:2:props:iconNode\",\"className\":\"lucide-arrow-up-right ml-auto size-3 opacity-0 group-hover:opacity-100\",\"aria-hidden\":\"true\"}]]}]}]\n29:T713,"])</script><script>self.__next_f.push([1,"m4.7144 15.9555 4.7174-2.6471.079-.2307-.079-.1275h-.2307l-.7893-.0486-2.6956-.0729-2.3375-.0971-2.2646-.1214-.5707-.1215-.5343-.7042.0546-.3522.4797-.3218.686.0608 1.5179.1032 2.2767.1578 1.6514.0972 2.4468.255h.3886l.0546-.1579-.1336-.0971-.1032-.0972L6.973 9.8356l-2.55-1.6879-1.3356-.9714-.7225-.4918-.3643-.4614-.1578-1.0078.6557-.7225.8803.0607.2246.0607.8925.686 1.9064 1.4754 2.4893 1.8336.3643.3035.1457-.1032.0182-.0728-.164-.2733-1.3539-2.4467-1.445-2.4893-.6435-1.032-.17-.6194c-.0607-.255-.1032-.4674-.1032-.7285L6.287.1335 6.6997 0l.9957.1336.419.3642.6192 1.4147 1.0018 2.2282 1.5543 3.0296.4553.8985.2429.8318.091.255h.1579v-.1457l.1275-1.706.2368-2.0947.2307-2.6957.0789-.7589.3764-.9107.7468-.4918.5828.2793.4797.686-.0668.4433-.2853 1.8517-.5586 2.9021-.3643 1.9429h.2125l.2429-.2429.9835-1.3053 1.6514-2.0643.7286-.8196.85-.9046.5464-.4311h1.0321l.759 1.1293-.34 1.1657-1.0625 1.3478-.8804 1.1414-1.2628 1.7-.7893 1.36.0729.1093.1882-.0183 2.8535-.607 1.5421-.2794 1.8396-.3157.8318.3886.091.3946-.3278.8075-1.967.4857-2.3072.4614-3.4364.8136-.0425.0304.0486.0607 1.5482.1457.6618.0364h1.621l3.0175.2247.7892.522.4736.6376-.079.4857-1.2142.6193-1.6393-.3886-3.825-.9107-1.3113-.3279h-.1822v.1093l1.0929 1.0686 2.0035 1.8092 2.5075 2.3314.1275.5768-.3218.4554-.34-.0486-2.2039-1.6575-.85-.7468-1.9246-1.621h-.1275v.17l.4432.6496 2.3436 3.5214.1214 1.0807-.17.3521-.6071.2125-.6679-.1214-1.3721-1.9246L14.38 17.959l-1.1414-1.9428-.1397.079-.674 7.2552-.3156.3703-.7286.2793-.6071-.4614-.3218-.7468.3218-1.4753.3886-1.9246.3157-1.53.2853-1.9004.17-.6314-.0121-.0425-.1397.0182-1.4328 1.9672-2.1796 2.9446-1.7243 1.8456-.4128.164-.7164-.3704.0667-.6618.4008-.5889 2.386-3.0357 1.4389-1.882.929-1.0868-.0062-.1579h-.0546l-6.3385 4.1164-1.1293.1457-.4857-.4554.0608-.7467.2307-.2429 1.9064-1.3114Z"])</script><script>self.__next_f.push([1,"23:[\"$\",\"path\",null,{\"d\":\"$29\"}]\n24:[\"$\",\"span\",null,{\"children\":\"Claude\"}]\n25:[\"$\",\"$L16\",null,{\"ref\":\"$undefined\",\"iconNode\":\"$19:props:children:1:props:children:0:props:children:props:children:2:props:iconNode\",\"className\":\"lucide-arrow-up-right ml-auto size-3 opacity-0 group-hover:opacity-100\",\"aria-hidden\":\"true\"}]\n"])</script><script>self.__next_f.push([1,"26:[\"$\",\"li\",\"Perplexity\",{\"children\":[\"$\",\"a\",null,{\"href\":\"https://www.perplexity.ai/search?q=Read%20https%3A%2F%2Fiii.dev%2Fllms.txt%20and%20explain%20iii%20to%20me%3A%20its%20three%20primitives%20(Worker%2C%20Trigger%2C%20Function)%2C%20what%20it%20replaces%20in%20a%20typical%20backend%2C%20and%20how%20I%20would%20install%20it%20and%20build%20a%20first%20service.\",\"className\":\"group flex min-h-9 items-center gap-2.5 text-[14px] text-muted-foreground transition-[color] duration-150 ease-[ease] hover:text-foreground max-sm:min-h-11 focus-visible:rounded-xs focus-visible:outline-2 focus-visible:outline-offset-4 focus-visible:outline-foreground\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"children\":[[\"$\",\"svg\",null,{\"viewBox\":\"0 0 24 24\",\"fill\":\"currentColor\",\"aria-hidden\":true,\"focusable\":\"false\",\"className\":\"size-4 shrink-0\",\"children\":[\"$\",\"path\",null,{\"d\":\"M22.3977 7.0896h-2.3106V.0676l-7.5094 6.3542V.1577h-1.1554v6.1966L4.4904 0v7.0896H1.6023v10.3976h2.8882V24l6.932-6.3591v6.2005h1.1554v-6.0469l6.9318 6.1807v-6.4879h2.8882V7.0896zm-3.4657-4.531v4.531h-5.355l5.355-4.531zm-13.2862.0676 4.8691 4.4634H5.6458V2.6262zM2.7576 16.332V8.245h7.8476l-6.1149 6.1147v1.9723H2.7576zm2.8882 5.0404v-3.8852h.0001v-2.6488l5.7763-5.7764v7.0111l-5.7764 5.2993zm7.0212-7.0212v-7.0111l5.7764 5.7764v2.6488h.0001v3.8852l-5.7765-5.2993zm8.9765 2.0444h-1.9727l-6.1149-6.1147h8.0876v6.1147z\"}]}],[\"$\",\"span\",null,{\"children\":\"Perplexity\"}],[\"$\",\"$L16\",null,{\"ref\":\"$undefined\",\"iconNode\":\"$19:props:children:1:props:children:0:props:children:props:children:2:props:iconNode\",\"className\":\"lucide-arrow-up-right ml-auto size-3 opacity-0 group-hover:opacity-100\",\"aria-hidden\":\"true\"}]]}]}]\n"])</script><script>self.__next_f.push([1,"27:[\"$\",\"li\",\"Grok\",{\"children\":[\"$\",\"a\",null,{\"href\":\"https://grok.com/?q=Read%20https%3A%2F%2Fiii.dev%2Fllms.txt%20and%20explain%20iii%20to%20me%3A%20its%20three%20primitives%20(Worker%2C%20Trigger%2C%20Function)%2C%20what%20it%20replaces%20in%20a%20typical%20backend%2C%20and%20how%20I%20would%20install%20it%20and%20build%20a%20first%20service.\",\"className\":\"group flex min-h-9 items-center gap-2.5 text-[14px] text-muted-foreground transition-[color] duration-150 ease-[ease] hover:text-foreground max-sm:min-h-11 focus-visible:rounded-xs focus-visible:outline-2 focus-visible:outline-offset-4 focus-visible:outline-foreground\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"children\":[[\"$\",\"svg\",null,{\"viewBox\":\"0 0 24 24\",\"fill\":\"currentColor\",\"aria-hidden\":true,\"focusable\":\"false\",\"className\":\"size-4 shrink-0\",\"children\":[\"$\",\"path\",null,{\"d\":\"M9.27 15.29l7.978-5.897c.391-.29.95-.177 1.137.272.98 2.369.542 5.215-1.41 7.169-1.951 1.954-4.667 2.382-7.149 1.406l-2.711 1.257c3.889 2.661 8.611 2.003 11.562-.953 2.341-2.344 3.066-5.539 2.388-8.42l.006.007c-.983-4.232.242-5.924 2.75-9.383.06-.082.12-.164.179-.248l-3.301 3.305v-.01L9.267 15.292M7.623 16.723c-2.792-2.67-2.31-6.801.071-9.184 1.761-1.763 4.647-2.483 7.166-1.425l2.705-1.25a7.808 7.808 0 00-1.829-1A8.975 8.975 0 005.984 5.83c-2.533 2.536-3.33 6.436-1.962 9.764 1.022 2.487-.653 4.246-2.34 6.022-.599.63-1.199 1.259-1.682 1.925l7.62-6.815\"}]}],[\"$\",\"span\",null,{\"children\":\"Grok\"}],[\"$\",\"$L16\",null,{\"ref\":\"$undefined\",\"iconNode\":\"$19:props:children:1:props:children:0:props:children:props:children:2:props:iconNode\",\"className\":\"lucide-arrow-up-right ml-auto size-3 opacity-0 group-hover:opacity-100\",\"aria-hidden\":\"true\"}]]}]}]\n"])</script><script>self.__next_f.push([1,"2a:I[85143,[\"/_next/static/chunks/0bo4tx~_nrwwb.js?dpl=dpl_4dx6J4sdCC1diu65QuAyD1awL5Fy\",\"/_next/static/chunks/02q_l477hmi84.js?dpl=dpl_4dx6J4sdCC1diu65QuAyD1awL5Fy\",\"/_next/static/chunks/0g.iu.n6r6kbr.js?dpl=dpl_4dx6J4sdCC1diu65QuAyD1awL5Fy\",\"/_next/static/chunks/0tclp6.7qxzgs.js?dpl=dpl_4dx6J4sdCC1diu65QuAyD1awL5Fy\",\"/_next/static/chunks/0b71_6rlbzjzh.js?dpl=dpl_4dx6J4sdCC1diu65QuAyD1awL5Fy\"],\"KitVersionPicker\"]\n"])</script><script>self.__next_f.push([1,"5:[\"$\",\"div\",null,{\"className\":\"page-transition\",\"children\":[[\"$\",\"script\",null,{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"SoftwareSourceCode\\\",\\\"name\\\":\\\"iii/deepwork\\\",\\\"description\\\":\\\"Multi-agent workflows on iii with the kanban board as the task list: one lead per ticket with its own sub-agents, parallel waves, independent verify and review, and bounded rounds. Code goals get a dev flow: approved design and plan, test-first tickets each in its own git worktree, a branch review and a finish you choose.\\\",\\\"version\\\":\\\"0.1.1\\\",\\\"url\\\":\\\"https://workers.iii.dev/kits/iii/deepwork\\\",\\\"license\\\":\\\"Apache-2.0\\\",\\\"codeRepository\\\":\\\"https://github.com/iii-hq/workers/tree/main/kits/deepwork\\\",\\\"author\\\":{\\\"@type\\\":\\\"Person\\\",\\\"name\\\":\\\"iii\\\"}}\"}}],[\"$\",\"header\",null,{\"className\":\"flex items-end justify-between flex-wrap gap-x-8 gap-y-5 px-[22px] pt-12 pb-8 sm:px-9 sm:pt-16 sm:pb-10\",\"children\":[[\"$\",\"div\",null,{\"className\":\"min-w-0\",\"children\":[[\"$\",\"div\",null,{\"className\":\"mb-3 font-mono text-[10px] leading-[normal] uppercase tracking-[0.08em] text-muted-foreground\",\"children\":[[\"$\",\"$L13\",null,{\"href\":\"/kits\",\"className\":\"transition-colors hover:text-brand\",\"children\":\"registry / kits\"}],\" \",\"/\",\" \",[\"$\",\"$L13\",null,{\"href\":\"/kits/iii\",\"className\":\"transition-colors hover:text-brand\",\"children\":\"iii\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex items-center flex-wrap gap-x-3 gap-y-2\",\"children\":[[\"$\",\"h1\",null,{\"className\":\"text-[32px] sm:text-[40px] font-[550] leading-[1.1] tracking-[-0.04em] text-foreground text-balance\",\"children\":\"deepwork\"}],[\"$\",\"$L2a\",null,{\"version\":\"0.1.1\",\"tags\":[{\"key\":\"latest\",\"label\":\"latest\",\"detail\":\"v0.3.0\",\"href\":\"/kits/iii/deepwork\",\"current\":false}],\"versions\":[{\"key\":\"0.3.0\",\"label\":\"v0.3.0\",\"detail\":\"latest\",\"href\":\"/kits/iii/deepwork?version=0.3.0\",\"current\":false},{\"key\":\"0.2.1\",\"label\":\"v0.2.1\",\"detail\":\"1d ago\",\"href\":\"/kits/iii/deepwork?version=0.2.1\",\"current\":false},{\"key\":\"0.2.0\",\"label\":\"v0.2.0\",\"detail\":\"1d ago\",\"href\":\"/kits/iii/deepwork?version=0.2.0\",\"current\":false},{\"key\":\"0.1.1\",\"label\":\"v0.1.1\",\"detail\":\"1d ago\",\"href\":\"/kits/iii/deepwork?version=0.1.1\",\"current\":true},{\"key\":\"0.1.0\",\"label\":\"v0.1.0\",\"detail\":\"1d ago\",\"href\":\"/kits/iii/deepwork?version=0.1.0\",\"current\":false}]}],null]}],[\"$\",\"p\",null,{\"className\":\"mt-4 max-w-[60ch] text-[15px] leading-[1.7] text-muted-foreground text-pretty\",\"children\":\"Multi-agent workflows on iii with the kanban board as the task list: one lead per ticket with its own sub-agents, parallel waves, independent verify and review, and bounded rounds. Code goals get a dev flow: approved design and plan, test-first tickets each in its own git worktree, a branch review and a finish you choose.\"}]]}],null]}],[\"$\",\"div\",null,{\"className\":\"flex flex-col gap-y-4 px-[22px] pb-12 sm:px-9 sm:pb-14\",\"children\":[null,null,null,[\"$\",\"div\",null,{\"className\":\"overflow-hidden rounded-xl border border-line bg-paper\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex min-h-11 items-center justify-between gap-x-4 border-b border-line px-4 font-mono text-[10px] uppercase tracking-[0.08em] text-muted-foreground sm:px-5\",\"children\":[[\"$\",\"span\",null,{\"className\":\"inline-flex items-center gap-x-2\",\"children\":[[\"$\",\"svg\",null,{\"xmlns\":\"http://www.w3.org/2000/svg\",\"viewBox\":\"0 0 24 24\",\"width\":\"1em\",\"height\":\"1em\",\"fill\":\"currentColor\",\"focusable\":\"false\",\"aria-hidden\":true,\"className\":\"size-4 text-foreground\",\"children\":[\"$\",\"path\",null,{\"fillRule\":\"evenodd\",\"clipRule\":\"evenodd\",\"d\":\"M16.022 15.941H12.718C12.304 15.941 11.968 15.605 11.968 15.191C11.968 14.777 12.304 14.441 12.718 14.441H16.022C16.436 14.441 16.772 14.777 16.772 15.191C16.772 15.605 16.436 15.941 16.022 15.941ZM10.881 12.775L8.509 15.147C8.363 15.294 8.171 15.367 7.979 15.367C7.787 15.367 7.595 15.294 7.449 15.147C7.156 14.854 7.156 14.379 7.449 14.087L9.291 12.245L7.449 10.403C7.156 10.11 7.156 9.635 7.449 9.342C7.742 9.049 8.216 9.049 8.509 9.342L10.881 11.714C11.174 12.007 11.174 12.482 10.881 12.775ZM16.218 2.5H7.783C4.623 2.5 2.5 4.72 2.5 8.026V15.973C2.5 19.279 4.623 21.5 7.783 21.5H16.217C19.377 21.5 21.5 19.279 21.5 15.973V8.026C21.5 4.72 19.377 2.5 16.218 2.5Z\"}]}],\"Install\"]}],\"$L2b\"]}],\"$L2c\",\"$L2d\"]}]]}],\"$L2e\"]}]\n"])</script><script>self.__next_f.push([1,"2f:I[7225,[\"/_next/static/chunks/0bo4tx~_nrwwb.js?dpl=dpl_4dx6J4sdCC1diu65QuAyD1awL5Fy\",\"/_next/static/chunks/02q_l477hmi84.js?dpl=dpl_4dx6J4sdCC1diu65QuAyD1awL5Fy\",\"/_next/static/chunks/0g.iu.n6r6kbr.js?dpl=dpl_4dx6J4sdCC1diu65QuAyD1awL5Fy\",\"/_next/static/chunks/0tclp6.7qxzgs.js?dpl=dpl_4dx6J4sdCC1diu65QuAyD1awL5Fy\",\"/_next/static/chunks/0b71_6rlbzjzh.js?dpl=dpl_4dx6J4sdCC1diu65QuAyD1awL5Fy\"],\"KitInstallCommand\"]\n2b:[\"$\",\"span\",null,{\"className\":\"truncate\",\"children\":\"0.1.1\"}]\n"])</script><script>self.__next_f.push([1,"2c:[\"$\",\"div\",null,{\"className\":\"flex flex-col gap-y-5 px-4 py-5 sm:px-6 sm:py-6\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex flex-col gap-y-3\",\"children\":[[\"$\",\"p\",null,{\"className\":\"font-mono text-[11px] text-muted-foreground\",\"children\":\"# With the iii engine running\"}],[\"$\",\"$L2f\",null,{\"command\":\"iii trigger directory::download-kit kit=iii/deepwork@0.1.1\",\"kitId\":\"iii/deepwork\",\"version\":\"0.1.1\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex flex-wrap items-end justify-between gap-x-8 gap-y-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex flex-wrap items-end gap-x-8 gap-y-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex flex-col gap-y-0.5\",\"children\":[[\"$\",\"span\",null,{\"className\":\"text-[15px] font-[550] tracking-[-0.02em] text-foreground tabular-nums\",\"children\":\"8\"}],[\"$\",\"span\",null,{\"className\":\"text-[12px] text-muted-foreground\",\"children\":\"Installs\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex flex-col gap-y-0.5\",\"children\":[[\"$\",\"span\",null,{\"className\":\"text-[15px] font-[550] tracking-[-0.02em] text-foreground tabular-nums\",\"children\":\"6\"}],[\"$\",\"span\",null,{\"className\":\"text-[12px] text-muted-foreground\",\"children\":\"Last 7 days\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex flex-col gap-y-0.5\",\"children\":[[\"$\",\"span\",null,{\"className\":\"text-[15px] font-[550] tracking-[-0.02em] text-foreground tabular-nums\",\"children\":\"2\"}],[\"$\",\"span\",null,{\"className\":\"text-[12px] text-muted-foreground\",\"children\":\"Today\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex flex-col gap-y-1.5 text-foreground\",\"children\":[[\"$\",\"svg\",null,{\"role\":\"img\",\"aria-label\":\"Daily installs over the last 30 days\",\"aria-hidden\":\"$undefined\",\"viewBox\":\"0 0 140 20\",\"width\":140,\"height\":20,\"className\":\"overflow-visible\",\"children\":[[\"$\",\"line\",null,{\"x1\":0,\"y1\":19.5,\"x2\":140,\"y2\":19.5,\"stroke\":\"var(--line)\",\"strokeWidth\":1}],[\"$\",\"polyline\",null,{\"points\":\"0.00,20.00 4.83,20.00 9.66,20.00 14.48,20.00 19.31,20.00 24.14,20.00 28.97,20.00 33.79,20.00 38.62,20.00 43.45,20.00 48.28,20.00 53.10,20.00 57.93,20.00 62.76,20.00 67.59,20.00 72.41,20.00 77.24,20.00 82.07,20.00 86.90,20.00 91.72,20.00 96.55,20.00 101.38,20.00 106.21,20.00 111.03,20.00 115.86,20.00 120.69,20.00 125.52,20.00 130.34,20.00 135.17,16.00 140.00,0.00\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":1.5,\"strokeLinejoin\":\"round\",\"strokeLinecap\":\"round\",\"vectorEffect\":\"non-scaling-stroke\"}]]}],[\"$\",\"span\",null,{\"className\":\"text-[12px] text-muted-foreground\",\"children\":[30,\" days\"]}]]}]]}],[\"$\",\"div\",null,{\"className\":\"flex flex-wrap items-center gap-x-4 gap-y-2 text-[13px]\",\"children\":[[\"$\",\"$L13\",null,{\"href\":\"/kits/iii/deepwork?version=0.1.1\u0026tab=profiles\",\"scroll\":false,\"className\":\"inline-flex items-baseline gap-x-1 whitespace-nowrap text-muted-foreground transition-colors hover:text-foreground\",\"children\":[[\"$\",\"strong\",null,{\"className\":\"font-medium tabular-nums text-foreground\",\"children\":\"6\"}],\" \",\"profiles\"]}],[\"$\",\"$L13\",null,{\"href\":\"/kits/iii/deepwork?version=0.1.1\u0026tab=skills\",\"scroll\":false,\"className\":\"inline-flex items-baseline gap-x-1 whitespace-nowrap text-muted-foreground transition-colors hover:text-foreground\",\"children\":[[\"$\",\"strong\",null,{\"className\":\"font-medium tabular-nums text-foreground\",\"children\":\"0\"}],\" \",\"skills\"]}],[\"$\",\"$L13\",null,{\"href\":\"/kits/iii/deepwork?version=0.1.1\u0026tab=workers\",\"scroll\":false,\"className\":\"inline-flex items-baseline gap-x-1 whitespace-nowrap text-muted-foreground transition-colors hover:text-foreground\",\"children\":[[\"$\",\"strong\",null,{\"className\":\"font-medium tabular-nums text-foreground\",\"children\":\"5\"}],\" \",\"workers\"]}],[\"$\",\"$L13\",null,{\"href\":\"/kits/iii/deepwork?version=0.1.1\u0026tab=versions\",\"scroll\":false,\"className\":\"inline-flex items-baseline gap-x-1 whitespace-nowrap text-muted-foreground transition-colors hover:text-foreground\",\"children\":[[\"$\",\"strong\",null,{\"className\":\"font-medium tabular-nums text-foreground\",\"children\":\"5\"}],\" \",\"versions\"]}]]}]]}],[\"$\",\"div\",null,{\"className\":\"flex flex-wrap items-center gap-x-3 gap-y-2.5 border-t border-line pt-5 text-[13px]\",\"children\":[[\"$\",\"span\",null,{\"data-type-mark\":\"kit\",\"className\":\"inline-flex items-center gap-x-1.5 shrink-0\",\"children\":[\"$L30\",\"$L31\"]}],\"$L32\",\"$L33\",\"$L34\",[\"$L35\"],\"$L36\"]}]]}]\n"])</script><script>self.__next_f.push([1,"2d:[\"$\",\"div\",null,{\"className\":\"flex flex-col gap-2 border-t border-line px-4 py-3 text-[12px] text-muted-foreground sm:px-6 @2xl:flex-row @2xl:items-center @2xl:justify-between\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex min-w-0 items-center gap-x-2\",\"children\":[[\"$\",\"span\",null,{\"className\":\"shrink-0\",\"children\":\"Repo\"}],[\"$\",\"a\",null,{\"href\":\"https://github.com/iii-hq/workers/tree/main/kits/deepwork\",\"target\":\"_blank\",\"rel\":\"noreferrer\",\"className\":\"inline-flex min-w-0 items-center gap-x-1 font-mono text-foreground transition-colors duration-150 hover:text-brand text-[12px]\",\"children\":[[\"$\",\"span\",null,{\"className\":\"truncate\",\"children\":\"iii-hq/workers/tree/main/kits/deepwork\"}],[\"$\",\"$L16\",null,{\"ref\":\"$undefined\",\"iconNode\":\"$19:props:children:1:props:children:0:props:children:props:children:2:props:iconNode\",\"className\":\"lucide-arrow-up-right size-3 shrink-0\",\"aria-hidden\":true}]]}]]}],[\"$\",\"p\",null,{\"className\":\"leading-[1.5] @2xl:max-w-[58ch] @2xl:text-right\",\"children\":\"Exact versions are immutable. Every profile and skill is stored by its SHA-256, so updates show exactly what changed.\"}]]}]\n"])</script><script>self.__next_f.push([1,"2e:[\"$\",\"div\",null,{\"className\":\"px-[22px] pb-20 sm:px-9\",\"children\":[\"$\",\"div\",null,{\"className\":\"grid grid-cols-1 gap-10 @4xl:grid-cols-[minmax(0,1fr)_300px]\",\"children\":[[\"$\",\"div\",null,{\"className\":\"min-w-0 flex flex-col gap-y-6 @container/main\",\"children\":[[\"$\",\"nav\",null,{\"aria-label\":\"sections\",\"className\":\"overflow-x-auto overflow-y-hidden overscroll-x-contain [scrollbar-width:none] [\u0026::-webkit-scrollbar]:hidden\",\"children\":[\"$\",\"div\",null,{\"role\":\"tablist\",\"className\":\"flex min-w-max gap-6 shadow-[inset_0_-1px_0_var(--line)]\",\"children\":[[\"$\",\"$L13\",\"readme\",{\"href\":\"/kits/iii/deepwork?version=0.1.1\",\"scroll\":false,\"role\":\"tab\",\"aria-selected\":true,\"aria-current\":\"page\",\"className\":\"relative inline-flex items-center gap-x-2 min-h-11 text-[14px] capitalize whitespace-nowrap transition-colors font-[550] text-foreground after:absolute after:inset-x-0 after:bottom-0 after:h-0.5 after:bg-foreground\",\"children\":[\"readme\",null]}],[\"$\",\"$L13\",\"profiles\",{\"href\":\"/kits/iii/deepwork?version=0.1.1\u0026tab=profiles\",\"scroll\":false,\"role\":\"tab\",\"aria-selected\":false,\"aria-current\":\"$undefined\",\"className\":\"relative inline-flex items-center gap-x-2 min-h-11 text-[14px] capitalize whitespace-nowrap transition-colors text-muted-foreground hover:text-foreground\",\"children\":[\"profiles\",[\" \",[\"$\",\"span\",null,{\"className\":\"inline-flex h-5 min-w-[22px] items-center justify-center rounded-md bg-code px-1.5 font-mono text-[11px] font-normal tabular-nums text-muted-foreground\",\"children\":6}]]]}],[\"$\",\"$L13\",\"skills\",{\"href\":\"/kits/iii/deepwork?version=0.1.1\u0026tab=skills\",\"scroll\":false,\"role\":\"tab\",\"aria-selected\":false,\"aria-current\":\"$undefined\",\"className\":\"relative inline-flex items-center gap-x-2 min-h-11 text-[14px] capitalize whitespace-nowrap transition-colors text-muted-foreground hover:text-foreground\",\"children\":[\"skills\",[\" \",[\"$\",\"span\",null,{\"className\":\"inline-flex h-5 min-w-[22px] items-center justify-center rounded-md bg-code px-1.5 font-mono text-[11px] font-normal tabular-nums text-muted-foreground\",\"children\":0}]]]}],[\"$\",\"$L13\",\"workers\",{\"href\":\"/kits/iii/deepwork?version=0.1.1\u0026tab=workers\",\"scroll\":false,\"role\":\"tab\",\"aria-selected\":false,\"aria-current\":\"$undefined\",\"className\":\"relative inline-flex items-center gap-x-2 min-h-11 text-[14px] capitalize whitespace-nowrap transition-colors text-muted-foreground hover:text-foreground\",\"children\":[\"workers\",[\" \",[\"$\",\"span\",null,{\"className\":\"inline-flex h-5 min-w-[22px] items-center justify-center rounded-md bg-code px-1.5 font-mono text-[11px] font-normal tabular-nums text-muted-foreground\",\"children\":5}]]]}],[\"$\",\"$L13\",\"versions\",{\"href\":\"/kits/iii/deepwork?version=0.1.1\u0026tab=versions\",\"scroll\":false,\"role\":\"tab\",\"aria-selected\":false,\"aria-current\":\"$undefined\",\"className\":\"relative inline-flex items-center gap-x-2 min-h-11 text-[14px] capitalize whitespace-nowrap transition-colors text-muted-foreground hover:text-foreground\",\"children\":[\"versions\",[\" \",[\"$\",\"span\",null,{\"className\":\"inline-flex h-5 min-w-[22px] items-center justify-center rounded-md bg-code px-1.5 font-mono text-[11px] font-normal tabular-nums text-muted-foreground\",\"children\":5}]]]}],[\"$\",\"$L13\",\"changes\",{\"href\":\"/kits/iii/deepwork?version=0.1.1\u0026tab=changes\",\"scroll\":false,\"role\":\"tab\",\"aria-selected\":false,\"aria-current\":\"$undefined\",\"className\":\"relative inline-flex items-center gap-x-2 min-h-11 text-[14px] capitalize whitespace-nowrap transition-colors text-muted-foreground hover:text-foreground\",\"children\":[\"changes\",null]}]]}]}],[\"$\",\"section\",null,{\"className\":\"flex flex-col gap-y-3\",\"children\":[[\"$\",\"div\",null,{\"className\":\"-mb-1 flex items-center justify-end gap-x-4\",\"children\":[[\"$\",\"h2\",null,{\"className\":\"sr-only\",\"children\":\"Readme\"}],[\"$\",\"a\",null,{\"href\":\"https://api.workers.iii.dev/k/iii/deepwork/readme?version=0.1.1\",\"target\":\"_blank\",\"rel\":\"noreferrer\",\"className\":\"inline-flex min-h-8 items-center gap-x-[7px] text-[13px] font-medium text-foreground transition-colors hover:text-brand\",\"children\":[\"Open as markdown\",\"$L37\"]}]]}],\"$L38\"]}],null,null,null,null,null]}],\"$L39\"]}]}]\n"])</script><script>self.__next_f.push([1,":HL[\"https://iii.dev/docs/_mintlify/favicons/motiadev/AFkVbz_UcSL_5jsm/_generated/favicon/apple-touch-icon.png\",\"image\"]\n3a:T4a7,M5.9199,11.4697 C7.3299,11.4697 8.4599,12.6107 8.4599,14.0307 L8.4599,14.0307 L8.4599,17.4397 C8.4599,18.8497 7.3299,19.9997 5.9199,19.9997 L5.9199,19.9997 L2.5399,19.9997 C1.1399,19.9997 -0.0001,18.8497 -0.0001,17.4397 L-0.0001,17.4397 L-0.0001,14.0307 C-0.0001,12.6107 1.1399,11.4697 2.5399,11.4697 L2.5399,11.4697 Z M17.46,11.4697 C18.86,11.4697 20,12.6107 20,14.0307 L20,14.0307 L20,17.4397 C20,18.8497 18.86,19.9997 17.46,19.9997 L17.46,19.9997 L14.08,19.9997 C12.67,19.9997 11.54,18.8497 11.54,17.4397 L11.54,17.4397 L11.54,14.0307 C11.54,12.6107 12.67,11.4697 14.08,11.4697 L14.08,11.4697 Z M5.9199,-9.32587341e-14 C7.3299,-9.32587341e-14 8.4599,1.15 8.4599,2.561 L8.4599,2.561 L8.4599,5.97 C8.4599,7.39 7.3299,8.53 5.9199,8.53 L5.9199,8.53 L2.5399,8.53 C1.1399,8.53 -0.0001,7.39 -0.0001,5.97 L-0.0001,5.97 L-0.0001,2.561 C-0.0001,1.15 1.1399,-9.32587341e-14 2.5399,-9.32587341e-14 L2.5399,-9.32587341e-14 Z M17.46,-9.32587341e-14 C18.86,-9.32587341e-14 20,1.15 20,2.561 L20,2.561 L20,5.97 C20,7.39 18.86,8.53 17.46,8.53 L17.46,8.53 L14.08,8.53 C12.67,8.53 11.54,7.39 11.54,5.97 L11.54,5.97 L11.54,2.561 C11.54,1.15 12.67,-9.32587341e-14 14.08,-9.32587341e-14 L14.08,-9.32587341e-14 Z30:[\"$\",\"svg\",null,{\"xmlns\":\"http://www.w3.org/2000/svg\",\"viewBox\":\"0 0 24 24\",\"width\":\"1em\",\"height\":\"1em\",\"fill\":\"currentColor\",\"focusable\":\"false\",\"aria-hidden\":\"true\",\"className\":\"shrink-0 text-foreground size-3.5\",\"children\":[\"$\",\"g\",null,{\"transform\":\"translate(2 2)\",\"children\":[\"$\",\"path\",null,{\"d\":\"$3a\"}]}]}]\n31:[\"$\",\"span\",null,{\"className\":\"text-[12px] font-medium leading-none text-muted-foreground\",\"children\":\"Kit\"}]\n32:[\"$\",\"span\",null,{\"aria-hidden\":true,\"className\":\"text-muted-foreground/60\",\"children\":\"·\"}]\n3b:T5da,"])</script><script>self.__next_f.push([1,"M15.5837 10.5577L11.5107 14.6327C11.3697 14.7737 11.1787 14.8527 10.9797 14.8527C10.7807 14.8527 10.5897 14.7737 10.4497 14.6327L8.47274 12.6527C8.18075 12.3587 8.18075 11.8837 8.47375 11.5907C8.76775 11.2987 9.24174 11.2997 9.53475 11.5917L10.9807 13.0407L14.5227 9.49667C14.8157 9.20367 15.2907 9.20367 15.5837 9.49667C15.8767 9.78967 15.8767 10.2647 15.5837 10.5577ZM20.7037 10.0857L20.0047 9.38667C19.6857 9.06667 19.5107 8.64067 19.5107 8.18967V7.18967C19.5107 5.70067 18.2987 4.48967 16.8107 4.48967H15.8087C15.3557 4.48967 14.9307 4.31467 14.6127 3.99667L13.9017 3.28667C12.8447 2.23867 11.1327 2.24367 10.0837 3.29767L9.38674 3.99667C9.06574 4.31567 8.64075 4.49067 8.18875 4.49067H7.18775C5.71675 4.49167 4.51675 5.67567 4.48975 7.14167C4.48874 7.15767 4.48775 7.17367 4.48775 7.19067V8.18767C4.48775 8.63967 4.31275 9.06467 3.99375 9.38367L3.28575 10.0927C3.28475 10.0957 3.28175 10.0967 3.27975 10.0987C2.23475 11.1567 2.24375 12.8687 3.29675 13.9117L3.99575 14.6127C4.31375 14.9317 4.48975 15.3557 4.48975 15.8077V16.8127C4.48975 18.3007 5.69975 19.5117 7.18775 19.5117H8.18675C8.63975 19.5127 9.06475 19.6877 9.38275 20.0047L10.0957 20.7157C10.6037 21.2207 11.2777 21.4987 11.9947 21.4987H12.0067C12.7277 21.4957 13.4037 21.2117 13.9097 20.7027L14.6107 20.0027C14.9257 19.6887 15.3617 19.5087 15.8067 19.5087H16.8127C18.2977 19.5087 19.5087 18.2997 19.5117 16.8127V15.8097C19.5117 15.3587 19.6867 14.9337 20.0037 14.6147L20.7147 13.9037C21.7647 12.8477 21.7587 11.1347 20.7037 10.0857Z"])</script><script>self.__next_f.push([1,"33:[\"$\",\"$L13\",null,{\"href\":\"/kits/iii\",\"className\":\"group inline-flex items-center gap-x-2 min-w-0\",\"children\":[[\"$\",\"img\",null,{\"src\":\"https://iii.dev/docs/_mintlify/favicons/motiadev/AFkVbz_UcSL_5jsm/_generated/favicon/apple-touch-icon.png\",\"alt\":\"\",\"className\":\"size-5 rounded-full object-cover\"}],[\"$\",\"span\",null,{\"className\":\"text-muted-foreground\",\"children\":\"by\"}],[\"$\",\"span\",null,{\"className\":\"font-medium text-foreground transition-colors group-hover:text-brand\",\"children\":\"iii\"}],[\"$\",\"svg\",null,{\"xmlns\":\"http://www.w3.org/2000/svg\",\"viewBox\":\"0 0 24 24\",\"width\":\"1em\",\"height\":\"1em\",\"fill\":\"currentColor\",\"focusable\":\"false\",\"aria-hidden\":\"$undefined\",\"className\":\"size-[13px] text-verified\",\"aria-label\":\"Verified author\",\"children\":[\"$\",\"path\",null,{\"fillRule\":\"evenodd\",\"clipRule\":\"evenodd\",\"d\":\"$3b\"}]}]]}]\n34:[[\"$\",\"span\",null,{\"aria-hidden\":true,\"className\":\"text-muted-foreground/60\",\"children\":\"·\"}],[\"$\",\"span\",null,{\"className\":\"text-muted-foreground\",\"children\":\"Apache-2.0\"}]]\n35:[\"$\",\"$L13\",\"latest\",{\"href\":\"/kits/iii/deepwork\",\"scroll\":false,\"aria-current\":\"$undefined\",\"className\":\"inline-flex h-[22px] items-center gap-x-1.5 rounded-md border border-line bg-background px-2 font-mono text-[11px] text-muted-foreground transition-colors hover:text-foreground aria-[current=true]:border-[color-mix(in_srgb,var(--foreground)_35%,var(--line))] aria-[current=true]:text-foreground\",\"children\":[\"latest\",[\"$\",\"span\",null,{\"className\":\"tabular-nums text-foreground\",\"children\":\"0.3.0\"}]]}]\n"])</script><script>self.__next_f.push([1,"36:[\"$\",\"div\",null,{\"className\":\"flex flex-wrap items-center gap-1.5 @2xl:ml-auto\",\"children\":[[\"$\",\"$L13\",\"orchestration\",{\"href\":\"/kits?tag=orchestration\",\"className\":\"rounded-md transition-opacity hover:opacity-80 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-brand\",\"children\":[\"$\",\"span\",null,{\"className\":\"inline-flex h-6 items-center rounded-md bg-[color-mix(in_srgb,var(--foreground)_6%,transparent)] px-2 font-mono text-[13px] lowercase text-muted-foreground hover:text-foreground\",\"children\":\"orchestration\"}]}],[\"$\",\"$L13\",\"sub-agents\",{\"href\":\"/kits?tag=sub-agents\",\"className\":\"rounded-md transition-opacity hover:opacity-80 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-brand\",\"children\":[\"$\",\"span\",null,{\"className\":\"inline-flex h-6 items-center rounded-md bg-[color-mix(in_srgb,var(--foreground)_6%,transparent)] px-2 font-mono text-[13px] lowercase text-muted-foreground hover:text-foreground\",\"children\":\"sub-agents\"}]}],[\"$\",\"$L13\",\"kanban\",{\"href\":\"/kits?tag=kanban\",\"className\":\"rounded-md transition-opacity hover:opacity-80 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-brand\",\"children\":[\"$\",\"span\",null,{\"className\":\"inline-flex h-6 items-center rounded-md bg-[color-mix(in_srgb,var(--foreground)_6%,transparent)] px-2 font-mono text-[13px] lowercase text-muted-foreground hover:text-foreground\",\"children\":\"kanban\"}]}],[\"$\",\"$L13\",\"verification\",{\"href\":\"/kits?tag=verification\",\"className\":\"rounded-md transition-opacity hover:opacity-80 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-brand\",\"children\":[\"$\",\"span\",null,{\"className\":\"inline-flex h-6 items-center rounded-md bg-[color-mix(in_srgb,var(--foreground)_6%,transparent)] px-2 font-mono text-[13px] lowercase text-muted-foreground hover:text-foreground\",\"children\":\"verification\"}]}],[\"$\",\"$L13\",\"workflows\",{\"href\":\"/kits?tag=workflows\",\"className\":\"rounded-md transition-opacity hover:opacity-80 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-brand\",\"children\":[\"$\",\"span\",null,{\"className\":\"inline-flex h-6 items-center rounded-md bg-[color-mix(in_srgb,var(--foreground)_6%,transparent)] px-2 font-mono text-[13px] lowercase text-muted-foreground hover:text-foreground\",\"children\":\"workflows\"}]}]]}]\n"])</script><script>self.__next_f.push([1,"37:[\"$\",\"$L16\",null,{\"ref\":\"$undefined\",\"iconNode\":\"$19:props:children:1:props:children:0:props:children:props:children:2:props:iconNode\",\"className\":\"lucide-arrow-up-right size-3.5\",\"aria-hidden\":true}]\n"])</script><script>self.__next_f.push([1,"39:[\"$\",\"aside\",null,{\"className\":\"flex flex-col gap-y-4 @4xl:sticky @4xl:top-20 @4xl:self-start @4xl:max-h-[calc(100dvh-6rem)] @4xl:overflow-y-auto\",\"children\":[[\"$\",\"section\",null,{\"id\":\"$undefined\",\"className\":\"shrink-0 overflow-hidden rounded-xl border border-line bg-paper scroll-mt-20\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex min-h-11 items-center justify-between gap-x-3 border-b border-line px-4\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-mono text-[10px] uppercase tracking-[0.08em] text-muted-foreground\",\"children\":\"Details\"}],\"$undefined\"]}],[\"$\",\"div\",null,{\"className\":\"p-4 flex flex-col gap-y-3\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-baseline justify-between text-[13px] gap-x-3 min-w-0\",\"children\":[[\"$\",\"span\",null,{\"className\":\"text-muted-foreground shrink-0\",\"children\":\"Version\"}],[\"$\",\"span\",null,{\"className\":\"text-foreground truncate text-right min-w-0 font-mono text-[12px] tabular-nums\",\"title\":\"$undefined\",\"children\":[\"v\",\"0.1.1\"]}]]}],[\"$\",\"div\",null,{\"className\":\"flex items-baseline justify-between text-[13px] gap-x-3 min-w-0\",\"children\":[[\"$\",\"span\",null,{\"className\":\"text-muted-foreground shrink-0\",\"children\":\"Published\"}],[\"$\",\"span\",null,{\"className\":\"text-foreground truncate text-right min-w-0 font-mono text-[12px] tabular-nums\",\"title\":\"2026-10-15T20:40:16.170Z\",\"children\":\"2026-10-15 · 1d ago\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex items-baseline justify-between text-[13px] gap-x-3 min-w-0\",\"children\":[[\"$\",\"span\",null,{\"className\":\"text-muted-foreground shrink-0\",\"children\":\"License\"}],[\"$\",\"span\",null,{\"className\":\"text-foreground truncate text-right min-w-0\",\"title\":\"$undefined\",\"children\":\"Apache-2.0\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex items-baseline justify-between text-[13px] gap-x-3 min-w-0\",\"children\":[[\"$\",\"span\",null,{\"className\":\"text-muted-foreground shrink-0\",\"children\":\"Kit ID\"}],[\"$\",\"span\",null,{\"className\":\"text-foreground truncate text-right min-w-0 font-mono text-[12px] tabular-nums\",\"title\":\"iii/deepwork\",\"children\":\"iii/deepwork\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex items-baseline justify-between gap-x-3 min-w-0 text-[13px]\",\"children\":[[\"$\",\"span\",null,{\"className\":\"shrink-0 text-muted-foreground\",\"children\":\"Repo\"}],[\"$\",\"a\",null,{\"href\":\"https://github.com/iii-hq/workers/tree/main/kits/deepwork\",\"target\":\"_blank\",\"rel\":\"noreferrer\",\"className\":\"inline-flex min-w-0 items-center gap-x-1 font-mono text-foreground transition-colors duration-150 hover:text-brand justify-end text-right text-[12px]\",\"children\":[[\"$\",\"span\",null,{\"className\":\"truncate\",\"children\":\"iii-hq/workers/tree/main/kits/deepwork\"}],[\"$\",\"$L16\",null,{\"ref\":\"$undefined\",\"iconNode\":\"$19:props:children:1:props:children:0:props:children:props:children:2:props:iconNode\",\"className\":\"lucide-arrow-up-right size-3 shrink-0\",\"aria-hidden\":true}]]}]]}]]}]]}],null,null,[\"$\",\"section\",null,{\"id\":\"$undefined\",\"className\":\"shrink-0 overflow-hidden rounded-xl border border-line bg-paper scroll-mt-20\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex min-h-11 items-center justify-between gap-x-3 border-b border-line px-4\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-mono text-[10px] uppercase tracking-[0.08em] text-muted-foreground\",\"children\":\"Author\"}],\"$undefined\"]}],[\"$\",\"div\",null,{\"className\":\"p-4 flex flex-col gap-y-4\",\"children\":[[\"$\",\"$L13\",null,{\"href\":\"/kits/iii\",\"className\":\"group flex items-center gap-x-2.5 min-w-0 text-[13px]\",\"children\":[[\"$\",\"img\",null,{\"src\":\"https://iii.dev/docs/_mintlify/favicons/motiadev/AFkVbz_UcSL_5jsm/_generated/favicon/apple-touch-icon.png\",\"alt\":\"\",\"className\":\"size-7 shrink-0 rounded-full object-cover\"}],[\"$\",\"span\",null,{\"className\":\"flex min-w-0 flex-col\",\"children\":[[\"$\",\"span\",null,{\"className\":\"inline-flex items-center gap-x-1 min-w-0\",\"children\":[[\"$\",\"span\",null,{\"className\":\"truncate font-medium text-foreground transition-colors group-hover:text-brand\",\"children\":\"iii\"}],[\"$\",\"svg\",null,{\"xmlns\":\"http://www.w3.org/2000/svg\",\"viewBox\":\"0 0 24 24\",\"width\":\"1em\",\"height\":\"1em\",\"fill\":\"currentColor\",\"focusable\":\"false\",\"aria-hidden\":\"$undefined\",\"className\":\"size-[13px] shrink-0 text-verified\",\"aria-label\":\"verified\",\"children\":\"$33:props:children:3:props:children\"}]]}],null]}]]}],null,null]}]]}]]}]\n"])</script><script>self.__next_f.push([1,"3c:T62c4,"])</script><script>self.__next_f.push([1,"\u003ch1 id=\"ultracode\" class=\"scroll-mt-20\"\u003eultracode\u003c/h1\u003e\n\u003cp\u003eDynamic multi-agent workflows on iii, with the kanban board as the task manager. Give \u003cstrong\u003eUltracode\u003c/strong\u003e a goal: it breaks the goal into tickets, gives each ticket a lead that runs it through its phases with its own sub-agents, runs the leads in parallel in bounded waves, and loops in bounded rounds until the goal is done, nothing is left, progress stalls, rounds run out or the budget is spent.\u003c/p\u003e\n\u003cp\u003eA goal that changes code in a git repository gets the \u003ca href=\"https://github.com/obra/superpowers\"\u003esuperpowers\u003c/a\u003e flow: you approve the design and the plan, every code ticket (\u003ccode class=\"readme-inline-code\"\u003eultracode-impl\u003c/code\u003e) is built test-first in a git worktree with one commit, an independent verifier and a code reviewer check every commit, the whole branch is reviewed, and you choose how it finishes. Reading and research tickets (\u003ccode class=\"readme-inline-code\"\u003eultracode-worker\u003c/code\u003e) in the same run are done and verified without a commit.\u003c/p\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eProfile\u003c/th\u003e\n\u003cth\u003eRole\u003c/th\u003e\n\u003cth\u003eModel\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\u003ctr\u003e\n\u003ctd\u003e\u003cstrong\u003eultracode\u003c/strong\u003e\u003c/td\u003e\n\u003ctd\u003ethe orchestrator you talk to; the only writer of ticket fields\u003c/td\u003e\n\u003ctd\u003eyours (the session\u0026#39;s)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003cstrong\u003eultracode-lead\u003c/strong\u003e (hidden)\u003c/td\u003e\n\u003ctd\u003eruns one ticket through its phases and reports back\u003c/td\u003e\n\u003ctd\u003epin a fast, cheap model\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003cstrong\u003eultracode-worker\u003c/strong\u003e (hidden)\u003c/td\u003e\n\u003ctd\u003ethe work phase: research, reading, analysis\u003c/td\u003e\n\u003ctd\u003eset one, or inherit\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003cstrong\u003eultracode-impl\u003c/strong\u003e (hidden)\u003c/td\u003e\n\u003ctd\u003ethe tests and code phases: failing test, least code, commit\u003c/td\u003e\n\u003ctd\u003epin a strong model\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003cstrong\u003eultracode-verifier\u003c/strong\u003e (hidden)\u003c/td\u003e\n\u003ctd\u003ejudge (one per model), critic and branch review; base of the check tiers\u003c/td\u003e\n\u003ctd\u003enone (nor on Default): judges pick per spawn\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003cstrong\u003eultracode-qa\u003c/strong\u003e (hidden)\u003c/td\u003e\n\u003ctd\u003everify and code review in each check (the default \u003ccode class=\"readme-inline-code\"\u003everifier\u003c/code\u003e)\u003c/td\u003e\n\u003ctd\u003epin a mid-tier model\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\u003c/table\u003e\n\u003cp\u003eNo \u003ccode class=\"readme-inline-code\"\u003eworkflow\u003c/code\u003e worker, code runner or fp pipeline: just \u003ccode class=\"readme-inline-code\"\u003eharness\u003c/code\u003e, \u003ccode class=\"readme-inline-code\"\u003estate\u003c/code\u003e, \u003ccode class=\"readme-inline-code\"\u003ekanban\u003c/code\u003e and \u003ccode class=\"readme-inline-code\"\u003eide\u003c/code\u003e (the shell and file functions the tiers preload).\u003c/p\u003e\n\u003ch2 id=\"install\" class=\"scroll-mt-20\"\u003eInstall\u003c/h2\u003e\n\u003cpre\u003e\u003ccode\u003eiii trigger directory::download-kit kit=iii/ultracode apply=true --timeout-ms 1200000\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003ccode class=\"readme-inline-code\"\u003eapply=true\u003c/code\u003e installs at once when the plan has no warnings, blocks or pending decisions (for example, a profile with the same id already exists). Otherwise the reply is a plan: review and apply it in the ADE (Directory → Kits), or run \u003ccode class=\"readme-inline-code\"\u003eiii trigger directory::kits::apply plan_id=\u003cplan_id from the reply\u003e --timeout-ms 1200000\u003c/code\u003e. Applying adds or updates workers through Compose and can take minutes; if the command still times out, the apply keeps running: check Directory → Kits instead of re-running it.\u003c/p\u003e\n\u003cp\u003eOnce it is applied, pin the models of the tiers. The kit ships them without \u003ccode class=\"readme-inline-code\"\u003emodel\u003c/code\u003e because it cannot know your providers. Edit \u003ccode class=\"readme-inline-code\"\u003eagents/ultracode-lead.md\u003c/code\u003e, \u003ccode class=\"readme-inline-code\"\u003eagents/ultracode-impl.md\u003c/code\u003e and \u003ccode class=\"readme-inline-code\"\u003eagents/ultracode-qa.md\u003c/code\u003e (and \u003ccode class=\"readme-inline-code\"\u003eultracode-worker.md\u003c/code\u003e if you like) and add \u003ccode class=\"readme-inline-code\"\u003emodel: \u003cprovider::model\u003e\u003c/code\u003e, e.g. \u003ccode class=\"readme-inline-code\"\u003emodel: anthropic::claude-opus-5-5\u003c/code\u003e. Use the \u003ccode class=\"readme-inline-code\"\u003eprovider::model\u003c/code\u003e form: it pins the provider and lets \u003ccode class=\"readme-inline-code\"\u003ereasoning_effort\u003c/code\u003e reach it. An unpinned lead runs on the orchestrator\u0026#39;s model, and it takes a turn per phase. A tier without its own \u003ccode class=\"readme-inline-code\"\u003emodel\u003c/code\u003e inherits one set on Default (\u003ccode class=\"readme-inline-code\"\u003eagents/default.md\u003c/code\u003e, which the Directory editor writes), and that beats both the orchestrator\u0026#39;s model and the judge models; with \u003ccode class=\"readme-inline-code\"\u003ejudges=\u003c/code\u003e the run refuses to start if \u003ccode class=\"readme-inline-code\"\u003eultracode-verifier\u003c/code\u003e resolves a model. Editing an installed kit file is fine; a kit update merges your edits.\u003c/p\u003e\n\u003ch2 id=\"run-it\" class=\"scroll-mt-20\"\u003eRun it\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFrom the console:\u003c/strong\u003e pick \u003cstrong\u003eUltracode\u003c/strong\u003e and type the goal, optionally followed by an \u003ccode class=\"readme-inline-code\"\u003eargs:\u003c/code\u003e line:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eAdd per-user rate limits to the login route.\nargs: max_rounds=2 concurrency=4 budget_usd=5\u003c/code\u003e\u003c/pre\u003e\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eArg\u003c/th\u003e\n\u003cth\u003eDefault\u003c/th\u003e\n\u003cth\u003eMeaning\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\u003ctr\u003e\n\u003ctd\u003e\u003ccode class=\"readme-inline-code\"\u003eflow\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode class=\"readme-inline-code\"\u003eauto\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode class=\"readme-inline-code\"\u003edev\u003c/code\u003e (the superpowers flow) when the goal changes code or files in a git repository, else \u003ccode class=\"readme-inline-code\"\u003eplain\u003c/code\u003e; set \u003ccode class=\"readme-inline-code\"\u003edev\u003c/code\u003e or \u003ccode class=\"readme-inline-code\"\u003eplain\u003c/code\u003e to force one\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode class=\"readme-inline-code\"\u003eapprove\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eon\u003c/td\u003e\n\u003ctd\u003ethe dev flow waits for you on the design, the plan and the finish; \u003ccode class=\"readme-inline-code\"\u003eoff\u003c/code\u003e runs straight through and keeps the branch\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode class=\"readme-inline-code\"\u003emax_rounds\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e3\u003c/td\u003e\n\u003ctd\u003eretry cycles over the queue\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode class=\"readme-inline-code\"\u003eattempts\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e2\u003c/td\u003e\n\u003ctd\u003ecode (or work) attempts a lead makes per round; a rejected attempt goes back to the same code session with the reasons\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode class=\"readme-inline-code\"\u003econcurrency\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e8\u003c/td\u003e\n\u003ctd\u003eleads per wave (max 8). Every ticket whose \u003ccode class=\"readme-inline-code\"\u003eDepends on\u003c/code\u003e tickets are done starts in parallel; a dependent ticket waits for a later wave (a \u003ccode class=\"readme-inline-code\"\u003eDepends on: KAN-12\u003c/code\u003e line on a card you add counts too). In the dev flow, tickets that share a file or test target never share a wave\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode class=\"readme-inline-code\"\u003everify\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eon\u003c/td\u003e\n\u003ctd\u003erun each ticket\u0026#39;s check step\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode class=\"readme-inline-code\"\u003everifier\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e\u003ccode class=\"readme-inline-code\"\u003eultracode-qa\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003etier for verify and review (\u003ccode class=\"readme-inline-code\"\u003eultracode-qa*\u003c/code\u003e or \u003ccode class=\"readme-inline-code\"\u003eultracode-verifier*\u003c/code\u003e)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode class=\"readme-inline-code\"\u003ejudges\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e–\u003c/td\u003e\n\u003ctd\u003ecomma-separated model ids (at most 7 in the dev flow, 8 in the plain one): one \u003ccode class=\"readme-inline-code\"\u003eultracode-verifier\u003c/code\u003e per model in each check, majority wins\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode class=\"readme-inline-code\"\u003edeadline_min\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e20\u003c/td\u003e\n\u003ctd\u003eper-phase deadline: each phase sub-agent gets it from its own start. A lead may run 3 × attempts phases for a dev ticket, 2 × attempts with a check in the plain flow (or without one in the dev flow), attempts for work alone, each with two minutes of slack; its wave closes one minute after that\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode class=\"readme-inline-code\"\u003ecritic\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003eon\u003c/td\u003e\n\u003ctd\u003eone completeness critic when the queue runs dry; in the dev flow it is the branch review: full test suite, linter and a review of the whole diff\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode class=\"readme-inline-code\"\u003emax_items\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e5 × K\u003c/td\u003e\n\u003ctd\u003ecap on tickets the run creates; K = leads per wave = min(concurrency, 8)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode class=\"readme-inline-code\"\u003ebudget_usd\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e–\u003c/td\u003e\n\u003ctd\u003esoft cap: checked with \u003ccode class=\"readme-inline-code\"\u003eharness::metrics\u003c/code\u003e before each wave and at each round close; no new wave starts once it is reached. When a model has no catalog pricing or usage is missing, the cost is a lower bound (marked incomplete when the harness total is null; one generation without usage is left out silently), so the cap can be overshot\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode class=\"readme-inline-code\"\u003enotify\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e–\u003c/td\u003e\n\u003ctd\u003ea function id called with the final report (e.g. a Slack or email send)\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode class=\"readme-inline-code\"\u003eproject\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e–\u003c/td\u003e\n\u003ctd\u003ean existing kanban project (id or name) to file the run under. Without it, Ultracode creates one project per run (\u003ccode class=\"readme-inline-code\"\u003eultracode: \u003cgoal\u003e · \u003cid\u003e\u003c/code\u003e) (the repository rule set allows a create whose \u003ccode class=\"readme-inline-code\"\u003elead\u003c/code\u003e is \u003ccode class=\"readme-inline-code\"\u003eultracode\u003c/code\u003e, see Prerequisites), so the board\u0026#39;s Project filter shows just that run; subtasks you add join it when their round starts\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode class=\"readme-inline-code\"\u003erelease\u003c/code\u003e\u003c/td\u003e\n\u003ctd\u003e–\u003c/td\u003e\n\u003ctd\u003ean existing kanban release (id or name), the same way. Agents can\u0026#39;t create releases: make them in the console first\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\u003c/table\u003e\n\u003cp\u003e\u003cstrong\u003eWith hard caps:\u003c/strong\u003e console runs have only the soft \u003ccode class=\"readme-inline-code\"\u003ebudget_usd\u003c/code\u003e. For a hard ceiling, start the run from the CLI (or any non-agent client):\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eiii trigger harness::send --json '{\u0026quot;message\u0026quot;:\u0026quot;\u0026lt;goal + args\u0026gt;\u0026quot;,\u0026quot;model\u0026quot;:\u0026quot;\u0026lt;provider::model\u0026gt;\u0026quot;,\u0026quot;options\u0026quot;:{\u0026quot;agent\u0026quot;:\u0026quot;ultracode\u0026quot;,\u0026quot;max_cost_usd\u0026quot;:5,\u0026quot;max_total_tokens\u0026quot;:2000000}}'\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e\u003ccode class=\"readme-inline-code\"\u003emodel\u003c/code\u003e is required because the profile sets none. Every model used in a capped run, every tier and judge included, needs catalog pricing. The dev flow\u0026#39;s design, plan and finish questions appear in that session in the console; pass \u003ccode class=\"readme-inline-code\"\u003eapprove=off\u003c/code\u003e to run without them.\u003c/p\u003e\n\u003ch2 id=\"the-dev-flow\" class=\"scroll-mt-20\"\u003eThe dev flow\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003e\u003cstrong\u003eDesign.\u003c/strong\u003e Ultracode reads the repository (\u003ccode class=\"readme-inline-code\"\u003egit status\u003c/code\u003e, the tree) and asks you what the code can\u0026#39;t settle, one question card at a time, with two or three approaches and its recommendation first.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ePlan.\u003c/strong\u003e The design goes into the run ticket\u0026#39;s description and each task becomes a subtask with a test-first card: \u003ccode class=\"readme-inline-code\"\u003eFiles:\u003c/code\u003e, \u003ccode class=\"readme-inline-code\"\u003eTest first:\u003c/code\u003e, \u003ccode class=\"readme-inline-code\"\u003eImplement:\u003c/code\u003e, \u003ccode class=\"readme-inline-code\"\u003eVerify:\u003c/code\u003e, \u003ccode class=\"readme-inline-code\"\u003eCommit:\u003c/code\u003e. A task is two to five minutes of work. You get one card: Start, Stop, or type your changes. A change rewrites the design on the run ticket first, then the affected subtasks (new ones are added, dropped ones are \u003ccode class=\"readme-inline-code\"\u003ecanceled\u003c/code\u003e with a comment), and the card comes back.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eWorktree.\u003c/strong\u003e \u003ccode class=\"readme-inline-code\"\u003egit worktree add .worktrees/\u003cslug\u003e -b ultracode/\u003cslug\u003e \u003cyour branch\u003e\u003c/code\u003e (the slug ends with part of the session id, so runs never share a branch); run Ultracode from the repository\u0026#39;s top folder. \u003ccode class=\"readme-inline-code\"\u003e.worktrees/\u003c/code\u003e is excluded locally (\u003ccode class=\"readme-inline-code\"\u003e.git/info/exclude\u003c/code\u003e), so your files stay untouched. The test suite runs once for a baseline.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ePer code ticket\u003c/strong\u003e (\u003ccode class=\"readme-inline-code\"\u003eultracode-impl\u003c/code\u003e; a research ticket runs \u003ccode class=\"readme-inline-code\"\u003ework\u003c/code\u003e then \u003ccode class=\"readme-inline-code\"\u003everify\u003c/code\u003e, without tests or a commit), its lead runs \u003ccode class=\"readme-inline-code\"\u003etests\u003c/code\u003e (write the failing test, see it fail for the right reason), \u003ccode class=\"readme-inline-code\"\u003ecode\u003c/code\u003e (the least change that passes it, then one commit \u003ccode class=\"readme-inline-code\"\u003e\u003cCommit:\u003e (\u003cKEY\u003e)\u003c/code\u003e), then \u003ccode class=\"readme-inline-code\"\u003everify\u003c/code\u003e (re-runs the Verify lines) and \u003ccode class=\"readme-inline-code\"\u003ereview\u003c/code\u003e (reads the commit, checks the test files are unchanged and nothing outside \u003ccode class=\"readme-inline-code\"\u003eFiles:\u003c/code\u003e moved) at the same time. A rejection goes back to the same code session with the reasons; a reason about the test reruns the tests phase. Tickets that touch the same file never run in the same wave: they share the worktree.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eBranch review.\u003c/strong\u003e When the queue runs dry, one reviewer runs the full suite and the linter and reviews \u003ccode class=\"readme-inline-code\"\u003egit diff \u003cbase\u003e...\u003cbranch\u003e\u003c/code\u003e. Findings become tickets for the next round.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFinish.\u003c/strong\u003e A card: merge into your branch (then the worktree is removed), push and open a PR, keep the branch, or discard it. Ultracode does only what you pick; it never pushes, merges or deletes on its own.\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eSub-agents never push, merge, rebase, reset, switch, stash or clean, and they work inside the worktree: their \u003ccode class=\"readme-inline-code\"\u003efilesystem_root\u003c/code\u003e anchors every relative path there, and a stack whose filesystem boundary is \u003ccode class=\"readme-inline-code\"\u003eworkspace\u003c/code\u003e also refuses writes outside it. Loose ends a sub-agent notices but the goal doesn\u0026#39;t need become Backlog subtasks labelled \u003ccode class=\"readme-inline-code\"\u003epending\u003c/code\u003e.\u003c/p\u003e\n\u003ch2 id=\"the-board\" class=\"scroll-mt-20\"\u003eThe board\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eThe run ticket is titled \u003ccode class=\"readme-inline-code\"\u003eultracode: \u003cgoal\u003e\u003c/code\u003e with the label \u003ccode class=\"readme-inline-code\"\u003euc:run\u003c/code\u003e. Every run item is one of its subtasks: its page lists them with a done/total progress bar, and each round adds a summary comment with the cost. Filter the board by the run ticket to see only the run.\u003c/li\u003e\n\u003cli\u003eThe run\u0026#39;s subtasks in To do, in board order, are the queue. In progress means its lead is running; the session tree shows each lead as \u003ccode class=\"readme-inline-code\"\u003e\u003cKEY\u003e · \u003ctitle\u003e\u003c/code\u003e with its phases (\u003ccode class=\"readme-inline-code\"\u003e\u003cKEY\u003e tests\u003c/code\u003e, \u003ccode class=\"readme-inline-code\"\u003ecode\u003c/code\u003e, \u003ccode class=\"readme-inline-code\"\u003everify\u003c/code\u003e, \u003ccode class=\"readme-inline-code\"\u003ereview\u003c/code\u003e) under it.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eRoute a ticket:\u003c/strong\u003e set its assignee to a work tier (\u003ccode class=\"readme-inline-code\"\u003eultracode-worker*\u003c/code\u003e or \u003ccode class=\"readme-inline-code\"\u003eultracode-impl*\u003c/code\u003e). Any other assignee (e.g. kanban\u0026#39;s \u003ccode class=\"readme-inline-code\"\u003ebackend-engineer\u003c/code\u003e) does not run that profile: the ticket runs as \u003ccode class=\"readme-inline-code\"\u003eultracode-impl\u003c/code\u003e when its Deliverable changes code or files, else as \u003ccode class=\"readme-inline-code\"\u003eultracode-worker\u003c/code\u003e, with a comment saying so. A new assignee takes effect on the next attempt that starts after the previous one stopped. Add your own tiers as \u003ccode class=\"readme-inline-code\"\u003eagents/ultracode-impl-\u003cname\u003e.md\u003c/code\u003e with \u003ccode class=\"readme-inline-code\"\u003eextends: ultracode-impl\u003c/code\u003e (or \u003ccode class=\"readme-inline-code\"\u003eultracode-worker\u003c/code\u003e) and a \u003ccode class=\"readme-inline-code\"\u003emodel\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eChange the plan mid-run:\u003c/strong\u003e tell Ultracode in the chat. It rewrites the design on the run ticket, edits the queued subtasks, adds new ones and cancels the rest, starting next round. Subtasks already In progress keep running; a follow-up subtask aligns each one after it is done.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eSteer between rounds:\u003c/strong\u003e add a subtask on the run ticket\u0026#39;s page (it starts in the first column) and drag it to To do, drag To do cards to reorder, comment on a ticket to steer its retry, drag a Backlog card to To do to re-queue it (a \u003ccode class=\"readme-inline-code\"\u003estuck\u003c/code\u003e card runs again only after its lead has stopped; until then it goes back to Backlog).\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eDon\u0026#39;t\u003c/strong\u003e drag In progress cards: the orchestrator\u0026#39;s next write wins. Move a queued card to Backlog to skip it (it is skipped from its wave on). A deleted card, or one detached from the run ticket, leaves the run and is listed as \u003ccode class=\"readme-inline-code\"\u003eremoved\u003c/code\u003e in the report. Deleting the run ticket only stops writes to it (round comments, report, final move) and new items; the existing items keep moving and the report goes only to the chat and to \u003ccode class=\"readme-inline-code\"\u003enotify\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eOutcomes: Done carries \u003ccode class=\"readme-inline-code\"\u003everified\u003c/code\u003e or \u003ccode class=\"readme-inline-code\"\u003eaccepted\u003c/code\u003e; Backlog carries \u003ccode class=\"readme-inline-code\"\u003eblocked\u003c/code\u003e, \u003ccode class=\"readme-inline-code\"\u003efailed\u003c/code\u003e, \u003ccode class=\"readme-inline-code\"\u003eunverified\u003c/code\u003e, \u003ccode class=\"readme-inline-code\"\u003eunfinished\u003c/code\u003e, \u003ccode class=\"readme-inline-code\"\u003estuck\u003c/code\u003e, or \u003ccode class=\"readme-inline-code\"\u003epending\u003c/code\u003e for a loose end. A ticket dropped from the plan (or every ticket, when you stop before Start) is \u003ccode class=\"readme-inline-code\"\u003ecanceled\u003c/code\u003e: it goes to the board\u0026#39;s canceled column (kanban\u0026#39;s \u003ccode class=\"readme-inline-code\"\u003ecanceled_status\u003c/code\u003e, which new boards have and which leaves canceled tickets out of every progress total; on an older board, add a Canceled column in the Kanban settings), else to a column whose id or name is Canceled, else to Backlog with the \u003ccode class=\"readme-inline-code\"\u003ecanceled\u003c/code\u003e label, where it still counts in the run ticket\u0026#39;s progress total. A ticket whose dependency was canceled or parked is \u003ccode class=\"readme-inline-code\"\u003eblocked\u003c/code\u003e. The orchestrator edits only the outcome labels, so your own labels stay.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"prerequisites\" class=\"scroll-mt-20\"\u003ePrerequisites\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ekanban\u0026#39;s column ids \u003ccode class=\"readme-inline-code\"\u003ebacklog\u003c/code\u003e, \u003ccode class=\"readme-inline-code\"\u003etodo\u003c/code\u003e, \u003ccode class=\"readme-inline-code\"\u003ein_progress\u003c/code\u003e and \u003ccode class=\"readme-inline-code\"\u003edone\u003c/code\u003e, with \u003ccode class=\"readme-inline-code\"\u003edone_status: done\u003c/code\u003e (the default, the last column) so the run ticket\u0026#39;s progress counts finished items.\u003c/li\u003e\n\u003cli\u003estate with the kv adapter (the redis adapter refuses \u003ccode class=\"readme-inline-code\"\u003estate::barrier\u003c/code\u003e), \u003ccode class=\"readme-inline-code\"\u003estore_method: file_based\u003c/code\u003e (the default; \u003ccode class=\"readme-inline-code\"\u003ein_memory\u003c/code\u003e loses barrier progress and results on restart) and \u003ccode class=\"readme-inline-code\"\u003etriggers_enabled: true\u003c/code\u003e (the default).\u003c/li\u003e\n\u003cli\u003eharness \u003ccode class=\"readme-inline-code\"\u003emax_depth\u003c/code\u003e of at least 3 (the default): orchestrator → lead → phase; and \u003ccode class=\"readme-inline-code\"\u003emax_children\u003c/code\u003e of at least \u003ccode class=\"readme-inline-code\"\u003econcurrency\u003c/code\u003e (the default 8 matches it): a wave spawns one lead per ticket in one turn, and spawns past the limit are refused.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eApproval gate.\u003c/strong\u003e Allow these to run without a prompt:\u003cul\u003e\n\u003cli\u003e\u003ccode class=\"readme-inline-code\"\u003estate::barrier\u003c/code\u003e, unattended: the harness calls it on every state write in a wave\u0026#39;s or phase\u0026#39;s scope.\u003c/li\u003e\n\u003cli\u003efor the phase sub-agents: \u003ccode class=\"readme-inline-code\"\u003estate::compare-and-set\u003c/code\u003e, \u003ccode class=\"readme-inline-code\"\u003ekanban::ticket::get\u003c/code\u003e, \u003ccode class=\"readme-inline-code\"\u003ekanban::comment::create\u003c/code\u003e, \u003ccode class=\"readme-inline-code\"\u003eshell::exec\u003c/code\u003e, \u003ccode class=\"readme-inline-code\"\u003ecoder::read-file\u003c/code\u003e (plus \u003ccode class=\"readme-inline-code\"\u003ecoder::create-file\u003c/code\u003e and \u003ccode class=\"readme-inline-code\"\u003ecoder::update-file\u003c/code\u003e for \u003ccode class=\"readme-inline-code\"\u003eultracode-impl\u003c/code\u003e, and \u003ccode class=\"readme-inline-code\"\u003estate::get\u003c/code\u003e for verifiers), and whatever else the work needs. A call held for approval in a phase sub-agent parks its ticket as \u003ccode class=\"readme-inline-code\"\u003eblocked\u003c/code\u003e with the function to approve; a wave of leads held on approvals ends the run as \u003ccode class=\"readme-inline-code\"\u003eblocked\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003efor leads: \u003ccode class=\"readme-inline-code\"\u003eharness::spawn\u003c/code\u003e, \u003ccode class=\"readme-inline-code\"\u003eengine::register_trigger\u003c/code\u003e, \u003ccode class=\"readme-inline-code\"\u003estate::list\u003c/code\u003e, \u003ccode class=\"readme-inline-code\"\u003estate::compare-and-set\u003c/code\u003e, \u003ccode class=\"readme-inline-code\"\u003eharness::status\u003c/code\u003e, \u003ccode class=\"readme-inline-code\"\u003eharness::stop\u003c/code\u003e, \u003ccode class=\"readme-inline-code\"\u003ekanban::comment::create\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003efor the orchestrator: \u003ccode class=\"readme-inline-code\"\u003eharness::spawn\u003c/code\u003e, \u003ccode class=\"readme-inline-code\"\u003eharness::metrics\u003c/code\u003e, \u003ccode class=\"readme-inline-code\"\u003estate::compare-and-set\u003c/code\u003e, \u003ccode class=\"readme-inline-code\"\u003ekanban::ticket::list\u003c/code\u003e, \u003ccode class=\"readme-inline-code\"\u003ekanban::project::create\u003c/code\u003e, \u003ccode class=\"readme-inline-code\"\u003eshell::exec\u003c/code\u003e, \u003ccode class=\"readme-inline-code\"\u003eharness::stop\u003c/code\u003e, and \u003ccode class=\"readme-inline-code\"\u003edirectory::agents::get\u003c/code\u003e when \u003ccode class=\"readme-inline-code\"\u003ejudges=\u003c/code\u003e is used. Without a rule, each \u003ccode class=\"readme-inline-code\"\u003eharness::stop\u003c/code\u003e of a timed-out lead or phase waits for your approval. The repository rule set (\u003ccode class=\"readme-inline-code\"\u003eiii-permissions.yaml\u003c/code\u003e) denies it with \u003ccode class=\"readme-inline-code\"\u003e'!harness::stop'\u003c/code\u003e; to allow it, remove that line from your approval-gate rules and add \u003ccode class=\"readme-inline-code\"\u003e- harness::stop\u003c/code\u003e (an allow above a \u003ccode class=\"readme-inline-code\"\u003e'!…'\u003c/code\u003e line is not enough: the console turns every deny rule into a session-wide deny). If you keep the deny, timed-out leads are parked as \u003ccode class=\"readme-inline-code\"\u003estuck\u003c/code\u003e. Project creation is allowed by the rule set for a create whose \u003ccode class=\"readme-inline-code\"\u003elead\u003c/code\u003e is \u003ccode class=\"readme-inline-code\"\u003eultracode\u003c/code\u003e (rule \u003ccode class=\"readme-inline-code\"\u003eultracode-run-project\u003c/code\u003e, iii-hq/workers#1415); with older rules that still say \u003ccode class=\"readme-inline-code\"\u003e'!kanban::project::create'\u003c/code\u003e, replace that line with the same structured allow, or pass \u003ccode class=\"readme-inline-code\"\u003eproject=\u003c/code\u003e with a project you made in the console. Refused, the run goes on without a project and says so on the run ticket.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eTrust.\u003c/strong\u003e Any agent allowed \u003ccode class=\"readme-inline-code\"\u003ekanban::ticket::create\u003c/code\u003e or \u003ccode class=\"readme-inline-code\"\u003ekanban::ticket::update\u003c/code\u003e can add a subtask to the run ticket, which then runs with the orchestrator\u0026#39;s permissions.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"how-it-works\" class=\"scroll-mt-20\"\u003eHow it works\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003eEach round takes a snapshot of the run ticket\u0026#39;s To do subtasks (\u003ccode class=\"readme-inline-code\"\u003ekanban::ticket::list\u003c/code\u003e with \u003ccode class=\"readme-inline-code\"\u003eparent_id\u003c/code\u003e) and runs it in waves of \u003ccode class=\"readme-inline-code\"\u003econcurrency\u003c/code\u003e leads.\u003c/li\u003e\n\u003cli\u003ePer wave, the orchestrator arms one \u003ccode class=\"readme-inline-code\"\u003estate\u003c/code\u003e wake gated by \u003ccode class=\"readme-inline-code\"\u003estate::barrier\u003c/code\u003e with a deadline, moves the tickets to In progress and spawns one \u003ccode class=\"readme-inline-code\"\u003eultracode-lead\u003c/code\u003e per ticket.\u003c/li\u003e\n\u003cli\u003eA lead runs its ticket\u0026#39;s phases the same way: per phase, one barrier wake with a deadline and one spawn per key; each phase sub-agent posts one comment and writes one document with set-if-absent \u003ccode class=\"readme-inline-code\"\u003estate::compare-and-set\u003c/code\u003e. The lead retries rejected attempts, then writes one result for the orchestrator.\u003c/li\u003e\n\u003cli\u003eThe wave\u0026#39;s barrier wakes the orchestrator once when every lead has written, or the deadline does. It reads all results with one \u003ccode class=\"readme-inline-code\"\u003estate::list\u003c/code\u003e. A missing, malformed or rewritten result is null: the lead is stopped if still running (the stop cascades to its phases, but not to \u003ccode class=\"readme-inline-code\"\u003eshell::exec_bg\u003c/code\u003e jobs they started) and the ticket is retried next round in the same lead session while rounds remain, or parked as \u003ccode class=\"readme-inline-code\"\u003estuck\u003c/code\u003e if it cannot be stopped.\u003c/li\u003e\n\u003cli\u003eVerified or accepted tickets go to Done; blocked, unverified and stuck ones to Backlog; failed ones back to To do while rounds remain.\u003c/li\u003e\n\u003cli\u003eThe run stops on \u003ccode class=\"readme-inline-code\"\u003emax_rounds\u003c/code\u003e, no progress, nothing left (after one critic or branch review), the budget, blocked approvals or your stop. The report goes on the run ticket, into the chat and to \u003ccode class=\"readme-inline-code\"\u003enotify\u003c/code\u003e; in the dev flow it then asks how to finish the branch.\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003e\u003cstrong\u003eWhy fan-in is on state, not on kanban events.\u003c/strong\u003e A \u003ccode class=\"readme-inline-code\"\u003ekanban:change\u003c/code\u003e wake gated by the same barrier works mechanically, but it counts every change to a ticket (including the orchestrator\u0026#39;s own moves) as an arrival, kanban delivers events fire-and-forget with no catch-up, and results kept in comments have no compare-and-set. A kanban outage would lose results instead of delaying them.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eNot in 0.1:\u003c/strong\u003e a run-level cost cap from the console, one worktree per ticket (tickets that share a file wait for a later wave instead).\u003c/p\u003e\n"])</script><script>self.__next_f.push([1,"38:[\"$\",\"div\",null,{\"className\":\"overflow-hidden rounded-xl border border-line bg-background\",\"children\":[[\"$\",\"div\",null,{\"className\":\"bg-panel flex min-h-11 items-center justify-between gap-x-3 border-b border-line px-5 sm:px-6\",\"children\":[[\"$\",\"span\",null,{\"className\":\"truncate font-mono text-[10px] uppercase tracking-[0.08em] text-muted-foreground\",\"children\":\"README.md\"}],null]}],[\"$\",\"div\",null,{\"className\":\"readme-prose px-5 py-6 sm:px-8 sm:py-7\",\"dangerouslySetInnerHTML\":{\"__html\":\"$3c\"}}]]}]\n"])</script></body></html>