Amistio
Docs and field notes

Amistio guides

Browse the product manual, project-brain explainers, AI workflow articles, local runner setup, MCP/tooling notes, and troubleshooting references from one place.

Library shape

Start hereSetup, template, project brain
Cost controlCompact context packs and model tiers
Field notesAgents, tools, AI history, MCP
ReferenceCLI, sync, local runner, status

Start here

Pick the path that matches why you came.

The docs hub now behaves like a library: choose a setup path, a concept guide, or the open-source template path first.

Choose by role

The same system, fewer concepts up front.

Enterprise users can enter from the job they need to do instead of learning every runner, provider, and helper boundary first.

Collections

Docs, articles, and references by intent.

The page is no longer one long manual. It is organized around what a visitor is trying to understand or do.

Project brain

How Amistio remembers work

Deep dives for the files that make agent work inspectable: memory, ADRs, plans, prompts, workflows, context, and instructions.

Learning

Blog-style guides and explainers

Readable background pieces for visitors learning the vocabulary around agents, harnesses, templates, and AI history.

Tools

MCP, local tools, and sessions

Practical guidance for the tool layer around Amistio's local runner and project-brain workflow.

Operations

Setup, runner, and support

Reference material for pairing, sync, CLI commands, runner execution, status, and troubleshooting.

Setup reference

From app project to paired local runner.

The setup content stays on this page, but it is compact now so the hub can support both docs and learning articles.

1Five-minute path: open the Runner panel, link the repository, install the CLI, pair or import the checkout, check GitHub access, choose the AI provider, start the runner, then run the first safe verification.
2Use the project dropdown to create or select a project; Project settings handles removal and ownership transfer.
3Use the user menu to remove the personal workspace; Clerk account deletion stays in Clerk account management, organization-owned projects stay with the organization, and local files are not deleted.
4Open the Runner panel and follow the readiness checklist: Repository, Pairing code, GitHub access, AI provider, Local runner, and Verification.
5Install `@amistio/cli` on the machine that owns repository work.
6Confirm Git is visible to the same foreground, background, or startup-service environment that will run the runner; `git --version` should work before `amistio run --watch` starts.
7Initialize, onboard, bootstrap, or import the repository.
8Pair the checkout with the web project.
9Configure direct provider auth locally, such as `GITHUB_MODELS_TOKEN`, `GITHUB_TOKEN`, `OPENAI_API_KEY`, or `ANTHROPIC_API_KEY`.
10Review the Runner panel Enterprise command center for trust/privacy boundaries, cost forecast, budget status, runner health, blockers, verification health, and version spread.
11Use the Runner panel provider checks to ask an online runner to check direct provider readiness; the app stores only safe status metadata, not provider credentials.
12For direct execution, configure a supported provider token locally on the runner and select provider/model ids; Amistio uses bounded local tools and approved verification profiles rather than an external agent CLI or arbitrary shell.
13Use `amistio orchestrate` for local planning passes; interactive terminals show an OpenTUI planning shell, while `--dry-run` prints only the generated prompt.
14Use `amistio harness status`, `amistio harness providers`, and `amistio harness tools` when operators need scriptable local diagnostics for the built-in harness, direct providers, and bounded Amistio-owned tool adapters.
15Choose a runner execution profile for foreground, background, or service runners when local commands are a risk: `hostWorktree` checks the machine before local tool execution, `hostWorktreeWithSetup` allows a fixed package-manager install step, and `dockerWorkspace` validates a safe Docker envelope while containerized harness execution remains blocked.
16For stronger supervised execution, set `AMISTIO_HOST_HELPER_PATH` to the reviewed `amistio-host-helper` executable and confirm `amistio host-helper status`; PTY and sandbox still fail closed until a verified native helper advertises them.
17Let current runners claim typed prompt batches when many approved prompts belong together; Amistio sends one audited manifest with ordered child prompts instead of repeatedly interrupting the worker.
18For approved implementation work, make sure Git can commit, push the linked GitHub remote, and `gh` is authenticated locally.
19Implementation handoff classifies the final diff before PR creation: source-expected work completes as no implementation produced for docs-only output, while app-evaluation proof and lifecycle-cleanup work is explicitly queued as docs-only so safe proof notes can be committed and PR'd.
20Keep required test dotenv files ignored in the paired checkout; the runner prepares eligible local dotenv files inside implementation worktrees without uploading values.
21Run the local runner so generated brain artifacts, automated safe Project Brain cleanup, semantic brain consolidation, living project context refreshes, issue diagnosis, app evaluation scans, security scans, Test scans, implementation Test gates, and approved work can be processed.

