## Architecture **Request pipeline** (`src/cya/orchestrator.py`): 1. Collect local context (`context/collector.py`) 2. Recall memory via phase-memory ports (`memory/__init__.py`) 3. Classify risk (`safety/risk.py`) — rule-based; memory signals add caution only 4. Call LLM via `LLMAdapter` Protocol (`llm/adapter.py`) — FakeLLMAdapter today 5. Render explainable response (Rich) **Memory (Profile 0 + Profile 1 spike):** - User-controlled local JSON behind explicit ports (`remember`, `recall`, `forget`, `export`) - Kinds: `preference`, `retrospection`, `interaction_goal`, `reflection` - Directory/project-bound activation via `activation_context` - `cya retrospect` feeds higher-order memory; optional verbal lesson capture (Profile 1) **Boundaries:** See `repo-boundary.md`. No production path bypasses the adapter or memory ports. ## Quick Reference - Memory contract: `MemoryVision.md` - Activation/retrospection concept: `docs/cya-memory-activation-and-retrospection-concept.md` - phase-memory feedback: `docs/phase-memory-optimization-suggestions.md` - `~/state-hub/mcp_server/TOOLS.md` — MCP tool reference