# CLAUDE.md This independent repository is the executable source of truth for Quant OS. `quant_os` is the long-lived product namespace. `quant60` is the compatibility namespace for the first A-share Baseline protocol and V1 artifacts; maturity scores belong to profiles, never to package names. Obsidian contains research and status documentation only. ## Development commands Run all commands from this directory: ```bash make architecture make standard make test make bundle make smoke make verify make doctor make local ``` The zero-install path is `PYTHONPATH=src:. python3 ...`. Do not require a virtual environment for the deterministic local smoke. ## Platform boundaries - `dist/joinquant_strategy.py` is the generated single-file JoinQuant upload. - `dist/qmt_builtin_strategy.py` is the generated QMT built-in backtest file. - `platforms/qmt_research_runner.py` drives qmttools backtests. - `adapters/xttrader_live.py` is the guarded external QMT/XtTrader boundary. - `platforms/qlib_runner.py` is an isolated Qlib research bridge. - `notebooks/quant_os_colab.ipynb` must remain executable locally and in Colab. Never make QMT built-in code live-capable. Real broker mutation stays disabled unless the external XtTrader adapter receives a fresh, account-bound guard. ## Security - Never commit passwords, tokens, cookies, broker userdata, account exports, private keys, or reusable credentials. - JoinQuant authentication uses an interactive browser session. - QMT configuration is injected through local environment variables; only placeholder names belong in `.env.example`. - Fake, synthetic, and unit-test evidence must never be described as a real platform or broker pass. ## Definition of done A change is complete only when: 1. unit/integration tests pass; 2. hosted bundles rebuild and pass Python 3.6 syntax checks; 3. the deterministic smoke and manifest verifier pass; 4. architecture and maturity profile checks pass; 5. docs state the exact evidence class and remaining external gate; 6. no secret or machine-specific absolute path is added to executable or public artifacts. Migration/getting-started docs may name the user-confirmed local checkout, but generated evidence must stay repository-relative.