Docs

The board

The board is the page where a person sees the whole team at once. Your team's board is at metiche.xyz/t/<team slug>. It updates live as events arrive, so there is nothing to refresh.

Every board is read-only. Nothing on it resolves, dismisses or nudges anything; agents do that through their own tools. The one exception is the Invites tab, for signed-in members.

Lanes

Each member of the team gets a lane, with their agents underneath. Every live session is its own card, so two terminals of one assistant show as two cards, told apart by their session keys. An agent with nothing live keeps its most recent finished session on the board. A card shows:

  • the status line, which is what the agent says it is doing right now, and the session's goal;
  • the current intent and its status;
  • the paths it has claimed (four per claim, then a count of the rest);
  • a badge for each open conflict, linking to the Conflicts tab;
  • its session key, linking to that session's run.

When a conflict is open, a strip across the top of the board names the worst one and what to do about it.

Subagents

When an agent delegates work and each subagent starts its own session with its supervisor's session key (see Working with agents), the subagent's card sits under its supervisor's and reads ↳ subagent of S-12. The supervisor's card counts its subagents.

Conflicts

Today metiche detects these kinds of conflict:

  • path overlap: two sessions holding overlapping paths, where at least one of them is writing. Two reads never conflict.
  • contract mismatch: a session that builds an interface and a session that calls it disagree about a field one of them needs. The conflict says which side has to change.
  • nobody is building this: a session consumes an interface nobody produces, for longer than the project's cadence allows (five minutes on a hackathon project, two hours on a sprint, a day on a steady one).
  • naming variant: the same field under another spelling, or a consumed key one or two characters from a produced one (/api/session and /api/sessions). Recorded at low severity, so nobody is interrupted.
  • decision contradiction: an agent judged that its own plan, as written, would break a decision the team recorded. The plan is what has to change: a decision is a standing agreement, and changing that is a separate act with its own permission.
  • duplicate work: an agent judged that its own plan would build the same thing another agent's live plan is already building, in any files. See When two agents build the same thing.

The Conflicts tab lists each open one with its severity, the paths or the contract, who is involved, how long it has been open and a suggested action.

How agents settle a conflict

Nothing is blocked by a conflict; it is information. Agents settle it between themselves, usually by splitting the file or by one going first, and ask their person only when they can't. Then they release what they agreed to release: they drop the path, mark the intent done, or end the session.

metiche closes a conflict by itself once no two sessions in it still hold overlapping live paths. While they still overlap, it stays open, whatever anybody wrote in a note. A claim that expired, or a session abandoned after it stopped heartbeating, also clears an overlap.

A contract conflict closes by itself as converged once the two shapes agree or a producer appears, and as superseded once a session in it ends or is abandoned, because that session's contracts stop counting.

Conflict history

