Editing and Fixing the Graph

Graphs get messy. Titles have typos, links point the wrong way, nodes need status updates. Here is how to fix them.

Decision graphs are living documents. As work progresses, you will inevitably need to rename nodes, remove bad connections, update statuses, or delete nodes that should never have existed. Deciduous provides editing commands for all of these.

Don't fear editing the graph

Claude is excellent at reconstructing connections, fixing broken links, and reorganizing nodes. If something gets messy — wrong links, duplicate nodes, missing connections — just tell Claude to clean it up. It will query the graph, identify the structural issues, and fix them. This is one of the easiest things to get right because Claude can see the entire graph structure and reason about what should connect to what. Think of it like asking Claude to refactor code — it just works.

Fixing a Title

The most common edit: a typo in a node title, or a title that no longer accurately describes the decision.

deciduous edit
deciduous edit 61 --title "Implement unit test CI workflow for GitHub Actions" Updated node 61 title: "Implement unit test CI workflow for GitHub Actions"

The node ID stays the same. All edges pointing to or from node 61 remain intact. Only the title changes.

Removing a Wrong Link

Sometimes Claude creates an edge that doesn't make sense—linking the wrong nodes together, or duplicating a connection. The unlink command removes it.

deciduous unlink
# Check existing edges first deciduous edges FROM TO TYPE RATIONALE 57 58 leads_to possible approach 57 59 leads_to possible approach 58 60 leads_to chosen 60 61 leads_to implementation 61 62 leads_to implementation succeeded 57 60 leads_to shortcut # Edge 57 -> 60 skips the option layer - remove it deciduous unlink 57 60 Removed edge 57 → 60

The canonical flow is goal → option → decision. A direct link from goal #57 to decision #60 bypasses option #58, which misrepresents how the decision was reached. Removing the shortcut edge restores the correct chain.

Deleting a Node

For nodes that should not exist at all—duplicates, test nodes, or nodes created by mistake—use delete:

deciduous delete
# A duplicate option was created by accident deciduous show 63 Node #63 option Title: Separate CI worklflow files (duplicate) Status: pending Connections: none deciduous delete 63 Deleted node 63 and its 0 edges
Delete removes edges too

Deleting a node also removes all edges connected to it—both incoming and outgoing. If the node is in the middle of a chain, this will break the chain. Make sure to re-link the remaining nodes after deleting a mid-chain node, or use edit instead if you just need to fix the title.

Updating Stored Prompts

If the stored prompt on a goal node is wrong or incomplete, update it with deciduous prompt:

deciduous prompt
# Update the verbatim prompt on an existing node deciduous prompt 57 "Add CI/CD pipelines for snowflex. Need GitHub Actions workflows for unit tests and integration tests, with proper caching and matrix builds. Issue #93." Updated prompt for node 57 (127 chars) # Or pipe from a file for longer prompts cat issue-93-full.md | deciduous prompt 57 Updated prompt for node 57 (843 chars)

Prompts are stored alongside the node and are visible in the web viewer's detail panel. They are used by the /recover skill to rebuild context after session loss.

Updating Node Status

As work progresses, nodes move through statuses. The status command updates them:

deciduous status
# Mark the action as completed deciduous status 61 completed Updated node 61 status: completed # Mark the rejected option deciduous status 59 rejected Updated node 59 status: rejected # Mark the goal as completed when all work is done deciduous status 57 completed Updated node 57 status: completed

The full set of statuses and when to use each:

Status Meaning Issue #93 Example
pending Not yet started or resolved A goal or action waiting for work
active Currently in progress or current truth Decision #60 while implementation is underway
completed Done and working Action #61 after the workflow passes tests
superseded Replaced by a newer approach An old CI approach replaced by a better one
abandoned Started but given up on An approach that was partially implemented then dropped
rejected Considered but not chosen Option #59: single workflow approach

A Typical Editing Session

Here is what cleaning up a graph looks like in practice. Claude usually does this unprompted before syncing or exporting, but you can ask for it explicitly:

Claude Code — Cleaning up the graph
❚❚
Animation paused
You
Clean up the decision graph before we export.
Claude
deciduous pulse
Orphan nodes: 1 (#63)
Dangling outcomes: 0
Claude
Node #63 is an orphan—a duplicate option with no connections. I'll remove it and update the statuses for the completed work.
Claude
deciduous delete 63
Deleted node 63 and its 0 edges
deciduous status 61 completed
Updated node 61 status: completed
deciduous status 59 rejected
Updated node 59 status: rejected
deciduous status 57 completed
Updated node 57 status: completed
Claude
deciduous pulse
Orphan nodes: 0
Dangling outcomes: 0
Claude
Graph is clean. No orphans, no dangling outcomes, all statuses updated. Ready to export.
Audit before you share

Run deciduous pulse before exporting or syncing. It catches orphan nodes (no connections), dangling outcomes (outcomes with no parent action), and other structural issues. Cleaning these up before sharing ensures teammates get a coherent graph, not a pile of disconnected nodes.

With the graph clean and statuses up to date, you're ready to share your work. The next section covers exporting the graph for GitHub Pages, generating PR writeups, and syncing with teammates.