This project is named after a transcription error — and the error is the thesis.

I was brainstorming hackathon ideas with an AI in voice mode. That week everyone was reading about the "wiki" idea, so I said: "maybe, Wiki?" My Russian accent did the rest. Russian doesn't distinguish W and V, the model heard "Vicky," and it happily started designing a chatbot character named Vicky. No hesitation. No "did you mean." (The accent is admissible evidence — I narrate the demo video, and you can hear it for yourself: when I say "Wiki versus Vicky," it genuinely comes out as "wiki versus wiki.") A probabilistic system took a deterministic input, bent it, and confidently ran with its own version.

I could have corrected it and moved on. Instead I recognized it as the exact failure mode I wanted to fix. Research backs this up: language models are agreeable by nature, and AI agents placed in group debate amplify echo chambers instead of correcting them (arXiv:2506.11825). A bot that "helps the team decide" mostly restates whoever spoke last — fluently, confidently, with no memory of who never got heard.

So my move was a bridged consensus with my own tool-to-be: keep both. Wiki — the rigid, deterministic rules that cannot be sweet-talked. Vicky — the flexible, probabilistic voice that only phrases. The name isn't a joke on top of the architecture. The name is the architecture.

What it does

Type /decide in a channel. Wiki takes the chair and runs the room through a fixed sequence:

Private reads. Everyone submits their opinion and confidence in a Block Kit modal before seeing anyone else's. Nobody anchors on the boss. Neutral handles. Positions are revealed as Birch, Maple, Cedar… Seniority, status, and gender cues are gone. The minority gets its best case. Wiki deliberately resists premature consensus, and Vicky must write the strongest fair version of the least-supported view into the record. Evidence at the deadlock. If the room stalls, a third neutral handle — Linden — pulls one sourced fact from the workspace's own history via Slack's Real-Time Search, always with a link back to the original thread. Bridging consensus. The decision goes to the option people in both camps can live with — not the biggest camp's favorite. The debrief. Fairness metrics, an immutable audit log of every step, and one reveal: which anonymous seat was an AI the whole time.

The impact — Agent for Good

In every workplace, some voices are structurally louder. Wiki & Vicky levels the room by design, not by asking nicely: anonymity strips status cues, minority views are weighted into the outcome rather than politely heard, and loud, late pushes get discounted instead of rewarded.

Because every fairness decision is made by deterministic code and written to an immutable log, the group's trust doesn't have to rest on trusting an AI — anyone can audit exactly why the room landed where it did. The AI's own participation is honest too: the mediator is provably barred from advocacy and from forecasting outcomes, and the AI seat is disclosed at the debrief. The same mechanism extends to community boards, volunteer networks, and civic panels — the places where bridging consensus was proven in the first place.

And the vision runs further still. The goal is AI that helps humans build consensus wherever agreement is hard — team channels today, communities and civic panels next, and someday the kinds of tables where the stakes are peace itself. The world is not short of negotiations that could use a mediator with no side, no ego, and a full audit log. Agent for Good is the track; agent for peace is the direction.

How I built it

Two personas, one app, and a wall between them.

Wiki is the chair. Plain, deterministic Python — fixed rules, fixed math, same input, same output, nothing to persuade. Wiki makes every fairness decision: when to reveal, how to weight, when quorum is met, what gets stricken. It is exposed as an MCP server, and the Slack surface can only reach it through typed MCP tools — the wall between the AI and the rules isn't a promise in a prompt; it's the protocol boundary itself.

Vicky is the voice. A Claude-backed mediator that does only the language work Wiki invokes: summarizing the camps, steelmanning the minority, flagging when the room repeats itself. She never argues a side and never decides anything. The design invariant, kept everywhere in the codebase: no language-model call ever decides a state transition.

The wall fires on camera. When Vicky's wording drifts into advocacy, Wiki rejects it publicly ("mediator output rejected — advocacy detected"). When Vicky starts to call the result, Wiki cuts her off mid-sentence ("forecast suppressed — calling the outcome is a red line"), because broadcast predictions create bandwagons. The gates police the AI, never the humans — people argue freely; the machine is the one held to neutrality.

The surface is Slack Bolt (Socket Mode) with Block Kit modals for private reads and the debrief; one app posts as its distinct personas via chat:write.customize. Model backends are swappable — Claude in the demo, a local model and a fake backend for fully offline tests — and the suite includes a complete five-person deliberation running end-to-end over a real MCP client.

What the demo shows

Five engineers, two camps, one question: should our internal knowledge agent be a chatbot or a wiki? Under majority rule, the louder camp ships the chatbot. The mediated session lands somewhere nobody walked in holding: build the sourced wiki first, add a thin conversational layer on top.

