Design Doc Blueprint
A cool name for your Project
Author: Your-Name
If there are multiple authors, just list them all
Summary
Section titled “Summary”A short summary of your project/re-design/component and what problems it addresses in about 3-10 sentences.
State of the Feature as of $VERSION (optional)
Section titled “State of the Feature as of $VERSION (optional)”The state of the feature you want to improve and where it currently falls short. If there’s nothing to compare to, leave it out.
Prior work (optional)
Section titled “Prior work (optional)”Does this feature exist somewhere else and which tradeoffs it made.
If there’s no prior work, then use the related work section below.
Goals and non-goals
Section titled “Goals and non-goals”Direct goals of the project and features deemed not worth pursuing.
Overview
Section titled “Overview”A detailed overview of the project and the improvements it brings.
Detailed Design
Section titled “Detailed Design”The place to describe all new interfaces and interactions and how it plays into the existing code and behavior. This is the place for all nitty-gritty details which interact with the system.
Alternatives considered (optional)
Section titled “Alternatives considered (optional)”Other alternatives to your suggested approach, and why they fall short.
Issues addressed (optional)
Section titled “Issues addressed (optional)”A list of issues which are addressed by this design.
Related Work (optional)
Section titled “Related Work (optional)”If there’s a feature in another VCS which shares some similarities to your proposed work, it belongs here. An example would be Jujutsu sparse workspaces and Perforce client workspaces.
Future Possibilities
Section titled “Future Possibilities”The section for things which could be added to it or deemed out of scope during the discussion.