.agents/skills/issue-management/SKILL.md
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. Because this feature is new, first confirm the installed gh supports it:
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.
Relationship flags accept issue numbers or issue URLs.
Use a number for an issue in the current repository:
gh issue edit 123 --parent 100
Use a full issue URL for a cross-repository relationship:
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:
gh issue edit 123 --add-blocked-by 200,201
A sub-issue has exactly one parent issue.
To create a new issue directly under a parent:
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:
gh issue edit <child-number> --parent <parent-number-or-url>
To remove the parent from a child issue:
gh issue edit <child-number> --remove-parent
To manage children from the parent issue:
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.
Use blocked-by when the issue being edited is waiting on another issue.
# 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.
# 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:
gh issue edit A --add-blocking B
means the same relationship as:
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:
gh issue create \
--title 'Studio: Add timeline validation' \
--body-file /tmp/remotion-issue-body.md \
--blocked-by 200,201 \
--blocking 300
Human-readable view shows parent, sub-issues, blocked-by, and blocking metadata when present:
gh issue view <number>
Raw non-TTY output includes stable relationship lines:
gh issue view <number> | grep -E '^(parent|sub-issues|sub-issues-completed|blocked-by|blocking):'
For scripts, request the JSON fields explicitly:
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.
--body-file, not inline multiline shell strings.gh issue create or gh issue edit flag.gh issue view <number> or gh issue view <number> --json parent,subIssues,subIssuesSummary,blockedBy,blocking.