KEEP is a repository that documents the Kotlin Evolution and Enhancement Process, serving as the central archive for language and standard library proposals for Kotlin.
The repository addresses the need for transparent, community-driven language evolution by maintaining a structured record of enhancement proposals from conception through implementation. Proposals, called KEEPs, are assigned sequential numbers and published as Markdown documents. Each proposal enters a defined lifecycle: initial publication on the main branch, followed by a public review stage where the community discusses the proposal via GitHub Discussions, and finally a decision phase where proposals are accepted, rejected, or sent back for refinement. The status of each proposal is tracked in its document header, with statuses including Public discussion, In progress, Experimental, Stable, Declined, and Superseded.
Developers and language users should engage with this repository if they want to influence Kotlin's direction or stay informed about upcoming language changes. The tool suits anyone invested in Kotlin's evolution, from library maintainers who need to understand planned features to language enthusiasts wanting to contribute feedback. The repository explicitly encourages community participation through multiple channels: GitHub Discussions attached to each proposal, a dedicated Slack channel for announcements, and an RSS feed for tracking new proposals. Contributors are invited to file enhancement ideas and use-cases in Kotlin's YouTrack issue tracker, with the README emphasizing that real-life use-case documentation is the most valuable form of community feedback.
The project maintains a clear separation between complete design proposals and preliminary design notes that require further community input. Implementation of accepted proposals occurs in the separate Kotlin source code repository, keeping this repository focused on the design and discussion phase. The structured numbering system and status tracking make it straightforward to follow individual proposals through their lifecycle and understand the rationale behind language decisions.