Overview
AIOX uses a three-level configuration hierarchy to manage framework, project, and local settings. This architecture ensures framework stability while allowing project-specific customization.Configuration Hierarchy
AIOX implements a three-tier configuration system:Framework Configuration - Read-only settings shipped with the AIOX npm package
- File:
framework-config.yaml - Location:
.aiox-core/ - Mutability: Read-only (framework source)
- Git Status: Committed to framework
- Reference: ADR-PRO-002 — Configuration Hierarchy
Project Configuration - Team-shared settings committed to repository
- File:
project-config.yaml - Location:
.aiox-core/ - Mutability: Editable by project maintainers
- Git Status: Committed to project repository
- Purpose: Project-specific customizations shared across team
Local Configuration - Developer-specific settings (not committed)
- File:
local-config.yaml - Location:
.aiox-core/ - Mutability: Fully editable
- Git Status: Ignored (
.gitignore) - Purpose: Personal developer preferences and secrets
Configuration Resolution
Settings are resolved using a merge strategy with precedence:Core Configuration File
Thecore-config.yaml file is the legacy single-file configuration that predates the three-tier system. It contains all configuration in one place.
Location:
.aiox-core/core-config.yamlThis file is being gradually migrated to the three-tier system. New projects should use framework-config.yaml and project-config.yaml instead.See Core Config Reference for complete schema.File Locations
.aiox-core/ - Root directory for all configuration filescore-config.yaml- Legacy unified configurationframework-config.yaml- Level 1 (Framework)project-config.yaml- Level 2 (Project)local-config.yaml- Level 3 (Local, git-ignored)local-config.yaml.template- Template for local configuration
Configuration Loading
AIOX loads configuration in the following order:- Framework defaults from
framework-config.yaml - Project overrides from
project-config.yaml - Local overrides from
local-config.yaml(if exists) - Runtime environment variables (highest priority)
Best Practices
Framework Contributors
Framework Contributors
- Only modify
framework-config.yamlfor framework-wide changes - Document all changes in ADRs
- Ensure backward compatibility
- Use semantic versioning for breaking changes
Project Teams
Project Teams
- Customize via
project-config.yamlfor team settings - Never commit
local-config.yaml - Document project-specific configurations
- Use
local-config.yaml.templatefor team onboarding
Individual Developers
Individual Developers
- Use
local-config.yamlfor personal preferences - Copy from
local-config.yaml.templateto start - Never commit secrets or API keys
- Keep local overrides minimal
Migration from Core Config
If your project usescore-config.yaml, you can migrate to the three-tier system:
Related Documentation
Reference: ADR-PRO-002 — Configuration Hierarchy