It has long been known that the human working memory is very limited in the number of items it can store. This is often apparent when developing or debugging software. Sidebrain is a package designed to take some of the working memory load for many programming tasks.
Like a more organized version of the back of an envelope beside the keyboard, Sidebrain models the programmer's cognitive activity in a simple, computer-like, manner, as a stack of tasks and subtasks and a collection of observations, with a queue of suspended stacks which can be suspended and resumed. (That is how you use envelopes, isn't it?)
Attached to each task stack may be a collection of observations, for example the results of information-gathering activity.
This information can be displayed in a separate window in your GNUemacs frame, or can have a frame of its own. See Controlling the display, for how to configure this.
The basic operations are beginning and ending tasks (pushing and popping your task stack).
Some more fairly fundamental programmer actions are making observations, and jotting down reminders of things to do later.