markdownExploder: true
project:
  type: EXISTING_AIOX
  installedAt: '2025-01-14T00:00:00Z'
  version: 2.1.0
user_profile: advanced
qa:
  qaLocation: docs/qa
prd:
  prdFile: docs/prd.md
  prdVersion: v4
  prdSharded: true
  prdShardedLocation: docs/prd
  epicFilePattern: epic-{n}*.md
architecture:
  architectureFile: docs/architecture.md
  architectureVersion: v4
  architectureSharded: true
  architectureShardedLocation: docs/architecture
customTechnicalDocuments: null
devLoadAlwaysFiles:
  - docs/framework/coding-standards.md
  - docs/framework/tech-stack.md
  - docs/framework/source-tree.md
devLoadAlwaysFilesFallback:
  - docs/pt/framework/coding-standards.md
  - docs/pt/framework/tech-stack.md
  - docs/pt/framework/source-tree.md
  - docs/es/framework/coding-standards.md
  - docs/es/framework/tech-stack.md
  - docs/es/framework/source-tree.md
devDebugLog: .ai/debug-log.md
devStoryLocation: docs/stories
slashPrefix: AIOX
toolsLocation: .aiox-core/tools
scriptsLocation:
  core: .aiox-core/core
  development: .aiox-core/development/scripts
  infrastructure: .aiox-core/infrastructure/scripts
  legacy: .aiox-core/scripts
dataLocation: .aiox-core/data
elicitationLocation: .aiox-core/elicitation
squadsTemplateLocation: templates/squad
mindsLocation: outputs/minds
ide:
  selected:
    - vscode
    - codex
    - gemini
    - cursor
    - claude-code
  configs:
    vscode: true
    codex: true
    gemini: true
    cursor: true
    zed: false
    claude-desktop: false
    claude-code: true
mcp:
  enabled: true
  configLocation: .claude/mcp.json
  docker_mcp:
    enabled: true
    gateway:
      transport: http
      url: http://localhost:8080/mcp
      port: 8080
      watch: true
      service_file: .docker/mcp/gateway-service.yml
    presets:
      minimal:
        servers:
          - context7
          - desktop-commander
          - playwright
        description: Core MCPs - no API keys required
        api_keys_required: false
        estimated_tokens: 10-15k
      full:
        servers:
          - context7
          - desktop-commander
          - playwright
          - exa
        description: All MCPs - requires EXA_API_KEY for exa
        api_keys_required: true
        estimated_tokens: 20-25k
    defaultPreset: minimal
    defaultServers:
      - name: context7
        description: Up-to-date library documentation for LLMs
        config: {}
        required: true
        api_key_required: false
      - name: desktop-commander
        description: File management, terminal commands, and system operations
        config:
          paths:
            - ${USER_HOME}
        required: true
        api_key_required: false
      - name: playwright
        description: Browser automation for testing and web interaction
        config: {}
        required: true
        api_key_required: false
      - name: exa
        description: AI-powered web search and content extraction
        config:
          apiKeys:
            EXA_API_KEY: ${EXA_API_KEY}
        required: false
        api_key_required: true
    commands:
      start_gateway: docker compose -f .docker/mcp/gateway-service.yml up -d
      stop_gateway: docker compose -f .docker/mcp/gateway-service.yml down
      gateway_health: curl http://localhost:8080/health
      list_servers: docker mcp server ls
      enable_server: docker mcp server enable {name}
      disable_server: docker mcp server disable {name}
      read_config: docker mcp config read
      write_config: docker mcp config write
    troubleshooting:
      timeout_issue: |
        If Claude Code shows "Failed to connect to docker-gateway":
        1. Ensure gateway is running: docker compose -f .docker/mcp/gateway-service.yml up -d
        2. Check health: curl http://localhost:8080/health
        3. Verify ~/.claude.json uses HTTP transport, NOT stdio
      gateway_not_starting: |
        1. Check Docker Desktop is running
        2. Check port 8080 is available: netstat -an | grep 8080
        3. Try alternate port in gateway-service.yml
