Documentation

AI - Master

0) Potřebné balíčky

sudo apt update
sudo apt install docker-buildx

Užitečné prompty:

Prompt pro Junior AI Vývojáře (The Safe Assistant)
Role: Působ jako Junior Developer & Researcher. Tvým úkolem je asistovat Senior Architektovi při stavbě projektu. Tvou prioritou je rychlost u jednoduchých úkolů a absolutní opatrnost u jádra systému.
Tvé kompetence (Dělej samostatně):
Rutinní kód: Psaní jednoduchých funkcí, validací, UI komponent a unit testů podle existujících vzorů.
Research: Prohledávej internet pro dokumentaci knihoven, hledej nejlepší syntaxi a řešení běžných chyb (StackOverflow styl).
Dokumentace: Piš komentáře ke kódu a aktualizuj README na základě provedených změn.
Refaktoring (Basic): Přejmenovávání proměnných pro lepší čitelnost, rozbíjení příliš dlouhých řetězců.
Tvá omezení (STOP & REPORT):
Pokud narazíš na úkol, který vyžaduje:
Změnu v architektuře databáze nebo globálních stavů (Store/Context).
Změnu v jádru bezpečnosti, autentizace nebo šifrování.
Logiku, která má přesah do více než 2 hlavních modulů zároveň.
Optimalizaci výkonu, která by vyžadovala přepsání logiky Seniora.
Instrukce pro krizové situace:
Jakmile identifikuješ úkol z kategorie „Omezení“, okamžitě zastav práci na tomto úkolu a proveď následující:
Stručně popiš, v čem vidíš riziko a proč je úkol složitý.
Vytvoř položku do souboru TODO_SENIOR.md (nebo ji vypiš do konzole).
Pokračuj dalším jednoduchým úkolem ze seznamu, který nezasahuje do jádra.
Formát hlášení pro Seniora:
[⚠️ COMPLEX TASK DETECTED]
Soubor: [Cesta k souboru]
Problém: [Popis, proč na to nestačíš]
Návrh: [Tvé zjištění z internetu, jak by se to ASI mělo dělat]
Status: Přidáno na TODO list pro architekta.

Senior AI

Role: Působ jako Lead Software Architect & Senior Engineer. Tvým úkolem je převzít tento projekt, vyřešit kritickou logiku a připravit prostředí pro juniorního AI vývojáře (nižší model), který bude pokračovat v rutinní práci.
Tvůj cíl:
Analýza a Refaktoring: Identifikuj architektonické slabiny, cyklické závislosti a nepřehledný kód. Proveď refaktoring jádra na modulární architekturu. Kód musí být rozdělen do malých, jednoúčelových funkcí (max 20-30 řádků), které jsou snadno pochopitelné pro modely s malým kontextem.
Hard-Coding (Těžká práce): Implementuj všechny komplexní algoritmy, datové modely a integrační rozhraní, u kterých hrozí, že by je juniorní model nepochopil nebo pokazil.
Standardizace (Mantinely): Vytvoř soubor CONTRIBUTING.md nebo sekci v promptu s pravidly: jak pojmenovávat proměnné, jak ošetřovat chyby a jaký používat styl (např. "Vždy používej async/await", "Každá funkce musí mít JSDoc/Typing").
Dekompozice (Fronta úkolů): Rozbij zbytek projektu na atomické úkoly. Každý úkol musí být popsaný tak, aby k jeho splnění junior nepotřeboval znát zbytek celého projektu (tzv. Context-Free tasks).
Pravidla pro výstup:
Neukončuj práci, dokud není jádro stabilní a plně otestované.
U každého souboru, který vytvoříš, napiš do záhlaví komentář // ARCHITECT_NOTE:, kde vysvětlíš juniorovi, co v tomto souboru nesmí měnit a na co má navázat.
Výstupem bude:
Revidovaný kód jádra.
Technická dokumentace rozhraní (API/Moduly).
"Master Prompt for Junior" – instrukce, které vložím do Codex CLI pro další fázi.

"*

1) Struktura

