Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Themes & Organization

Themes let you organize decision nodes into cross-cutting categories. A node about “JWT middleware” might belong to both an “auth” theme and a “security” theme. Themes work independently of the graph structure — they are tags, not edges.

Creating Themes

Define a theme with deciduous themes create. Each theme has a name, a color, and an optional description.

Terminal
$ deciduous themes create auth blue -d "Authentication and authorization decisions"
Created theme 'auth' (color: blue)

$ deciduous themes create performance green -d "Performance optimization work"
Created theme 'performance' (color: green)

$ deciduous themes create security red
Created theme 'security' (color: red)

Theme names are lowercase and dash-separated. Colors help distinguish themes visually in the web viewer.

Listing Themes

View all defined themes with deciduous themes list.

Terminal
$ deciduous themes list
Name Color Description
auth blue Authentication and authorization decisions
performance green Performance optimization work
security red

Deleting Themes

Remove a theme and all its node associations with deciduous themes delete.

Terminal
$ deciduous themes delete security
Deleted theme 'security'

Tagging Nodes

Apply themes to nodes with deciduous tag add. A node can have multiple themes.

Terminal
$ deciduous tag add 1 auth
Tagged theme 'auth' to node 1

$ deciduous tag add 5 auth
Tagged theme 'auth' to node 5

$ deciduous tag add 5 security
Tagged theme 'security' to node 5

Removing Tags

Terminal
$ deciduous tag remove 5 security
Removed theme 'security' from node 5

Listing Tags on a Node

Terminal
$ deciduous tag list 5
Themes for node 5:
auth (blue)
security (red)

Auto-Suggestions

Deciduous can analyze node titles and suggest theme assignments with deciduous tag suggest. This scans nodes for keyword matches against existing theme names and descriptions.

Terminal
$ deciduous tag suggest
Suggested tags:
Node 1 "Add user authentication" → auth
Node 5 "Implementing JWT middleware" → auth
Node 8 "Optimize query performance" → performance
Node 12 "Add rate limiting" → security

$ deciduous tag suggest 5
Suggested tags for node 5:
auth

Apply all suggestions at once with --apply:

Terminal
$ deciduous tag suggest --apply
Suggested tags:
Node 1 "Add user authentication" → auth (applied)
Node 5 "Implementing JWT middleware" → auth (applied)
Node 8 "Optimize query performance" → performance (applied)
Applied 3 suggested tags

Suggestions are tagged with source "suggested" rather than "manual", so you can distinguish them later.

Confirming Suggestions

Review and confirm auto-suggested tags with deciduous tag confirm. This upgrades a suggestion from "suggested" to "manual" status.

Terminal
$ deciduous tag confirm 1 auth
Confirmed theme 'auth' on node 1 (suggested → manual)

Filtering by Theme

Use the --theme flag on deciduous nodes to filter nodes by theme.

Terminal
$ deciduous nodes --theme auth
ID Type Title Status Confidence
1 goal Add user authentication active 90%
2 option Use JWT tokens active 80%
5 action Implementing JWT middleware completed 85%
6 outcome JWT auth working — 14 tests completed 95%

$ deciduous nodes --theme performance --status active
ID Type Title Status Confidence
8 goal Optimize query performance active 85%

Themes combine with other filters like --status, --type, and --branch for precise queries across the graph.