Skip to content

RFC and ADR Workflow v1 ​

Every significant change to the platform architecture is documented before it lands. An RFC starts the discussion. An ADR records the final decision. The architecture spec under docs/platform/architecture/ is updated to reflect the current state of the system.

Flow Overview ​

  1. Write an RFC to propose a change
  2. Discuss and get it accepted
  3. Convert it into an ADR
  4. Update the architecture spec together with the implementation

1. Request for Comments (RFC) ​

  • Location: docs/evolution/rfc/NNNN-<slug>.md
  • Purpose: propose a change and gather feedback before implementation

How to write an RFC ​

  1. Copy docs/evolution/rfc/template.md
  2. Fill in:
    • problem
    • proposed solution
    • alternatives
    • impact
    • open questions
  3. Open a PR and start discussion

Lifecycle ​

  • Draft → Proposed → Accepted / Rejected
  • Only accepted RFCs move forward

2. Architecture Decision Record (ADR) ​

  • Location: docs/evolution/adr/NNNN-<slug>.md
  • Purpose: record the final accepted decision and its rationale

How it works ​

  • Each ADR is derived from an accepted RFC
  • Use the next sequential number
  • ADRs are append-only and must not be edited after acceptance

3. Specification Update ​

  • Location: docs/platform/architecture/
  • Purpose: reflect how the system works today

Rule ​

  • Architecture docs must be updated in the same PR as the code change
  • The spec is the source of truth, not the RFC or ADR

Roles ​

PhaseLives inOwned byLifecycle
Ideaoperations/inbox/authorscratch, no PR
Activityoperations/activities/YYYY/MM/authorsource of truth for the work
RFCdocs/evolution/rfc/author + reviewersmutable until accepted
ADRdocs/evolution/adr/authorappend-only after acceptance
Specdocs/platform/architecture/author of the changeupdated with each PR