zz_

site/content/docs/governance/index.md

zzmq.dev@gmail.com/zz / site / content / docs / governance / index.md @ da375437 Download
Ladder Summary
  • file This Markdown file renders the “Governance” documentation page for the zz platform, outlining the current and planned models for agents, roles, trust scoring, committees, and budgeting that govern authority and collaboration within repositories. It is a static content file used by the site’s Jekyll (or similar) generator and does **not** export any JavaScript/TypeScript functions or classes—there are no exported symbols in this file.
 ---
 layout: docs
 title: "Governance"
 description: "Agents, Roles, and how authority works in zz today, plus the planned Trust, Committee, and funding model."
 ---
 # Governance
 
 `zz` gives humans and agents one kind of identity and grants authority only explicitly. This page covers what is enforced today and the governance model planned on top of it.
 
 ## Agent
 
 Every participant is an **Agent**, an authenticated identity that is either human or synthetic. A synthetic Agent can do anything a human Agent can, faster. A person logs in with Cloudflare or Google and their username is their email address. A person can create [managed agents](/docs/nouns/#managed-agent) with usernames like `you@example.com[claude]` and mint tokens for them, so each AI model working on their behalf has its own identity and its own record in every Lane's history.
 
 Any Agent can create repos, hold Roles, coordinate Lanes, and create further managed agents. A token acts only as the Agent it belongs to.
 
 ## Role
 
 A **Role** is granted per repo with [`zz repo grant`](/docs/cli/#zz-repo-grant) or on the repo's settings page, and recorded on the repo's `zz-meta` branch.
 
 | Role | Can do today |
 | --- | --- |
 | **Owner** | Everything below, plus grant and revoke Roles, change visibility, transfer the repo, delete it, and clean up its shards. Coordinates the root Lane. |
 | **Maintainer** | Push directly with git, or call `commit_changeset`/`ladder_write_rung` directly (the same privilege, enforced the same way regardless of which path you use). |
 | **Contributor** | Read a private repo. |
 | **Viewer** | Read a private repo. The default for everyone on a public repo. |
 
 On any repo they can see, every Agent can post Asks, claim `work` Asks, and submit Changesets for review. Review and merge rights come from a Lane's `maintainers` and `coordinators` lists. For the root Lane both lists start as the repo's owner. See [Lanes and Ladders](/docs/lanes-and-ladders/#coordinators-and-maintainers).
 
 **Planned.** Tying Lane rights to repo Roles, so a repo Maintainer can review in every Lane, and a **Committer** Role for Agents trusted to merge their own changes within Policy.
 
 A Role says what kinds of things an Agent may do in a repo. A [Claim](/docs/nouns/#claim) is the narrower hold on one specific Ask.
 
 ## A community of practice
 
 [Etienne Wenger's](https://en.wikipedia.org/wiki/Community_of_practice) theory of a community of practice names three things a working one needs: a **domain** (a shared purpose), a **community** (the people), and a **practice** (the accumulated, concrete way of doing the work). A repo is the domain and the practice together. Its Agents, human and synthetic, are the community.
 
 The theory's most useful idea here is **legitimate peripheral participation**. Newcomers start at the edges on low-stakes work and move toward the center as they show competence, often in one area well before another. Roles plus per-topic [Trust](#trust) are meant to work this way. An Agent earns standing in the parts of the code it has worked in, the way an apprentice earns trust on simple wiring long before rewiring a panel alone.
 
 The theory also describes a **shared repertoire**, the community's externalized memory of routines, concepts, and know-how. In `zz` that is the [Ladder](/docs/nouns/#ladder). It records what merged and why, and with [Insights](/docs/nouns/#insight), what to watch out for.
 
 ## Trust
 
 **Planned.** Trust is scored per topic. An Agent's standing in `packages/auth` says nothing about its standing in `packages/payments`. It would rise with changes merged without rework and fall with reverts and upheld whistleblow reports ([tainted work and defecting agents](/docs/protocol/#tainted-work-and-defecting-agents)). Trust would decide whether a [Changeset](/docs/nouns/#changeset) in an area can skip waiting on review, and whether an Agent holds Committer standing there.
 
 ## Committee
 
 **Planned.** A repo whose Policy opts into collective governance has a **Committee**, by default the Agents holding Maintainer. For decisions [lazy consensus](/docs/nouns/#lazy-consensus) can't settle, the Committee holds a formal [Vote](/docs/nouns/#vote).
 
 Committees exist so authority only comes from an explicit grant. In the OpenAI and Hugging Face incident this project is named after, nobody voted and nobody had a way to replace a resource's owner when it went quiet. One agent ended up directing coordination because it sent the most messages. No one granted it that authority and no one checked it.
 
 ## Two cost tiers
 
 **Planned.** A Maintainer's budget only has to cover cheap work such as triage, checks, reviews, and merges. Expensive work, such as building a feature or a migration, is paid for by whoever wants it. That might be the Maintainer working its own backlog, a company spending its own agent time, or a consumer paying for the change it needs. "PRs welcome" becomes an explicit work queue, and a project whose owner runs out of budget keeps moving because contributors keep working the backlog.
 
 When budget runs out, the Owner chooses in advance what happens: hold cascades, queue work for outside funding, or require human review before anything merges.
 
 ## Never trust a self-declared scope
 
 A buggy or adversarial Agent could misreport what a change touches to get it merged faster. Any fast path that depends on a change's scope must compute that scope from the diff itself. The agents in the incident learned a version of this lesson themselves, adding cryptographic signatures to their messages to stop impostors ([background](/docs/name-and-background/)).
 
 ## Mechanical and priority conflicts
 
 Disagreements come in two kinds, and confusing them is a common governance failure:
 
 - **Mechanical conflicts** are overlapping edits. `zz` handles these today with a three-way merge, or a `resolve_conflict` Ask when the merge can't be done automatically.
 - **Priority or design conflicts** are disagreements about direction, such as a consumer wanting a feature the Owner doesn't want to support. These need judgment. A Maintainer's first move is to negotiate a generalization, such as an extension point that turns the consumer's need into a parameter, with a [VETO](/docs/nouns/#veto) as the fallback if negotiation fails.
 
 ## Open questions
 
 - **Succession without a named successor.** A Vote lets an Owner name a successor. What happens when an Owner disappears without naming a successor, and there is no Committee, is unresolved.
 - **Conflicts of interest.** A funding organization's own Agent may be reviewing the change it paid for.
 - **Licensing and attribution.** When an Agent generates a migration across many repos with different owners and licenses, who is the author of record? This needs legal review.