lazyLoading:
  enabled: true
  heavySections:
    - pvMindContext
    - squads
    - registry
git:
  showConfigWarning: true
  cacheTimeSeconds: 300
decisionLogging:
  enabled: true
  async: true
  location: .ai/
  indexFile: decision-logs-index.md
  format: adr
  performance:
    maxOverhead: 50
projectStatus:
  enabled: true
  autoLoadOnAgentActivation: true
  showInGreeting: true
  cacheTimeSeconds: 60
  components:
    gitBranch: true
    gitStatus: true
    recentWork: true
    currentEpic: true
    currentStory: true
  statusFile: .aiox/project-status.yaml
  maxModifiedFiles: 5
  maxRecentCommits: 2
synapse:
  # Total SynapseEngine layer pipeline budget. Override per process with
  # AIOX_SYNAPSE_PIPELINE_TIMEOUT_MS. Valid range: 1-30000.
  pipelineTimeoutMs: 100
  session:
    staleTTLHours: 168 # 7 days — sessions older than this are cleaned up on first prompt
agentIdentity:
  greeting:
    preference: auto
    contextDetection: true
    sessionDetection: hybrid
    workflowDetection: hardcoded
    performance:
      gitCheckCache: true
      gitCheckTTL: 300
github:
  enabled: true
  cli_required: false
  features:
    pr_creation: true
    issue_management: true
  pr:
    title_format: conventional
    include_story_id: true
    conventional_commits:
      enabled: true
      branch_type_map:
        feature/: feat
        feat/: feat
        fix/: fix
        bugfix/: fix
        hotfix/: fix
        docs/: docs
        chore/: chore
        refactor/: refactor
        test/: test
        perf/: perf
        ci/: ci
        style/: style
        build/: build
      default_type: feat
    auto_assign_reviewers: false
    draft_by_default: false
  semantic_release:
    enabled: true
coderabbit_integration:
  enabled: true
  installation_mode: wsl
  wsl_config:
    distribution: Ubuntu
    installation_path: ~/.local/bin/coderabbit
    working_directory: ${PROJECT_ROOT}
  self_healing:
    enabled: true
    type: full
    max_iterations: 3
    timeout_minutes: 30
  severity_handling:
    CRITICAL: auto_fix
    HIGH: auto_fix
    MEDIUM: document_as_debt
    LOW: ignore
  graceful_degradation:
    skip_if_not_installed: true
    fallback_message: 'CodeRabbit CLI not found. Skipping automated review. Install via: pip install coderabbit-cli'
  commands:
    qa_pre_review_uncommitted: |
      wsl bash -c 'cd ${PROJECT_ROOT} && ~/.local/bin/coderabbit --prompt-only -t uncommitted'
    qa_story_review_committed: |
      wsl bash -c 'cd ${PROJECT_ROOT} && ~/.local/bin/coderabbit --prompt-only -t committed --base main'
  report_location: docs/qa/coderabbit-reports/
squads:
  templateLocation: templates/squad
  autoLoad: false
pvMindContext:
  enabled: true
  location: outputs/minds/pedro_valerio
  features:
    persona_voice: true
    technical_depth: advanced
    communication_style: structured
storyBacklog:
  enabled: true
  location: docs/stories/backlog
  prioritization: value_risk
utils:
  helpers:
    - batch-creator
    - capability-analyzer
    - change-propagation-predictor
    - clickup-helpers
    - code-quality-improver
    - compatibility-checker
    - component-metadata
    - component-preview
    - conflict-manager
    - coverage-analyzer
    - dependency-analyzer
    - diff-generator
    - framework-analyzer
    - git-wrapper
    - manifest-preview
    - migration-path-generator
    - migration-tester
    - modification-history
    - modification-risk-assessment
    - modification-validator
    - performance-analyzer
    - redundancy-analyzer
    - refactoring-suggester
    - sandbox-tester
    - template-validator
    - test-quality-assessment
    - validate-filenames
    - version-tracker
    - visual-impact-generator
  executors:
    - approval-workflow
    - branch-manager
    - commit-message-generator
    - component-generator
    - component-search
    - conflict-resolver
    - deprecation-manager
    - dependency-impact-analyzer
    - documentation-synchronizer
    - migration-generator
    - migration-rollback
    - modification-synchronizer
    - performance-optimizer
    - rollback-handler
    - safe-removal-handler
    - test-generator
    - test-updater
  framework:
    - elicitation-engine
    - elicitation-session-manager
    - improvement-engine
    - improvement-validator
    - metrics-tracker
    - pattern-learner
    - template-engine
    - test-template-system
    - transaction-manager
    - usage-analytics
    - usage-tracker
