Phase 0: project skeleton

- pyproject.toml with uv, deps for runtime + gui + backtest + dev
- ruff/mypy strict config, pre-commit hooks for ruff/mypy/pytest
- src/cerbero_bite/ layout with empty modules ready for Phase 1+
- structlog JSONL logger with daily rotation
- click CLI with placeholder subcommands (status, start, kill-switch,
  gui, replay, config hash, audit verify)
- 6 smoke tests passing, mypy --strict clean, ruff clean

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-26 23:10:30 +02:00
commit 881bc8a1bf
40 changed files with 6018 additions and 0 deletions
+43
View File
@@ -0,0 +1,43 @@
repos:
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.7.4
hooks:
- id: ruff
args: [--fix]
- id: ruff-format
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v5.0.0
hooks:
- id: trailing-whitespace
- id: end-of-file-fixer
- id: check-yaml
- id: check-added-large-files
args: ["--maxkb=500"]
- id: check-merge-conflict
- id: detect-private-key
- repo: local
hooks:
- id: mypy
name: mypy --strict
entry: uv run mypy --strict src/cerbero_bite
language: system
types: [python]
pass_filenames: false
- id: pytest-fast
name: pytest unit
entry: uv run pytest tests/unit -x -q
language: system
types: [python]
pass_filenames: false
stages: [pre-commit]
- id: pytest-golden
name: pytest golden
entry: uv run pytest tests/golden tests/integration -x -q
language: system
types: [python]
pass_filenames: false
stages: [pre-push]