Skip to content
Simon-Pacifae-DupontPublic

About

Governance for AI agents: you keep the last word. Contracts, a launcher that names the condition it stops on, a closeout, a board, and a register that grows with every incident. Running every day on real software. For teams with code, and companies without.

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Repository files navigation

Guildwork · governance for AI agents, you keep the last word

English · Français

Guildwork

Governance kit for running parallel AI coding agents.

simon-pacifae-dupont.github.io/Guildwork: the same thing, on one page. (Version française of the page and of this README; the seventeen documents are in English.)

The rules on one page. Eleven working rules to paste as they are into an AI agent's instructions: RULES.md (en français). The rest of this repository says where they come from.

Not a developer? The same discipline (a contract before, a witness during, a closeout after, and a launcher that refuses to start what isn’t in order) holds a law firm, an agency or a support desk just as well. That door is on the same page.

Guildwork is the governance one person built, incident by incident, and runs every day to hold a multi-agent AI engineering team on a real product, whatever its number of seats, at twenty-five merges a day: with every mission a contract, every merge behind a named gate, every session leaving a durable record, and the human out of the message path. This repository is that system, extracted: the contracts, the forms, the vocabulary, the specification of the three tools that hold it together, and the incidents that paid for every rule.

It is meant to be read. The three tools are specified, not shipped. One page is: the board reader below, which you can open right now.

The board on the fictional Lantern example: eight counters, one per state, each carrying how it was read, and one decision card with an approve or hold choice and the exact comment it would publish.
The board as it runs, on the fictional Lantern example. Eight counters, one per state, green included, each carrying how it was read; then the one decision that is the Product Owner's and nobody else's, taken on the page where it is read, with the comment it will publish shown word for word first. It never merges. Open the demonstration. Frozen, and it says so on its face.

The problem

Several AI coding agents, from different vendors and different harnesses, working on one repository at once produce four kinds of damage that no prompt cures: two agents writing the same file, with the human as the merge tool; an agent running under a model, an effort or a prompt nobody declared, with nothing recording the substitution; what an agent learned dying with its context window, so the next session re-derives it or works from a stale summary with confidence; and the human ending up carrying instructions between agents by hand, which is the one job the agents were supposed to remove.

The shape of the answer

GitHub is the source of truth, with five surfaces that each have exactly one job: the issue is the contract, the board is the queue, the worktree is the workspace, the pull request is the delivery, the journal is the session memory. A mission stated anywhere else does not exist.

A launcher reads the contract by number, validates it against the governance at the commit the mission will run on, checks seven conditions, and refuses, naming which condition fired, or creates the workspace, performs the session entry, and starts the declared harness under the declared model and effort with a first instruction generated from the issue. A session cycle opens every session by reading what the last one left and closes it with exactly one exit command whose exit code is decided by durability alone. A closeout tool refuses to remove any worktree whose material is not provably preserved, and closes contracts from their merged deliveries with four refusals of its own.

Under the tools, four principles: measured, not assumed; fail closed, and say which condition; a refusal does not prevent the mission, it moves it outside the gate; durable means reachable from a pushed ref.

Where a mission can stop: the operating model drawn on the Lantern example; click to open the interactive version
Read it as a path: ten checks before a session starts (seven stable contract conditions, three guards hardened in operation), a witness and a human gate before anything lands, three exit codes decided by durability alone, a register that sends every incident back into the next contract, and a watcher drawn in two steps: what it sees, and the receive–deliver–wake route, live since 18 September 2026, that launches a mission from an armed contract and wakes the architect when the mission returns. Interactive version. Hover a block to isolate its path.

The board, read for what it owes each seat. Six counters, then three questions in this order: what is waiting on the Product Owner's decision and on nobody else's, what the architect merges under delegation without them, and what fits no rule: a pull request with no Mission: line, a delivery naming a closed mission, a lot with no workstream. Those last are counted on the face of the board rather than filed by guesswork, and they are meant to read zero. Every figure carries how it was obtained, because a count read in full and a count that stopped early are different claims.

It holds no token and copies nothing: it reads the repository through the viewer's own GitHub connector. It never merges: the page is one share away from anyone, and a merge control on a shareable page is a gate anyone can pass. And it publishes what it cannot see: a session on another machine, a process that discloses no command line, an agent started by hand.

What the kit publishes today is the board reader, under templates/board/. The host reading and the decision path shown in the demonstration are newer, and reach the kit when they have stopped moving, which is the rule everything else here follows. Demonstration · the published reader · en français.

What is in this repository

docs/        seventeen documents, numbered in reading order
templates/   the files to drop into a repository: issue form, pull request template,
             label recipe, role profiles, journal format, regenerable-paths manifest,
             findings register, weekly review, changelog convention
examples/    one fictional mission followed end to end: issue, launcher transcript,
             generated instruction, transmission report, pull request, journal entry,
             closeout transcript, register
demo/        the pages the site opens: the board as it runs (demo/board/, with the
             published reader under demo/board/reader/), the no-code desk
             (demo/desk/) and the operating canvas (demo/canvas/); French
             versions under fr/demo/
no-code/     the prompt that installs the three no-code rules (written request, sign-off,
             register) in Claude, with its guardrails; French version alongside
integrations/ the guildwork extension for Spec Kit (integrations/spec-kit/): a person's
             verdict, written down, before any code is
brand/       the mark, the lockups, the design system, and every image the README
             and the site show, each rendered from a page in demo/, never retouched