Pairing and sync

Use this as the fast mental model before dropping into the command reference.

Follow one checklist

The Runner panel shows repository, pairing, GitHub access, AI provider, local runner, and verification readiness with the next action for each blocked step.

Review one command center

The Runner panel also summarizes trust/privacy, cost forecast and budget posture, runner health, blockers, verification health, and version distribution from safe runner metadata.

Pair locally

Link repository metadata in the app, then bootstrap, import, or pair from the checkout that owns the work.

Sync reviewed brain

Approved records materialize into `docs/`; Markdown is the default, and explicit HTML artifacts stay under `docs/html/`.

Keep ownership clean

Project transfers copy portable brain and safe history while runner credentials and machine-local state stay behind.

Production runs on Azure

The public app is served from Azure Container Apps; releases publish GHCR image tags and roll Azure revisions through the Deploy workflow.

Store by workload

Production Cosmos storage keeps workspace core, durable knowledge, live work, messages, and logs in separate access-pattern containers.

Remove without deleting files

Personal workspace removal archives Amistio state; local checkouts, hosted repos, and org-owned records remain.

Refresh runner safely

Runner Update waits for current work to drain, stops fresh claims, installs the official CLI, and either restarts the background runner or gives manual restart guidance.

Check providers locally

The Runner panel can queue direct provider checks; the runner completes local checks and reports sanitized status metadata only.

Run direct providers explicitly

When the runner has local provider auth, Auto tool selection plus a supported provider/model preference uses Amistio's built-in direct agent route; package checks run through approved `verify`, `test`, `typecheck`, `lint`, and `build` profiles.

Plan with OpenTUI

Interactive `amistio orchestrate` sessions show a local OpenTUI planning shell for goal, model, prompt output, and run phase.

Inspect harness locally

The CLI exposes `amistio harness status`, `amistio harness providers`, and `amistio harness tools` as scriptable diagnostics while setup stays web-led.

Keep Git on runner PATH

Watch mode checks Git before auto-sync or claiming work. If foreground shells work but a background runner blocks, restart or reinstall the service from an environment where `git --version` resolves.

Check execution environment early

Runner profiles report sanitized readiness for Git, Node, Corepack, package manager, required scripts, dependencies, setup, and Docker before approved local tool execution begins.

Install the helper only when needed

`@amistio/cli` now ships `amistio-host-helper` for Level 1 supervision diagnostics. Enable it with `AMISTIO_HOST_HELPER_PATH` and verify the handshake before requesting native capabilities.

Release the helper through the artifact gate

The CLI release check packs and installs `@amistio/cli`, verifies both installed bins, rejects source maps/tests/source files, and runs helper handshake, status, and conformance from the installed package.

Batch related prompts

Current runners can claim `promptBatch` work as one manifest with ordered child prompts, per-child audit status, and stop-on-failure handling. Older runners skip these jobs until updated.

Require source proof for implementation

Implementation handoff classifies final Git changes before PR creation. Source-expected work that only changes project-brain or documentation files completes as no implementation produced instead of opening a misleading PR.

Recover handoffs on the owner runner

Retry handoff and cleanup commands run on the runner that owns the preserved worktree. If that runner is unavailable, restart or repair it, export the handoff, or use a fresh linked requeue instead.

Recover stale patch context

If a local tool reports an expected-lines or patch-context miss, Amistio records typed patch-drift recovery metadata and safe next actions instead of uploading raw patch output or showing an unclassified runner failure.

Eliminate blocker piles

The Work board shows safe recoveries, root-cause unblock plans, and manual exceptions. Runner-driven self-maintenance requeues backend-proven safe work, creates or reuses deduped unblock work for repairable causes, and leaves only true external-input blockers manual.

