1. A system comprising: one or more processors, memory, and an output device, wherein the memory stores computer executable instructions which when executed by the one or more processor perform a method of composing a layout composition comprising both auto-layout features and user-directed adjustments, comprising: receiving input comprising a plurality of nodes to be included within a layout composition which corresponds to a graphical flow chart depicting a particular process, in which each node represents a particular step or event in the process, and wherein the input further comprises information that defines how each node is interrelated to one or more other nodes in the process, wherein the input is in the form of first layout directives written in a markup language which specify a type of layout for the layout composition; applying auto-layout to format the nodes based on the input information that defines how each node is interrelated to one or more other nodes in the process, so that the auto-layout produces the layout composition which graphically arranges the nodes in an interconnected format that represents the process; displaying the layout composition including displaying each of the nodes and line segments between the nodes that represent the interconnected relationships produced by the auto-layout; receiving user commands comprising second layout directives that specify adjustments to the layout of the nodes; and in response to the received user commands, modifying the formatting of at least one node within the displayed layout composition in accordance with the user commands but doing so while still preserving the auto-layout relationships of all nodes in the layout composition except those that are directly connected to the at least one node.