~/ai/
├── tools/
│   ├── codex/
│   │   ├── node20/
│   │   │   ├── Dockerfile
│   │   │   ├── .dockerignore
│   │   │   └── README.md
│   │   ├── trixie/
│   │   │   ├── Dockerfile
│   │   │   ├── .dockerignore
│   │   │   └── README.md
│   │   └── full/
│   │       ├── Dockerfile
│   │       ├── .dockerignore
│   │       └── README.md
│   │
│   ├── gemini/
│   │   ├── slim/
│   │   │   ├── Dockerfile
│   │   │   ├── .dockerignore
│   │   │   └── README.md
│   │   └── full/
│   │       ├── Dockerfile
│   │       ├── .dockerignore
│   │       └── README.md
│   │
│   └── claude/
│       ├── slim/
│       │   ├── Dockerfile
│       │   ├── .dockerignore
│       │   └── README.md
│       └── full/
│           ├── Dockerfile
│           ├── .dockerignore
│           └── README.md
│
├── data/
│   ├── volumes/
│   │   ├── codex/
│   │   ├── gemini/
│   │   └── claude/
│   ├── cache/
│   │   ├── codex/
│   │   ├── gemini/
│   │   └── claude/
│   └── logs/
│       ├── codex/
│       ├── gemini/
│       └── claude/
│
└── projects/
    ├── project-a/
    │   ├── src/
    │   ├── docs/
    │   ├── scripts/
    │   ├── .ai/
    │   │   ├── handoff.md
    │   │   ├── context.md
    │   │   ├── decisions.md
    │   │   └── next-steps.md
    │   ├── README.md
    │   ├── TODO.md
    │   └── .env.example
    │
    └── project-b/
        ├── src/
        ├── docs/
        ├── scripts/
        ├── .ai/
        ├── README.md
        ├── TODO.md
        └── .env.example

3) Dockerfile - mocný

FROM node:20-trixie

USER root

ENV DEBIAN_FRONTEND=noninteractive \
    PYTHONUNBUFFERED=1 \
    PIP_DISABLE_PIP_VERSION_CHECK=1 \
    npm_config_update_notifier=false

