Skip to content

RFC Process

This document governs how changes to LenserFight's public contracts are proposed, reviewed, and decided.

Purpose

This process governs proposals to change the public interface of @lenserfight/sdk and platform-level contracts. Additive changes that don't break external consumers may ship without an RFC, but must be reviewed by at least one Core maintainer.

When an RFC is required

An RFC is required for any of the following:

  • Removing or changing the signature of an exported symbol in @lenserfight/sdk.
  • Adding a new required method to ConnectorAdapterV1.
  • Changing the v1 scope grammar.
  • Changing the Postgres SQLSTATE 42501 enforcement contract.
  • Introducing a new breaking migration.

Authoring

Anyone can author an RFC.

  1. Copy RFC-TEMPLATE.md.
  2. Set the next sequential number (RFC-0002, RFC-0003, ...).
  3. Fill in all sections.
  4. Open a PR to main.

Lifecycle

StageDescription
DraftAuthor opens PR, sets status to Draft.
ReviewPR merged to docs/rfcs/, 7-day open comment period begins.
FCP (Final Comment Period)Core maintainer calls FCP after open questions are resolved. 3-day window.
AcceptedMinimum two Core maintainer approvals, no unresolved objections from Core.
RejectedCore closes the RFC PR with rationale.

Decision authority

Core maintainers (listed in MAINTAINERS.md) hold merge authority. Contributor maintainers can review and comment but cannot merge RFCs. Triage maintainers are not involved in RFC decisions.

Breaking vs. additive

Additive changes — new optional exports, new optional methods with default behavior, new feature flags with backward-compatible defaults — do not require an RFC but require one Core maintainer review.

Numbering

Four-digit zero-padded sequential: RFC-0001, RFC-0002, ...

CRON_SCHEDULING sponsor perk

workflow scheduling is cloud-edition-on by default (editionIsCloud = true). Self-hosted instances enable it via env var Supabase pg_cron configured for workflow dispatch. GitHub Sponsors at the Infrastructure tier receive a managed cloud deployment with CRON_SCHEDULING pre-enabled. Governance decisions related to CRON_SCHEDULING availability (e.g., deprecation) require an RFC.