Skip to content

Building an Idea Graph

NeuralRepo is not just a list of ideas — it is a graph. By connecting ideas with typed relations, you build a navigable network that reveals how your thinking fits together.

NeuralRepo supports five relation types, each with a distinct semantic meaning:

RelationDirectionWhen to Use
parentSource is parent of targetBreak a large idea into sub-ideas. The parent is the umbrella concept; children are components or tasks.
relatedBidirectionalTwo ideas share a theme or domain but neither depends on the other.
blocksSource blocks targetTarget cannot proceed until source is resolved. Use for dependencies.
inspiresSource inspires targetOne idea led to another. Use for variants, evolutions, or spin-offs.
supersedesSource replaces targetThe source idea is a newer, better version. The target can be shelved.
Terminal window
# Link two ideas as related
nrepo link 42 38 --type related --note "Both involve browser APIs"
# Create a parent-child relation
nrepo link 42 55 --type parent
# Mark a dependency
nrepo link 60 42 --type blocks --note "Need auth system before building extension"

You: Link idea 42 and 38 as related. Also make 55 a child of 42.

Claude: (calls link_ideas twice) Done. Linked #42 and #38 as related, and set #55 as a child of #42.

Terminal window
curl -X POST https://neuralrepo.com/api/v1/ideas/42/links \
-H "X-API-Key: nrp_your_key_here" \
-H "Content-Type: application/json" \
-d '{
"target_idea_id": 38,
"relation_type": "related",
"note": "Both involve browser APIs"
}'

The nrepo graph command renders an idea’s neighborhood as an ASCII tree:

Terminal window
nrepo graph 42
#42 Browser extension for idea capture (building)
├── [parent] #55 Content script for text selection (exploring)
├── [parent] #56 Popup UI for saving highlighted text (captured)
├── [parent] #57 Background service worker (captured)
├── [related] #38 Chrome plugin for code snippets (exploring)
└── [blocks] #60 Authentication system (building)
└── [parent] #61 OAuth flow implementation (building)

Add --depth 3 to explore further into the graph.

The web dashboard includes an interactive mind map visualization at Organize > Mind Map. It renders your entire idea graph as a force-directed layout where you can:

  • Click any node to view the idea
  • Drag nodes to rearrange the layout
  • Filter by tag, status, or relation type
  • Zoom and pan to explore large graphs

Start with a high-level idea and decompose it into children:

#42 Browser extension
├── #55 Content script
├── #56 Popup UI
├── #57 Service worker
└── #58 Options page

Each child can be worked on independently and tracked with its own status.

Track how ideas evolve over time:

#10 "Simple bookmarking tool"
└── [inspires] #25 "Smart bookmarks with AI tags"
└── [inspires] #42 "Browser extension for idea capture"

Map out what blocks what:

#60 Auth system ──[blocks]──► #42 Browser extension
#62 API rate limiter ──[blocks]──► #42 Browser extension

This tells you that #42 cannot ship until #60 and #62 are complete.

When an idea evolves so much that it replaces an older one:

Terminal window
nrepo link 42 10 --type supersedes --note "Extension approach replaces the simple bookmarking idea"
nrepo move 10 shelved

Imagine you are building a suite of developer tools. Here is how the graph might look:

#1 Developer Tools Suite (exploring)
├── [parent] #10 CLI Framework (building)
│ ├── [parent] #11 Plugin system
│ └── [parent] #12 Config file parser
├── [parent] #20 VS Code Extension (captured)
│ └── [related] #10 CLI Framework
├── [parent] #30 GitHub Bot (exploring)
│ ├── [blocks] #10 CLI Framework
│ └── [related] #35 Webhook handler library
└── [inspires] #40 SaaS Dashboard (captured)

This graph tells you:

  • The CLI Framework (#10) is the foundation — it blocks the GitHub Bot and relates to the VS Code Extension.
  • The SaaS Dashboard was inspired by the suite idea but is a separate effort.
  • You should focus on #10 first since other ideas depend on it.
Terminal window
# Find the relation ID
nrepo show 42 --relations
# Remove it
nrepo unlink <relation_id>

Via MCP, ask Claude: “Unlink the relation between idea 42 and 38.”