Claude-skill-registry git-issue-creator
GitHub issue creation with semantic commit formatting and automatic label assignment, extending git-issue-labeler, git-semantic-commits, git-issue-updater, and ticket-branch-workflow
git clone https://github.com/majiayu000/claude-skill-registry
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/git-issue-creator" ~/.claude/skills/majiayu000-claude-skill-registry-git-issue-creator && rm -rf "$T"
skills/data/git-issue-creator/SKILL.mdWhat I do
I implement GitHub issue creation with automatic label assignment and semantic commit formatting by extending framework skills:
- Analyze Request: Parse the user's statement to determine issue type and content
- Assign Labels: Use
framework to assign GitHub default labels (bug, enhancement, documentation, duplicate, good first issue, help wanted, invalid, question, wontfix)git-issue-labeler - Format Commits: Use
framework for semantic commit message formatting (Conventional Commits specification)git-semantic-commits - Create GitHub Issue: Use
with title, description, assigned labels, and assigneegh issue create - Update Issue Progress: Use
framework to add progress comments with user, date, time, and commit detailsgit-issue-updater - Delegate to Framework: Use
for branch creation, PLAN.md, commit (using git-semantic-commits), and pushticket-branch-workflow - Display Summary: Show issue URL, branch name, and framework completion status
When to use me
Frameworks Used: This skill extends multiple framework skills:
- For GitHub default label assignment (bug, enhancement, documentation, duplicate, good first issue, help wanted, invalid, question, wontfix)git-issue-labeler
- For semantic commit message formatting (Conventional Commits specification)git-semantic-commits
- For updating issues with commit progress including user, date, timegit-issue-updater
- For core workflow (branch creation, PLAN.md, commit, push)ticket-branch-workflow
Use this workflow when:
- You need to create a GitHub issue with automatic label assignment
- You want semantic commit message formatting (Conventional Commits)
- You want automatic issue progress updates with consistent documentation
- You want the complete workflow: issue → branch → PLAN.md → commit → issue update → push
- You prefer GitHub CLI (
) for issue creation over manual entrygh
Prerequisites
- GitHub CLI (
) installed and authenticatedgh - Git repository initialized
- Write access to the GitHub repository
- Valid
orGITHUB_TOKEN
authentication setupgh
skill available in skills/ directorygit-issue-labeler
skill available in skills/ directorygit-semantic-commits
skill available in skills/ directorygit-issue-updater
skill available in skills/ directoryticket-branch-workflow
Steps
Step 1: Analyze the Request
- Read the user's statement describing the issue
- Extract title and description for issue creation
- Identify any specific requirements or constraints mentioned
Step 2: Assign Labels Using git-issue-labeler
- Use
framework to determine appropriate GitHub default labelsgit-issue-labeler - Analyze user statement for issue type indicators
- Assign labels from GitHub defaults: bug, enhancement, documentation, duplicate, good first issue, help wanted, invalid, question, wontfix
- Let git-issue-labeler handle keyword matching and label detection
Label Detection Logic (Delegated to git-issue-labeler):
# git-issue-labeler will analyze the statement # and determine appropriate GitHub default labels # Example: "Fix login error" → labels: bug # Example: "Add dark mode" → labels: enhancement, good first issue
Step 3: Create GitHub Issue
- Get the current authenticated GitHub user:
gh api user --jq '.login' - Use
command with labels from git-issue-labeler:gh issue creategh issue create --title "<Issue Title>" --body "<Issue Description>" --label "<label1>,<label2>" --assignee @me - Format the issue body:
## Description <Detailed description of the issue> ## Type <Primary label> ## Labels - <label1> - <label2> ## Context <Additional context or background information> ## Acceptance Criteria - <Criteria 1> - <Criteria 2> - Store the issue number, URL, and assignee for reference
Step 4: Execute Ticket-Branch-Workflow
- Use
for the following steps:ticket-branch-workflow- Create GitHub branch:
orgit checkout -b issue-<issue-number>feature/<issue-number>-<short-title> - Create PLAN.md with issue reference
- Format commit using git-semantic-commits:
docs(plan): add PLAN.md for #<issue-number> - Commit PLAN.md:
git commit -m "$(git-semantic-commits --type docs --scope plan --subject 'Add PLAN.md for #<issue-number>')" - Push branch:
git push -u origin <branch-name>
- Create GitHub branch:
Step 5: Update Issue with Commit Progress Using git-issue-updater
- Use
framework to add progress comment to GitHub issuegit-issue-updater - Extract commit details: hash, message, author, date, time, files changed
- Format comment with consistent documentation including user, date, time
- Add comment to GitHub issue with link to commit
Issue Update Logic (Delegated to git-issue-updater):
# After committing PLAN.md, update issue with progress git-issue-updater --issue <issue-number> --platform github # This will: # 1. Extract latest commit details # 2. Format comment with user, date, time # 3. Add comment to GitHub issue # 4. Link to commit for reference
Step 5: Display Summary
- Display issue and framework completion status:
✅ GitHub Issue #<issue-number> created successfully! ✅ Labels assigned: <labels> (via git-issue-labeler) ✅ Branch created and checked out: <branch-name> ✅ PLAN.md created with semantic commit (via git-semantic-commits) ✅ Issue updated with progress comment (via git-issue-updater) ✅ Branch pushed to remote (via ticket-branch-workflow) **Issue Details**: - Title: <issue-title> - URL: <issue-url> - Labels: <labels> (assigned by git-issue-labeler) - Assignee: <current-user> **Branch**: - Name: <branch-name> - Base Branch: <previous-branch> - Remote: origin/<branch-name> **PLAN.md**: - Created at: ./PLAN.md - Committed with semantic format: docs(plan): add PLAN.md - Pushed: Yes **Issue Update**: - Comment added: Yes (via git-issue-updater) - User: <commit-author> - Date: <commit-date> - Time: <commit-time> You're now on the new branch and ready to start implementation!
Examples
Example 1: Bug Fix with Automatic Labeling
User Input: "Fix the login error when user enters invalid credentials"
Workflow Execution:
- git-issue-labeler: Analyzes statement → assigns
labelbug - GitHub Issue Creation: Creates issue #123 with title and bug label
- ticket-branch-workflow: Creates branch
, PLAN.mdissue-123 - git-semantic-commits: Formats commit as
docs(plan): add PLAN.md for #123 - git-issue-updater: Adds progress comment with user, date, time
- Push: Branch pushed to remote
Result:
✅ GitHub Issue #123 created successfully! ✅ Labels assigned: bug (via git-issue-labeler) ✅ Branch created and checked out: issue-123 ✅ PLAN.md created with semantic commit: docs(plan): add PLAN.md for #123 ✅ Issue updated with progress comment (via git-issue-updater) ✅ Branch pushed to remote Issue Details: - Title: Fix the login error when user enters invalid credentials - URL: https://github.com/org/repo/issues/123 - Labels: bug - Assignee: @john-doe Issue Update: - Comment added: Yes - User: John Doe (john.doe@example.com) - Date: 2024-01-25 - Time: 14:30 UTC+08:00
Example 2: New Feature with Multiple Labels
User Input: "Add support for dark mode in the dashboard and make it good for newcomers"
Workflow Execution:
- git-issue-labeler: Analyzes statement → assigns
,enhancement
labelsgood first issue - GitHub Issue Creation: Creates issue #124 with title and labels
- ticket-branch-workflow: Creates branch
, PLAN.mdissue-124 - git-semantic-commits: Formats commit as
docs(plan): add PLAN.md for #124 - git-issue-updater: Adds progress comment with user, date, time
- Push: Branch pushed to remote
Result:
✅ GitHub Issue #124 created successfully! ✅ Labels assigned: enhancement, good first issue (via git-issue-labeler) ✅ Branch created and checked out: issue-124 ✅ PLAN.md created with semantic commit: docs(plan): add PLAN.md for #124 ✅ Issue updated with progress comment (via git-issue-updater) ✅ Branch pushed to remote Issue Details: - Title: Add support for dark mode in the dashboard - URL: https://github.com/org/repo/issues/124 - Labels: enhancement, good first issue - Assignee: @jane-smith
Example 3: Documentation Update
User Input: "Document the API endpoints for the authentication module"
Workflow Execution:
- git-issue-labeler: Analyzes statement → assigns
labeldocumentation - GitHub Issue Creation: Creates issue #125 with title and documentation label
- ticket-branch-workflow: Creates branch
, PLAN.mdissue-125 - git-semantic-commits: Formats commit as
docs(plan): add PLAN.md for #125 - git-issue-updater: Adds progress comment with user, date, time
- Push: Branch pushed to remote
Result:
✅ GitHub Issue #125 created successfully! ✅ Labels assigned: documentation (via git-issue-labeler) ✅ Branch created and checked out: issue-125 ✅ PLAN.md created with semantic commit: docs(plan): add PLAN.md for #125 ✅ Issue updated with progress comment (via git-issue-updater) ✅ Branch pushed to remote
PLAN.md Template Structure
The framework generates PLAN.md with this structure:
# Plan: <Issue Title> ## Overview Brief description of what this issue implements or fixes. ## Issue Reference - Issue: #<issue-number> - URL: <issue-url> - Labels: <label1>, <label2>, <label3> ## Files to Modify 1. `src/path/to/file1.ts` - Description of changes 2. `src/path/to/file2.tsx` - Description of changes 3. `README.md` - Documentation updates ## Approach Detailed steps or methodology for implementation: 1. **Step 1**: Description 2. **Step 2**: Description 3. **Step 3**: Description ## Success Criteria - [ ] All files modified correctly - [ ] No build errors - [ ] All tests pass - [ ] Code review completed ## Notes Any additional notes, constraints, or considerations.
Best Practices
- Always provide clear, descriptive issue titles
- Include sufficient context in issue description
- Assign issues to yourself (
) for accountability--assignee @me - Let
framework handle label detection (GitHub default labels: bug, enhancement, documentation, duplicate, good first issue, help wanted, invalid, question, wontfix)git-issue-labeler - Let
framework handle commit message formatting (Conventional Commits specification)git-semantic-commits - Let
framework handle issue progress updates with user, date, timegit-issue-updater - Use semantic branch names that reference the issue number
- Confirm the issue URL is accessible
- The frameworks handle branch creation, PLAN.md, commit, and push automatically
- Keep issue titles concise (under 72 characters preferred)
- Update the issue with a comment linking to the PR when ready
- Framework delegation reduces code duplication and improves maintainability
Common Issues
GitHub CLI Not Authenticated
Issue:
gh issue create fails with authentication error
Solution: Run
gh auth login to authenticate with GitHub
Repository Not Initialized
Issue: Git commands fail with "not a git repository"
Solution: Initialize the repository:
git init and set up remote: git remote add origin <repo-url>
Branch Already Exists
Issue: Branch checkout fails due to existing branch
Solution: The framework handles this with
-B flag to force branch creation
No Labels Detected
Issue: Issue created without labels
Solution: Default to
enhancement label (via git-issue-labeler)
Note: git-issue-labeler should still be called to ensure consistent label assignment even when no keywords match
PLAN.md Already Exists
Issue: PLAN.md file already exists in the branch
Solution: The framework handles this by asking if you want to overwrite or append
Troubleshooting Checklist
Before creating the issue:
- GitHub CLI is installed:
gh --version - GitHub CLI is authenticated:
gh auth status - Git repository is initialized:
git status - Current branch is clean (no uncommitted changes)
- Remote repository is set up:
git remote -v
After issue creation:
- Issue number is captured
- Issue URL is accessible
- Labels are correctly applied
- Issue is assigned to current user
- Framework completes successfully: branch created, PLAN.md committed, branch pushed
Related Commands
# View current authenticated GitHub user gh api user --jq '.login' # List issues in the repository gh issue list # View issue details gh issue view <issue-number> # Edit an issue gh issue edit <issue-number> --title "New Title" --body "New Description" # Assign issue to yourself gh issue edit <issue-number> --add-assignee @me # Delete an issue gh issue delete <issue-number> # Format commit message using git-semantic-commits git-semantic-commits --type docs --scope plan --subject "Add PLAN.md for #123" # Update issue with commit progress using git-issue-updater git-issue-updater --issue 123 --platform github
Related Skills
-
Frameworks:
- Provides core workflow (branch creation, PLAN.md, commit, push)ticket-branch-workflow
- Provides GitHub default label assignment (bug, enhancement, documentation, duplicate, good first issue, help wanted, invalid, question, wontfix)git-issue-labeler
- Provides semantic commit message formatting (Conventional Commits specification)git-semantic-commits
- Provides issue progress updates with user, date, timegit-issue-updater
-
- Provides JIRA-specific operations when working with JIRA ticketsjira-git-integration -
Related Workflows:
: For creating PRs after completing the issuenextjs-pr-workflow
: For JIRA-integrated workflows (uses same ticket-branch-workflow framework)jira-git-workflow
: For creating PRs with optional JIRA integrationgit-pr-creator
: For generic PR creation with configurable quality checkspr-creation-workflow