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.
Relation Types
Section titled “Relation Types”NeuralRepo supports six relation types. Each serves a distinct purpose.
| Type | Direction | Meaning |
|---|---|---|
related | A → B | General connection. A and B are conceptually related. |
parent | A → B | Hierarchical. A is the parent of B. Use this to break large ideas into sub-ideas. |
blocks | A → B | A blocks progress on B. B cannot move forward until A is resolved. |
inspires | A → B | A inspired the creation of B. A seed that grew into something new. |
duplicate | A → B | A is a duplicate of B. Automatically created by the duplicate detection system. |
supersedes | A → B | A replaces B. The newer idea makes the older one obsolete. |
Creating Relations
Section titled “Creating Relations”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.
# Link two ideas with a relationnrepo link <source> <target> --type <type> --note "optional explanation"
# Examplesnrepo link 10 42 --type blocks --note "Need auth system before dashboard"nrepo link 5 18 --type parentnrepo link 3 7 --type inspires --note "The API idea grew out of this"curl -X POST https://neuralrepo.com/api/v1/map/relations \ -H "Authorization: Bearer $NREPO_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "source_idea_id": 10, "target_idea_id": 42, "type": "blocks", "note": "Need auth system before dashboard" }'Cycle Detection
Section titled “Cycle Detection”Certain relation types enforce acyclicity to maintain a coherent graph.
| Behavior | Relation Types | What happens |
|---|---|---|
| Hard-blocked | blocks, supersedes, parent | Cycles are rejected outright. You cannot create a relation that would form a loop. |
| Soft-blocked | related, inspires | Cycles trigger a warning but can be overridden. |
To override a soft-blocked cycle in the CLI:
nrepo link 3 7 --type inspires --forceViewing Relations
Section titled “Viewing Relations”# List all relations for an ideanrepo links <id>
# Explore the graph from a starting ideanrepo graph <id>
# Limit depth and filter by typenrepo graph <id> --depth 3 --type blocks,inspiresThe idea detail view shows a Relations panel listing all incoming and outgoing relations. Click any related idea to navigate to it.
For a visual overview, open the Mind Map to see ideas as nodes and relations as edges.
# Get the full graphGET /api/v1/map
# Response includes nodes and edges{ "nodes": [...], "edges": [ { "id": 1, "source": 10, "target": 42, "type": "blocks", "note": "Need auth system before dashboard", "score": null, "created_at": "2026-03-20T14:30:00Z" } ]}Auto-Created Relations
Section titled “Auto-Created Relations”NeuralRepo creates some relations automatically:
- Duplicate detection: When a new idea scores above the dedup threshold (default 0.75) against an existing idea, a
duplicaterelation is created along with a pending detection record. - Related suggestions: When a new idea scores above the related threshold (default 0.5) but below the dedup threshold, a
relatedrelation is created automatically.
These thresholds are configurable in your user settings. See Duplicate Detection for details.
Removing Relations
Section titled “Removing Relations”nrepo unlink <source> <target>DELETE /api/v1/map/relations/:idOpen the idea detail, find the relation in the Relations panel, and click the remove button.