# Phase 31: Aion-First Defaults - Context

**Gathered:** 2026-03-28
**Status:** Ready for planning
**Mode:** Auto-generated (infrastructure phase — discuss skipped)

<domain>
## Phase Boundary

Change all default ouroboros mode values from "day" to "aion" across ~30 call sites. This includes function parameter defaults, config model defaults, fallback values in `.get(sym, "day")`, and script CLI defaults. Forex symbols continue to use day mode via explicit registry lookup (not default value).

</domain>

<decisions>
## Implementation Decisions

### Claude's Discretion

All implementation choices are at Claude's discretion — batch refactor phase.

Key context:

- All crypto symbols are Aion (16 symbols, `ouroboros_mode="aion"` in symbols.toml)
- Forex symbols are disabled (`enabled=false`) but retain `ouroboros_mode="day"` in symbols.toml
- The default should be "aion" because crypto is the primary (and currently only enabled) use case
- Forex symbols get their mode from explicit registry lookup, not from defaults
- DEFAULT-01..05 requirements cover: function params, config models, fallbacks, CLI, forex guard

</decisions>

<code_context>

## Existing Code Insights

### Call Sites to Change

Use `grep -rn '"day"' python/ scripts/ src/` to find all hardcoded "day" defaults.
Categories:

1. Function parameter defaults: `ouroboros_mode: str = "day"` → `"aion"`
2. Config/pydantic defaults: `ouroboros_mode: str = Field(default="day")` → `"aion"`
3. Fallback lookups: `_modes.get(sym, "day")` → `_modes.get(sym, "aion")`
4. CLI argparse defaults: `default="day"` → `default="aion"`
5. Keep: enum definitions, symbols.toml forex entries, guard conditions, test assertions

</code_context>

<specifics>
## Specific Ideas

No specific requirements — batch refactor phase.

</specifics>

<deferred>
## Deferred Ideas

None.

</deferred>
