TITAN-MoE — project instructions for Claude Code (WP33 UQO)
Topology-Aware Intelligent Expert Orchestration for Distributed MoE Inference on Apple Silicon.
Author: Simon-Pierre Boucher (UQO). Agent: Claude Code. Language of code, docs and paper: English.
Full mandate: docs/MANDATE.md. Research log: research/LOG.md. Decisions: research/DECISIONS.md.
Non-negotiable scientific integrity
- Never invent measurements, sources, screenshots, benchmark results, hardware details or novelty claims.
- Distinguish hypotheses (H1–H5 in
docs/MANDATE.md) from findings. A claim enters the paper only with a raw log underbenchmarks/raw/. - Never claim a test passed without its raw output (
tests/run logs go tobenchmarks/raw/tests/). - If hardware, permissions or models are unavailable: record the blocker in
research/LOG.md, mark the experiment PENDING, keep going on independent work. - Preserve raw data and the exact command (every benchmark writes a JSON record with command line, git commit, environment hash, seed and timestamps).
- Authorization is required before: remote execution on nodes not yet listed in
artifacts/environment.jsonas authorized, downloads > 20 GB, paid APIs, security changes (firewall, SSH, RDMA enable), destructive actions.
Layout
titan/ scheduler, registry, cache · metal/ Metal kernels · transport/ authenticated node transport · adapters/ MoE formats ·
tests/ · benchmarks/{configs,scripts,raw,processed} · research/ (LOG, DECISIONS, RELATED_WORK, prior_art.csv, protocol.md) ·
figures/ · paper/ (UQO template; cd paper && make) · artifacts/ (environment.json, manifest.json) · scripts/ (setup, reproduce) ·
third_party/ (shallow clones of colibri / mlx / mlx-lm / llama.cpp, git-ignored; hashes in research/prior_art.csv).
Conventions
- Python 3.12 venv
.venv(uv); MLX pinned inrequirements-lock.txt. Run with.venv/bin/python. - Models live in the Hugging Face cache (
~/.cache/huggingface), never in the repo. Revisions are pinned inbenchmarks/configs/models.yaml. - Raw logs are immutable: write-once JSONL/JSON under
benchmarks/raw/<gate>/<experiment>/; processed tables underbenchmarks/processed/. - Every figure/table in the paper is generated by
scripts/make_figures.py/scripts/make_tables.pyfrombenchmarks/raw/. - Cluster nodes: short SSH aliases; LAN only; never store private keys on nodes; sudo via
echo '<pw>' | sudo -Sonly when a decision record authorizes it. - Never commit weights, credentials, or private host inventories (
artifacts/private/is ignored). - Gates A–G are sequential; update LOG, DECISIONS, README and test evidence after each gate; incremental commits; no push without authorization.