AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified Apache-2.0 Self-run

Link Issues

skill-meteora-pro-devboy-tools-link-issues · by meteora-pro

Connect two issues with a typed relationship — blocks, blocked-by, related, duplicates, or parent/subtask.

No reviews yet
0 installs
11 views
0.0% view→install

Install

$ agentstack add skill-meteora-pro-devboy-tools-link-issues

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-meteora-pro-devboy-tools-link-issues)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
1mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Link Issues? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

link-issues

Create a typed relationship between two issues so the tracker's dependency graph reflects the real one. The skill covers the four canonical link types plus the special case of parent/subtask, and it inspects existing links first to avoid duplicates.

When to use

  • The user says "DEV-200 is blocked by DEV-100", "mark DEV-55 as a duplicate of DEV-40", or "make this a subtask of the epic".
  • A fix unblocks another ticket and the blocker relationship should be recorded before the close.
  • Back-office cleanup: stitching together issues that were filed separately but describe the same work.

Key concepts

IssueRelations (the shape returned by get_issue_relations) groups links into five buckets:

| Bucket | linkType to pass | Meaning | |--------|---------------------|---------| | blocked_by | blocked_by | The source cannot progress until the target is done | | blocks | blocks | The source must be done before the target can progress | | related_to | relates_to | Soft relationship — "see also" | | duplicates | duplicates | The source is a duplicate of the target | | parent / subtasks | subtask | Source is a subtask of target (ClickUp / Jira) |

Provider support varies:

  • GitLab exposes relates_to, blocks, blocked_by.
  • GitHub exposes a flat relates_to (dependency-free by default; Projects v2 adds more).
  • ClickUp exposes parent/subtask via update_issue parentId in addition to link_issues.
  • Jira exposes the full set and honours whatever link types are configured on the project.

If a given relationship is not supported by the active provider, link_issues returns ProviderUnsupported — fall back to an explanatory comment instead.

Procedure

1. Inspect the current graph

Before adding a link, list the existing ones so you do not create a duplicate edge:

devboy tools call get_issue_relations '{"key": "DEV-200"}'
# or in aggregate via get_issue
devboy tools call get_issue '{"key": "DEV-200", "includeRelations": true}'

Look at blocked_by, blocks, related_to, duplicates, parent, subtasks. If the edge you are about to add already exists, stop — the tracker is already correct.

2. Add the link

One link_issues call per edge. All three fields are required:

# "DEV-200 is blocked by DEV-100"
devboy tools call link_issues '{
  "sourceIssueKey": "DEV-200",
  "targetIssueKey": "DEV-100",
  "linkType": "blocked_by"
}'

# "DEV-55 duplicates DEV-40"
devboy tools call link_issues '{
  "sourceIssueKey": "DEV-55",
  "targetIssueKey": "DEV-40",
  "linkType": "duplicates"
}'

# "DEV-42 is related to DEV-17"
devboy tools call link_issues '{
  "sourceIssueKey": "DEV-42",
  "targetIssueKey": "DEV-17",
  "linkType": "relates_to"
}'

3. Parent / subtask is a special case

Where the provider supports it, prefer update_issue with parentId — it moves the issue under the parent in one call and most trackers render the hierarchy natively:

devboy tools call update_issue '{"key": "CU-child", "parentId": "CU-epic"}'

Fall back to link_issues with "linkType": "subtask" if the provider expects that shape.

4. Multi-link sequences

A real request usually needs more than one edge. Walk them one at a time — the tool is not batched:

> "This MR fixes DEV-123 and is blocked by DEV-100."

# DEV- blocks? no — DEV- is blocked by DEV-100
devboy tools call link_issues '{
  "sourceIssueKey": "DEV-",
  "targetIssueKey": "DEV-100",
  "linkType": "blocked_by"
}'
# "fixes" on most trackers is just a related link + automation on merge
devboy tools call link_issues '{
  "sourceIssueKey": "DEV-",
  "targetIssueKey": "DEV-123",
  "linkType": "relates_to"
}'

5. Removing a stale link

unlink_issues takes the same three fields:

devboy tools call unlink_issues '{
  "sourceIssueKey": "DEV-55",
  "targetIssueKey": "DEV-40",
  "linkType": "duplicates"
}'

Success criteria

  • get_issue_relations after the operation shows the new edge in the correct bucket.
  • No duplicate edges were created — pre-check in step 1 caught them.
  • Where the provider rejected a link type, the agent surfaced that to the user instead of silently retrying.

Non-goals

  • This skill does not create issues — use create-issue and then link.
  • It does not automatically close duplicates — mark the relationship, let the user decide whether to close.

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.