53 lines
1.8 KiB
Markdown
53 lines
1.8 KiB
Markdown
# 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
|
|
```
|