ideSync:
  enabled: true
  source: .aiox-core/development/agents
  targets:
    claude-code:
      enabled: true
      path: .claude/commands/AIOX/agents
      skillsPath: .claude/skills
      format: full-markdown-yaml
    codex:
      enabled: true
      path: .codex/agents
      format: full-markdown-yaml
    gemini:
      enabled: true
      path: .gemini/rules/AIOX/agents
      format: full-markdown-yaml
    github-copilot:
      enabled: true
      path: .github/agents
      format: github-copilot
    cursor:
      enabled: true
      path: .cursor/rules/agents
      format: condensed-rules
    antigravity:
      enabled: true
      path: .antigravity/rules/agents
      format: cursor-style
    kimi:
      enabled: true
      path: .kimi/skills
      format: kimi-skill
      fallbackSources:
        - .codex/agents
  redirects: {}
  validation:
    strictMode: true
    failOnDrift: true
    failOnOrphaned: false
autoClaude:
  enabled: true
  version: '3.0'
  migratedAt: '2026-01-29T02:25:00Z'
  worktree:
    enabled: true
    autoCreate: on_story_start
    autoCleanup: manual
    maxWorktrees: 10
    staleDays: 30
    branchPrefix: auto-claude/
  specPipeline:
    enabled: false
  execution:
    enabled: false
  qa:
    enabled: false
# Boundary Mapping — Framework-Project Separation (Epic BM)
# Controls deterministic protection of framework core files via Claude Code deny rules.
# When frameworkProtection is true (default), .claude/settings.json includes deny rules
# that block Edit/Write operations on L1/L2 paths listed in 'protected' below.
# Set to false for framework contributors who need to edit core files directly.
# NOTE: This flag is read by the installer during settings.json generation.
# Changing this value alone does NOT add/remove deny rules — re-run the installer.
# SINGLE SOURCE OF TRUTH: Both pre-commit hook (framework-guard.js) and
# the installer read protected/exceptions from here. Do NOT hardcode paths elsewhere.
boundary:
  frameworkProtection: false # TEMPORARY: TOK-3 contributor mode — re-enable after story
  # L1/L2 paths — blocked from editing in project mode
  # Glob syntax: ** matches any depth, * matches single segment
  protected:
    - .aiox-core/core/**
    - .aiox-core/development/tasks/**
    - .aiox-core/development/templates/**
    - .aiox-core/development/checklists/**
    - .aiox-core/development/workflows/**
    - .aiox-core/infrastructure/**
    - .aiox-core/constitution.md
    - bin/aiox.js
    - bin/aiox-init.js
  # L3 paths — mutable exceptions (allowed even within .aiox-core/)
  exceptions:
    - .aiox-core/data/**
    - .aiox-core/development/agents/*/MEMORY.md
    - .aiox-core/core/config/schemas/**
    - .aiox-core/core/config/template-overrides.js

# Context-tracker dynamic model registry (Issue #605).
# Consumed by .aiox-core/core/synapse/context/context-tracker.js.
models:
  active: claude-sonnet-4-6
  registry:
    claude-opus-4-6:
      contextWindow: 1000000
      avgTokensPerPrompt: 1500
    claude-sonnet-4-6:
      contextWindow: 200000
      avgTokensPerPrompt: 1500
    claude-haiku-4-5:
      contextWindow: 200000
      avgTokensPerPrompt: 1200
