Skip to content

to-tickets didn't create blocking relationships between GitHub issues #513

Description

@ctrom

Model: Claude Sonnet 4.6
Effort: Medium
Harness: CoPilot CLI

After using to-spec, I started a new session and used to-tickets with the GitHub issue number for the spec as an argument. At the conclusion of the session, the agent created 2 tickets as GitHub issues. Ticket 2 was blocked by ticket 1, which was noted in the issue body, but not represented with the GitHub native "blocking" relationship feature. Conversation proceeded like this (heavily truncated):

User:

347 was created in GitHub without a blocking relationship with 346. I have added the relationship manually to ensure proper behavior, but why wasn't that done automatically?

Agent:

Honest answer: I included Blocked by: #346 as text in the issue body, which creates a mention/link, but GitHub Issues has no native first-class blocking relationship in its standard API — so there was nothing to call. The gh issue create command has no --blocks or --blocked-by flag.

User:

That's not accurate. GitHub does support blocking relationships and they can be created in a gh issue create command. See here for reference: https://github.com/[REDACTED]/[REDACTED]/blob/cff0774cebeab3aa4a2a92ec4262372acfb51f6b/skills/planning/to-issues/SKILL.md#5-publish-the-issues-to-the-issue-tracker

Agent:

You're right — gh issue create supports --blocked-by natively. I missed that flag entirely and fell back to body-text references instead. I should have used:

gh issue create ... --blocked-by 346

when creating #347. My apologies — I'll use --blocked-by correctly on future ticket runs.


The to-issues skill that I offered the agent as a reference is one that I had modified to include this information by adding this snippet to the "publish the issues" section:

GitHub Issues — native blocking relationships:
When the tracker is GitHub Issues, use the --blocked-by flag on gh issue create to wire up GitHub's native issue dependency graph for each issue that has blockers. Since blockers are created first, their issue numbers are available at creation time.

# Example: issue being created is blocked by #12 and #15
gh issue create --title "..." --body "..." --label "..." --blocked-by 12,15

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions