diff --git a/CLAUDE.md b/CLAUDE.md index f416cf0..2067ca8 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -25,6 +25,7 @@ Der Pfad ist frei wählbar. Das Bootstrap-Skript erstellt alle Symlinks, prueft | `ruff` | Python-Formatter (Hook) | `pipx install ruff` | | `eslint` | JS/TS/Vue-Formatter (Hook) | Projektabhängig | | `shellcheck` | Bash-Linter (Hook + /script) | `apt install shellcheck` | +| `fnm` + Node.js | Node-Version-Manager | `curl -fsSL https://fnm.vercel.app/install \| bash && fnm install --lts` | | `markdownlint-cli2` | Markdown-Lint (Hook) | `npm install -g markdownlint-cli2` | | `gh` | GitHub CLI | `apt install gh` | | `go` + `gitea-mcp` | Gitea-MCP-Binary | `go install gitea.com/gitea/gitea-mcp@latest` | diff --git a/bootstrap.sh b/bootstrap.sh index 4797c66..5ec4333 100755 --- a/bootstrap.sh +++ b/bootstrap.sh @@ -73,14 +73,19 @@ else fi fi +if command -v fnm &>/dev/null; then + eval "$(fnm env 2>/dev/null)" || true +fi + if command -v npm &>/dev/null; then check_cmd "markdownlint-cli2" "$(markdownlint-cli2 --version 2>/dev/null | head -1 || true)" \ || missing_other+=("npm install -g markdownlint-cli2") else if ! command -v markdownlint-cli2 &>/dev/null; then - echo " FEHLT markdownlint-cli2 (npm nicht vorhanden)" - echo " Node.js zuerst installieren, z.B. via nvm" - missing_other+=("# Node.js installieren: https://github.com/nvm-sh/nvm" "npm install -g markdownlint-cli2") + echo " FEHLT markdownlint-cli2 (Node.js nicht vorhanden)" + missing_other+=("curl -fsSL https://fnm.vercel.app/install | bash" + "fnm install --lts" + "npm install -g markdownlint-cli2") else echo " OK markdownlint-cli2 ($(markdownlint-cli2 --version 2>/dev/null | head -1 || true))" fi diff --git a/dotfiles/CLAUDE.md b/dotfiles/CLAUDE.md index d7bdf98..6965784 100644 --- a/dotfiles/CLAUDE.md +++ b/dotfiles/CLAUDE.md @@ -18,6 +18,7 @@ Alle Texte, Kommentare und Kommunikation auf Deutsch. Technische Begriffe und Co - **Security by Default:** Input-Validierung, Auth-Checks, sichere Defaults. Sicherheitskritische Pfade durch Tests absichern - **String-Eingaben trimmen:** Alle String-Felder beim Anlegen/Update in Services/Schemas trimmen (leading/trailing Whitespace entfernen). Leerstrings werden zu `None`, wenn das Feld optional ist. Verhindert Sortier-/Vergleichs-/Suchfehler durch unsichtbare Zeichen - **Kleine Funktionen, keine Kommentare fuer Offensichtliches** +- **Keine systemveraendernden Scripts zum Testen ausfuehren:** Scripts die Symlinks, Berechtigungen, Pakete oder Konfiguration aendern niemals "einfach so" ausfuehren. Stattdessen mit `bash -n` (Syntax) oder gezieltem `grep`/`cat` pruefen ## Code-Konventionen