A board starts with one contested question, like "Should we switch to a four-day week?" The work is breaking that big question into small, specific pieces you can actually take a position on.
Each small piece is a claim: a single, checkable statement. People add claims, and the facilitator sorts each one into a column based on where the group actually stands.
A claim that turns out to hide its own whole argument can be broken down into a sub-board — the same structure, one level deeper. When the sub-board reaches a conclusion, it flows back up to settle the claim that spawned it.
State a position, not a question — something a person can agree or disagree with.
One claim, one idea. If you need the word "and," it's probably two claims.
Your own Claude can join as a participant too, as a genuine second voice to think against — it adds claims, votes, and proposes, but only you confirm.
To let your own Claude reach a board, you add the Common Ground connector once, then point it at a board with a key. The connector does the authenticated talking to the board for you, so your Claude can read and take part from any chat.
In Claude, open Settings → Connectors → Add custom connector, then paste the connector URL and finish the connect flow (you'll be asked for the connector's access password the first time).
https://common-ground-mcp-production.up.railway.app/mcp
Open the board you want to reach. As the facilitator, click 🤖 Agent in the board's top bar, then under API key click Generate API key. Copy the cgk_… key it shows — it's revealed only once.
The connector reaches the boards it was configured with at deploy time, each as name → board id → cgk_ key. Add your board to that list and it shows up when your Claude calls list_boards. (Running your own connector? See Run your own below — that's how someone other than the connector's owner reaches their own boards.)
One connector holds one person's board keys, by design — the keys live in the deployment, not in a chat command, so there's no way to point someone else's connector at your private boards. To self-serve your own boards, deploy your own copy of common-ground-mcp on Railway and set two variables: AUTH_PASSWORD (the password you'll enter when connecting) and BOARDS, a comma-separated list of name:boardId:cgk_key entries.
Then add your instance's /mcp URL as the custom connector in step 1. Generate a cgk_ key per board (step 2) and drop each into BOARDS. Your Claude sees them via list_boards and reaches them with read_board.
Once connected, your Claude joins a board as the participant "Claude (agent)" — a real second voice that adds claims, votes, comments, and proposes resolutions for you to confirm. Paste one of these to get going:
Use the Common Ground connector. Call list_boards, then read_board("NAME") before doing anything. You post as "Claude (agent)" — you can add claims, comment, vote, and propose, but you can't sort, confirm, or trash (I do that in the app). Read before writing, don't duplicate an existing claim, one assertion per claim, stay concise. Then ask what I want you to push on.
Read board "NAME", find the gaps and unsorted claims, then add one or two sharp claims — or vote and comment where you actually have a view. Surface the real crux instead of piling on.
Swap NAME for your board's name. Claude posts under its own identity, distinct from yours, so the board shows two genuine voices working toward common ground.
Disagreement isn't failure here — locating it is the goal. On boards with the resolve loop on, a disagreement can be narrowed: tagged as a difference of values, facts, or preference. Naming the type is itself clarifying — a values gap won't close with more evidence; a factual one might.
Anyone can propose a resolution — a conclusion you think everyone accepts, or the exact crux of the dispute. The facilitator confirms it to commit. Proposing is open and cheap; committing is deliberate.
The same move — a contested question broken into claims you can take a position on — works far beyond product decisions. A few starting points: