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
Installation
Details
Usage
After installing, this skill will be available to your AI coding assistant.
Verify installation:
npx agent-skills-cli listSkill Instructions
name: git-issue-creator description: 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 license: Apache-2.0 compatibility: opencode metadata: audience: developers workflow: github-issue-branch
What 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
git-issue-labelerframework to assign GitHub default labels (bug, enhancement, documentation, duplicate, good first issue, help wanted, invalid, question, wontfix) - Format Commits: Use
git-semantic-commitsframework for semantic commit message formatting (Conventional Commits specification) - Create GitHub Issue: Use
gh issue createwith title, description, assigned labels, and assignee - Update Issue Progress: Use
git-issue-updaterframework to add progress comments with user, date, time, and commit details - Delegate to Framework: Use
ticket-branch-workflowfor branch creation, PLAN file inPLANS/directory, commit (using git-semantic-commits), and push - Display Summary: Show issue URL, branch name, and framework completion status
When to use me
Frameworks Used: This skill extends multiple framework skills:
git-issue-labeler- For GitHub default label assignment (bug, enhancement, documentation, duplicate, good first issue, help wanted, invalid, question, wontfix)git-semantic-commits- For semantic commit message formatting (Conventional Commits specification)git-issue-updater- For updating issues with commit progress including user, date, timeticket-branch-workflow- For core workflow (branch creation, PLAN file in PLANS/, commit, push)
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 file β commit β issue update β push
- You prefer GitHub CLI (
gh) for issue creation over manual entry
Prerequisites
- GitHub CLI (
gh) installed and authenticated - Git repository initialized
- Write access to the GitHub repository
- Valid
GITHUB_TOKENorghauthentication setup git-issue-labelerskill available in skills/ directorygit-semantic-commitsskill available in skills/ directorygit-issue-updaterskill available in skills/ directoryticket-branch-workflowskill available in skills/ directory
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
git-issue-labelerframework to determine appropriate GitHub default labels - 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
gh issue createcommand with labels from git-issue-labeler:gh 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
ticket-branch-workflowfor the following steps:- Create GitHub branch:
git checkout -b issue-<issue-number>orfeature/<issue-number>-<short-title> - Create PLAN file:
PLANS/PLAN-GIT-<issue-number>.mdwith issue reference - Format commit using git-semantic-commits:
docs(plan): add PLAN-GIT-<issue-number>.md for #<issue-number> - Commit PLAN file:
git commit -m "$(git-semantic-commits --type docs --scope plan --subject 'Add PLAN-GIT-<issue-number>.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
git-issue-updaterframework to add progress comment to GitHub issue - 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 file, 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 file 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 File**: - Created at: PLANS/PLAN-GIT-<issue-number>.md - Committed with semantic format: docs(plan): add PLAN-GIT-<issue-number>.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
buglabel - GitHub Issue Creation: Creates issue #123 with title and bug label
- ticket-branch-workflow: Creates branch
issue-123,PLANS/PLAN-GIT-123.md - git-semantic-commits: Formats commit as
docs(plan): add PLAN-GIT-123.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 file created with semantic commit: docs(plan): add PLAN-GIT-123.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,good first issuelabels - GitHub Issue Creation: Creates issue #124 with title and labels
- ticket-branch-workflow: Creates branch
issue-124,PLANS/PLAN-GIT-124.md - git-semantic-commits: Formats commit as
docs(plan): add PLAN-GIT-124.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 file created with semantic commit: docs(plan): add PLAN-GIT-124.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
documentationlabel - GitHub Issue Creation: Creates issue #125 with title and documentation label
- ticket-branch-workflow: Creates branch
issue-125,PLANS/PLAN-GIT-125.md - git-semantic-commits: Formats commit as
docs(plan): add PLAN-GIT-125.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 file created with semantic commit: docs(plan): add PLAN-GIT-125.md for #125
β
Issue updated with progress comment (via git-issue-updater)
β
Branch pushed to remote
PLAN File Template Structure
The framework generates PLAN files in the PLANS/ directory 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 (
--assignee @me) for accountability - Let
git-issue-labelerframework handle label detection (GitHub default labels: bug, enhancement, documentation, duplicate, good first issue, help wanted, invalid, question, wontfix) - Let
git-semantic-commitsframework handle commit message formatting (Conventional Commits specification) - Let
git-issue-updaterframework handle issue progress updates with user, date, time - Use semantic branch names that reference the issue number
- Confirm the issue URL is accessible
- The frameworks handle branch creation, PLAN file in PLANS/, 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 File Already Exists
Issue: PLAN file already exists in the PLANS/ directory
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 file 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-GIT-123.md for #123"
# Update issue with commit progress using git-issue-updater
git-issue-updater --issue 123 --platform github
More by darellchua2
View allGenerate comprehensive unit tests for Next.js 16 applications covering App Router, Server Components, Client Components, API routes, and Server Actions with industry best practices
Generate language-specific docstrings for C#, Java, Python, and TypeScript following industry standards (PEP 257, Javadoc, JSDoc, XML documentation)
Create standardized Next.js 16 demo applications with shadcn, Tailwind v4, src directory with path aliases, React Compiler, and npx zero-install experience using Tekk-prefixed components and proper documentation standards
Generic JIRA + Git workflow utilities for ticket management, branch creation, and integration
