Files
ai-setup/README.md
Виталий Никитенко 81a7b024ee feat: add home-configs with auto-deployed Claude skills
- Move GLOBAL_RULES.md to home-configs/ as single source of truth
- Add el-review and el-review-heavy skills for GitLab-style branch diff review
- Update ai-setup.sh to deploy skills to ~/.claude/skills/
- Update README and tests for new paths
2026-06-04 19:02:37 +07:00

8.5 KiB
Raw Permalink Blame History

AI Setup

Набор shell-лаунчеров для локальной установки и запуска нескольких AI coding CLI из единой точки входа.

Главный скрипт - ai-setup.sh. Он настраивает пользовательские директории, устанавливает глобальные правила агентов из GLOBAL_RULES.md и полностью перегенерирует standalone-скрипты в ~/.local/bin.

Что реально устанавливается и генерируется

ai-setup.sh работает с такими путями:

  • ~/.local/bin - standalone-лаунчеры и вспомогательные скрипты.
  • ~/.config/ai-setup - сохранённые ключи и глобальные правила.
  • ~/.npm-global - пользовательский npm prefix.

После запуска генерируются или обновляются:

  • ~/.local/bin/ai-claude
  • ~/.local/bin/ai-gpt
  • ~/.local/bin/ai-deepseek
  • ~/.local/bin/ai-kimi
  • ~/.local/bin/ai-gemini
  • ~/.local/bin/ai-api-helpers.sh
  • ~/.local/bin/claude-gpt-effort-proxy.py

Все генерируемые standalone-скрипты полностью перезаписываются текущей эталонной версией из ai-setup.sh. Старое содержимое не сливается и не дописывается.

Структура конфигов

Все конфиги, которые разворачиваются в домашнюю директорию, живут в папке home-configs/:

home-configs/
├── GLOBAL_RULES.md          # глобальные правила для всех агентов
└── claude/
    └── skills/              # кастомные скиллы для Claude Code
        ├── el-review/
        │   └── SKILL.md
        └── el-review-heavy/
            └── SKILL.md

При запуске ai-setup.sh:

  • GLOBAL_RULES.md копируется в ~/.config/ai-setup/global_rules.md и рассылается в нативные rule-файлы (~/.claude/CLAUDE.md, ~/.codex/AGENTS.md и т.д.)
  • Скиллы из home-configs/claude/skills/ копируются в ~/.claude/skills/

Также скрипт при отсутствии скачивает ~/.local/bin/claude-code-proxy, но текущий ai-gpt запускает нативный Codex CLI и не использует старую proxy-логику через ANTHROPIC_BASE_URL.

Установка

Запускать от обычного пользователя, не через sudo:

bash ai-setup.sh

Скрипт прямо запрещает запуск от root. При этом, если Node.js не найден, он может попытаться установить Node.js через apt-get или dnf и тогда попросит sudo уже внутри этого шага.

После установки, если shell ещё не видит новые команды:

exec bash

Требования

  • bash
  • curl
  • python3
  • Node.js/npm для npm-глобальных инструментов

Если Node.js отсутствует, скрипт пытается поставить его автоматически для систем с apt-get или dnf. Для остальных систем Node.js нужно поставить вручную.

Команды

  • ai-claude - запускает оригинальный Claude Code через claude.
  • ai-gpt - запускает нативный OpenAI Codex CLI, при отсутствии пытается поставить его через https://chatgpt.com/codex/install.sh.
  • ai-deepseek - запускает Claude Code через DeepSeek Anthropic-compatible API, проверяет и сохраняет DeepSeek API key.
  • ai-kimi - запускает Claude Code через официальный Kimi Code API (https://api.kimi.com/coding/), проверяет и сохраняет Kimi API key.
  • ai-gemini - запускает нативный Antigravity CLI agy, при отсутствии пытается поставить его через https://antigravity.google/cli/install.sh.

Для ai-gemini скрипт в конце отдельно предупреждает использовать отдельный Google-аккаунт.

Ключи и конфиги

  • DeepSeek key хранится в ~/.config/ai-setup/deepseek_key с правами 600.
  • Kimi key хранится в ~/.config/ai-setup/kimi_key с правами 600.
  • Исходник глобальных правил лежит в home-configs/GLOBAL_RULES.md.
  • При запуске глобальные правила пишутся в ~/.config/ai-setup/global_rules.md.

При запуске ai-setup.sh сразу обновляются native rule-файлы:

  • ~/.codex/AGENTS.md
  • ~/.kimi-code/AGENTS.md
  • ~/.claude/CLAUDE.md
  • ~/.gemini/GEMINI.md

Лаунчеры дополнительно обновляют эти файлы через helper _build_ai_sys_prompt при своём запуске.

В native rule-файлы попадают только глобальные правила. Полный prompt с проектными .md используется в ai-claude, ai-deepseek и ai-gemini; ai-gpt и ai-kimi полагаются на native rule-файлы своих CLI.

Права запуска агентов

Лаунчеры запускают CLI в максимально свободном режиме:

  • ai-gpt использует --dangerously-bypass-approvals-and-sandbox.
  • ai-claude, ai-deepseek, ai-kimi и ai-gemini используют --dangerously-skip-permissions.

Это удобно для локального coding workflow, но это не sandbox для недоверенного кода.

Правила агентов

Действуют правила Карпати как есть: английский блок из GLOBAL_RULES.md устанавливается в ~/.config/ai-setup/global_rules.md без перевода и смысловых правок.

Кратко правила Карпати:

  1. Think Before Coding - не гадать, явно проговаривать допущения, варианты и неясности.
  2. Simplicity First - писать минимальный код без speculative features и лишней конфигурируемости.
  3. Surgical Changes - трогать только нужное, не рефакторить соседний код, чистить только свои следы.
  4. Goal-Driven Execution - формулировать проверяемую цель и доводить работу до верификации.

Пользовательские глобальные правила:

  1. Всегда отвечать по-русски, на "ты", дружелюбно и как живой программист.
  2. Не выполнять git commit без прямой и однозначной просьбы.
  3. Не выполнять git add без прямой просьбы, чтобы изменения оставались видны через обычный git diff.
  4. Использовать обычный дефис -, не em dash.
  5. В начале работы внимательно учитывать все проектные .md файлы.
  6. При повторяющихся инструкциях предлагать reusable skill, но создавать или менять skill-файлы только после явного согласия.

Правило этого проекта:

  1. При каждом запуске ai-setup.sh все генерируемые standalone-скрипты в ~/.local/bin должны полностью перезаписываться актуальными версиями. Merge и append старого содержимого запрещены.

Тесты

В репозитории есть shell-тесты:

bash tests/test_fixes.sh
bash test_isolated.sh

tests/test_fixes.sh проверяет структуру ai-setup.sh и синтаксис bash. test_isolated.sh проверяет автоустановочные URL для ai-gpt и ai-kimi через mock curl.