Files
The-Ouroboros/CLAUDE.md
agentson 254b543c89
Some checks failed
CI / test (pull_request) Has been cancelled
Merge main into feature/issue-15-context-tree
Resolved conflicts in CLAUDE.md by:
- Keeping main's refactored structure (docs split into separate files)
- Added Context Tree documentation link to docs section
- Preserved all constraints and guidelines from main

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-04 15:25:13 +09:00

3.3 KiB

The Ouroboros

AI-powered trading agent for global stock markets with self-evolution capabilities.

Quick Start

# Setup
pip install -e ".[dev]"
cp .env.example .env
# Edit .env with your KIS and Gemini API credentials

# Test
pytest -v --cov=src

# Run (paper trading)
python -m src.main --mode=paper

Documentation

Core Principles

  1. Safety First — Risk manager is READ-ONLY and enforces circuit breakers
  2. Test Everything — 80% coverage minimum, all changes require tests
  3. Issue-Driven Development — All work goes through Gitea issues → feature branches → PRs
  4. Agent Specialization — Use dedicated agents for design, coding, testing, docs, review

Project Structure

src/
├── broker/          # KIS API client (domestic + overseas)
├── brain/           # Gemini AI decision engine
├── core/            # Risk manager (READ-ONLY)
├── evolution/       # Self-improvement optimizer
├── markets/         # Market schedules and timezone handling
├── db.py            # SQLite trade logging
├── main.py          # Trading loop orchestrator
└── config.py        # Settings (from .env)

tests/               # 54 tests across 4 files
docs/                # Extended documentation

Key Commands

pytest -v --cov=src              # Run tests with coverage
ruff check src/ tests/           # Lint
mypy src/ --strict               # Type check

python -m src.main --mode=paper  # Paper trading
python -m src.main --mode=live   # Live trading (⚠️ real money)

# Gitea workflow (requires tea CLI)
YES="" ~/bin/tea issues create --repo jihoson/The-Ouroboros --title "..." --description "..."
YES="" ~/bin/tea pulls create --head feature-branch --base main --title "..." --description "..."

Markets Supported

  • 🇰🇷 Korea (KRX)
  • 🇺🇸 United States (NASDAQ, NYSE, AMEX)
  • 🇯🇵 Japan (TSE)
  • 🇭🇰 Hong Kong (SEHK)
  • 🇨🇳 China (Shanghai, Shenzhen)
  • 🇻🇳 Vietnam (Hanoi, HCM)

Markets auto-detected based on timezone and enabled in ENABLED_MARKETS env variable.

Critical Constraints

⚠️ Non-Negotiable Rules (see docs/agents.md):

  • src/core/risk_manager.py is READ-ONLY — changes require human approval
  • Circuit breaker at -3.0% P&L — may only be made stricter
  • Fat-finger protection: max 30% of cash per order — always enforced
  • Confidence < 80 → force HOLD — cannot be weakened
  • All code changes → corresponding tests → coverage ≥ 80%

Contributing

See docs/workflow.md for the complete development process.

TL;DR:

  1. Create issue in Gitea
  2. Create feature branch: feature/issue-N-description
  3. Implement with tests
  4. Open PR
  5. Merge after review