The web app coordinates
Wishes, approvals, queues, heartbeats, safe status, and bounded resource samples live in Amistio.
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 here
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
Enterprise users can enter from the job they need to do instead of learning every runner, provider, and helper boundary first.
Featured
These are the pages most likely to answer what Amistio is, how the brain works, and how AI tooling fits the local-runner boundary.
Collections
The page is no longer one long manual. It is organized around what a visitor is trying to understand or do.
Project brain
Deep dives for the files that make agent work inspectable: memory, ADRs, plans, prompts, workflows, context, and instructions.
Learning
Readable background pieces for visitors learning the vocabulary around agents, harnesses, templates, and AI history.
Tools
Practical guidance for the tool layer around Amistio's local runner and project-brain workflow.
Operations
Reference material for pairing, sync, CLI commands, runner execution, status, and troubleshooting.
Setup reference
The setup content stays on this page, but it is compact now so the hub can support both docs and learning articles.
Use this as the fast mental model before dropping into the command reference.
The Runner panel shows repository, pairing, GitHub access, AI provider, local runner, and verification readiness with the next action for each blocked step.
The Runner panel also summarizes trust/privacy, cost forecast and budget posture, runner health, blockers, verification health, and version distribution from safe runner metadata.
Link repository metadata in the app, then bootstrap, import, or pair from the checkout that owns the work.
Approved records materialize into `docs/`; Markdown is the default, and explicit HTML artifacts stay under `docs/html/`.
Project transfers copy portable brain and safe history while runner credentials and machine-local state stay behind.
The public app is served from Azure Container Apps; releases publish GHCR image tags and roll Azure revisions through the Deploy workflow.
Production Cosmos storage keeps workspace core, durable knowledge, live work, messages, and logs in separate access-pattern containers.
Personal workspace removal archives Amistio state; local checkouts, hosted repos, and org-owned records remain.
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.
The Runner panel can queue direct provider checks; the runner completes local checks and reports sanitized status metadata only.
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.
Interactive `amistio orchestrate` sessions show a local OpenTUI planning shell for goal, model, prompt output, and run phase.
The CLI exposes `amistio harness status`, `amistio harness providers`, and `amistio harness tools` as scriptable diagnostics while setup stays web-led.
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.
Runner profiles report sanitized readiness for Git, Node, Corepack, package manager, required scripts, dependencies, setup, and Docker before approved local tool execution begins.
`@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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Completed work and unchanged idle-ready status are announced once, then the runner stays quiet until something actually needs attention.
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.
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
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.
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.
Amistio estimates full brain tokens, then selects digests, the active living context map, recent work state, and context-health signals for the next task.
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.
Workspace numbers are deterministic estimates for decision support, not provider billing guarantees.
The app can show token and routing summaries without uploading raw source files, secrets, provider credentials, arbitrary local paths, or local command lines.
The workspace panel shows estimated full context, selected context, avoided tokens, context warnings, the current model preference, and the recommended route.
The estimated size of brain documents, context maps, recent work state, and health signals if sent without compaction.
The estimated compact AI-facing context pack for the next task.
The difference between full context and selected context, expressed as an estimate and percentage.
Economy, balanced, strong, or deep reasoning based on task type, risk, and source-awareness.
Provider and auth matrix
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
Keep this section nearby for setup, runner work, bounded retries, and local-tool execution limits.
npm install -g @amistio/cliInstall the stable Amistio CLI runner.
amistio --helpConfirm the runner command is available.
amistio harness statusShow the built-in Amistio harness boundary and read-only/mutating execution policy summary.
amistio harness providersCheck local direct provider readiness without printing provider secrets.
amistio harness toolsList bounded Amistio-owned tool adapters available to the built-in harness.
amistio toolsShow the built-in Amistio direct agent capability on this machine.
amistio host-helper statusShow configured host-helper discovery, protocol, capability, and secret-boundary status.
AMISTIO_HOST_HELPER_PATH=$(command -v amistio-host-helper) amistio host-helper statusVerify the official packaged helper handshake before using it with a runner.
AMISTIO_HOST_HELPER_PATH=$(command -v amistio-host-helper) amistio host-helper conformanceRun compatibility checks for the official helper or any third-party helper before enterprise rollout.
amistio initCreate control-plane folders for a new project.
amistio onboardInspect 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 statusShow brain file state, pending docs, dirty edits, and conflicts.
amistio sync pullMaterialize approved web brain artifacts into docs/ folders, including explicit docs/html HTML artifacts.
amistio sync pushPush local synced brain changes back to the app for review.
amistio sync watchWhen repository auto-sync is enabled, scan recognized Markdown/MDX and HTML brain docs and push reviewable external changes.
amistio run --watchClaim 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 --watchReplay 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 --watchIf 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.1Use GitHub Models with Amistio-owned bounded filesystem, Git, package, test, and browser tools.
amistio run --watch --provider openai --model-id gpt-4.1Use OpenAI with the same Amistio-owned bounded filesystem, Git, package, test, and browser tools.
amistio run --watch --execution-profile hostWorktreeUse the default profile: isolated Git worktree plus environment doctor checks before local AI/tool execution.
amistio run --watch --execution-profile hostWorktreeWithSetup --setup-package-manager-installAllow 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 dockerWorkspaceValidate a safe Docker worktree envelope; current runners still block approved work until containerized harness execution is enabled.
amistio run --watchRun 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 1Lower 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 1800Use explicit bounded setup retry and local-tool timeout limits.
amistio run --watch --backgroundStart a detached background runner for the paired checkout.
amistio runner statusCheck detached runner state, heartbeat, and bounded resource sample.
amistio runner repairRotate the local runner ID for a paired checkout after the server forgets the previous runner.
amistio runner smoke-session-lifecycleRun a local no-claim smoke that verifies runner tool-session lifecycle behavior without contacting the API or claiming work.
amistio runner stopStop the detached background runner.
amistio runner service installInstall a user-level startup service where available.
amistio runner service statusShow startup service state and descriptor location.
amistio runner service removeUnload and remove the user-level startup service.
Local runner
The web app coordinates wishes, generated brain artifacts, approvals, queues, heartbeats, status, and bounded runner resource samples.
Wishes, approvals, queues, heartbeats, safe status, and bounded resource samples live in Amistio.
Brain generation, source-aware scans, verification, and approved implementation run from a paired checkout.
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.
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.
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`.
Manual review or an audited autonomy-contract authorization must exist before runner work can bypass approval gates.
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.
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.
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.
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.
Eligible ignored root dotenv files are copied only between local checkout directories so tests can run; values are never uploaded.
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.
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.
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.
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.
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.
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`.
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.
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.
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.
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.
Successful app evaluation scans update repeated findings by stable identity and auto-resolve obsolete generated review drafts while preserving history and user-edited documents.
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.
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.
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.
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`.
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.
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.
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.
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.
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 code, secrets, process lists, environment variables, command lines, credentials, and arbitrary local paths are not uploaded as public status data.
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.
`npm install -g @amistio/cli` installs both `amistio` and `amistio-host-helper`. Normal runner use still works without the helper.
Set `AMISTIO_HOST_HELPER_PATH=$(command -v amistio-host-helper)` on runner machines where the reviewed helper is intended.
Run `amistio host-helper status` to see protocol version, helper path, implementation, process supervision, PTY, sandbox, and secret-boundary status.
Run `amistio host-helper conformance` before claiming support. It checks handshake, command execution, request IDs, output bounds, and fail-closed unsupported PTY/sandbox behavior.
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.
The npm helper advertises Level 1 supervision only. PTY and sandbox requests remain unsupported until a native helper build enforces them.
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
Use these checks when setup, pairing, local tools, sync, or runner claiming does not behave as expected.
Open the status page from the same origin and confirm the web app, server routes, and local port checks are healthy.
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.
Confirm local Git can clone the repository with your SSH key, credential helper, provider CLI, or keychain.
Set a supported provider token locally on the runner, then run `amistio tools` or refresh the Runner panel.
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.
Confirm the repository link is active, the work item is approved, and `amistio run --watch` is running from the paired repository.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Update and restart the local runner so its heartbeat advertises project-context refresh support before using the Context panel.
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.
Update and restart the local runner so its heartbeat advertises issue-diagnosis support before submitting a bug or operational issue.
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.
Update and restart the local runner so its heartbeat advertises app-evaluation scan support before using the Evaluate panel or hourly runner checks.
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 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.
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.
Update and restart the local runner so its heartbeat advertises security-posture scan support before using the Security panel or daily runner checks.
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.
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.
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.
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.
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.
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.
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.
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.
`dockerWorkspace` validates Docker availability and the safe worktree-only envelope, but current runners still mark the work blocked until containerized harness execution is implemented.
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.
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.
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.
Resolve the conflict intentionally before syncing over either the web record or the repo copy.