Stop repeated blocker loops

If a linked attempt hits the same sanitized blocker fingerprint again, Amistio refuses another requeue until the root cause changes; runner-driven autopilot uses the same backend guard.

Lead with shipping outcomes

Project Home summarizes autonomous objectives, persistent agent ownership, team ledger metrics, shipped outcomes, delegated evidence, approvals avoided, interruption rate, runner spend, repairs, and true exceptions before raw activity history.

Operate as a team

Autonomous work stays tied to requester, runner, repository, PR or no-op outcome, and evidence lineage so enterprise teams can ask later who did what without reading local agent logs.

Avoid stale noise

Completed work and unchanged idle-ready status are announced once, then the runner stays quiet until something actually needs attention.

Delegate routine work

The Runner panel autonomy contract can authorize audited low-risk runner work, including Test scans and implementation Test gates, with adjustable scopes, max risk, daily/concurrent/failure budgets, and safe recovery only after backend triage.

Trace every candidate

Autonomy decisions record candidate type, policy snapshot, reason codes, guard checks, and linked work so CLI prompts, claim logs, and task activity point to the same approval evidence.

Context cost intelligence

Lower model spend without shrinking the brain.

Use this as the operating contract for large project brains: keep the durable repository brain complete, but send compact task-specific context and choose model tiers by task risk.

Preserve the full brain

Accepted Markdown, MDX, and HTML brain files remain durable, reviewable, and human-readable in `docs/`. Cost control happens in the AI-facing pack, not by deleting project memory.

Build compact packs

Amistio estimates full brain tokens, then selects digests, the active living context map, recent work state, and context-health signals for the next task.

Route models by risk

Low-risk classification and brain-only questions can use economy tiers; planning and generation default to balanced; source-aware implementation, diagnosis, and security move to stronger tiers.

Label estimates clearly

Workspace numbers are deterministic estimates for decision support, not provider billing guarantees.

Keep SaaS telemetry safe

The app can show token and routing summaries without uploading raw source files, secrets, provider credentials, arbitrary local paths, or local command lines.

What users see

The workspace panel shows estimated full context, selected context, avoided tokens, context warnings, the current model preference, and the recommended route.

Full context

The estimated size of brain documents, context maps, recent work state, and health signals if sent without compaction.

Selected pack

The estimated compact AI-facing context pack for the next task.

Tokens avoided

The difference between full context and selected context, expressed as an estimate and percentage.

Model route

Economy, balanced, strong, or deep reasoning based on task type, risk, and source-awareness.

Provider and auth matrix

Every route keeps credentials local.

The Runner panel checks GitHub and AI provider readiness locally. External tools remain adapters with explicit auth ownership, capability checks, and output bounds.

Route

Direct providers

Auth

Provider tokens such as `GITHUB_MODELS_TOKEN`, `GITHUB_TOKEN`, `OPENAI_API_KEY`, `ANTHROPIC_API_KEY`, `GROQ_API_KEY`, or `OPENROUTER_API_KEY` on the runner

Boundary

Amistio-owned direct model route; provider secrets stay local and web stores only safe readiness/usage labels.

Best for

The supported runner agent route: Amistio-owned prompts, bounded tools, and explicit model selection.

CLI reference

Commands you need after choosing a path.

Keep this section nearby for setup, runner work, bounded retries, and local-tool execution limits.

npm install -g @amistio/cli

Install the stable Amistio CLI runner.

amistio --help

Confirm the runner command is available.

amistio harness status

Show the built-in Amistio harness boundary and read-only/mutating execution policy summary.

amistio harness providers

Check local direct provider readiness without printing provider secrets.

amistio harness tools

List bounded Amistio-owned tool adapters available to the built-in harness.

amistio tools

Show the built-in Amistio direct agent capability on this machine.

amistio host-helper status

Show configured host-helper discovery, protocol, capability, and secret-boundary status.

AMISTIO_HOST_HELPER_PATH=$(command -v amistio-host-helper) amistio host-helper status

Verify the official packaged helper handshake before using it with a runner.

AMISTIO_HOST_HELPER_PATH=$(command -v amistio-host-helper) amistio host-helper conformance

