These are custom slash commands for Claude Code that integrate with Jira and GitHub to streamline feature development workflow.
Before installing these commands, ensure you have:
gh
CLI installed and authenticated- Jira MCP installed and configured (e.g., lasergoat/jira-mcp)
- Git installed and configured
Claude, please follow these steps to install the three custom slash commands:
mkdir -p .claude/commands
Create the following three files in the .claude/commands/
directory:
Create .claude/commands/featurestart.md
with this content:
---
description: Start work on a Jira ticket - creates branch and updates ticket
allowed-tools: ["Bash", "mcp__jira-mcp__get-ticket", "mcp__jira-mcp__add-comment", "TodoWrite"]
---
# Start Feature Development
## Prerequisites Check
First verify that required tools are available:
- gh CLI: Run `gh --version`
- Jira MCP: Check if jira-mcp tools are available
## Process
1. **Handle uncommitted changes**
- Run `git status` to check for changes
- If changes exist, ask user: "You have uncommitted changes. Would you like to: 1) Stash them, 2) Commit them, or 3) Cancel?"
- If commit is chosen, ask if they should be pushed to origin
2. **Get Jira ticket**
- If $ARGUMENTS is provided, use it as the ticket ID
- Otherwise, prompt: "What Jira ticket ID would you like to work on?"
- Fetch ticket details using `mcp__jira-mcp__get-ticket`
3. **Create feature branch**
- Branch name format: ticket ID in lowercase (e.g., vip-123)
- Checkout new branch: `git checkout -b {branch-name}`
4. **Update Jira ticket**
- Add comment to ticket: "🚀 Development started on branch: `{branch-name}`"
- Include any implementation details previously discussed
5. **Set up for conventional commits**
- Store ticket ID in uppercase format (e.g., VIP-123)
- Inform user: "I'll use {TICKET-ID} for conventional commits in this feature"
6. **Create todo list**
- Use TodoWrite to track the feature work
- Add initial task: "Implement {ticket summary}"
Create .claude/commands/featuredone.md
with this content:
---
description: Complete feature - commit, push, create PR, update Jira
allowed-tools: ["Bash", "mcp__jira-mcp__get-ticket", "mcp__jira-mcp__add-comment", "mcp__gh-cli__gh_execute", "TodoWrite"]
---
# Complete Feature Development
## Prerequisites Check
Verify required tools are available:
- gh CLI: Run `gh --version`
- Jira MCP: Check if jira-mcp tools are available
## Process
1. **Commit final changes**
- Run `git status` to check for uncommitted changes
- If changes exist:
- Get ticket ID from current branch name
- Create commit using conventional format
- Example: `feat(VIP-123): implement user authentication`
2. **Push to origin**
- Ask user: "Ready to push all commits to origin?"
- If yes: `git push -u origin $(git branch --show-current)`
3. **Create Pull Request**
- Get current branch: `git branch --show-current`
- Extract ticket ID from branch name
- Fetch ticket details for context
- Create PR using gh CLI:
```bash
gh pr create \
--title "feat(TICKET-ID): {ticket summary}" \
--body "## Jira Ticket
[TICKET-ID](https://your-instance.atlassian.net/browse/TICKET-ID)
## Summary
{Detailed description of changes}
## Changes Made
- List key changes
- Include technical details
## Dependencies
- Note any dependent PRs or services
- External dependencies
## Testing
- How to test these changes
- Any special test scenarios
## Checklist
- [ ] Tests pass
- [ ] Code reviewed
- [ ] Documentation updated"
\```
4. **Update Jira ticket**
- Get the PR URL from gh output
- Add comment to Jira ticket:
"✅ Pull Request created: {PR_URL}
Summary of completed work:
- {brief summary of what was implemented}"
5. **Update todo list**
- Mark feature tasks as completed
Create .claude/commands/commit.md
with this content:
---
description: Create a conventional commit with automatic ticket ID detection
allowed-tools: ["Bash", "Read", "Grep"]
---
# Create Conventional Commit
## Process
1. **Analyze changes**
- Run `git status` to see file changes
- Run `git diff --staged` for staged changes
- If no staged changes, run `git diff` to see all changes
- Read key changed files to understand context
2. **Determine commit type**
Based on the changes, select appropriate type:
- `feat`: New feature or functionality
- `fix`: Bug fix
- `docs`: Documentation only changes
- `style`: Code style changes (formatting, semicolons, etc)
- `refactor`: Code changes that neither fix bugs nor add features
- `test`: Adding or modifying tests
- `chore`: Maintenance tasks, dependency updates
- `perf`: Performance improvements
- `ci`: CI/CD changes
3. **Extract ticket ID**
- Get current branch: `git branch --show-current`
- If branch matches pattern like "vip-123" or "proj-888":
- Convert to uppercase for commit (VIP-123, PROJ-888)
- If no ticket pattern found:
- Ask user: "Include a ticket ID? (optional, press Enter to skip)"
4. **Stage and commit**
- If no staged changes: `git add -A`
- Create commit message:
- With ticket: `{type}({TICKET-ID}): {concise summary}`
- Without ticket: `{type}: {concise summary}`
- Execute: `git commit -m "{message}"`
- Important: Do NOT mention Claude, AI, or automated generation
- Do NOT push unless explicitly requested
5. **Confirm**
- Show the commit with `git log -1 --oneline`
- Inform user: "Commit created. Run 'git push' when ready to push."
After creating all files, verify they're installed:
ls -la .claude/commands/
You should see:
- featurestart.md
- featuredone.md
- commit.md
The commands are now available as:
/project:featurestart [TICKET-ID]
- Start work on a Jira ticket/project:featuredone
- Complete feature and create PR/project:commit
- Make a conventional commit
# Start working on ticket VIP-123
/project:featurestart VIP-123
# Make changes to code...
# Commit your changes
/project:commit
# When feature is complete
/project:featuredone
- These commands assume your Jira instance URL is configured in the Jira MCP
- The commands use conventional commit format
- Branch names are lowercase ticket IDs
- Commit messages use uppercase ticket IDs
- All commands preserve your git history and don't force push
If commands don't appear:
- Ensure files are in
.claude/commands/
(project-specific) or~/.claude/commands/
(user-wide) - Restart Claude Code or reload the window
- Check file permissions are readable
To share these commands with others, give them this gist URL and tell them: "Ask Claude to download this gist and follow the installation instructions"