Themes and Tags

As your decision graph grows, themes let you organize nodes into cross-cutting concerns that span multiple branches and time periods.

Branches group nodes by when they were created. Themes group nodes by what they are about. A "transport-layer" theme might span nodes from the original ODBC implementation, the revisit that reconsidered it, and the HTTP replacement—all created at different times on different branches, but all part of the same architectural concern.

Creating Themes

Create a theme with a name, optional color, and optional description:

Creating themes
deciduous themes create transport-layer --color "#3b82f6" -d "Transport abstraction and protocol decisions" Created theme 'transport-layer' (id: 2, color: #3b82f6) deciduous themes create ci-infrastructure --color "#22c55e" -d "CI/CD and testing infrastructure decisions" Created theme 'ci-infrastructure' (id: 1, color: #22c55e)

The color is used in the web viewer to visually distinguish themed nodes. If you omit the color, deciduous assigns one automatically.

Listing Themes

deciduous themes list
deciduous themes list 2 themes: NAME COLOR DESCRIPTION ci-infrastructure #22c55e CI/CD and testing infrastructure decisions transport-layer #3b82f6 Transport abstraction and protocol decisions

Tagging Nodes

Apply a theme to a node with tag add:

Tagging nodes
deciduous tag add 34 transport-layer Tagged theme 'transport-layer' to node 34 deciduous tag add 36 transport-layer Tagged theme 'transport-layer' to node 36 deciduous tag add 37 transport-layer Tagged theme 'transport-layer' to node 37 deciduous tag add 57 ci-infrastructure Tagged theme 'ci-infrastructure' to node 57

A single node can have multiple themes. The revisit node #34 might belong to both "transport-layer" and a broader "architecture-pivots" theme.

Viewing Tags on a Node

Listing tags for a node
deciduous tag list 34 Node #34 themes: transport-layer (#3b82f6)

AI-Suggested Tagging

For large graphs, manually tagging every node is tedious. The tag suggest command asks your AI assistant to analyze node titles and descriptions, then propose theme assignments:

AI-suggested tags
deciduous tag suggest Suggestions: Node #33 "ODBC memory issues observed in production" -> transport-layer (confidence: 92%) Node #35 "Transport behavior with pluggable backends" -> transport-layer (confidence: 88%) Node #38 "Direct HTTP client without transport abstraction" -> transport-layer (confidence: 85%) Node #58 "Use separate workflow files" -> ci-infrastructure (confidence: 90%) Accept suggestions? [y/n/select]

Review the suggestions and confirm them:

Confirming suggestions
deciduous tag confirm Applied 4 theme tags

Removing Tags and Deleting Themes

Remove a tag from a specific node:

Removing a tag
deciduous tag remove 38 transport-layer Removed theme 'transport-layer' from node 38

Delete a theme entirely (this removes the theme and all its tag associations):

Deleting a theme
deciduous themes delete ci-infrastructure Deleted theme 'ci-infrastructure' and removed 2 tag associations

Themes in the Web Viewer

When you run deciduous serve or deploy to GitHub Pages, themed nodes are color-coded with their theme color. The viewer's filter panel lets you show only nodes belonging to a specific theme, making it easy to trace a single concern across the entire project history.

Themes complement branches

Use branches to filter by when work happened (which feature or sprint). Use themes to filter by what the work was about (which architectural concern). Together, they give you two orthogonal ways to slice the graph.