Run compatibility checks for the official helper or any third-party helper before enterprise rollout.

amistio init

Create control-plane folders for a new project.

amistio onboard

Inspect or prepare an existing repository for Amistio.

amistio bootstrap --repo-url <cloneUrl> --target <path> --account <accountId> --project <projectId> --repository-link <repositoryLinkId> --pairing-code <code>

Clone, prepare, and pair a linked repository locally.

amistio import <code>

Pair an existing checkout and import accepted legacy brain docs plus recognized repo-local IDE and local AI memory or instruction files.

amistio pair --account <accountId> --project <projectId> --pairing-code <code>

Pair a local checkout with a web project.

amistio orchestrate "prepare the next implementation prompt"

Run a local planning pass with the OpenTUI planning shell when the terminal is interactive.

amistio sync status

Show brain file state, pending docs, dirty edits, and conflicts.

amistio sync pull

Materialize approved web brain artifacts into docs/ folders, including explicit docs/html HTML artifacts.

amistio sync push

Push local synced brain changes back to the app for review.

amistio sync watch

When repository auto-sync is enabled, scan recognized Markdown/MDX and HTML brain docs and push reviewable external changes.

amistio run --watch

Claim queued brain-generation, trigger safe automated brain cleanup, blocker-elimination self-maintenance, semantic brain-consolidation scans, read-only project-context refreshes, read-only issue-diagnosis, read-only app-evaluation scans, read-only security-posture scans, verified requeues, prompt batches, and approved implementation work.

amistio run --watch

Replay pending brain, runner-result, and implementation finalizations before claiming new work after retryable API failures; 429 responses honor Retry-After/local cooldowns, retryable pre-claim heartbeat failures are advisory, accepted read-only result side effects are best-effort, gate-pending finalizations wait for Test gates, and abandoned-claim finalizations recover with active lane capacity, bounded replay budgets, and short replay leases before retrying.

amistio run --watch

If no work is claimed but the next-action status read gets a retryable API failure, print Status unavailable and retry on the next poll instead of surfacing a raw stack trace.

amistio run --watch --provider github-models --model-id openai/gpt-4.1

Use GitHub Models with Amistio-owned bounded filesystem, Git, package, test, and browser tools.

amistio run --watch --provider openai --model-id gpt-4.1

Use OpenAI with the same Amistio-owned bounded filesystem, Git, package, test, and browser tools.

amistio run --watch --execution-profile hostWorktree

Use the default profile: isolated Git worktree plus environment doctor checks before local AI/tool execution.

amistio run --watch --execution-profile hostWorktreeWithSetup --setup-package-manager-install

Allow the runner to run only the fixed package-manager install command selected from package metadata before the doctor rechecks readiness.

amistio run --watch --execution-profile dockerWorkspace

Validate a safe Docker worktree envelope; current runners still block approved work until containerized harness execution is enabled.

amistio run --watch

Run 5 bounded parallel claim lanes by default, configurable up to 100, while Amistio still serializes same-scope implementation work and prunes dead-process local active-claim reservations.

amistio run --watch --max-concurrent-work 1

Lower a runner to serial execution when local resources or a debugging session require one work item at a time.

amistio run --watch --runner-id <runnerId>

Start an additional same-machine runner with the Runner panel's suggested ID so it reports as a separate runner.

amistio run --watch --max-preflight-attempts 3 --tool-timeout-seconds 1800

Use explicit bounded setup retry and local-tool timeout limits.

amistio run --watch --background

Start a detached background runner for the paired checkout.

amistio runner status

Check detached runner state, heartbeat, and bounded resource sample.

amistio runner repair

Rotate the local runner ID for a paired checkout after the server forgets the previous runner.

amistio runner smoke-session-lifecycle

Run a local no-claim smoke that verifies runner tool-session lifecycle behavior without contacting the API or claiming work.

amistio runner stop

Stop the detached background runner.

amistio runner service install

Install a user-level startup service where available.

amistio runner service status

Show startup service state and descriptor location.

amistio runner service remove

Unload and remove the user-level startup service.

Local runner

Execution stays on your machine.

