Workflow Doctrine

Keep intent, isolation, evidence, and recovery in plain sight.

Why the agent drives the workflow

You say what you want, what to avoid, and how you'll know it worked. An AIT-aware coding agent reads the workflow rules your repository generated and handles the Plan, Task, Snapshot, checks, and closeout. The conversation stays natural, and nothing about the execution gets hidden.

Why intent comes first

A Markdown sprint item gives the work one stable thing to point at. The Task ties that intent to its Change, its worktree, its Snapshots, its evidence, and its closeout. That link is a feature, not paperwork.

Why Local stays the default

You get the whole loop on your own machine — no service, no database, no network, no shared admin. A remote server and runner only come in when you configure them.

Why AIT stays out of your language choices

AIT works the same everywhere

Task, worktree, Snapshot, diff, blame, evidence, closeout, recovery, and Git behavior don't change from repository to repository.

Your repository stays in charge

Builds, tests, lint, formatting, packaging, ignores — you declare those, and AIT runs what you declared.

How local state stays readable

Binary authority

Workflow records

Plans, Tasks, Changes, Lines, evidence, and closeout state live in fixed native records.

One repository, two kinds of state.

intent → Plan item revision → Snapshot content → zstd packs

Splitting them keeps workflow history readable instead of treating every byte the same way.

Content authority

Trees, blobs, and packs

Content-addressed objects keep the exact code and the order it came in.

Fail closed

A missing check, policy, review, CI result, or answer from you is a reason to stop — not a reason to claim the work is done. AIT keeps the current state recoverable, so you can pick it up again honestly.