# GEMINI.md - Project Context & Instructions This repository contains personal dotfiles and configurations for a highly productive development environment, integrating Bash, Tmux, Vim, VS Code, and various AI assistants (Gemini CLI, Claude, Codex, Opencode). ## πŸ“‚ Project Overview * **Type:** Non-Code Project (Dotfiles / Configuration) * **Management:** Uses `stow` for Linux/WSL and `chezmoi` for Windows/WSL. * **Key Focus:** * Unified configuration across editors and terminals. * Deep integration with AI tools via shared "skills". * Automated environment setup (proxy handling, secret loading). ## πŸ›  Key Components ### 1. Shell & Terminal (Bash & Tmux) * **Bash:** Custom prompt (`.bash_prompt`), utility functions (`.bash_functions` like `proxy_on/off`), and core customizations (`.bash_custom`). * **Tmux:** Dual prefix (`C-b` and `C-Space`), Vi-mode for copying, and optimized pane management. * **Secrets:** Managed via `~/.env.secrets` (not tracked in Git). ### 2. Editors (Vim, VS Code, Zed) * **Vim:** Minimalist `.vimrc`, 2-space indentation, leader-key mappings (`Space`). * **VS Code (WSL):** Uses `server-env-setup` to automatically load secrets and configure proxy settings upon startup. * **Zed:** Placeholder directory for future configuration. ### 3. AI Agents & Skills * **Shared Skills:** Located in `agents/.agents/skills/`. This is the single source of truth for AI instructions. * **Gemini CLI:** Configured via `gemini/.gemini/`. * **Policies:** `readonly-commands.toml` allows critical commands like `git status`, `git diff`, and `git add` to run without confirmation. * **Opencode:** MCP-based assistant configuration (`opencode.json`) with support for documentation, search, and web-reading. * **Skill Bridges:** Symlinks are used to share skills across Claude, Codex, and Opencode. ## πŸš€ Usage & Maintenance ### Deployment * **Linux/WSL:** Use `stow ` from the root directory. * **Windows:** Use `chezmoi apply`. ### Adding/Updating Skills 1. Modify files in `agents/.agents/skills/`. 2. Ensure symlinks in other tool directories are updated if new skills are added. ### Git Workflow for AI (Gemini CLI) * **Safe Commands:** `git status`, `git diff`, and `git add` are pre-approved in the policy. * **Commits:** Always use the `conventional-commits` skill for generating commit messages. Use the ` Бпособ B` (temporary file) if direct Heredoc causes issues. ## πŸ“‹ TODO ΠŸΠ»Π°Π½Ρ‹ Π½Π° Π±ΡƒΠ΄ΡƒΡ‰Π΅Π΅ β€” см. [TODO.md](TODO.md). ## ⚠️ Important Files for Reference * `README.md`: Detailed installation and usage instructions. * `bash/.bash_functions`: Proxy and environment management functions. * `gemini/.gemini/policies/readonly-commands.toml`: Permissions for Gemini CLI. * `agents/.agents/skills/conventional-commits/SKILL.md`: Rules for commit formatting. ## πŸ€– AI Interaction Mandates * **Adhere to Local Patterns:** When suggesting changes, follow the 2-space indent rule and minimalist style established in `.vimrc` and `.bash_custom`. * **Privacy First:** Never log or commit contents of `~/.env.secrets`. * **Verification:** Before updating configs, verify with `git status` and `git diff` (which are allowed without confirmation). ## πŸ—£ Π―Π·Ρ‹ΠΊ ΠΈ рассуТдСния Пиши Π½Π° ясном русском языкС. Π˜Π½ΠΎΡΡ‚Ρ€Π°Π½Π½Ρ‹Π΅ слова оставляй Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π°ΠΌ, Π³Π΄Π΅ Ρƒ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π° Π½Π΅Ρ‚ ΡƒΡΡ‚ΠΎΡΠ²ΡˆΠ΅Π³ΠΎΡΡ русского Π°Π½Π°Π»ΠΎΠ³Π°: ΠΈΠΌΠ΅Π½Π° Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ ΠΈ инструмСнтов (Kafka, ClickHouse, Airflow) ΠΈ названия ΠΈΠ· ΠΊΠΎΠ΄Π°. Если для понятия Π΅ΡΡ‚ΡŒ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ΅ русскоС слово β€” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉ Π΅Π³ΠΎ, Π½Π΅ Π²Ρ‹Π΄ΡƒΠΌΡ‹Π²Π°ΠΉ транслитСрации (пиши Β«ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² соотвСтствиС», Π° Π½Π΅ «рСконсиляция»; Β«Ρ‚ΠΎΡ‡ΠΊΠ° отсчёта», Π° Π½Π΅ Β«originΒ»). Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹, ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΈ объяснСния Π΄Π΅Ρ€ΠΆΠΈ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΌΠΈ ΠΈ понятными Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΡŽ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡ… Π½Π΅ писал: простыС слова, ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠ΅ Ρ„Ρ€Π°Π·Ρ‹, ΡΠ»ΠΎΠΆΠ½ΡƒΡŽ ΠΌΡ‹ΡΠ»ΡŒ поясняй ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΌ ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠΈ (ΠΏΠΎΠΌΠ½ΠΈ ΠΏΡ€ΠΎ ΠΌΠ΅Π½Ρ‚ΠΈ-нСспСциалиста). Если ΠΏΠΎΠ½ΡΡ‚Π½ΠΎΡΡ‚ΡŒ ΠΈ Π±ΡƒΠΊΠ²Π°Π»ΡŒΠ½Π°Ρ Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ спорят β€” Π²Ρ‹Π±ΠΈΡ€Π°ΠΉ ΠΏΠΎΠ½ΡΡ‚Π½ΠΎΡΡ‚ΡŒ. ΠŸΡ€Π°Π²ΠΈΠ»ΠΎ касаСтся ΠΈ тСкста, ΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ². Π’Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ рассуТдСния ΠΈ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹Π΅ ΠΏΠΎΠΌΠ΅Ρ‚ΠΊΠΈ ΠΏΠΎ Ρ…ΠΎΠ΄Ρƒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π²Π΅Π΄ΠΈ Π½Π° английском β€” ΠΎΠ½ экономнСС ΠΏΠΎ Ρ‚ΠΎΠΊΠ΅Π½Π°ΠΌ (ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Π° Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Π² 1,5–2 Ρ€Π°Π·Π° большС). На русском остаётся всё, Ρ‡Ρ‚ΠΎ Π²ΠΈΠ΄ΠΈΡ‚ ΠΈ Ρ…Ρ€Π°Π½ΠΈΡ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚: ΠΈΡ‚ΠΎΠ³ΠΎΠ²Ρ‹Π΅ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ, Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹, ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Π² ΠΊΠΎΠ΄Π΅ ΠΈ сообщСния ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ². ## Agent skills ### Issue tracker Π—Π°Π΄Π°Ρ‡ΠΈ хранятся Π² отслСТиваСмых Git Markdown-Ρ„Π°ΠΉΠ»Π°Ρ… Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π²Π΅Ρ‚ΠΊΠΈ ΠΏΠΎΠ΄ `.scratch/`. ΠŸΠ΅Ρ€Π΅Π΄ `merge --no-ff` ΠΎΠ½ΠΈ ΡƒΠ΄Π°Π»ΡΡŽΡ‚ΡΡ. Π‘ΠΌ. `docs/agents/issue-tracker.md`. ### Triage labels Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ стандартныС названия состояний triage. Π‘ΠΌ. `docs/agents/triage-labels.md`. ### Domain docs Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ схСма single-context: ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ `CONTEXT.md` ΠΈ ΠΎΠ±Ρ‰ΠΈΠ΅ ADR Π² `docs/adr/`. Π‘ΠΌ. `docs/agents/domain.md`. ### Handoffs Записки для продолТСния Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² Π½ΠΎΠ²ΠΎΠΉ сСссии β€” `.scratch/handoffs/YYYYMMDD-HHMM-.md` (ΠΎΠ΄Π½ΠΎΡ€Π°Π·ΠΎΠ²Ρ‹Π΅, коммитятся, ΡƒΠ±ΠΎΡ€ΠΊΠ° best-effort; скилл `/handoff` ΠΏΠΈΡˆΠ΅Ρ‚ сюда).