issue-management

$npx mdskill add remotion-dev/remotion/issue-management

Manages GitHub Issues 2.0 relationships using gh CLI

  • Solves the task of linking issues with parent, sub-issue, and dependency relationships
  • Relies on GitHub CLI (gh) with Issues 2.0 support from PR cli/cli#13057
  • Uses command-line flags to define relationships via issue numbers or URLs
  • Executes gh commands to create, edit, or inspect issue relationships directly

SKILL.md

.github/skills/issue-managementView on GitHub ↗
---
name: issue-management
description: "Manage GitHub Issues 2.0 relationships with gh CLI: parent issues, sub-issues, blocked-by, and blocking links."
---

Use this skill when creating, editing, inspecting, or removing relationships between GitHub issues.

These commands use the Issues 2.0 `gh issue` support added in GitHub CLI PR [cli/cli#13057](https://github.com/cli/cli/pull/13057). Because this feature is new, first confirm the installed `gh` supports it:

```bash
gh issue create --help | grep -E -- '--parent|--blocked-by|--blocking'
gh issue edit --help | grep -E -- '--parent|--add-sub-issue|--add-blocked-by|--add-blocking'
```

If those flags are missing, update `gh` before trying to manage issue relationships. Do not invent older commands.

## Issue reference format

Relationship flags accept issue numbers or issue URLs.

Use a number for an issue in the current repository:

```bash
gh issue edit 123 --parent 100
```

Use a full issue URL for a cross-repository relationship:

```bash
gh issue edit 123 --blocked-by https://github.com/remotion-dev/remotion/issues/456
```

Multiple related issues can be passed as a comma-separated list:

```bash
gh issue edit 123 --add-blocked-by 200,201
```

## Parent and sub-issue relationships

A sub-issue has exactly one parent issue.

To create a new issue directly under a parent:

```bash
gh issue create \
  --title 'Docs: Add issue management skill' \
  --body-file /tmp/remotion-issue-body.md \
  --parent 100
```

To set or change the parent of an existing child issue:

```bash
gh issue edit <child-number> --parent <parent-number-or-url>
```

To remove the parent from a child issue:

```bash
gh issue edit <child-number> --remove-parent
```

To manage children from the parent issue:

```bash
gh issue edit <parent-number> --add-sub-issue <child-number-or-url>
gh issue edit <parent-number> --remove-sub-issue <child-number-or-url>
```

`--add-sub-issue` moves the child to the new parent if it already has another parent. Do not use `--add-sub-issue` while editing multiple parent issues in one command; one child cannot be added ambiguously to several parents.

## Blocked-by and blocking relationships

Use `blocked-by` when the issue being edited is waiting on another issue.

```bash
# Issue 123 is blocked by issue 200.
gh issue edit 123 --add-blocked-by 200

# Remove that relationship.
gh issue edit 123 --remove-blocked-by 200
```

Use `blocking` when the issue being edited blocks another issue.

```bash
# Issue 123 is blocking issues 300 and 301.
gh issue edit 123 --add-blocking 300,301

# Remove one blocking relationship.
gh issue edit 123 --remove-blocking 300
```

Equivalent mental model:

```bash
gh issue edit A --add-blocking B
```

means the same relationship as:

```bash
gh issue edit B --add-blocked-by A
```

Choose the command based on which issue you are already editing.

When creating an issue, set relationships immediately:

```bash
gh issue create \
  --title 'Studio: Add timeline validation' \
  --body-file /tmp/remotion-issue-body.md \
  --blocked-by 200,201 \
  --blocking 300
```

## Inspecting relationships

Human-readable view shows parent, sub-issues, blocked-by, and blocking metadata when present:

```bash
gh issue view <number>
```

Raw non-TTY output includes stable relationship lines:

```bash
gh issue view <number> | grep -E '^(parent|sub-issues|sub-issues-completed|blocked-by|blocking):'
```

For scripts, request the JSON fields explicitly:

```bash
gh issue view <number> \
  --json parent,subIssues,subIssuesSummary,blockedBy,blocking
```

`subIssues`, `blockedBy`, and `blocking` are connection objects with `nodes` and `totalCount`. `subIssuesSummary` contains completion counts.

## Safe workflow

1. Create any new issue bodies with `--body-file`, not inline multiline shell strings.
2. Link the relationship using the appropriate `gh issue create` or `gh issue edit` flag.
3. Verify with `gh issue view <number>` or `gh issue view <number> --json parent,subIssues,subIssuesSummary,blockedBy,blocking`.
4. If editing a PR or parent issue body afterward, replace vague checklist text with concrete issue numbers.

More from remotion-dev/remotion

SkillDescription
add-bugAdd a new Remotion bug entry to packages/bugs/api/[v].ts. Use when the user describes a bug and affected Remotion versions that should be surfaced through the bugs API.
add-cli-optionAdd a new Remotion CLI or config option by creating an AnyRemotionOption, registering CLI parsing, wiring config setters, and updating documentation. Use when adding or converting command-line flags or Remotion options.
add-effectAdd a new effect to @remotion/effects, including implementation, package exports, docs, demos, preview images, Remotion skill updates, formatting, and builds.
add-expertAdd a new expert to the Remotion experts page
add-new-packageAdd a new package to the Remotion monorepo, including package scaffolding, monorepo registration, documentation, build scripts, and release checklist updates. Use when creating a new @remotion package.
add-sfxAdd a new sound effect to @remotion/sfx
add-webcodecs-bugAdd a browser WebCodecs bug to the Remotion Mediabunny WebCodecs bugs docs page. Use when given a Chromium, WebKit, or Firefox issue URL that should be tracked in packages/docs/docs/mediabunny/webcodecs-bugs.mdx, especially when needing to look up the issue title, filing date, reporter, and resolution state before editing the MDX table.
canvas-capture-extensionRebuild, install, and reload the private Remotion Canvas Capture unpacked Chrome extension. Use when the extension needs to be restored after a Codex worktree was deleted, rebuilt after source changes, moved to its durable install directory, or reloaded in Chrome or Chrome Canary.
checkoutCheckout a requested branch or ref in the Remotion repo, rename the current task to the associated PR title when running in Codex, then install dependencies and build. Use when the user asks to checkout a ref and prepare the workspace.
convertStart the local @remotion/convert app and open it in the Codex browser. Use when the user invokes /convert or $convert, asks to launch convert.remotion.dev locally, or wants to inspect the Convert package UI.