ADL stands for Architectural Design/Decision Log. It is a record of the reasoning behind large architectural or technical decisions made in the codebase.
It can be easy for the reasons behind choices to be forgotten.
Keeping a log of important or tricky decisions helps to inform new developers, and stops old ground being retrodden.
Name of chosen solution.
A description of the problem. This can be technical if needed.
A list of the options, with links to relevant documentation. The strengths and weaknesses of each option should be listed.
A description of which of the above options was chosen. Specifically explaining why it won out over the other options.
A freeform explanation of anything that might be useful for future readers.