Task Relations

Overview

Task relations are typed connections between two tasks that capture how work depends on or duplicates other work. Unlike a plain mention in a description, a relation is a first-class link with a meaning — one task blocks another, relates to it, or is a duplicate of it — and it shows up on both tasks so the dependency is visible from either side.

Use it for: flagging that one task can’t start until another finishes, grouping work that belongs together, or marking a task as a duplicate without losing the trail back to the original.

How it works

  1. Open a task in the detail drawer or full-page view and switch to the Linked tab.
  2. Pick the task you want to connect and choose a relation type.
  3. The relation appears on both tasks immediately — the other task shows the inverse direction automatically.
  4. Relations are grouped by type with a direction indicator, so you can scan a task’s blockers, the things it blocks, and its related or duplicate tasks at a glance.
  5. Mentioning a task inside another task’s description creates a lightweight relates to link automatically — no extra step needed.

Relation types

There are five relations, made of three stored types plus their computed inverses:

  • Blocks — this task must be done before the linked task can proceed.
  • Is blocked by — the inverse: the linked task must be done first. (Shown automatically on the other side of a Blocks link.)
  • Relates to — a symmetric, informational connection. Reads the same from either task.
  • Duplicates — this task is a duplicate of the linked task.
  • Is duplicated by — the inverse of Duplicates, shown on the original task.

You only ever set Blocks, Relates to, or Duplicates from a task; the blocked by and duplicated by directions are derived and displayed on the other task — you never create them by hand.

Usage

Link two tasks. Open a task, go to the Linked tab, search for the other task, and choose a relation type. The link is created in one direction and the inverse appears on the other task.

Mark a blocker. Choose Blocks when this task must finish before another can move. The blocked task shows an Is blocked by entry pointing back here.

Mark a duplicate. Choose Duplicates to point a redundant task at the canonical one. The original shows Is duplicated by so the relationship is clear from both sides.

Auto-link from a description. When you @mention a task in another task’s description, Kanvas records a relates to relation automatically. Editing the description to add new mentions adds new relations; the relation stays even if you later trim the text.

Re-type an existing relation. If a relation is wrong — say it should be Blocks rather than Relates to — update its type in the Linked tab instead of removing and recreating it.

Remove a relation. Unlink it from the Linked tab. Only the direction you created is removed; because the inverse is computed, there’s nothing extra to clean up.

Ask Kenny to do it. Kenny can manage relations for you from chat or a task comment — for example, “link KANV-123 and KANV-456 as related” or “mark KANV-789 as blocked by KANV-770.” Relations Kenny creates appear in the Linked tab just like ones you create by hand.

Drive it from an external client. Through the MCP Server, connected AI clients (Claude Desktop, Claude Code, Cursor, and others) can manage relations on your behalf with three tools:

  • link_task — create or re-type a relation between two tasks. Takes the source task, the linked task, and an optional relation type (blocks, relates_to, or duplicate_of; defaults to relates_to). Re-linking an existing pair updates its type.
  • unlink_task — remove the relation between two tasks.
  • update_task_relation — change the type of an existing relation.

Tasks are referenced by their short identifier (for example, KANV-123), and the relation type is always read from the source task’s perspective — the same way it works in the UI.

Edge cases & limits

  • Relations are directional, but the inverse is automatic. You set one side; Kanvas shows the matching blocked by / duplicated by entry on the other task. There’s no second link to manage.
  • A task can’t relate to itself. Self-links are rejected.
  • Re-linking updates, it doesn’t duplicate. Linking the same pair again changes the relation type rather than creating a second link.
  • Mention links are always relates to. Auto-created links from description mentions use the symmetric relates to type; use the Linked tab (or Kenny) to set a stronger relation like blocks.
  • Updating a relation needs one to exist. Asking to re-type a relation that was never created returns an error — create it with a link first.
  • Tasks & Boards — work on tasks in a kanban board, where the Linked tab lives
  • Task Types — the system-defined classification each task carries
  • MCP Server — connect external AI clients to manage tasks and relations
  • Kenny Chat Drawer — ask Kenny to link, unlink, or re-type relations for you

This site uses Just the Docs, a documentation theme for Jekyll.