Skip to main content

relate

Create a relation between two Plane work items (block, duplicate, relates-to) Arguments: <relation> <project> <from-item> <to-item>.

Source facts

Repository
Agents-Store/codex-plugins
Last source activity
November 1, 2026 at 02:46
Detected SKILL.md language
English
Stars
0
Forks
0

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
relate
description
Create a relation between two Plane work items (block, duplicate, relates-to) Arguments: <relation> <project> <from-item> <to-item>.
# Relate Create or remove a typed relation between two work items. Method and rules: the `plane-ops:work-items` skill. ## Arguments Format: `<relation> <project> <from-item> <to-item>` - `relation`: `blocks` | `blocked-by` | `duplicate` | `duplicate-of` | `relates-to` | `remove` - `project`: project name or identifier - `from-item`: source work item identifier (`PROJ-42`) - `to-item`: target work item identifier (`PROJ-43`) Parse from `"$ARGUMENTS"`. ## Process 1. **Bootstrap connector** — consult `connector-bootstrap`. Probe for the Plane resource tools `workitem_relation` and `workitem`. 2. **Resolve project** → `project_id`. **Resolve both work items** → UUIDs (`workitem(action=retrieve_by_identifier, workitem_identifier="PROJ-42")`). 3. **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 in `relation_type`). Duplicate, relates-to and any custom relation are *definitions*: call `workitem_relation(action=list_definitions)`, match the user's wording to an entry, and pass `relation_definition_id` plus `relation_definition_label` (the matched outward or inward label, which sets the direction) instead of `relation_type`. The related items go in `workitem_ids` (an array of UUIDs). 4. **Route**: - `blocks` → `workitem_relation(action=create, project_id, workitem_id=<from>, workitem_ids=[<to>], relation_type="blocking")` (the inverse `blocked_by` shows on the target) - `blocked-by` → `workitem_relation(action=create, ..., relation_type="blocked_by")` - `duplicate` / `duplicate-of` → the duplicate definition (`list_definitions`), with `relation_definition_id` and the label for the requested direction - `relates-to` → the relates-to definition, the same way - `remove` → `workitem_relation(action=list, project_id, workitem_id)`, find the matching one, then `workitem_relation(action=delete, project_id, workitem_id, related_workitem_id, is_dependency)`; `is_dependency` must match the kind that was created (true for the six built-in types, default false for definitions) 5. **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 `/dependencies` after blocking to see the full graph and detect chains/cycles.
View on GitHub