Document What it settles
00 · The operating model the five surfaces, the seats, the lifecycle, the principles
01 · The mission contract the issue form field by field, conservative ordering, what a comment may amend
02 · The delivery contract the pull request template, the Mission: line and its three states, who disposes of what a run created
03 · The label taxonomy seventeen labels and no more; routing labels are events; workstream labels are descriptive
04 · Capabilities and routing three atoms, an enumeration that is not a ladder, unknown routes as cannot
05 · The launcher the seven conditions, and why the reference implementation refuses on ten: the governance pin, --resume, --list, the generated instruction
06 · Session entry and exit guild-hi, guild-bye, exit codes 0/2/3, the three-state declaration
07 · The closeout tool five conditions, the regenerable-paths manifest, what closes a mission
08 · Continuity source precedence, the seven failure modes, what a handover owes its successor
09 · The findings register one issue, two exits, reviewed at every sweep
10 · Effort and execution parameters the exact mapping, per-seat levels, state what ran
11 · Changelog fragments one file per mission, assembled at release
12 · Incidents every failure that paid for a rule, and the rule; the register grows
13 · By the numbers the real project's figures, domain removed
14 · The adoption path what to do in what order, and what this pack does not contain
15 · A Windows workstation two shells, three encodings, no administrator rights, the launched session's PATH, agent CLIs and browsers that do not start
16 · The weekly review a pass across the week's sessions proposes rules, skills, merges and retirements; another model reads, the human signs

Fifteen minutes

Read 00 for the shape, 12 for why it is shaped that way, and the launcher transcript in examples/lantern/launcher-dry-run.md for what it feels like to run. If those three earn a fourth, read 05.

Ten minutes to install

git clone https://github.com/Simon-Pacifae-Dupont/Guildwork
mkdir -p your-repo/.github && cp -r Guildwork/templates/github/. your-repo/.github/
cd your-repo && sh ../Guildwork/templates/labels.sh

Three commands: the issue form and the pull request template land in .github/ on your default branch, and the seventeen labels, the watcher:* routes and the chantier:* workstreams are created once, by a human (on Windows, run the gh label lines of labels.sh from PowerShell). Then open a new issue with the AI mission form. The first contract exists. The launcher that will read it is yours to write from 05; templates/README.md says which value is Lantern's and what you still owe.

Whatever runs the agents

Guildwork is a method, not one more tool to direct agents. A terminal, a kanban, a dashboard that runs a whole team, a workflow engine: whichever one drives the agents, three things still have to be written down. What is asked, in writing, before the work starts. Who settles it, by name, before anything ships. Where each verdict is kept, so the next mistake becomes a rule instead of a repeat. Those three are what this repository specifies. The tool that runs the agents can hold them; it does not decide them.

With Spec Kit

Spec Kit decides what to build: a specification, a plan, tasks. Guildwork decides who may deliver it, and what the human settles. The two combine through the guildwork extension in integrations/spec-kit/: between /speckit.tasks and /speckit.implement, it writes the request, waits for the verdict of the person who decides, and keeps every verdict in a register. Implementation starts only on approved, and only while the plan stays the one that was approved.

specify extension add guildwork --from https://github.com/Simon-Pacifae-Dupont/Guildwork/releases/download/guildwork-v0.1.0/guildwork.zip

Where it comes from

A Windows desktop application in Python with a 13 155-test suite, measured on 8 September 2026; one human Product Owner, a Chief Architect seat held in turn by ChatGPT Work, Claude Cowork and, since 18 September 2026, Claude Code on the developer machine, and executing seats on Claude Code, Grok Build and Codex CLI. In the thirteen days to 7 September 2026, 344 contracts were opened and 320 pull requests merged, twenty-five a day; 548 sessions closed with a journal entry in the 36 days since the journal existed. docs/13-by-the-numbers.md has the full table, and both readings of it.

Every example here is rewritten on a fictional project, Lantern, a workshop sensor dashboard with a bridge to a bench controller, so that the mechanics can be shown without describing the real product. Nothing about Lantern is load-bearing.

Where it is going

The kit is the part that has stopped moving. Three things are still moving on the project it comes from, and each will reach the kit the way everything here did, once a real incident has paid for it. The board becomes the control: not a report on the agents, but the page where the one decision that is the Product Owner's is taken and recorded by the same click. The watcher reads authorised GitHub events and fresh host readings every two minutes, deduplicates them and publishes the latest reading without starting a model; since 18 September 2026 it also receives the armed mission, delivers the canonical contract and wakes the named existing seat, carrying a route and never an authority. And the same seven states (running, holding the screen, next, for you, landed, broken, expired) sit on every board, whatever it follows; the names adapt to a project, the positions and the hues do not (brand/design-system.md).

What it is not

Not a framework and not a runtime. The three tools are specified in 05, 06 and 07 precisely enough to audit or re-implement, and they are not shipped: installing this on a repository, adapting the vocabulary to a team's own seats and workstreams, measuring the capability table on the team's machines, writing the tools against the team's harnesses, and running the first two weeks of missions alongside the team is the work, and it is the work the author does.

Contact

Simon Dupont · GitHub · LinkedIn · [email protected]. If you run, or intend to run, more than one AI coding agent on a codebase that matters, write.

License

MIT. See LICENSE. The Lantern project, its repository, its people and its numbers are fictional; the figures in docs/13-by-the-numbers.md are real; they were measured on 9 September 2026, over complete days only.

About

Governance for AI agents: you keep the last word. Contracts, a launcher that names the condition it stops on, a closeout, a board, and a register that grows with every incident. Running every day on real software. For teams with code, and companies without.

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Contributors

Languages