Proposals make consequential language and platform decisions reviewable before their implementation becomes expensive. A proposal is a design record, not a substitute for code, tests, or release evidence.
When A Proposal Is Required
Open a proposal for changes to:
- language syntax or semantics
- parsing, typing, exhaustiveness, or evaluation rules
- effects, capabilities, sandbox, or host trust boundaries
- a stable public API or standard-library contract
- package, lockfile, module-resolution, or generated-artifact formats
- supported targets or backend guarantees
- compatibility, release, security, or governance policy
Routine fixes and implementation refactors that preserve documented behavior do not need proposals.
Lifecycle
- Start with a GitHub Discussion or issue describing the problem and use case.
- Copy
0000-template.mdtoNNNN-short-title.md. Until a number is assigned, use0000in the pull request. - Open the proposal pull request separately from the implementation whenever practical.
- Gather review. Breaking language, security-boundary, and governance changes remain open for at least 14 calendar days; other substantial proposals remain open for at least 7 days.
- The project lead records one of: Accepted, Rejected, Withdrawn, or Superseded.
- After acceptance, assign the permanent number, merge the design record, and implement it through ordinary reviewed pull requests.
Proposal status values are Draft, Accepted, Rejected, Withdrawn, and Superseded. Accepted proposals are commitments to direction, not guarantees that a feature ships in a particular release. Rejected and superseded proposals remain in the repository so future discussions retain their context.
Review Standard
A proposal must describe observable behavior, alternatives, compatibility and migration impact, security implications, backend parity, testing, rollout, and unresolved questions. Language changes must say which specification and frozen conformance cases change. Claims based on benchmarks must identify the corpus, models or machines, raw artifacts, and statistical method.
Acceptance follows GOVERNANCE.md. The implementation author cannot provide
the independent technical review required for a substantial proposal.
Amendments
Material changes after acceptance use a new proposal that supersedes or amends the old one. Editorial clarifications may be made by normal pull request when they do not change behavior, scope, or decision rights.
Rendered from docs/proposals/README.md in the Geno repository.