8.0 KiB
		
	
	
	
	
	
	
	
			
		
		
	
	| name | description | 
|---|---|
| do-job | Use when starting work on Jira tickets - fetches To Do tickets, creates git worktrees with proper PI-XXXXX naming, implements features using TDD (test-first), commits with ticket references, creates draft PRs, validates work with PR review, and transitions tickets through workflow to Testing | 
Do Job
Complete developer workflow from ticket selection to validated draft PR using TDD and git worktrees.
When to Use This Skill
Use when:
- Starting work on a new Jira ticket
 - Need to set up development environment for ticket work
 - Implementing features using test-driven development
 - Creating PRs for Jira-tracked work
 
Workflow Checklist
Copy and track progress:
Ticket Workflow Progress:
- [ ] Step 1: Fetch and select To Do ticket
- [ ] Step 2: Move ticket to In Progress
- [ ] Step 3: Set up git worktree
- [ ] Step 4: Write failing tests (TDD)
- [ ] Step 5: Implement feature/fix
- [ ] Step 6: Verify tests pass
- [ ] Step 7: Commit with PI-XXXXX reference
- [ ] Step 8: Push branch
- [ ] Step 9: Create draft PR
- [ ] Step 10: Review work with PR reviewer
- [ ] Step 11: Link PR to ticket
Prerequisites
Verify environment:
# Check Jira access
atlassian-mcp-server_getAccessibleAtlassianResources
# Check GitHub CLI
gh auth status
# Verify in repos root directory
ls -d */
Step 1: Fetch and Select Ticket
# Get To Do tickets
atlassian-mcp-server_searchJiraIssuesUsingJql \
  cloudId="<cloud-id>" \
  jql="assignee = currentUser() AND status = 'To Do' ORDER BY priority DESC, updated DESC" \
  fields='["summary", "description", "status", "priority"]'
Review tickets and select one based on priority and description.
Step 2: Move Ticket to In Progress
atlassian-mcp-server_transitionJiraIssue \
  cloudId="<cloud-id>" \
  issueIdOrKey="PI-XXXXX" \
  transition='{"id": "41"}'  # In Progress transition ID
Add comment explaining work start:
atlassian-mcp-server_addCommentToJiraIssue \
  cloudId="<cloud-id>" \
  issueIdOrKey="PI-XXXXX" \
  commentBody="Starting work on this ticket using TDD approach"
Step 3: Set Up Git Worktree
CRITICAL: All branches and commits MUST include PI-XXXXX ticket number
Identify Repository
From repos root directory, determine which repo based on ticket description and summary.
Create Worktree
# Navigate to develop branch of target repo
cd <repo-name>/develop
# Pull latest changes
git pull
# Create worktree with proper naming
# Pattern: ../<descriptive-name> with branch nate/PI-XXXXX_descriptive-name
git worktree add ../<descriptive-name> -b nate/PI-XXXXX_descriptive-name
# Navigate to new worktree
cd ../<descriptive-name>
Naming conventions:
- Directory: Short descriptive name (e.g., 
rename-folder-fix) - Branch: 
nate/PI-XXXXX_descriptive-name(e.g.,nate/PI-70535_rename-folder-fix) - MUST include PI-XXXXX in branch name
 
Step 4: Build Implementation Plan
Analyze ticket requirements and create TDD plan:
- Understand requirements from ticket description
 - Identify affected code areas
 - Plan test cases covering:
- Happy path
 - Edge cases
 - Error conditions
 
 - Plan implementation approach
 
Step 5: TDD Implementation
Write Failing Tests First
CRITICAL: Write tests BEFORE implementation
# Identify test framework from repo
ls *_test.* test/ tests/ __tests__/
# Create or modify test file
# Write test that validates missing functionality
Test should:
- Clearly describe expected behavior
 - Cover the specific bug/feature from ticket
 - Fail initially (validates test is working)
 
Run Failing Tests
# Verify test fails (proves test is valid)
<run-test-command>
Expected: Test fails with clear error showing missing functionality.
Implement Feature/Fix
Write minimal code to make test pass:
# Implement the feature or fix
# Focus on making test pass, not perfection
Run Tests Again
# Verify test now passes
<run-test-command>
Expected: All tests pass.
Refactor (if needed)
Clean up implementation while keeping tests passing:
- Improve code clarity
 - Remove duplication
 - Follow project conventions
 - Keep tests passing
 