The web app coordinates wishes, generated brain artifacts, approvals, queues, heartbeats, status, and bounded runner resource samples.

The web app coordinates

Wishes, approvals, queues, heartbeats, safe status, and bounded resource samples live in Amistio.

The runner executes locally

Brain generation, source-aware scans, verification, and approved implementation run from a paired checkout.

Readiness is plain-language

Enterprise setup starts with repository, pairing, GitHub access, AI provider, local runner, and verification states so admins can see what is ready or blocked without reading CLI logs first.

Trust and cost are visible

The Enterprise command center shows local source and credential boundaries, typed runner command limits, audit evidence, runner-reported token/cost estimates, budget thresholds, and operational stats without uploading source, provider credentials, command lines, or arbitrary local paths.

Add runners from the Runner panel

Use Add runner to create a fresh pairing code, copy the pair/import/bootstrap commands, and start same-machine runners with the suggested `--runner-id`.

Routine authority is delegated

Manual review or an audited autonomy-contract authorization must exist before runner work can bypass approval gates.

Autonomy is workflow-scoped

Generated brain approval, impact previews, low-risk implementation handoff, safe issue diagnosis, low-risk issue fixes, security scans, low-risk remediation, app-evaluation cleanup, Test scans, implementation Test gates, verification, requeue, and typed runner commands are classified before they queue.

Operators can inspect and pause

The Runner panel shows mode, policy version, safe scopes, candidate types, risk ceiling, runner binding, budgets, expiry/review/cooldown windows, and pause reason. Task replay timelines show authorization outcome, reasons, guards, and linked IDs.

Tool sessions stay bounded

One-shot tool sessions close after completion, failed sessions block, active sessions are treated as in-use, and reusable sessions idle for more than six hours close before claim selection. Use the local no-claim smoke command to verify the installed CLI behavior.

PR handoff stays local

Implementation work checks GitHub handoff readiness before local AI/tool execution, then uses a local Git worktree, fetches and rebases from the linked remote's default branch before push, uses locally authenticated `gh` for pull-request handoff, creates Release Please-compatible commit subjects and PR titles, cleans no-change worktrees after safe checks, and reports scoped recovery choices for blocked handoffs.

Worktree env stays local

Eligible ignored root dotenv files are copied only between local checkout directories so tests can run; values are never uploaded.

Active claims stay local too

Before tool execution, the runner records a bounded user-level active claim with work item, lane, lease, implementation scope, and worktree key, then skips execution if another local lane is already using that work or worktree.

Abandoned claims recover safely

When a claim owner is forgotten, missing, stale, offline, or lease-expired, current runners ask the server to release or adopt the abandoned claim through an audited recovery path using their active lane capacity. Forgetting an offline runner from Runner Management also releases that runner's non-terminal claims for normal compatible-runner selection. Fresh live claims still reject non-owner updates.

Execution profiles fail closed

The runner checks Git before auto-sync or claims, then blocks before local AI/tool execution when Git, Node, Corepack, package managers, scripts, dependencies, setup, Docker, or an unsupported profile is not ready. It reports only sanitized blocker metadata.

Docker wraps the worktree

The Docker profile may mount only the ADR-scoped worktree and rejects privileged mode, host networking, extra mounts, and arbitrary environment injection; it does not replace the Git worktree mutation boundary.

Recurring checks are runner-driven

Adaptive app evaluation, due security posture checks, due Test quality scans, safe Project Brain archive cleanup, blocker-elimination repair planning, and self-maintenance health rollups run from active runner polling, not a hosted cron job.

Local capabilities are bounded

Runner tool adapters cover scoped file reads/list/search/write, Git status/diff, package-script discovery, approved verification profiles, loopback browser smoke checks, the direct-provider agent route, and provider clients under runner-owned policy; web data does not become arbitrary local commands or a model-visible `shell_exec`.

Evidence follows tool work

First-party direct-agent runs report structured harness events, bounded tool-call evidence, verification check summaries, and repaired-failure reruns so reviewers see progress, tools, checks, and repairs without reading raw terminal logs.

Carry proof to the UI

