This should be the template for all new Design Docs, minor deviations aside. Hopefully this makes the process a bit easier.
1.5 KiB
Title
A cool name for your Project
Author: Your-Name
If there are multiple authors, just list them all
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)
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)
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
Direct goals of the project and features deemed not worth pursuing.
Overview
A detailed overview of the project and the improvements it brings.
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)
Other alternatives to your suggested approach, and why they fall short.
Issues addressed (optional)
A list of issues which are addressed by this design.
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
The section for things which could be added to it or deemed out of scope during the discussion.