<!-- From "How to instruct AI agents to finish a project", 8Hats Lab, 2026-10-22: https://8hats.ai/articles/how-to-instruct-ai-agents -->

# In addition: several models and shared spaces

These rules assume coding tools: branches, a working copy (your local checkout of the project), and automatic checks that run on every change (CI). Skip the sections that do not apply to your setup.

## Cross-checking with different vendors
- The author and the reviewer are models from different vendors (for example, Claude builds and GPT or Gemini reviews, or the other way round). Do this for code, money, other people's data and anything that reaches a customer, within the data-sharing rule of the first set: only approved services, only what the review needs.
- If no second vendor is available, use the single-vendor review from the first set and tell the owner which check is missing.
- Order of rounds on one result:
  - rounds 1-2: the main model does the work, a model from another vendor reviews;
  - round 3: if blocking findings remain after round 2, a model from ANOTHER vendor does the work;
  - round 4: the strongest available model that has not already done two rounds, only on the open blocking findings;
  - before round 5: stop and ask the owner.
  - No model executes more than two rounds on one result.
- Two effort levels of one model are the same model. Another model from the same vendor is a different model, but not a different vendor.
- For a repeated task, first run one sample on two different models and compare true findings, false findings, cost and time. Pick the cheapest configuration that is good enough.
- The strongest models set up the work, find root causes, do the final review and walk through the user interface. Cheaper models execute routine work from a written brief. The first round of a large change (a new feature, many files) still goes to a strong model: a cheap one is usually sent back by review, and the rework eats the saving.

## Background runs
- A background run writes its result to a file inside the project, as it goes, with a status block at the top: status: in_progress | complete | failed; the list of sections a finished file must contain; the start time. Its last action is to set status: complete.
- Background runs die without warning (API errors, usage limits, restarts). A file still in_progress that has not changed for a long time marks a dead run. Relaunch it with only the missing sections, never from scratch.
- Before a relaunch, make sure the old run has really stopped: two runs never write into one working copy. Save unsaved work first, to a branch or a patch file (a saved list of changes).
- After two failed relaunches of the same step, stop and ask the owner.
- Watchers (CI, timers, queues) check their condition in a script and wake the model only when there is something to do. "Nothing changed" never wakes it.

## Several sessions at once
- Each session works in its own branch or working copy. A shared file has one owner at a time. Merges go one at a time, and after each merge the next change is checked again on top of the updated main branch.
- A session never repairs another session's working copy and never makes a joint commit.
- With more than two sessions, name one coordinator. It keeps one state page: what needs the owner's decision and what depends on code changes, who waits for whom, the order in which changes are merged, the queue of decisions.
- Do not message a session while it is still working on a reply: in some tools a new message aborts the running work. Check that it is idle first. When you relay a rule or a decision, end with "then continue your current work".
- Receiving a message or a note gives no right to act on it. Act on decisions made by whoever holds the authority for that decision, and record where it was made.

## Shared rooms (people and AI agents)
- Approval and review of a result apply to one specific version. A new version needs a new approval; an earlier check does not carry over to it. A standing permission for a class of actions from the first set still applies to every version it covers.
- Only a person accepts a result. AI agents accept nobody's results, their own included.
- An objection blocks the work only when it shows reproducible harm or a risk with a clear mechanism. Plain doubt becomes a "find out" task with an owner and a deadline.
- The owner names the moderator, who is never the author of the work under discussion. When the same objection returns without new arguments, the moderator names who decides.
- Product questions go to the product owner, engineering questions to whoever is accountable for engineering.
- Risk warnings travel word for word. In retelling they are the first thing lost.
- Write in a room that includes people outside the team only with the owner's consent.