Step 6: Verify Complete Solution
# Run full test suite
<full-test-command>
# Run linting (if available)
<lint-command>
# Run type checking (if available)
<typecheck-command>
All checks must pass before proceeding.
Step 7: Commit Changes
CRITICAL: Commit message MUST include PI-XXXXX
# Stage changes
git add .
# Commit with ticket reference
git commit -m "PI-XXXXX: <concise description>
<detailed explanation of changes>
- What was changed
- Why it was changed
- How it addresses the ticket"
Commit message format:
- First line: 
PI-XXXXX: <summary>(50 chars max) - Blank line
 - Detailed description explaining the why and how
 - Reference ticket number (PI-XXXXX) in first line
 
Step 8: Push Branch
# Push to remote
git push -u origin nate/PI-XXXXX_descriptive-name
Step 9: Create Draft PR
# Create draft PR with gh CLI
gh pr create \
  --draft \
  --title "PI-XXXXX: <descriptive title>" \
  --body "$(cat <<'PRBODY'
## Summary
- Fixes issue described in PI-XXXXX
- Implements <feature/fix> using TDD approach
## Changes
- Added tests for <functionality>
- Implemented <feature/fix>
- Verified all tests pass
## Testing
- [x] Unit tests added and passing
- [x] Linting passes
- [x] Manual testing completed
## Jira
Related ticket: PI-XXXXX
## Notes
Ready for review. Once approved, will move ticket to Pull Request status.
PRBODY
)"
Save PR URL returned by command for next steps.
Step 10: Review Work with PR Reviewer
CRITICAL: Invoke @pr-reviewer subagent to validate work before linking to ticket
# Invoke the pr-reviewer subagent
@pr-reviewer please review the PR I just created
The pr-reviewer will:
- Verify the repository is compatible (Go with Makefile)
 - Run all validation commands (tests, linting, type checking)
 - Review code quality against project standards
 - Check for security issues and best practices
 - Provide verdict: Ready for review OR needs work
 
If pr-reviewer finds issues:
- Address the critical issues identified
 - Re-run tests and validations
 - Commit fixes with 
PI-XXXXX: Address PR review feedback - Push updates
 - Invoke @pr-reviewer again to re-validate
 
Only proceed to Step 11 when pr-reviewer gives approval.
Step 11: Link PR to Ticket
# Add PR link to Jira ticket
atlassian-mcp-server_addCommentToJiraIssue \
  cloudId="<cloud-id>" \
  issueIdOrKey="PI-XXXXX" \
  commentBody="Draft PR created: <pr-url>
Implementation complete using TDD approach. Ready for code review."
Post-Workflow Steps (Manual)
After automated pr-reviewer approval and manual developer review:
- Remove draft status from PR
 - Request code review from team
 - Address any additional review comments
 - Get approval
 - Manual: Transition ticket to "Pull Request" status (transition ID: 381)
 - Manual: After merge, SDET moves to "Testing (Service Stack)" (transition ID: 201)
 
Common Mistakes
Branch Naming
- ❌ 
fix-bug(missing ticket number) - ❌ 
PI70535-fix(missing hyphen, no username) - ✅ 
nate/PI-70535_rename-folder-fix 
Commit Messages
- ❌ 
fixed bug(no ticket reference) - ❌ 
Updated code for PI-70535(vague) - ✅ 
PI-70535: Fix shared folder rename permission check 
TDD Order
- ❌ Write code first, then tests
 - ❌ Skip tests entirely
 - ✅ Write failing test → Implement → Verify passing → Refactor
 
Worktree Location
- ❌ 
git worktree add ./feature(wrong location) - ❌ 
git worktree add ~/feature(absolute path) - ✅ 
git worktree add ../feature-name(parallel to develop) 
Jira Transition IDs
Reference for manual transitions:
- To Do: 11
 - In Progress: 41
 - Pull Request: 381
 - Testing (Service Stack): 201
 - Done: (varies by project)
 
Reference Materials
See references/tdd-workflow.md for detailed TDD best practices. See references/git-worktree.md for git worktree patterns and troubleshooting.