Runner logs can carry safe direct-agent evidence, and the Runner panel renders harness event timelines for model, tool, verification, repair, exception, and finalization steps without provider transcripts or local paths.

Native helper capabilities are explicit

When an optional helper is configured with `AMISTIO_HOST_HELPER_PATH`, PTY and sandbox requests run only if the helper advertises support. The default Node runner fails closed for those requests and helper envelopes use allowlisted environment data plus bounded normalized output.

Self-maintenance keeps brain hygiene narrow

Health rollups stay bounded, and runner polling can also run a throttled system consolidation pass that archives only exact duplicate untouched generated Project Brain review docs. For failed/blocked work, the same loop creates deduped unblock work by root-cause family before escalating manual exceptions. It does not delete brain records, repo files, source, or user-owned/approved/synced/dirty/conflicted docs.

Evaluation review queues converge

Successful app evaluation scans update repeated findings by stable identity and auto-resolve obsolete generated review drafts while preserving history and user-edited documents.

Approve all stays server-owned

Project Brain, Issues, Security, Test, App Evaluation, and Brain Maintenance approve-all controls send one backend request, then the API applies the same domain review functions used by item-level approval.

New evaluations close stale work

When a newer app evaluation is queued, older queued or running evaluations for the same repository are marked stale and their scan work is closed without deleting history or findings.

Fresh clean evidence cools down

Runner-driven app evaluation, Test quality scans, and Security posture scans skip fresh clean evidence when no active finding, failed gate, or exception needs action.

Release checks stay separate

The Deploy workflow runs only by manual dispatch, verifies the release, publishes GHCR image tags, updates Azure Container Apps revisions, and smokes `www.amistio.com`.

Implementation needs test proof

Before completion, PR handoff, or runner-managed push, implementation work queues an implementation Test gate that must pass or be explicitly overridden with a reason. Compatible runners prioritize those gates before unrelated implementation work.

Blocking work goes first

After eligibility checks, compatible runners use server-side priority before FIFO age so completion-critical gates, active-objective blockers, and fanout unblock work drain before unrelated routine implementation without bypassing approval or safety gates.

Failed gates create repair work

When an implementation Test gate fails or blocks under an enabled autonomy contract, Amistio creates one deduped low-risk test-repair implementation item instead of stopping at another plan.

Audit blockers become work

Production dependency audit failures keep release blocked and create or reuse drafted dependency-remediation work with safe package/path evidence. Dependency changes still need approval or audited autonomy authorization plus a fresh root verify before release resumes.

Missing tests become evidence work

The Test panel stores safe findings for missing tests, missing coverage, failing checks, flaky tests, and test gaps. Under an autonomy contract, low-risk test scans and implementation Test gates can run as delegated evidence before creating review exceptions.

Source stays out of public status

Source code, secrets, process lists, environment variables, command lines, credentials, and arbitrary local paths are not uploaded as public status data.

Autonomy does not widen local trust

Autonomy metadata is visible in CLI work lists, claim logs, prompts, milestones, and activity, but runner pairing, capability, worktree, redaction, and local-tool limits still apply.

Direct providersConfigure a supported provider token locally for the Amistio direct agent.Setup
Install path

`npm install -g @amistio/cli` installs both `amistio` and `amistio-host-helper`. Normal runner use still works without the helper.

Enable path

Set `AMISTIO_HOST_HELPER_PATH=$(command -v amistio-host-helper)` on runner machines where the reviewed helper is intended.

Diagnose path

Run `amistio host-helper status` to see protocol version, helper path, implementation, process supervision, PTY, sandbox, and secret-boundary status.

Conformance path

Run `amistio host-helper conformance` before claiming support. It checks handshake, command execution, request IDs, output bounds, and fail-closed unsupported PTY/sandbox behavior.

Release path

Run `corepack pnpm --config.verify-deps-before-run=false --filter @amistio/cli release:check` before npm publish. Root `verify` includes this gate for Amistio development.

Capability truth

The npm helper advertises Level 1 supervision only. PTY and sandbox requests remain unsupported until a native helper build enforces them.

Third-party path

Compatible helpers must implement `amistio.hostExecution.v1`, preserve request IDs, bound UTF-8 output, fail closed for unsupported capabilities, and keep provider credentials out of helper ownership.

