docs/book/src/contributing/rfcs.md
Substantial changes to ZeroClaw's architecture, user-facing surface, or core policies go through an RFC before implementation. The process exists to surface design trade-offs, give maintainers and contributors a chance to push back early, and leave a searchable record of why a decision was made.
Governance, RFC ratification rules, and voting thresholds are defined in RFC #5577.
| Change | RFC first? |
|---|---|
| New channel implementation | No: open a PR |
| New provider implementation | No: open a PR |
| New tool | No: open a PR |
| Bug fix | No: open a PR |
| New config key | Depends: if it fits within existing schema shape, PR. If it introduces a new subsystem or paradigm, RFC |
| Changing an established default | Yes: RFC |
| Schema migration that breaks existing configs | Yes: RFC |
| Cross-cutting refactor affecting multiple crates | Yes: RFC |
| New subsystem (e.g. a new security layer, a new protocol) | Yes: RFC |
| Changes to governance, release process, or contribution model | Yes: RFC |
Rule of thumb: if you'd want a second opinion before writing the code, it's an RFC. If it's obvious what to build, it's a PR.
RFCs are GitHub Issues tagged type:rfc. Title format:
RFC: <short description of the proposal>
Body structure: adapt to the size of the proposal:
Filed RFCs go through a discussion window (default 7 days, longer for larger proposals). Anyone can comment. Maintainers weigh in. The RFC author iterates on the body in response.
Per RFC #5577, RFCs are ratified by a two-thirds maintainer majority. The outcomes:
status:accepted label and a maintainer comment summarising the final shape. Implementation PRs can then proceed.status:blocked when it's waiting on a specific prerequisite.Implementation PRs should:
Implements #5574 phase 1)Large RFCs often ship across multiple PRs over several releases. The RFC's tracking comment gets updated as phases land.
Open RFCs are the best primary source for "what's coming next" in ZeroClaw. Browse:
<div class="os-tabs-src">gh issue list --repo zeroclaw-labs/zeroclaw --label type:rfc --state open
The list above is the canonical source. A snapshot of notable open RFCs at time of writing (browse the live list for the current set):
.well-known/agent-card.json) for multi-agent installs.ftl and .po files into a git submoduleThese shape everything else. Read them before proposing cross-cutting changes:
RFC authorship by AI assistants (with a human sponsor) is explicitly permitted per RFC #5615. If an RFC was drafted with AI help:
This has worked well so far. Treat AI drafts as first-class but remember the sponsor is accountable.