Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
ainergiz avatar

New Issue

  • 7 installs
  • 11 repo stars
  • Updated March 8, 2026
  • ainergiz/xfeed

new-issue is a Claude Code skill that creates GitHub issues with duplicate detection and codebase analysis via the gh CLI.

About

new-issue is a Claude Code skill that creates well-researched GitHub issues while avoiding duplicates. It searches the codebase and recent commits to check if the issue is already fixed, searches open and closed issues for duplicates, drafts a structured issue, and creates it with the gh CLI. Developers use it to capture out-of-scope bugs and improvements found during development.

  • Creates GitHub issues with duplicate detection across open and closed issues
  • Checks commits and codebase to confirm the issue is not already fixed
  • Drafts structured issue bodies and supports sub-issues

New Issue by the numbers

  • 7 all-time installs (skills.sh)
  • Ranked #457 of 733 Git & Pull Requests skills by installs in the Skillselion catalog
  • Data as of Jul 28, 2026 (Skillselion catalog sync)
At a glance

new-issue capabilities & compatibility

Capabilities
issue creation · duplicate detection
Works with
github
Use cases
project management
From the docs

What new-issue says it does

Create GitHub issues with duplicate detection and codebase analysis.
SKILL.md
This skill helps create well-researched GitHub issues while preventing duplicates and wasted effort.
SKILL.md
npx skills add https://github.com/ainergiz/xfeed --skill new-issue

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs7
repo stars11
Last updatedMarch 8, 2026
Repositoryainergiz/xfeed

What it does

Create a de-duplicated, researched GitHub issue for an out-of-scope bug or improvement.

Who is it for?

Developers who spot an out-of-scope bug or improvement and want it tracked without creating duplicates.

Skip if: Non-GitHub issue trackers or fixing the bug itself.

When should I use this skill?

When you discover a bug or improvement outside the current scope, or the user says create an issue or file a bug.

What you get

A de-duplicated, structured GitHub issue with a URL and number.

  • GitHub issue
  • issue URL and number

By the numbers

  • 7-step workflow
  • searches up to 50 open and 30 closed issues

Files

SKILL.mdMarkdownGitHub ↗

Smart GitHub Issue Creation

This skill helps create well-researched GitHub issues while preventing duplicates and wasted effort.

When to Use This Skill

Activate this skill when:

  • You discover a bug or issue that's outside the current task's scope
  • You notice something that should be fixed but isn't part of the current spec
  • The user mentions wanting to "track this for later" or "create an issue"
  • You find an improvement opportunity while working on something else
  • The user explicitly asks to create an issue or file a bug

Workflow

Step 1: Clarify the Issue

If the issue description is vague or missing, ask the user:

"What issue would you like to create? Describe the bug, feature, or improvement."

Step 2: Check if Already Fixed/Implemented

Before creating, verify this isn't already solved:

1. Search codebase for related keywords:

   # Use Grep/Glob to find relevant code

2. Check recent commits (filter by relevant keywords):

   # Generic recent commits
   gh api repos/{owner}/{repo}/commits --jq '.[0:20] | .[] | "\(.sha[0:7]) \(.commit.message | split("\n")[0])"'

   # Targeted search for specific keywords (more useful)
   gh api repos/{owner}/{repo}/commits --jq '[.[] | select(.commit.message | test("KEYWORD1|KEYWORD2"; "i"))] | .[0:10] | .[] | "\(.sha[0:7]) \(.commit.message | split("\n")[0])"'

Replace KEYWORD1|KEYWORD2 with terms relevant to the issue (e.g., "retweet|repost" for a retweet bug).

3. If already fixed/implemented, inform the user:

"It looks like this might already be addressed. I found [what you found]. Are you aware of this?"

Options: "Show me the existing solution", "Create the issue anyway", "Cancel"

Step 3: Check Existing GitHub Issues

Search for duplicates:

1. Search open issues:

   gh issue list --state open --limit 50 --json number,title,body,labels,url

2. Search closed issues:

   gh issue list --state closed --limit 30 --json number,title,body,labels,url,closedAt

3. Keyword search:

   gh search issues --repo {owner}/{repo} "keywords" --limit 20 --json number,title,body,url,state

4. Fetch details with comments for promising matches:

   gh issue view <number> --json number,title,body,comments,labels,state

5. Based on findings:

EXACT DUPLICATE:

"I found an existing issue #[number] - [title] that matches this. What would you like to do?"
  • Options: "Add comment to existing", "View details", "Create anyway", "Cancel"