Troubleshooting

When the path gets stuck.

Use these checks when setup, pairing, local tools, sync, or runner claiming does not behave as expected.

The app cannot reach the server

Open the status page from the same origin and confirm the web app, server routes, and local port checks are healthy.

The repository is not paired

Create a pairing code in the active personal or organization project, then run `amistio import <code>` from an existing checkout, or use bootstrap for first-time clone setup.

Bootstrap clone fails

Confirm local Git can clone the repository with your SSH key, credential helper, provider CLI, or keychain.

Direct provider is not configured

Set a supported provider token locally on the runner, then run `amistio tools` or refresh the Runner panel.

Git is not available to the runner PATH

Install Git or restart the foreground, background, or startup-service runner from an environment where `git --version` works. On macOS, background services and GUI-launched terminals can have a different PATH than your interactive shell, so restart or reinstall the service after changing PATH.

No work is claimed

Confirm the repository link is active, the work item is approved, and `amistio run --watch` is running from the paired repository.

Status unavailable appears

The runner did not claim work, but a retryable project-status read failed. Keep the runner running so it retries on the next poll. If it repeats after a web/API deploy, update and restart the runner and check the status page.

The runner was forgotten

Run `amistio runner repair` from the paired checkout to rotate the local runner ID, then start `amistio run --watch` again. Use `--clear-credential` only when the Runner panel tells you to create a fresh pairing code.

Tool context was not reused

Amistio starts fresh when a tool session is one-shot, active elsewhere, failed, closed, or idle past six hours. This protects approved work from stale local AI context.

Autopilot did not run work

Check Runner panel policy details and the Task replay timeline. Disabled, paused, incompatible runner, duplicate in-flight work, unsafe paths, exhausted budgets, stale revisions, failed verification, protected surfaces, or review-required findings stop autopilot before claim.

Parallel runner work is waiting

Check the Runner panel capacity and lane details. A lane waits when its slot is busy, runner capacity is full, local resources are intentionally lowered, or equivalent implementation scope is already active in another worktree.

A lease says the lane does not own the work

Update and restart the runner. Current runners use server-side atomic claim checks plus a local active-claim/worktree ledger before tool execution, so duplicate lane claims are skipped instead of continuing into renewal noise.

A claim owner is gone

Current runners recover abandoned claims only after the API proves the previous owner is forgotten, missing, stale, offline, or lease-expired, then retry pending finalization with active lane capacity. Large recovery backlogs are budgeted per poll and adopted finalization claims use short replay leases, so fresh lanes can still claim eligible work. If you know an offline runner is dead, use Forget runner to remove it and release its non-terminal claims for normal compatible-runner selection. If no compatible runner exists, start or pair one; fresh live claims keep rejecting non-owner updates.

A second runner still shows as one

Generate a new code with Add runner and use the suggested `--runner-id` in the foreground, background, or startup-service command. Same-machine defaults otherwise resolve to one stable runner identity.

Brain generation finalization is pending

If a runner produces generated brain artifacts but the API is temporarily unavailable, the CLI stores a safe local finalization envelope in user-level Amistio state and replays it before claiming more work.

Source-aware questions require a current runner

Older runners that do not advertise supported work kinds can keep claiming legacy work, but they will skip source-aware assistant and impact-preview work until updated.

Context refresh requires a runner update

Update and restart the local runner so its heartbeat advertises project-context refresh support before using the Context panel.

Context refresh is rejected

The runner keeps source local and fails the refresh when submitted context contains unsafe evidence, unsafe paths, or a map too large to store safely. Known failures such as `unsafe_context_path` appear as attention-needed guidance; deploy the latest web/API fix, update and restart the runner when applicable, then retry with bounded non-secret output.

Issue diagnosis requires a runner update

Update and restart the local runner so its heartbeat advertises issue-diagnosis support before submitting a bug or operational issue.

AI brain consolidation requires a runner update

Update and restart the local runner so its heartbeat advertises semantic brain-consolidation support before relying on automatic semantic cleanup or using Consolidate for AI duplicate review.

App evaluation requires a runner update

