Status: ratified · 17.06.2026 00:56

Governance

Status: RATIFIED. This records the project's decision-making structure — roles, the architecture board, and the decision and amendment processes. Ratified by the founding maintainer (the sole maintainer during bootstrap) per the amendment rule below; further changes follow that process.

Purpose

Wyrd is an open-source project built initially by a small team and dependent on outside contributors (see ADR-0001). This document makes explicit who holds which responsibilities and how decisions are made, so that authority is stated rather than assumed.

It complements, and does not override, the per-class processes documented elsewhere: architecture decisions follow ADR-0001, enhancement proposals follow ../design/proposals/, and specifications follow ../design/specs/.

Roles

Participation is a ladder of four levels, each earned from the one below. Higher rungs carry more authority and more responsibility; all of them rest on the same contribution-under-DCO basis (ADR-0003). The architecture board (further below) is not a rung on this ladder — it is a body drawn from the maintainers.

Level In one line GitHub mapping
Contributor anyone who opens an issue or PR — (any account)
Associate a trusted contributor with triage rights, on the path to maintainer repo Triage
Maintainer reviews and merges, triages, elects the architecture board maintainers team, Maintain
Founding maintainer the genesis seed that bootstraps the project org Owner / Admin

Contributor

Anyone who opens an issue or a pull request. Contributions are accepted under the project's license and DCO sign-off (ADR-0003), and everyone who participates is held to the Code of Conduct. No special status is required, and most participants never need more.

Associate

A contributor recognised for sustained, quality work, granted triage rights — labelling, assigning, and shepherding issues and pull requests, and reviewing — but without merge authority. It is the deliberate step between Contributor and Maintainer: trusted people help run the project before they hold the keys, and it is where a prospective maintainer is observed.

  • How one becomes an Associatenominated by a maintainer for a track record of good contributions, and approved once a second maintainer agrees (two maintainers suffice).
  • Inactivity: an Associate is removed after six months of inactivity, and may later return as emeritus (below).

Maintainer

Maintainers review and merge contributions, triage, set day-to-day direction, and elect the architecture board (below). New maintainers are elected by the existing maintainers, normally promoted from Associates.

  • How one becomes a maintainer — elected by the existing maintainers, from candidates with a proven track record as a Contributor or Associate spanning at least a year; confirmation is by a two-thirds majority of the existing maintainers.
  • Day-to-day decision rule — a maintainer decides individually on routine pull requests; only changes that touch a spec, proposal, or ADR go to the architecture board.
  • Inactivity: a Maintainer is removed after one year of inactivity, and may later return as emeritus (below).
  • Cadence: the maintainers hold at least one meeting a year — the "state of the solution" — to review the project's direction.

Founding maintainer

A rule that maintainers are elected by maintainers needs a seed. Eduard Ralph is the founding (first) maintainer, by virtue of starting the project; the maintainer group grows from there by election. The founding maintainer is a full Maintainer who additionally holds bootstrap authority until the maintainer group and the board are established — sole maintainer, and sole elector and chair of the initial board. This authority is transitional and dissolves once the board is constituted (after which the board elects its own chair); the founding maintainer holds no standing power beyond it.

The founding maintainer may be elected board chair like any member, but does not hold it automatically. The founding-maintainer role voids after one year of inactivity and is then left empty — not re-filled or inherited; the project then continues under the maintainers and the board.

Emeritus

A former Associate or Maintainer — removed for inactivity, or having stepped down — holds emeritus standing. An emeritus may be re-elected to their former level without re-proving the track record it normally requires (the year as Contributor or Associate for a Maintainer; the contribution record for an Associate). The level's confirmation step still applies — a second maintainer's agreement for an Associate, a two-thirds maintainer vote for a Maintainer.

Architecture board

The body with authority to accept and supersede the project's binding decisions — ADRs (per ADR-0001), specifications, and enhancement proposals. Its members are elected by the maintainers and may be drawn from any participation level — a board seat reflects judgement on the architecture, not rank on the ladder.

  • Size: at least three members.
  • Chair: elected by the board, unanimously (during bootstrap the founding maintainer chairs — see below).
  • Decision rule — the board accepts (and supersedes) ADRs through the ADR-0001 lifecycle, and ratifies specifications and enhancement proposals through their own folder processes; ratification is by a two-thirds majority of the members, recorded as agreement on the pull request.
  • Bootstrap — fewer than three members. Until the board reaches three, the chair (the founding maintainer) may make acceptance decisions. To remain consistent with ADR-0001 — acceptance is never a single maintainer's act — these interim decisions are provisional: the board reviews and confirms them once it is constituted. (If instead the chair's bootstrap acceptances are meant to be final, that is a true exception to ADR-0001 and must be enacted by a superseding ADR, not this document.)
  • Term: elected members serve two years and may stand for re-election (the founding maintainer chairs ex officio, independent of these terms).
  • Election procedure: board members are elected by a majority of the maintainers.

Removal for cause

Separately from the inactivity rules above, anyone may be removed for cause — a serious or sustained breach of the Code of Conduct, or acting against the project's interests — whether or not they are active:

  • An Associate is removed by the agreement of two maintainers.
  • A Maintainer is removed by a two-thirds vote of the other maintainers.
  • A board member is removed by a two-thirds vote of the maintainers; the vacated seat is re-filled by the normal election.
  • The founding maintainer, being a Maintainer, is removed under the Maintainer rule once other maintainers exist; during bootstrap, with no other maintainer, the role can lapse only through inactivity.

This is the enforcement backstop the Code of Conduct refers to: deliberate and documented, never summary.

Decision-making

Decision type Process Authority
Architecture decision (ADR) ADR-0001 lifecycle (Proposed → Accepted → Superseded) Architecture board
Enhancement proposal ../design/proposals/ (draft → accepted) Architecture board
Specification version bump ../design/specs/ (strict change process) Architecture board
Routine code change Pull-request review Maintainers
Changes to this document See below Unanimous maintainers
Removal for cause Removal for cause (above) Two maintainers (Associate); two-thirds (Maintainer, board)

A new feature is never a routine change: it enters through an enhancement proposal (../design/proposals/) and is therefore the architecture board's decision, not an individual maintainer's merge.

An ADR — and likewise a specification or proposal — is moved to Accepted only when it carries no unresolved [OPEN] items: open questions must be resolved, or deferred to a named follow-up, before ratification.

Amending this document

Changes are made by pull request and require the approval of all maintainers (unanimous). During bootstrap, with a single maintainer, that is the founding maintainer's approval alone.

Contact

Questions or concerns about governance, conduct, or project policy: policy@getwyrd.dev.