Open a node and step into it
vivac_pushOpen a new node and step into it so subsequent work is captured under it until a matching pop. Use it when starting or forking a line of work, with a required reason.
Instructions
Open a node and step into it: it becomes the focus, and everything captured next hangs from it until a matching pop. Call it the moment a new line of work starts or forks away from the current one -- a question that has to be settled before continuing, a detour worth its own trace -- never after the fact, once the reason for taking it has already faded. Look first with vivac_find: work the tree already holds goes under its node, never into a second one. The focus is wherever work was left, perhaps by another session and about something else, so name in parent the node this work continues, or pass root when it continues nothing. why is mandatory: a detour with no reason recorded is the failure this tree exists to catch.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| arm | No | Commands that verify this rule, one per entry, all run in arm_dir. Only for a rule; a rule without one is judged. vivac never runs them. | |
| ref | No | Paths or identifiers this node is about. | |
| why | Yes | Why this is happening now. A detour with no reason is what this field exists to prevent. | |
| root | No | Born at the root, with no parent, instead of under the focus. The stack is left holding only the new node; nothing on it is closed, and the answer says how to get back. Refused together with parent. | |
| type | No | goal, task, decision, question, constraint, finding, assumption, pillar or rule. Defaults to goal at the root, task otherwise. A pillar is titled with its name and what it restricts, in the project's own words. | |
| title | Yes | What this node is, in a few words. | |
| blocks | No | Its parent cannot close while this one is still open. | |
| parent | No | The node this work continues, when it is not the focus. The stack is rebuilt as that node's path, the way vivac focus does, and the new node opens under it; the answer says what left the stack. Refused together with root, and on a node that is closed or parked. | |
| against | No | Only for a decision: a pillar or rule it was judged against and a sentence on how it holds, as one entry: "r12: the write path stays local". Repeat for each one. | |
| arm_dir | No | The folder every arm given here runs in, relative to the folder that holds .vivac: vivac, say, or . for that folder itself. Required with arm, refused without it. It has to exist. | |
| governs | No | Globs of files this node's work is expected to touch. |