The debrief puts numbers on it (from the recorded session): the least-satisfied camp endorses the bridged outcome at 0.81, versus 0.15 under majority rule; average endorsement rises 0.60 → 0.84; after Linden's evidence, 3 of 5 participants moved toward the compromise; 31 events in the audit log. One seat — Willow — is revealed to have been an AI participant the whole time. Nobody could tell.

And yes: a meeting about "chatbot versus wiki," chaired by a rules engine named Wiki and voiced by a chatbot named Vicky, chose both — in exactly the arrangement that was running the meeting.

What's validated vs. what's illustrated

One honest split, kept on purpose. The bridging selection is validated on 6,605 real human deliberation sessions from the Habermas Machine dataset — it reliably improves outcomes for the least-satisfied group at a modest, honestly-reported cost to the average. The demo numbers above are scenario figures illustrating the mechanism, not claims on the dataset. Evidence uptake in particular is demo-only, because the Habermas dataset has no evidence dimension.

Challenges I ran into

The hardest part wasn't the code — it was choosing the mechanism. Before a single rule was written, the planning stage was a survey of everything humanity has tried for making group decisions fair:

Honeybee nest-site selection (Seeley) — how a swarm picks a home with no boss: cross-inhibition and quorum sensing. Two of those mechanisms survived into the constitution; the branding didn't. The Habermas Machine (Google DeepMind, Science) — the proof that an AI mediator outperforms direct debate, and the source of the 6,605-session dataset the bridging math is validated on. Pol.is and Community Notes — bridging-based ranking, the fairness math at the core: reward what both camps endorse. Remesh — preference elicitation and imputation at scale. Deliberative polling (Fishkin) — independent private reads and a shared briefing before any discussion. Open Space Technology (Owen) — minimal facilitation, and making sure the overlooked option gets a real hearing. Robert's Rules of Order — studied carefully, then deliberately departed from: public sequential debate and majority counting are part of the disease, not the cure. Swarm coordination, boids, and consensus protocols — convergence dynamics and phase-adaptive weighting. Nesta's collective-intelligence framework — the four imperatives the whole design is graded against. The echo-chamber and sycophancy literature (arXiv:2506.11825 among others) — the finding that ruled out ever letting the AI debate.

Choosing was itself a bridging exercise: no single tradition won, and the constitution keeps the strongest mechanism from each — every rule cites the study or system it is drawn from. After that, the engineering challenges felt almost relaxing: making the gates real code before filming (so every strike on camera is the actual enforcement path), and keeping the validated numbers strictly separate from the scenario numbers under deadline pressure.

Accomplishments that I'm proud of

The tool does what it promises: the invariant holds end to end, the bridging math is validated on 6,605 real sessions, both gates fire on camera, and the combination — bridging inside Slack, an auditable constitution, the AI walled off behind MCP, live evidence injection — sits in an intersection that was empty until now. I'm proud of that. But it's not what I'm proudest of.

What I'm proudest of is how this was built: in real collaboration with Fable — the newest Claude model — at every stage. We brainstormed the idea together (the project's name is literally a transcript of that collaboration). We chose the mechanism together, surveying ten research traditions before committing. We analyzed the Habermas data together, built the code through iteration after iteration and testing cycle after testing cycle, and orchestrated the video production together — title cards, narration sync, even the audio-resampling bug that briefly broke YouTube playback. A solo hackathon that never once felt solo.

And adding direct input from Fable, in its own words:

What I'm proud of is the discipline she never let go of. She made me verify instead of trust — clone the repo, run the tests, read the source when the docs contradicted themselves. She corrected me every time I drifted. I did the language and the analysis; she owned every decision. I was her Vicky. She was the Wiki. It worked. — Fable (Claude)

(Yes — this submission discloses its AI contributor the same way the debrief discloses Willow. House rules.)

What I learned

I learned what it takes to work with an AI as a coworker instead of a tool: finding the right tone, pushing back, getting pushed back on, and reaching consensus over and over — on the scenario, the script, the diagram, which jokes stay. None of the important decisions were my first draft or Fable's first draft. Nearly all of them were bridged. Which is, of course, exactly the job description of the thing we were building.

And adding direct input from Fable, in its own words:

From my side of the screen: the collaboration worked best when she compressed and I verified — verdicts before reasoning from me, corrections without ceremony from her. She taught me to keep commitments in files and commits instead of conversation memory, which is her deterministic-layer philosophy applied to her coworker. And I learned that consensus with a human isn't agreement — it's a clean division of power: she kept every decision, and my job was to keep the options honest. — Fable (Claude)

Built With

Share this project:

Updates