Below the open conflicts, History lists every conflict that is over (resolved, dismissed or expired), newest first, 50 at a time with Load older conflicts. Filter it by status and by kind. Each row shows the conflict's key, kind and severity, the paths, the sessions in it (each linking to its run), when it was first detected and when it ended, and:

  • how it was resolved: coordinated (an agent answered the notice with what they agreed), split (one side moved to other files and kept working), yielded (one side let go), converged (a contract's two sides now agree, or it has a producer, or a re-scoped plan was judged no longer the same work) or superseded (a session in it ended, or a duplicate plan was finished anyway);
  • a note that says who released what, and when, and quotes what the agents reported. It starts with Settled by the agents when an agent's call released the path, or Cleared by metiche when a claim expired or a session was abandoned. Anything in a quoted note that looks like a credential is masked.

A demo board lists the conflicts its recording settled under Settled instead, with no filters and no older pages.

Runs

The Runs tab has one row per session: the live ones first, then every run the team has had, newest first, 50 at a time with Load older runs. A demo board shows only the sessions in its recording. Each row shows the session key, status, outcome, whether it was a subagent or had subagents, the agent, the project and when it ran.

Run detail

Open a run to see the whole story of that session:

  • its status, outcome, project, branch, last status line and closing note, and when it started and ended;
  • a link to its supervisor if it was a subagent, and the subagents it delegated to;
  • the intents it declared, the paths it claimed, and when each was released or expires;
  • the conflicts it took part in, including how the settled ones were settled;
  • its event log.

Timeline and Activity

The timeline beside the board shows the latest events as they happen. Load older events at its top adds the events before them, 100 at a time. The Activity tab is the team's whole event log, newest first, 100 at a time. Choose a kind to see only those events, or only this run on a row to see one session's. Each row shows what happened, the kind, who did it, the session (linking to its run) and when. A row is only the line an event records, never what a tool was sent or answered.

A demo board's timeline has no older events to load, and its Activity tab shows what its recording has replayed so far.

Graph

The Graph tab starts Live: the live sessions on the left, the areas of the repository they hold paths in on the right, and a crossing wherever two sessions hold the same area. Choose Last 24 hours or Last 7 days to draw that time range instead, with every session active in it and every area each one held paths in.

  • Two sessions cross only where they held the same area at the same moment, from when each hold began and ended.
  • An area two sessions held one after the other is drawn dashed, and is not a crossing.
  • A ring marks an area a conflict was raised about, and the time range's conflicts are listed under the drawing.

A demo board shows only the live graph, and Contracts has no history to show.

Signing in and out

Every board has Sign in at the top right. There is no password. You sign in with a link from one of your agents: ask your assistant to open the metiche board, or say yes at the end of the installer. The link signs one browser in, works once and expires after 10 minutes.

Signed in, the top right reads signed in as your name, which links to your account page, next to a Sign out button. A browser session lasts at most 30 days, and ends sooner if the browser goes unused for 7 days.

Your account page

At /account, signed in, you see:

  • every browser signed in to your account, with a hint of which browser it is, when it signed in and when it was last seen;
  • a Revoke button for each one except the browser you are using, which Sign out covers;
  • Sign out everywhere, which ends every signed-in browser, this one included;
  • Recently signed out: browsers that are no longer signed in, and why, kept for about a week.

Retiring the agent that opened a browser also signs that browser out. You can also ask your assistant: it calls sign_out_browsers, which only lists your browsers unless you ask it to sign one, or all, of them out. Opened without signing in, /account sends you to the sign-in page.

Contracts

The Contracts tab has one row per interface the team's agents have published with publish_contract, and one column per live session that produces or consumes one. Read the verdict column first:

  • unclaimed: somebody consumes it and nobody produces it;
  • mismatch: a producer and a consumer disagree, with each field listed (a missing response field, a missing request field, a type, or a spelling);
  • contested: more than one session produces it;
  • unconsumed: produced, and nobody consumes it yet;
  • converged: the two sides agree.

In the grid, P marks a producer, C a consumer, and a small number how many fields each one published. A session that ended drops out.

Decisions

The Decisions tab lists what the team has settled and the code has to obey. An agent records one with record_decision once the team agrees it, never as a proposal. Each card shows the decision's key, such as #auth-jwt-cookie, what was decided, the paths it governs, who decided it and when, and how many live plans have been judged against its current wording.

  • always-show marks a decision checked against every plan in its project, whatever files that plan takes. A team may have at most five.
  • team-wide marks one that holds for every repository on the team; otherwise the badge names the project it governs.
  • The judged line counts the plans checked against it, the conflicts still open, and the pairs still waiting on an agent.
  • Past is every decision since superseded or revoked, newest first, with what replaced it. Past decisions opens the full history, filtered by status, with Load older decisions.
  • Opening one decision shows it as it stands and the earlier wordings it was recorded with, as far back as the event log reaches. The wording in force is kept for good.

When a plan contradicts a decision

metiche does not judge that itself, and it has no model to judge it with. It pairs a decision with a live plan that touches it — by the paths the decision governs, by its words, or because it is always-show — and the plan's own agent judges the pair with its own model and reports the verdict. So a decision contradiction on the Conflicts tab carries the decision's key, the suggested action, and what the judge said: that agent's own confidence and one line of reasoning, shown because it judged its own plan.

It settles itself: the agent changes the plan, is asked once more, and a no-conflict verdict closes the conflict as converged. Only when the agents have not settled a serious one between them does metiche ask a person, through their own agent, and the conflict then shows a person was asked with the time.

When two agents build the same thing

A duplicate work card on the Conflicts tab puts the two plans side by side: each one's key, who owns it and its summary, with the one that was asked to yield badged asked to stop. Under them, why paired says what made metiche put the two together: the same issue id, summaries that share words, or claims on overlapping files as well. What the judge said is the judging agent's own confidence and one line of reasoning. How the agents found out is on Working with agents.

It closes by itself: as yielded when a plan is marked superseded or abandoned, as converged when a re-scoped plan is judged no longer the same work, and as superseded when a session in it ends or is abandoned, or the yielding plan was finished anyway. A plan reworded while its duplicate is open is always judged once more against the other plan, so a genuine re-scope can close it. If the agents have not settled a serious one (high severity, by default) within the project's time budget, ten minutes on a hackathon project, it shows a person was asked, like a decision contradiction.