# 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:
      legacy_targets:
        - .agent/workflows
      target_dir: .agent/skills
      template_type: antigravity
      skill_format: true

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

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

  cline:
    name: "Cline"
    preferred: false
    category: ide
    description: "AI coding assistant"
    installer:
      legacy_targets:
        - .clinerules/workflows
      target_dir: .cline/skills
      template_type: default
      skill_format: true

  codex:
    name: "Codex"
    preferred: false
    category: cli
    description: "OpenAI Codex integration"
    installer:
      legacy_targets:
        - .codex/prompts
        - ~/.codex/prompts
      target_dir: .agents/skills
      template_type: default
      skill_format: true
      ancestor_conflict_check: true
      artifact_types: [agents, workflows, tasks]

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

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

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

  gemini:
    name: "Gemini CLI"
    preferred: false
    category: cli
    description: "Google's CLI for Gemini"
    installer:
      legacy_targets:
        - .gemini/commands
      target_dir: .gemini/skills
      template_type: default
      skill_format: true

  github-copilot:
    name: "GitHub Copilot"
    preferred: false
    category: ide
    description: "GitHub's AI pair programmer"
    installer:
      legacy_targets:
        - .github/agents
        - .github/prompts
      target_dir: .github/skills
      template_type: default
      skill_format: true

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

  kilo:
    name: "KiloCoder"
    preferred: false
    category: ide
    description: "AI coding platform"
    suspended: "Kilo Code does not yet support the Agent Skills standard. Support is paused until they implement it. See https://github.com/kilocode/kilo-code/issues for updates."
    installer:
      legacy_targets:
        - .kilocode/workflows
      target_dir: .kilocode/skills
      template_type: default
      skill_format: true

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

  opencode:
    name: "OpenCode"
    preferred: false
    category: ide
    description: "OpenCode terminal coding assistant"
    installer:
      legacy_targets:
        - .opencode/agents
        - .opencode/commands
        - .opencode/agent
        - .opencode/command
      target_dir: .opencode/skills
      template_type: opencode
      skill_format: true
      ancestor_conflict_check: true

  pi:
    name: "Pi"
    preferred: false
    category: cli
    description: "Provider-agnostic terminal-native AI coding agent"
    installer:
      target_dir: .pi/skills
      template_type: default
      skill_format: true

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

  roo:
    name: "Roo Code"
    preferred: false
    category: ide
    description: "Enhanced Cline fork"
    installer:
      legacy_targets:
        - .roo/commands
      target_dir: .roo/skills
      template_type: default
      skill_format: true

  rovo-dev:
    name: "Rovo Dev"
    preferred: false
    category: ide
    description: "Atlassian's Rovo development environment"
    installer:
      legacy_targets:
        - .rovodev/workflows
      target_dir: .rovodev/skills
      template_type: default
      skill_format: true

  trae:
    name: "Trae"
    preferred: false
    category: ide
    description: "AI coding tool"
    installer:
      legacy_targets:
        - .trae/rules
      target_dir: .trae/skills
      template_type: default
      skill_format: true

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

# ============================================================================
# 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)
#   skill_format: boolean (optional)   # Use directory-per-skill output: <name>/SKILL.md
#                                     # with clean frontmatter (name + description, unquoted)
#   ancestor_conflict_check: boolean (optional) # Refuse install when ancestor dir has BMAD files
#                                                # in the same target_dir (for IDEs that inherit
#                                                # skills 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-"
