AGENTS.md - Gira Usage Guide for AI Agents¶
This guide provides comprehensive instructions for AI agents working with Gira, the Git-native project management tool.
🎯 What is Gira?¶
Gira is a Git-native project management tool that stores all project data as JSON files in .gira/, enabling version control for project management data and seamless AI collaboration.
🚀 Quick Start¶
Initial Setup¶
# Check if Gira is initialized
ls .gira/
# View project configuration
cat .gira/config.json
# View the board
gira board
Essential Commands¶
# View all tickets
gira ticket list
# Check ticket details
gira ticket show TICKET-ID
# Move ticket to in-progress
gira ticket move TICKET-ID "in progress"
# Add progress update
gira comment add TICKET-ID
📋 Core Workflows¶
1. Starting Work on a Ticket¶
# Find available tickets
gira ticket list --status todo
# Assign ticket to yourself
gira ticket update TICKET-ID --assignee me
# Move to in-progress
gira ticket move TICKET-ID "in progress"
# Add initial comment
gira comment add TICKET-ID --message "Starting work on this ticket"
2. During Development¶
# Update ticket description with progress
gira ticket update TICKET-ID --description "Implemented X, working on Y"
# If blocked
gira ticket move TICKET-ID blocked
gira comment add TICKET-ID --message "Blocked by: [reason]"
# Check related tickets
gira ticket list --epic EPIC-ID
3. Completing Work¶
# Move to review
gira ticket move TICKET-ID review
# Add completion summary
gira comment add TICKET-ID --message "Completed: [summary of changes]"
# After approval, move to done
gira ticket move TICKET-ID done
🔄 Ticket Lifecycle¶
Status Flow¶
Status Descriptions¶
- todo: Not started, available for work
- in progress: Actively being worked on
- blocked: Cannot proceed due to dependency
- review: Work complete, awaiting review
- done: Fully completed and approved
📝 Git Integration¶
Commit Message Format¶
# With Gira ticket
git commit -m "type(TICKET-ID): brief description
- Detailed change 1
- Detailed change 2
Gira: TICKET-ID"
# Without specific ticket
git commit -m "type: brief description
- Detailed changes
Relates-to: general context"
Commit Types¶
feat: New featurefix: Bug fixdocs: Documentation changestest: Test additions/changesrefactor: Code refactoringstyle: Formatting changeschore: Maintenance tasks
🔍 Finding and Filtering¶
Search Tickets¶
# By status
gira ticket list --status "in progress"
# By priority
gira ticket list --priority high
# By assignee
gira ticket list --assignee me
# Combine filters
gira ticket list --status todo --priority high --type bug
Code Integration¶
# Find tickets that modified files
gira ticket blame src/
# Check specific file
gira ticket blame src/main.py
# Get JSON output
gira ticket blame src/ --json
📊 Project Organization¶
Epics¶
# List all epics
gira epic list
# View epic details with tickets
gira epic show EPIC-001
# Create ticket in epic
gira ticket create "New feature" --epic EPIC-001
Sprints¶
# View current sprint
gira sprint current
# List all sprints
gira sprint list
# Show sprint details
gira sprint show SPRINT-001
💡 Best Practices¶
1. Always Update Status¶
- Move tickets promptly when state changes
- Don't leave tickets in "in progress" indefinitely
- Use "blocked" status with explanation
2. Document Everything¶
- Add comments for significant decisions
- Update ticket descriptions with progress
- Include context in commit messages
3. Check Before Acting¶
# Always check current state first
gira ticket show TICKET-ID
# Verify no one else is working on it
gira ticket list --status "in progress" --assignee all
4. Link Related Work¶
- Reference ticket IDs in commits
- Use epics to group related tickets
- Mention related tickets in comments
🛠️ Advanced Usage¶
Batch Operations¶
# Process multiple tickets
for ticket in TICKET-1 TICKET-2 TICKET-3; do
gira ticket move "$ticket" "in progress"
done
# Export for analysis
gira export tickets --format json > tickets.json
Reporting¶
# Get project statistics
gira ticket list --format json | jq 'group_by(.status) | map({status: .[0].status, count: length})'
# Check velocity
gira sprint show SPRINT-001 --format json | jq '.completed_points'
🚨 Common Issues¶
Ticket Not Found¶
Understanding Workflow¶
Merge Conflicts in .gira/¶
# Tickets are stored as separate JSON files
# In case of conflicts, check both versions
git status
git diff .gira/board/
# Usually safe to keep both tickets
git add .gira/
git commit -m "chore: resolve gira merge conflict"
📚 Quick Reference¶
Most Used Commands¶
gira board # View kanban board
gira ticket list # List all tickets
gira ticket show ID # Show ticket details
gira ticket move ID STATUS # Change status
gira ticket update ID --field VALUE # Update ticket
gira comment add ID # Add comment
gira epic list # List epics
gira sprint current # Current sprint
Useful Aliases¶
alias gb='gira board'
alias gt='gira ticket'
alias gtl='gira ticket list'
alias gtm='gira ticket move'
alias gts='gira ticket show'
This guide helps AI agents work effectively with Gira's Git-native project management system.