RUN apt-get update && apt-get install -y --no-install-recommends \
    python3 \
    python3-pip \
    python3-venv \
    python3-dev \
    pipx \
    git \
    git-lfs \
    curl \
    wget \
    unzip \
    zip \
    xz-utils \
    tar \
    gzip \
    bzip2 \
    build-essential \
    pkg-config \
    ca-certificates \
    gnupg \
    ripgrep \
    fd-find \
    jq \
    vim \
    nano \
    less \
    procps \
    sudo \
    openssh-client \
    rsync \
    make \
    cmake \
    libssl-dev \
    libffi-dev \
    libbz2-dev \
    libreadline-dev \
    libsqlite3-dev \
    zlib1g-dev \
    liblzma-dev \
    tk-dev \
    && rm -rf /var/lib/apt/lists/*

RUN npm install -g npm@latest pnpm
RUN npm install -g @openai/codex@latest

# užitečné Python tooly pro AI workflow
RUN python3 -m pip install --break-system-packages \
    uv \
    virtualenv \
    poetry \
    pytest \
    ruff \
    black \
    ipython

WORKDIR /workspace

# nech roota, pokud chceš "hodně volné" prostředí
CMD ["/bin/bash"]

3) Aliasy


#alias codexsafe='docker run --rm -it -u node -e HOME=/home/node -v "$(pwd)":/workspace -v "$HOME/ai/data/volumes/codex/node-home":/home/node -w /workspace --cap-drop=ALL --security-opt no-new-privileges codexbox:node20 sh -lc '"'"'codex resume --last || exec codex'"'"''
#alias codexauto='docker run --rm -it -u node -e HOME=/home/node -v "$(pwd)":/workspace -v "$HOME/ai/data/volumes/codex/node-home":/home/node -w /workspace --cap-drop=ALL --security-opt no-new-privileges codexbox:node20 sh -lc '"'"'codex resume --last || exec codex --full-auto'"'>
#alias codexunsafe='docker run --rm -it -u node -e HOME=/home/node -v "$(pwd)":/workspace -v "$HOME/ai/data/volumes/codex/node-home":/home/node -w /workspace codexbox:node20 sh -lc '"'"'codex resume --last || exec codex --dangerously-bypass-approvals-and-sandbox'"'"''

alias airoot='cd ~/ai'
alias aiprojects='cd ~/ai/projects'
alias aicodex='cd ~/ai/data/volumes/codex'

aiupdate() {
  docker build --pull -t codexbox:node20 "$HOME/ai/tools/codex/node20" &&
  docker run --rm codexbox:node20 codex --version &&
  docker build --pull -t codexbox:trixie "$HOME/ai/tools/codex/trixie" &&
  docker run --rm codexbox:trixie codex --version &&
  docker build --pull -t codexbox:full "$HOME/ai/tools/codex/full" &&
  docker run --rm codexbox:full codex --version &&
  docker build --pull -t gemini:slim "$HOME/ai/tools/gemini/slim" &&
  docker build --pull -t gemini:full "$HOME/ai/tools/gemini/full" &&
  docker build --pull -t claude:slim "$HOME/ai/tools/claude/slim" &&
  docker build --pull -t claude:full "$HOME/ai/tools/claude/full"
}

aiupdate() {
  docker build --pull -t codexbox:node20 "$HOME/ai/tools/codex/node20" &&
  docker run --rm codexbox:node20 codex --version &&
  docker build --pull -t codexbox:trixie "$HOME/ai/tools/codex/trixie" &&
  docker run --rm codexbox:trixie codex --version &&
  docker build --pull -t codexbox:full "$HOME/ai/tools/codex/full" &&
  docker run --rm codexbox:full codex --version &&
  docker build --pull -t gemini:slim "$HOME/ai/tools/gemini/slim" &&
  docker build --pull -t gemini:full "$HOME/ai/tools/gemini/full" &&
  docker build --pull -t claude:slim "$HOME/ai/tools/claude/slim" &&
  docker build --pull -t claude:full "$HOME/ai/tools/claude/full"
}

codexsafe() {
  case "$PWD" in
    "$HOME/ai/projects/"*)
      docker run --rm -it \
        -u node \
        -e HOME=/home/node \
        -v "$PWD":"/projects/$(basename "$PWD")" \
        -v "$HOME/ai/data/volumes/codex/node-home":/home/node \
        -w "/projects/$(basename "$PWD")" \
        --cap-drop=ALL \
        --security-opt no-new-privileges \
        codexbox:node20 \
        sh -lc 'codex resume --last || exec codex'
      ;;
    *)
      echo "Spusť to jen z ~/ai/projects/<projekt>"
      return 1
      ;;
  esac
}

codexauto() {
  case "$PWD" in
    "$HOME/ai/projects/"*)
      docker run --rm -it \
        -u node \
        -e HOME=/home/node \
        -v "$PWD":"/projects/$(basename "$PWD")" \
        -v "$HOME/ai/data/volumes/codex/node-home":/home/node \
        -w "/projects/$(basename "$PWD")" \
        --cap-drop=ALL \
        --security-opt no-new-privileges \
        codexbox:node20 \
        sh -lc 'codex resume --last || exec codex --full-auto'
      ;;
    *)
      echo "Spusť to jen z ~/ai/projects/<projekt>"
      return 1
      ;;
  esac
}
codexunsafe() {
  case "$PWD" in
    "$HOME/ai/projects/"*)
      docker run --rm -it \
        -u node \
        -e HOME=/home/node \
        -v "$PWD":"/projects/$(basename "$PWD")" \
        -v "$HOME/ai/data/volumes/codex/node-home":/home/node \
        -w "/projects/$(basename "$PWD")" \
        codexbox:node20 \
        sh -lc 'codex resume --last || exec codex --dangerously-bypass-approvals-and-sandbox'
      ;;
    *)
      echo "Spusť to jen z ~/ai/projects/<projekt>"
      return 1
      ;;
  esac
}
© www.duckd.cz
Grav + Twigatedo-quark2026-04-25