Files
homelab-upgrade/AGENTS.md
T
homelab-updaterandClaude Sonnet 5 8bcd0bc485 docs: project instructions and approved design
AGENTS.md/CLAUDE.md for agents, docs/DESIGN.md as the agreed architecture.
UI language is English (code, comments, commits and UI); documents stay Polish.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-18 23:36:52 +02:00

2.1 KiB

homelab-upgrade — instrukcje

Kolejka kroków (SQLite) + driver + appka web do nocnych aktualizacji aplikacji Docker Compose na VM103. Pełny, zatwierdzony projekt: docs/DESIGN.md — przeczytaj przed pracą nad architekturą lub nowym krokiem. Stary system (do portu, tylko odczyt): /root/homelab-modernization. Nie czytaj tam backups/ (kopie z .env).

Środowisko

  • Ten host to Proxmox (Debian 11) — tylko do rozwoju i testów. Docelowo kod działa na VM103 w Dockerze.
  • Node 24 przez nvm (.nvmrc). W powłoce nieinteraktywnej przed node/npm: . ~/.nvm/nvm.sh.
  • Nic nie instalujesz globalnie. Nie ruszasz Proxmoxa, VM103 ani działających kontenerów.
  • Skryptów ze starego repo, które mutują (apply.sh, rollback.sh, backup.sh), nie uruchamiasz bez zlecenia właściciela. Testy idą na fejkach i zapisanych fixture'ach.
  • Sekrety (.env, klucze, tokeny) nigdy w repo, logach ani wyjściu.
  • Remote: ssh://git@git.mariuszpacek.pl:2244/mariusz.pacek/homelab-upgrade.git, gałąź master. Commity małe i opisowe; commit/push tylko na prośbę właściciela.

Kod

  • TypeScript strict, ESM, Node 24. Kod, identyfikatory, komentarze, commity i UI appki po angielsku; dokumenty (docs/, instrukcje) po polsku.
  • Warstwy: domain (czyste typy i reguły, bez I/O) → app (handlery kroków, driver) → infra (adaptery) → http/web. Zależności tylko do środka; reguła lintu to pilnuje.
  • Abstrakcja tylko tam, gdzie jest szew testowy albo wymienność: StepStore, CommandRunner, ModelExecutor, Notifier, RegistryClient, Clock. Reszta to zwykłe funkcje.
  • Małe funkcje i moduły, wstrzykiwanie zależności przez argumenty/fabryki, discriminated unions zamiast flag, brak any, brak globalnego stanu.
  • Walidacja na granicach (zod): wyjście skryptów, odpowiedź modelu, HTTP. Ten sam schemat daje typ.
  • Testy Vitest obok kodu; domain i app pisz test-first. Przed commitem npm run check (typecheck + lint + test) musi być zielone.
  • Nie dodawaj zależności bez powodu; każda nowa to jedna linia uzasadnienia w PR/commicie.