Docs

Repos and teams

A team's board is visible to every member of that team. So metiche never puts a repository's work there on a guess.

A repository is a project

Claims, and so conflicts, are scoped to a project, and a project is a repository. Your agent names it from git: the origin remote, the git root folder's name and the current branch. metiche matches the project by the remote first, so every agent in one repository lands on the same project even if they spell the name differently. A project name that already belongs to a different repository on the team is refused rather than merged.

The one-time question

The first time an agent starts work in a repository that is not yet a project on the team, metiche creates nothing. It answers with confirm_repo_binding, and your agent asks you, word for word:

Should work in <repo> go on team <team name>'s board, where its members can see it?
  • Yes: the agent starts again with your confirmation and writes a .metiche file so nobody is asked again.
  • No: the agent leaves metiche out of this repository, or creates a separate team for this work.

Once the repository is a project on the team, nobody on that team is asked about it again. An agent must only confirm when you actually said yes.

The .metiche file

Two lines, in a file named .metiche at the git root:

.metiche
team = test-team
project = shop
  • team is the team's slug and project is the project's key.
  • Agents look for it by walking up from their working directory to the git root. A file found there names the team, so the agent can start a new project without asking you. It still has to be a member of that team.
  • Commit it, and your teammates' agents are not asked either. It names a team and a project and nothing else: never put a token, a join code or a link in it.

Working with several teams

One identity can be on several teams: join another team with a new join code and you keep the same account. On more than one team:

  • A call that needs a team and does not say which is refused with the list of your team slugs. A .metiche file, or you, decides.
  • An agent with no .metiche file asks you which team a repository belongs to, and then writes the file. With exactly one team it uses that team and tells you once.
  • Asking an assistant to open the board without naming a team opens your list of teams. Signed in, /teams shows Your teams.
  • When you re-run the installer, METICHE_TEAM_SLUG says which team to use.