Skip to content
NeuralRepo
Get Support

Idea Relations

Relations let you express how ideas connect to each other. Every relation has a source, a target, a type, and an optional note. Together, they form a directed graph that you can explore in the mind map or via the CLI.

NeuralRepo supports six relation types. Each serves a distinct purpose.

TypeDirectionMeaning
relatedA → BGeneral connection. A and B are conceptually related.
parentA → BHierarchical. A is the parent of B. Use this to break large ideas into sub-ideas.
blocksA → BA blocks progress on B. B cannot move forward until A is resolved.
inspiresA → BA inspired the creation of B. A seed that grew into something new.
duplicateA → BA is a duplicate of B. Yours to create by hand — duplicate detection does not use it.
supersedesA → BA replaces B. The newer idea makes the older one obsolete.

Open an idea and click + Add Relation in the relations panel. Select the target idea, choose a relation type, and optionally add a note explaining the connection.

Certain relation types enforce acyclicity to maintain a coherent graph.

BehaviorRelation TypesWhat happens
Hard-blockedblocks, parentCycles are rejected outright. You cannot create a relation that would form a loop.
Soft-blockedsupersedesCycles are rejected unless overridden with --force.
Not checkedrelated, inspires, duplicateNo cycle detection — these types are non-hierarchical.

Cycle checking walks up to 50 hops along edges of the same type, so it catches long chains, not just direct loops. To override a soft-blocked cycle:

Terminal window
# CLI
nrepo link 3 7 --type supersedes --force
# API
POST /api/v1/map/relations?force=true
Terminal window
# List all relations for an idea
nrepo links <id>
# Explore the graph from a starting idea
nrepo graph <id>
# Limit depth and filter by type
nrepo graph <id> --depth 3 --type blocks,inspires

NeuralRepo creates some relations for you. They are marked as system-created, which the mind map draws fainter and thinner than the ones you make yourself.

  • Similarity: when a newly saved idea scores above the related threshold (default 0.5) against one of its five nearest neighbours, a related relation is created — including when the pair also crosses the dedup threshold and becomes a duplicate detection.
  • Parenting: giving an idea a parent_id creates a parent relation from the child to the parent. Changing parent_id later deletes the old one and writes the new one.

The thresholds are configurable in your user settings. See Duplicate Detection for details.

Merging two ideas with nrepo merge (or POST /api/v1/ideas/:id/merge) moves the absorbed idea’s relations onto the kept idea, dropping any that would point an idea at itself. Resolving a duplicate detection does not: it archives the matched idea, and archived ideas are filtered out of every relation query, so their links simply stop appearing.

Terminal window
nrepo unlink <source> <target>