# BMAD Platform Codes Configuration
# Central configuration for all platform/IDE codes used in the BMAD system
#
# This file defines:
# 1. Platform metadata (name, preferred status, category, description)
# 2. Installer configuration (target directories, templates, artifact types)
#
# Format:
#   code: Platform identifier used internally
#   name: Display name shown to users
#   preferred: Whether this platform is shown as a recommended option on install
#   category: Type of platform (ide, cli, tool, service)
#   description: Brief description of the platform
#   installer: Installation configuration (optional - omit for custom installers)

platforms:
  antigravity:
    name: "Google Antigravity"
    preferred: false
    category: ide
    description: "Google's AI development environment"
    installer:
      target_dir: .agent/workflows
      template_type: antigravity

  auggie:
    name: "Auggie"
    preferred: false
    category: cli
    description: "AI development tool"
    installer:
      target_dir: .augment/commands
      template_type: default

  claude-code:
    name: "Claude Code"
    preferred: true
    category: cli
    description: "Anthropic's official CLI for Claude"
    installer:
      target_dir: .claude/commands
      template_type: default
      ancestor_conflict_check: true

  cline:
    name: "Cline"
    preferred: false
    category: ide
    description: "AI coding assistant"
    installer:
      target_dir: .clinerules/workflows
      template_type: windsurf

  codex:
    name: "Codex"
    preferred: false
    category: cli
    description: "OpenAI Codex integration"
    # No installer config - uses custom codex.js

  codebuddy:
    name: "CodeBuddy"
    preferred: false
    category: ide
    description: "Tencent Cloud Code Assistant - AI-powered coding companion"
    installer:
      target_dir: .codebuddy/commands
      template_type: default

  crush:
    name: "Crush"
    preferred: false
    category: ide
    description: "AI development assistant"
    installer:
      target_dir: .crush/commands
      template_type: default

  cursor:
    name: "Cursor"
    preferred: true
    category: ide
    description: "AI-first code editor"
    installer:
      target_dir: .cursor/commands
      template_type: default

  gemini:
    name: "Gemini CLI"
    preferred: false
    category: cli
    description: "Google's CLI for Gemini"
    installer:
      target_dir: .gemini/commands
      template_type: gemini

  github-copilot:
    name: "GitHub Copilot"
    preferred: false
    category: ide
    description: "GitHub's AI pair programmer"
    # No installer config - uses custom github-copilot.js

  iflow:
    name: "iFlow"
    preferred: false
    category: ide
    description: "AI workflow automation"
    installer:
      target_dir: .iflow/commands
      template_type: default

  kilo:
    name: "KiloCoder"
    preferred: false
    category: ide
    description: "AI coding platform"
    # No installer config - uses custom kilo.js (creates .kilocodemodes file)

  kiro:
    name: "Kiro"
    preferred: false
    category: ide
    description: "Amazon's AI-powered IDE"
    installer:
      target_dir: .kiro/steering
      template_type: kiro

  opencode:
    name: "OpenCode"
    preferred: false
    category: ide
    description: "OpenCode terminal coding assistant"
    installer:
      legacy_targets:
        - .opencode/agent
        - .opencode/command
      targets:
        - target_dir: .opencode/agents
          template_type: opencode
          artifact_types: [agents]
        - target_dir: .opencode/commands
          template_type: opencode
          artifact_types: [workflows, tasks, tools]

  qwen:
    name: "QwenCoder"
    preferred: false
    category: ide
    description: "Qwen AI coding assistant"
    installer:
      target_dir: .qwen/commands
      template_type: default

  roo:
    name: "Roo Cline"
    preferred: false
    category: ide
    description: "Enhanced Cline fork"
    installer:
      target_dir: .roo/commands
      template_type: default

  rovo-dev:
    name: "Rovo Dev"
    preferred: false
    category: ide
    description: "Atlassian's Rovo development environment"
    # No installer config - uses custom rovodev.js (generates prompts.yml manifest)

  trae:
    name: "Trae"
    preferred: false
    category: ide
    description: "AI coding tool"
    installer:
      target_dir: .trae/rules
      template_type: trae

  windsurf:
    name: "Windsurf"
    preferred: false
    category: ide
    description: "AI-powered IDE with cascade flows"
    installer:
      target_dir: .windsurf/workflows
      template_type: windsurf

# ============================================================================
# Installer Config Schema
# ============================================================================
#
# installer:
#   target_dir: string                    # Directory where artifacts are installed
#   template_type: string                 # Default template type to use
#   header_template: string (optional)    # Override for header/frontmatter template
#   body_template: string (optional)      # Override for body/content template
#   legacy_targets: array (optional)      # Old target dirs to clean up on reinstall (migration)
#     - string                            # Relative path, e.g. .opencode/agent
#   targets: array (optional)             # For multi-target installations
#     - target_dir: string
#       template_type: string
#       artifact_types: [agents, workflows, tasks, tools]
#   artifact_types: array (optional)      # Filter which artifacts to install (default: all)
#   skip_existing: boolean (optional)     # Skip files that already exist (default: false)
#   ancestor_conflict_check: boolean (optional) # Refuse install when ancestor dir has BMAD files
#                                                # in the same target_dir (for IDEs that inherit
#                                                # commands from parent directories)

# ============================================================================
# Platform Categories
# ============================================================================

categories:
  ide:
    name: "Integrated Development Environment"
    description: "Full-featured code editors with AI assistance"

  cli:
    name: "Command Line Interface"
    description: "Terminal-based tools"

  tool:
    name: "Development Tool"
    description: "Standalone development utilities"

  service:
    name: "Cloud Service"
    description: "Cloud-based development platforms"

  extension:
    name: "Editor Extension"
    description: "Plugins for existing editors"

# ============================================================================
# Naming Conventions and Rules
# ============================================================================

conventions:
  code_format: "lowercase-kebab-case"
  name_format: "Title Case"
  max_code_length: 20
  allowed_characters: "a-z0-9-"
