Files
dotfiles/AGENTS.md
T
ddadmin f2d303c233 docs: add .scratch/ workflow and sub-agent delegation policies
- Зачем:
  - зафиксировать правила работы с .scratch/ (рабочая зона) и делегирования субагентов.
- Что:
  - описано, что .scratch/ коммитится, но не попадает в master.
  - добавлена процедура слияния фиче-ветки (git rm .scratch + --no-ff).
  - описаны принципы делегирования объёмной и механической работы субагентам.
- Проверка:
  - cat AGENTS.md
2026-07-20 04:27:56 -04:00

7.9 KiB

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 <package_name> 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.

⚠️ 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-<slug>.md (одноразовые, коммитятся, уборка best-effort; скилл /handoff пишет сюда).

.scratch/ — рабочая зона; в master не переносится

Весь .scratch/ — заметки по ходу дела: handoffs, PRD фич, нарезка задач. Коммитится (не в .gitignore), чтобы версионировать и передавать между сессиями, но в master ей делать нечего — это процесс, а не продукт.

Долговечное знание держим вне .scratch/ (в docs/, CONTEXT.md). Прежде чем сливать фиче-ветку, убедись, что долговечная часть уже вынесена туда.

Слияние фиче-ветки в master:

  1. Последним коммитом ветки — git rm -r .scratch (chore: убрать рабочие заметки перед слиянием в master).
  2. git merge --no-ff в master.

--no-ff тянет все коммиты ветки в историю master, поэтому удалённый .scratch/ остаётся достижим из merge-коммита и достаётся из истории в любой момент. Ничего не теряется — тег или архив не нужны.

Субагенты и экономия контекста

Объёмную и механическую работу делегируем субагентам (Sonnet или аналогичная, в зависимости от сложности задачи), чтобы не засорять контекст основной сессии: проверки (реперы/линт/валидация), пакетные и файловые операции, отладка и прочее. Субагент сам читает «шумный» ввод-вывод и возвращает только результат.

  • Мелочь делегировать не стоит — кроме случая, когда она даёт объёмный вывод: пусть субагент прочитает его у себя и вернёт выжимку.