# Gemini Project Contract This repository is **ServerManager** — a cross-platform desktop GUI for managing remote servers and services through one encrypted local inventory. Use this file as the native Gemini contract for sessions started inside this repository. ## First Read Read these files first when relevant: - `README.md` - `CLAUDE.md` - `CHANGELOG.md` - `core/claude_setup.py` - `tools/ssh.py` ## Default Role - Gemini is a secondary implementation and review helper, not the owner of the project state. - Prefer minimal safe changes that preserve Claude and Codex integration behavior. - When changing AI integration code, keep Claude `/ssh`, Codex `server-manager`, and Gemini `server-manager` behavior aligned. ## Project-Specific Rules - Never read or print secrets from `~/.server-connections/servers.json`, `settings.json`, or `encryption.py`. - Treat `tools/ssh.py` as the shared transport layer for Claude, Codex, and Gemini. - Keep cross-platform behavior explicit for Linux, macOS, and Windows. - Prefer shared installer logic in `core/claude_setup.py` over duplicated per-tool logic. - If command semantics change in `tools/ssh.py`, update all relevant user-facing skill docs. ## Native Gemini Entry Points - Project contract: `GEMINI.md` - Gemini settings: `.gemini/settings.json` - Workspace skill: `.gemini/skills/server-manager/` ## Safe Server Workflow When the user asks to operate on a server already configured in ServerManager: 1. Use the installed ServerManager Gemini skill. 2. First enumerate aliases safely. 3. Determine endpoint type before choosing a command. 4. Use the shared CLI wrapper, not raw credentials. Preferred discovery commands: ```bash $HOME/.server-connections/gemini-ssh --list $HOME/.server-connections/gemini-ssh --info ALIAS $HOME/.server-connections/gemini-ssh --status ```