{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://github.com/jmagly/aiwg/mmk-models-config.json",
  "title": "AIWG MMK Model Configuration",
  "description": "Default model mappings for AIWG Media Marketing Kit framework deployment. Users can customize these values for their specific needs.",
  "version": "1.0.0",
  "lastUpdated": "2026-02-03",

  "claude": {
    "reasoning": {
      "model": "opus",
      "description": "Claude Code opus alias - Best for complex reasoning, strategic planning, brand architecture"
    },
    "coding": {
      "model": "sonnet",
      "description": "Claude Code sonnet alias - Best for content creation, copywriting, campaign development. Defaults to the non-1M Sonnet path; opt into sonnet[1m] only when extra long-context usage is available."
    },
    "efficiency": {
      "model": "haiku",
      "description": "Claude Code haiku alias - Best for quick tasks, production coordination, reporting"
    }
  },

  "factory": {
    "reasoning": {
      "model": "claude-opus-4-6",
      "description": "Factory AI uses full Claude model identifiers"
    },
    "coding": {
      "model": "claude-sonnet-4-6",
      "description": "Factory AI uses full Claude model identifiers"
    },
    "efficiency": {
      "model": "claude-haiku-3-5",
      "description": "Factory AI uses full Claude model identifiers"
    }
  },

  "openai": {
    "reasoning": {
      "model": "gpt-5.4",
      "description": "GPT-5.4 - Newest flagship for strategic planning (Mar 2026)"
    },
    "coding": {
      "model": "gpt-5.3-codex",
      "description": "GPT-5.3-Codex - Proven flagship for content generation"
    },
    "efficiency": {
      "model": "gpt-5.1-codex-mini",
      "description": "GPT-5.1-Codex-Mini - Budget model for production tasks"
    }
  },

  "shorthand": {
    "opus": "claude-opus-4-6",
    "sonnet": "claude-sonnet-4-6",
    "haiku": "claude-haiku-3-5",
    "inherit": "inherit"
  },

  "claude_shorthand": {
    "opus": "opus",
    "opus-1m": "opus[1m]",
    "opus[1m]": "opus[1m]",
    "sonnet": "sonnet",
    "sonnet-1m": "sonnet[1m]",
    "sonnet[1m]": "sonnet[1m]",
    "haiku": "haiku",
    "inherit": "inherit"
  },

  "roleAssignments": {
    "strategy": {
      "roles": [
        "brand-strategist",
        "campaign-strategist",
        "creative-director",
        "executive-communications",
        "crisis-communications",
        "positioning-specialist"
      ],
      "model": "opus",
      "rationale": "Strategic roles require complex reasoning, brand architecture thinking, and long-term planning capabilities"
    },
    "content": {
      "roles": [
        "copywriter",
        "content-strategist",
        "pr-specialist",
        "social-media-specialist",
        "email-marketing-specialist",
        "video-scriptwriter",
        "marketing-analyst",
        "brand-guardian",
        "legal-reviewer"
      ],
      "model": "sonnet",
      "rationale": "Content and analysis roles require balanced performance for creative writing, campaign execution, and compliance review"
    },
    "production": {
      "roles": [
        "production-coordinator",
        "qa-reviewer",
        "accessibility-reviewer",
        "reporting-specialist"
      ],
      "model": "haiku",
      "rationale": "Production and operational roles benefit from fast execution for coordination, quality checks, and routine reporting"
    }
  },

  "_comments": {
    "usage": "This file defines default model mappings used by AIWG MMK deployment scripts",
    "customization": "Users can modify these values to use different models or versions",
    "location": "Place custom models.json in project root to override defaults",
    "precedence": "Project models.json > User ~/.config/aiwg/models.json > AIWG MMK defaults",
    "documentation": "See docs/configuration/model-configuration.md for details",
    "frameworkSpecific": "MMK framework uses 'coding' tier for content creation roles (vs SDLC's code generation focus)",
    "claudeLongContext": "Claude Code documents sonnet and sonnet[1m] as separate selectors. AIWG defaults to sonnet because Sonnet 1M context requires extra usage; opt in with --coding-model sonnet[1m] or sonnet-1m."
  }
}