Update and restart the local runner so its heartbeat advertises app-evaluation scan support before using the Evaluate panel or hourly runner checks.

An older App Evaluation scan closed

A newer manual or adaptive evaluation supersedes older queued or running scans for the same repository. Historical scans remain visible for audit, and current findings are updated only from successful scan ingestion.

App Evaluation skipped full verification

App Evaluation scans are read-only. If a whole-app verification command would install dependencies, regenerate framework files, or create build artifacts, the scan records stale or missing evidence and asks for a separate Test-gate or implementation verification run instead of dirtying the checkout.

Self-maintenance health appears in Evaluate

Normal runner polling can update bounded self-maintenance findings in Evaluate and run the blocker-elimination loop. Autopilot-disabled projects get reviewable unblock plans; autopilot-enabled projects may requeue safe rows or approve low-risk repair work under policy. Records include counts, trend, root-cause categories, and IDs instead of raw source, full document bodies, secrets, commands, or local paths.

Security scans require a runner update

Update and restart the local runner so its heartbeat advertises security-posture scan support before using the Security panel or daily runner checks.

Test checks require a runner update

Update and restart the local runner so its heartbeat advertises Test-quality and implementation-Test-gate support before using the Test panel or completing implementation work.

App Evaluation result is rejected

Update and restart the local runner if a structured app-evaluation result is rejected. The runner and workspace show safe validation paths for contract mismatches without exposing raw source or secrets.

Impact preview result is rejected

Update and restart the local runner if a structured impact-preview result is rejected. The API returns safe validation paths for contract mismatches, and accepted results that cannot be stored safely are marked failed with a bounded reason instead of uploading raw source or secrets.

Implementation finalization is waiting on a gate

Keep a compatible paired runner running. The source-work finalization remains in the local outbox, queued implementation Test gates claim before unrelated work, and abandoned source claims recover with active lane capacity, bounded replay budgets, and short replay leases before replaying finalization.

Implementation Test gate is blocked

Open the Test panel for the structured blocked finding and next verification steps. For Amistio's own monorepo, use `corepack pnpm --config.verify-deps-before-run=false verify` if plain Corepack pnpm fails before repository scripts with `spawnSync pnpm ENOENT`, then rerun the gate or record an audited override.

Release is blocked by dependency audit

Open Test and Work for the dependency-remediation item. Amistio stores only bounded package/path evidence, keeps the work drafted until approved or audited by autopilot, and requires `corepack pnpm --config.verify-deps-before-run=false verify` before release resumes.

Runner environment is blocked

Check the Work and Runner panels for the sanitized environment profile and readiness summary. Missing Git, Node, Corepack, package managers, required scripts, dependencies, setup failures, Docker availability, invalid Docker envelopes, or unsupported profiles block the work before local tool execution.

Package install setup is needed

Restart the foreground/background runner or reinstall the startup service with `--execution-profile hostWorktreeWithSetup --setup-package-manager-install` only when running the repository's fixed package-manager install step is acceptable for that checkout.

Docker profile blocks work

`dockerWorkspace` validates Docker availability and the safe worktree-only envelope, but current runners still mark the work blocked until containerized harness execution is implemented.

Git worktree setup keeps failing

The runner repairs safe stale Git registrations when the target worktree directory is missing and Git marks the registration prunable. Other preflight setup failures retry up to `--max-preflight-attempts`, then fail the work item with the last safe error summary.

Tests fail only in a new worktree

Put required local test config in an ignored root dotenv file such as `.env.test.local`. The runner copies eligible ignored dotenv files locally, but dependencies and local services remain your machine setup.

PR handoff is blocked

Confirm the paired checkout has a GitHub remote, Git commit identity, fetch/push permission, an authenticated local `gh` CLI, and no dirty or conflicting approved artifact target paths. New implementation work blocks before local AI/tool execution when these prerequisites are missing. Retry handoff can publish a clean preserved local-only commit without rerunning the implementation prompt; rebase conflicts capture safe repo-relative conflict files and try to abort the failed rebase, while dirty or ambiguous worktrees stay preserved.

A brain file changed in two places

Resolve the conflict intentionally before syncing over either the web record or the repo copy.