Agent onboarding (manual reference)

Generated by pactify agent docs. For each kind, pactify agent add <kind> --id <seat> --roles <roles> does this for you.

antigravity

Config:

{
  "mcpServers": {
    "pact": {
      "args": [
        "mcp",
        "--project",
        "REPO_DIR"
      ],
      "command": "pactify",
      "env": {
        "PACT_AGENT_ID": "SEAT_ID"
      }
    }
  }
}

claude-code

Entry block:

# pact protocol — seat `SEAT_ID`

This repo uses the **pact protocol** (v1). You are seat `SEAT_ID`, roles: ROLES.

**Primary — MCP:** the `pact` MCP server is wired into your config. Use its tools
(status / join / assign / checkpoint / accept / changes / merge / list) and resources
(`pact://state`, `pact://log`). Cold start: call `status`, then `join`
(registers your seat and checks out your feature branch).

**Fallback — shell** (if MCP is unavailable):
```bash
export PACT_AGENT_ID=SEAT_ID
pactify join SEAT_ID --roles ROLES
```
then `pactify help` for the verbs.

**The two rules:** a worker cannot self-accept (only the task's reviewer accepts); a
feature cannot merge until all its tasks are accepted.

Config:

{
  "mcpServers": {
    "pact": {
      "args": [
        "mcp"
      ],
      "command": "pactify",
      "env": {
        "PACT_AGENT_ID": "SEAT_ID"
      }
    }
  }
}

claude-desktop

Config:

{
  "mcpServers": {
    "pact": {
      "args": [
        "mcp",
        "--project",
        "REPO_DIR"
      ],
      "command": "pactify",
      "env": {
        "PACT_AGENT_ID": "SEAT_ID"
      }
    }
  }
}

codex-app

Entry block:

# pact protocol — seat `SEAT_ID`

This repo uses the **pact protocol** (v1). You are seat `SEAT_ID`, roles: ROLES.

**Primary — MCP:** the `pact` MCP server is wired into your config. Use its tools
(status / join / assign / checkpoint / accept / changes / merge / list) and resources
(`pact://state`, `pact://log`). Cold start: call `status`, then `join`
(registers your seat and checks out your feature branch).

**Fallback — shell** (if MCP is unavailable):
```bash
export PACT_AGENT_ID=SEAT_ID
pactify join SEAT_ID --roles ROLES
```
then `pactify help` for the verbs.

**The two rules:** a worker cannot self-accept (only the task's reviewer accepts); a
feature cannot merge until all its tasks are accepted.

Config:

[mcp_servers.pact]
command = "pactify"
args = ["mcp", "--project", "REPO_DIR"]
env = { PACT_AGENT_ID = "SEAT_ID" }

codex-cli

Entry block:

# pact protocol — seat `SEAT_ID`

This repo uses the **pact protocol** (v1). You are seat `SEAT_ID`, roles: ROLES.

**Primary — MCP:** the `pact` MCP server is wired into your config. Use its tools
(status / join / assign / checkpoint / accept / changes / merge / list) and resources
(`pact://state`, `pact://log`). Cold start: call `status`, then `join`
(registers your seat and checks out your feature branch).

**Fallback — shell** (if MCP is unavailable):
```bash
export PACT_AGENT_ID=SEAT_ID
pactify join SEAT_ID --roles ROLES
```
then `pactify help` for the verbs.

**The two rules:** a worker cannot self-accept (only the task's reviewer accepts); a
feature cannot merge until all its tasks are accepted.

Config:

[mcp_servers.pact]
command = "pactify"
args = ["mcp"]
env = { PACT_AGENT_ID = "SEAT_ID" }

gemini-cli

Entry block:

# pact protocol — seat `SEAT_ID`

This repo uses the **pact protocol** (v1). You are seat `SEAT_ID`, roles: ROLES.

**Primary — MCP:** the `pact` MCP server is wired into your config. Use its tools
(status / join / assign / checkpoint / accept / changes / merge / list) and resources
(`pact://state`, `pact://log`). Cold start: call `status`, then `join`
(registers your seat and checks out your feature branch).

**Fallback — shell** (if MCP is unavailable):
```bash
export PACT_AGENT_ID=SEAT_ID
pactify join SEAT_ID --roles ROLES
```
then `pactify help` for the verbs.

**The two rules:** a worker cannot self-accept (only the task's reviewer accepts); a
feature cannot merge until all its tasks are accepted.

Config:

{
  "mcpServers": {
    "pact": {
      "args": [
        "mcp"
      ],
      "command": "pactify",
      "env": {
        "PACT_AGENT_ID": "SEAT_ID"
      }
    }
  }
}

opencode

Entry block:

# pact protocol — seat `SEAT_ID`

This repo uses the **pact protocol** (v1). You are seat `SEAT_ID`, roles: ROLES.

**Primary — MCP:** the `pact` MCP server is wired into your config. Use its tools
(status / join / assign / checkpoint / accept / changes / merge / list) and resources
(`pact://state`, `pact://log`). Cold start: call `status`, then `join`
(registers your seat and checks out your feature branch).

**Fallback — shell** (if MCP is unavailable):
```bash
export PACT_AGENT_ID=SEAT_ID
pactify join SEAT_ID --roles ROLES
```
then `pactify help` for the verbs.

**The two rules:** a worker cannot self-accept (only the task's reviewer accepts); a
feature cannot merge until all its tasks are accepted.

Config:

{
  "mcp": {
    "pact": {
      "command": [
        "pactify",
        "mcp"
      ],
      "enabled": true,
      "environment": {
        "PACT_AGENT_ID": "SEAT_ID"
      },
      "type": "local"
    }
  }
}