relate
Create a relation between two Plane work items (block, duplicate, relates-to) Arguments: <relation> <project> <from-item> <to-item>.
SKILL.mdplane-ops/skills/relate/SKILL.md
GitHubRelate
Create or remove a typed relation between two work items.
Arguments
Format: <relation> <project> <from-item> <to-item>
relation:blocks|blocked-by|duplicate|duplicate-of|relates-to|removeproject: project name or identifierfrom-item: source work item identifier (PROJ-42)to-item: target work item identifier (PROJ-43)
Parse from "$ARGUMENTS".
Process
- Bootstrap connector — consult
connector-bootstrap. Probe for the Plane resource toolsworkitem_relationandworkitem. - Resolve project →
project_id. Resolve both work items → UUIDs (workitem(action=retrieve_by_identifier, workitem_identifier="PROJ-42")). - Map relation type to API value. The built-in dependency types are
blocking,blocked_by,start_before,start_after,finish_before,finish_after(they go inrelation_type). Duplicate, relates-to and any custom relation are definitions: callworkitem_relation(action=list_definitions), match the user's wording to an entry, and passrelation_definition_idplusrelation_definition_label(the matched outward or inward label, which sets the direction) instead ofrelation_type. The related items go inworkitem_ids(an array of UUIDs). - Route:
blocks→workitem_relation(action=create, project_id, workitem_id=<from>, workitem_ids=[<to>], relation_type="blocking")(the inverseblocked_byshows on the target)blocked-by→workitem_relation(action=create, ..., relation_type="blocked_by")duplicate/duplicate-of→ the duplicate definition (list_definitions), withrelation_definition_idand the label for the requested directionrelates-to→ the relates-to definition, the same wayremove→workitem_relation(action=list, project_id, workitem_id), find the matching one, thenworkitem_relation(action=delete, project_id, workitem_id, related_workitem_id, is_dependency);is_dependencymust match the kind that was created (true for the six built-in types, default false for definitions)
- Confirm — print both items and the relation direction.
Examples
/relate blocks "TaskFlow" PROJ-148 PROJ-150
/relate blocked-by "TaskFlow" PROJ-150 PROJ-148
/relate duplicate "TaskFlow" PROJ-160 PROJ-148
/relate relates-to "TaskFlow" PROJ-148 PROJ-200
/relate remove "TaskFlow" PROJ-148 PROJ-150
Best Practices
- Set blockers as soon as you discover them, not in retro. Blockers visible early let the team unblock themselves.
- Mark duplicates with
duplicate-of, then close the duplicate with a comment linking to the canonical item. - Use
/dependenciesafter blocking to see the full graph and detect chains/cycles.