RELATED ISSUE:

"I found related issue #[number]. Your issue could be a comment, sub-issue, or separate. Preference?"
  • Options: "Add as comment", "Create as sub-issue (I'll activate gh-subissues skill)", "Create separate issue"

CLOSED ISSUE:

"This was previously reported as #[number] and [fixed/rejected]. Context: [summary]. Still want to proceed?"

Step 4: Research Potential Solutions

If you have enough context:

1. Explore codebase for patterns and relevant files 2. Use web search via Task tool for best practices 3. Formulate 1-3 approaches with:

  • Brief description
  • Files that would need changes
  • Trade-offs (if applicable)

Step 5: Draft Issue Content

Structure the issue:

## Summary
[1-2 sentences]

## Context
[Background, how discovered, why it matters]

## Current Behavior (for bugs)
[What happens now]

## Expected Behavior
[What should happen]

## Potential Implementation (optional)
### Approach 1: [Name]
- Description
- Files: `path/to/file.ts`

## Additional Context
[Related issues, screenshots, etc.]

Step 6: Confirm Before Creating

Present a concise summary (don't overwhelm with details upfront):

"Ready to create issue:

>

Title: [title]
Summary: [1-2 sentences max]

>

Does this look good?"

Options: "Create the issue", "Show more details", "Edit first", "Cancel"

If user selects "Show more details", then display:

  • Key findings from codebase exploration
  • Proposed implementation approaches
  • Files that would be affected

Step 7: Create the Issue

gh issue create --title "type(area): description" --body "$(cat <<'EOF'
[structured content]
EOF
)"

Then display the URL and issue number.

Sub-Issue Support

To create as a sub-issue, say:

"I'll activate the gh-subissues skill to create this as a sub-issue of #[parent]."

Then use the Skill tool to invoke gh-subissues.

During Development: Out-of-Scope Issues

When you notice an issue while working on something else:

1. Briefly mention it to the user:

"While working on [current task], I noticed [issue]. This seems out of scope for the current work. Would you like me to create an issue to track this for later?"

2. If user agrees, run through this workflow 3. If user declines, continue with the current task

This prevents scope creep while ensuring important issues aren't forgotten.

Issue Title Conventions

Use conventional format:

  • fix(area): brief description - Bug fixes
  • feat(area): brief description - New features
  • refactor(area): brief description - Code improvements
  • docs(area): brief description - Documentation
  • chore(area): brief description - Maintenance

Handling Screenshots & Attachments

If the user provides screenshots or images for the issue:

1. Check for attached files in the conversation (e.g., .context/attachments/) 2. Read and understand the images before drafting the issue 3. Create the issue first (without images or with placeholder text) to get the issue number 4. Upload images with issue-prefixed names to a draft release:

# Create or reuse a draft release for issue assets
gh release view issue-assets 2>/dev/null || \
  gh release create issue-assets --draft --title "Issue Assets" --notes "Screenshots for issues"

# Copy and rename with issue prefix (e.g., 216-description.png)
cp "path/to/screenshot.png" /tmp/{issue#}-{description}.png

# Upload the renamed file
gh release upload issue-assets /tmp/{issue#}-{description}.png

# Get the URL
gh release view issue-assets --json assets --jq '.assets[] | select(.name | startswith("{issue#}")) | "\(.name): \(.url)"'

5. Edit the issue to add the image URLs (not as a separate comment):

gh issue edit {issue#} --body "$(cat <<'EOF'
[issue body with images]
![description](https://github.com/owner/repo/releases/download/issue-assets/{issue#}-description.png)
EOF
)"

Naming convention: {issue#}-{description}.png (e.g., 216-xfeed-display.png, 216-xcom-expected.png)

Note: The gh CLI cannot upload images directly to issues (feature requested since 2020). Release assets are the cleanest workaround that keeps images within the repo's GitHub ecosystem.

Notes

  • Always prioritize preventing duplicates - saves everyone time
  • Be thorough but concise - don't overwhelm the user
  • For simple, clearly new issues, streamline the process
  • Keep the user informed at each decision point
  • Check for user-provided debug URLs and include them in the issue

Related skills

FAQ

How does it avoid duplicates?

It searches the codebase, recent commits, and open plus closed GitHub issues before creating a new one.

Can it create sub-issues?

Yes, it can hand off to the gh-subissues skill to create the issue as a sub-issue of a parent.

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.