# JIRA Expansion Pack Configuration
# Unified configuration for JIRA integration including project mapping, team roles, and expansion settings

# JIRA Project Configuration
jira:
  project_key: {{project_key}}         # e.g., "PROJ", "AUTH", "CORE"
  project_name: {{project_name}}       # e.g., "Authentication Service"
  instance_url: {{instance_url}}       # e.g., "https://company.atlassian.net"

# Git Repository Mappings
git:
  # Git Flow Configuration (REQUIRED)
  flow:
    main_branch: {{main_branch}}       # Default: "master" or "main"
    develop_branch: {{develop_branch}} # Default: "develop"
  
  # Primary repository (current working directory) - REQUIRED
  primary:
    name: {{repo_name}}                # Repository name
    path: {{current_directory}}        # Auto-detected: current working directory
    remote_url: {{primary_remote}}     # Auto-detected from git remote
    
  # Additional repositories that belong to this JIRA project
  repositories:
    {{#each repositories}}
    - name: {{name}}                   # Repository identifier
      path: {{path}}                   # Absolute path to repository
      remote_url: {{remote_url}}       # Git remote URL
      include_patterns:                # Optional: specific paths to include
        {{#each include_patterns}}
        - {{this}}
        {{/each}}
      exclude_patterns:                # Optional: paths to exclude
        {{#each exclude_patterns}}
        - {{this}}
        {{/each}}
    {{/each}}
  
  # Git Submodules (auto-detected)
  {{#if submodules}}
  submodules:
    {{#each submodules}}
    - name: {{name}}
      path: {{path}}
    {{/each}}
  {{/if}}

# Mapping Rules
mapping:
  # How to extract JIRA ticket references from git commits
  ticket_pattern: {{ticket_pattern}}   # Default: "{{project_key}}-\\d+"
  
  # Branch naming conventions
  branch_patterns:
    feature: "feature/{{project_key}}-*"
    bugfix: "bugfix/{{project_key}}-*"
    hotfix: "hotfix/{{project_key}}-*"
  
  # Commit message format
  commit_format: "{{project_key}}-{{ticket_number}}: {{message}}"

# Sync Configuration  
sync:
  # Directories to scan for BMAD stories
  story_paths:
    - "docs/epics/"
    - "docs/stories/"
    - ".bmad-core/stories/"
  
  # Fields to sync
  field_mappings:
    epic_link: {{epic_field}}          # Auto-detected custom field
    story_points: {{points_field}}     # Auto-detected custom field
    sprint: {{sprint_field}}           # Auto-detected custom field

# Team Configuration
team:
  # Team discovery settings
  discovery:
    enabled: {{enable_discovery}}       # Auto-discover team members
    git_history_days: {{history_days}} # Days of Git history to analyze (default: 90)
    min_activity_threshold:            # Minimum activity to be considered active
      commits: {{min_commits}}         # Default: 5
      jira_actions: {{min_actions}}    # Default: 10
    auto_role_detection: {{auto_roles}} # Automatically infer roles from activity
  
  # Team composition
  size: "{{team_size}}"                # small (<5), medium (5-15), large (>15)
  distributed: {{is_distributed}}      # Team works across timezones
  
  # Team members with roles
  members:
    {{#each team_members}}
    - jira_username: "{{jira_username}}"     # JIRA username/email
      display_name: "{{display_name}}"       # Full name
      git_emails:                            # Git commit emails (can be multiple)
        {{#each git_emails}}
        - "{{this}}"
        {{/each}}
      
      # Role information
      primary_role: "{{primary_role}}"       # Main role from standard roles
      secondary_roles:                       # Additional responsibilities
        {{#each secondary_roles}}
        - "{{this}}"
        {{/each}}
      confidence: {{role_confidence}}        # Role detection confidence (0.0-1.0)
      
      # Specializations and expertise
      specializations:
        {{#each specializations}}
        - "{{this}}"                        # e.g., "frontend", "backend", "database"
        {{/each}}
      code_ownership:                       # Primary code areas
        {{#each code_areas}}
        - "{{this}}"                        # e.g., "auth/*", "api/users/*"
        {{/each}}
      
      # BMAD agent preferences
      preferred_agents:
        {{#each preferred_agents}}
        - "{{this}}"                        # e.g., "developer", "reviewer", "tester"
        {{/each}}
      
      # Activity patterns (auto-detected)
      activity:
        typical_issue_types:
          {{#each issue_types}}
          - "{{this}}"
          {{/each}}
        avg_issues_per_sprint: {{avg_issues}}
        code_review_ratio: {{review_ratio}}  # Reviews given vs received
        
      # Availability and capacity
      availability:
        timezone: "{{timezone}}"             # e.g., "America/New_York"
        typical_hours: "{{work_hours}}"      # e.g., "9-5 EST"
        capacity_percentage: {{capacity}}    # % allocation to this project
    {{/each}}
  
  # Standard role definitions
  role_definitions:
    developer:
      permissions: ["browse", "create", "edit", "assign"]
      typical_issue_types: ["Story", "Task", "Bug"]
      indicators:
        - "Creates feature branches"
        - "Commits code changes"
        - "Opens pull requests"
    senior_developer:
      inherits_from: "developer"
      additional_permissions: ["admin"]
      indicators:
        - "Reviews others' code"
        - "Makes architectural decisions"
        - "Mentors team members"
    qa_engineer:
      permissions: ["browse", "create", "edit", "assign", "close"]
      typical_issue_types: ["Bug", "Test", "QA Task"]
      indicators:
        - "Creates/updates test cases"
        - "Reports bugs"
        - "Validates fixes"
    devops_engineer:
      permissions: ["browse", "create", "edit", "admin"]
      typical_issue_types: ["Task", "Infrastructure", "Deployment"]
      indicators:
        - "Modifies CI/CD configs"
        - "Handles deployments"
        - "Infrastructure commits"
    product_owner:
      permissions: ["admin", "manage_sprints"]
      typical_issue_types: ["Epic", "Story"]
      indicators:
        - "Creates epics"
        - "Prioritizes backlog"
        - "Defines acceptance criteria"
    scrum_master:
      permissions: ["browse", "edit", "manage_sprints"]
      typical_issue_types: ["Task", "Impediment"]
      indicators:
        - "Updates sprint status"
        - "Facilitates ceremonies"
        - "Removes blockers"
    tech_lead:
      inherits_from: "senior_developer"
      additional_permissions: ["manage_sprints"]
      indicators:
        - "Approves PRs"
        - "Makes technical decisions"
        - "Assigns technical tasks"

# Smart Assignment Rules
assignment:
  enabled: {{enable_smart_assignment}}
  rules:
    # Issue type based assignment
    by_issue_type:
      Bug:
        primary: "qa_engineer"       # QA gets first look at bugs
        fallback: "developer"        # Or last code author
      Story:
        primary: "developer"         # Developers handle stories
        consider: "specialization"   # Match based on code area
      Task:
        primary: "any"              # Anyone can handle tasks
        consider: "workload"        # Balance across team
      Documentation:
        primary: "tech_lead"        # Tech lead or senior dev
        fallback: "developer"
    
    # Component based assignment
    by_component:
      match_code_ownership: true    # Use code ownership patterns
      respect_specialization: true  # Frontend to frontend devs
    
    # Workload balancing
    workload:
      max_concurrent_issues: {{max_issues}}  # Per person limit
      consider_capacity: true               # Use capacity percentage
      distribute_evenly: {{distribute}}     # Try to balance

# Expansion Pack Features
features:
  # Core features
  git_integration: {{enable_git}}
  mcp_tools: {{mcp_available}}
  
  # Team features
  team_discovery: {{team_discovery}}
  role_based_reports: {{role_reports}}
  smart_assignment: {{smart_assign}}
  capacity_planning: {{capacity_plan}}
  
  # Notification features
  slack_notifications: {{slack_enabled}}
  email_notifications: {{email_enabled}}
  
  # Automation features
  automated_reports: {{auto_reports}}
  automated_assignment: {{auto_assign}}
  automated_standup: {{auto_standup}}

# Metadata
metadata:
  created_date: {{created_date}}
  last_updated: {{last_updated}}
  created_by: {{created_by}}
  bmad_version: {{bmad_version}}
  
# Validation Status
validation:
  jira_connection: {{jira_status}}     # "connected" or "error: <message>"
  git_repositories: {{git_status}}     # "valid" or "error: <message>"
  team_discovery: {{team_status}}      # "discovered: X members" or "error: <message>"
  role_detection: {{role_status}}      # "validated" or "needs_review"
  last_validated: {{last_validated}}