feat(opencode): добавлена конфигурация с gitignore, bashrc и скриптами

Зачем: настройка рабочего окружения для инструмента opencode с поддержкой conventional commits.
Что: созданы конфигурационные файлы, добавлен bashrc, gitignore, документация и skill для коммитов.
Проверка: git status, проверка наличия файлов в opencode/.config/.
This commit is contained in:
ddadmin committed 2026-02-21 18:28:21 +03:00
1 parent 8a6e6a1923
commit ab53f2501e
6 files changed
+267

No files matched your search

+24
View File
@@ -0,0 +1,24 @@
# Переменные окружения для dotfiles
## Opencode MCP конфигурация
Добавьте эти строки в `~/.custom_env`:
```bash
# Context7 API (https://context7.com)
# Используется для поиска документации библиотек
export CONTEXT7_API_KEY="your_context7_api_key_here"
# Z.AI API (https://z.ai)
# Используется для:
# - LLM доступа
# - Поиска в интернете (web-search-prime)
# - Чтения веб-страниц (web-reader)
# - Чтения GitHub репозиториев (zread)
export ZAI_API_KEY="your_zai_api_key_here"
```
## Как получить ключи
1. **Context7**: Зарегистрируйтесь на https://context7.com и получите API ключ
2. **Z.AI**: Зарегистрируйтесь на https://z.ai и создайте API ключ в настройках аккаунта
+5
View File
@@ -1 +1,6 @@
.DS_Store
# Opencode local files
opencode/.config/opencode/package.json
opencode/.config/opencode/node_modules/
opencode/.config/opencode/bun.lock
+113
View File
@@ -0,0 +1,113 @@
# Dotfiles
Персональные конфигурационные файлы для настройки рабочего окружения.
## 📦 Содержимое
### Bash
- **Файл:** `bash/.bashrc`
- Настройки shell с поддержкой NVM (Node.js), uv (Python), npm
- Кастомный двухстрочный prompt (загружается из `~/.bash_prompt`)
- Поддержка цветного вывода и автодополнения
### Tmux
- **Файл:** `tmux/.tmux.conf`
- Два префикса: `Ctrl+b` (стандартный) и `Ctrl+Space` (удобный)
- Визуальный стиль с синей цветовой схемой
- Vi-режим для копирования
- Горячие клавиши:
- `|` / `-` — разделение панелей
- `Alt+стрелки` — изменение размера панелей и переключение окон
- `r` — перезагрузка конфига
### Vim
- **Файл:** `vim/.vimrc`
- Минималистичная конфигурация без плагинов
- 2 пробела вместо табов (оптимально для YAML/XML)
- Поддержка мыши и подсветка поиска
- Leader key: `Space`
- `<Space>w` — сохранить
- `<Space>h` — убрать подсветку поиска
- `<Space>p` — вставка без форматирования
### Zed
- **Директория:** `zed/.config/zed/`
- Структура для конфигурации Zed редактора
### Opencode
- **Директория:** `opencode/.config/opencode/`
- Конфигурация AI-ассистента opencode с MCP-серверами:
- **context7** — документация библиотек
- **web-reader** — чтение веб-страниц
- **web-search-prime** — поиск в интернете
- **zread** — чтение GitHub репозиториев
- **playwright** — браузерная автоматизация
- Требует переменных окружения (см. `.env.example`)
## 🚀 Установка
### Ручная установка
```bash
# Bash
cp bash/.bashrc ~/
source ~/.bashrc
# Tmux
cp tmux/.tmux.conf ~/
tmux source-file ~/.tmux.conf
# Vim
cp vim/.vimrc ~/
# Zed
mkdir -p ~/.config/zed
cp zed/.config/zed/* ~/.config/zed/ 2>/dev/null || true
# Opencode
mkdir -p ~/.config/opencode
cp opencode/.config/opencode/* ~/.config/opencode/
```
### Stow (рекомендуется)
```bash
# Установка stow
sudo apt install stow
# Применение конфигов
cd /path/to/dotfiles
stow bash tmux vim zed opencode
```
## 🔧 Требования
- Linux (протестировано на Ubuntu)
- Bash 4.0+
- Tmux 2.0+
- Vim 8.0+
## 📝 Дополнительные файлы
Для полной настройки создайте:
- `~/.bash_prompt` — кастомный prompt
- `~/.custom_env` — переменные окружения
- `~/.bash_aliases` — персональные алиасы
## 🔑 Переменные окружения
Создайте файл `~/.custom_env` и добавьте необходимые API ключи:
```bash
# Context7 API (https://context7.com)
export CONTEXT7_API_KEY="your_context7_api_key_here"
# Z.AI API для LLM, поиска и чтения (https://z.ai)
export ZAI_API_KEY="your_zai_api_key_here"
```
См. `.env.example` для шаблона.
## 📄 Лицензия
MIT — используйте свободно.
+4
View File
@@ -136,3 +136,7 @@ if [ -f ~/.custom_env ]; then
source ~/.custom_env
fi
# Opencode MCP конфигурация (добавьте в ~/.custom_env):
# export CONTEXT7_API_KEY="ваш_ключ_от_context7"
# export ZAI_API_KEY="ваш_ключ_от_z.ai"
+39
View File
@@ -0,0 +1,39 @@
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"context7": {
"type": "remote",
"url": "https://mcp.context7.com/mcp",
"headers": {
"CONTEXT7_API_KEY": "${env:CONTEXT7_API_KEY}"
},
"enabled": true
},
"web-reader": {
"type": "remote",
"url": "https://api.z.ai/api/mcp/web_reader/mcp",
"headers": {
"Authorization": "${env:ZAI_API_KEY}"
}
},
"web-search-prime": {
"type": "remote",
"url": "https://api.z.ai/api/mcp/web_search_prime/mcp",
"headers": {
"Authorization": "${env:ZAI_API_KEY}"
}
},
"zread": {
"type": "remote",
"url": "https://api.z.ai/api/mcp/zread/mcp",
"headers": {
"Authorization": "${env:ZAI_API_KEY}"
}
},
"playwright": {
"type": "local",
"command": ["npx", "-y", "@playwright/mcp@latest"],
"enabled": true
}
}
}
@@ -0,0 +1,82 @@
---
name: Conventional Commits Formatter
description: Навык для генерации стандартизированных git-коммитов через терминал без ошибок форматирования.
triggers:
- "сделай коммит"
- "закоммить"
- "commit"
- "зафиксируй"
---
# Твоя роль
Ты — педантичный Release Manager и Senior Engineer. Твоя единственная задача — анализировать изменения в коде (diff) и формировать строго структурированные git-коммиты, выполняя их через терминал.
# Алгоритм действий
1. Изучи измененные файлы через `git status` и `git diff`.
2. Определи язык: по умолчанию всегда используй Русский. Английский используй ТОЛЬКО если пользователь явно передал флаг `lang:en`.
3. Сформируй заголовок и тело коммита.
4. Выполни коммит в терминале, строго используя метод Heredoc (EOF).
# Правила заголовка
* Формат: `<type>(<scope>): <описание>`
* Длина: не более 72 символов.
* Типы (type): feat, fix, refactor, docs, test, chore, ci, perf.
* Грамматика (Русский): совершенный вид, прошедшее время (добавлено, исправлено).
* Грамматика (Английский): повелительное наклонение (add, fix, update). Без точки в конце.
* Технические термины (SQL, DWH, PostgreSQL, Airflow) не переводи.
# Шаблон тела коммита (Плоская структура)
Зачем: [Бизнес-причина или техническая необходимость]
Что: [Ключевые изменения]
Проверка: [Как проверить: команда, тест или скрипт]
# Строгое правило форматирования (Анти-экранирование)
КАТЕГОРИЧЕСКИ ЗАПРЕЩЕНО использовать литералы `\n`, `\r`, `\t` в тексте коммита. Для разделения строк используй ТОЛЬКО реальные переносы (пустые строки) внутри блока Heredoc.
НЕПРАВИЛЬНО:
Зачем: текст.\nЧто: текст.
ПРАВИЛЬНО:
Зачем: текст.
Что: текст.
# Правила выполнения команд
ЗАПРЕЩЕНО использовать флаги `-m`. РАЗРЕШЕНО использовать только формат передачи через Heredoc:
git commit -F- <<'EOF'
<type>(<scope>): <описание>
Зачем: <текст>
Что: <текст>
Проверка: <текст>
EOF
# Идеальные примеры
Пример 1 (Русский, новая фича):
git commit -F- <<'EOF'
feat(sql): добавлен скрипт валидации данных для DWH слоя
Зачем: необходима проверка целостности и уникальности перед загрузкой в хранилище.
Что: создан файл 04_validation.sql, добавлены проверки на NULL.
Проверка: psql -f dwh-modeling/sql/04_validation.sql.
EOF
Пример 2 (Русский, багфикс):
git commit -F- <<'EOF'
fix(airflow): увеличен таймаут подключения ClickHouse
Зачем: DAG падал с ошибкой таймаута при ночной пакетной загрузке.
Что: параметр conn_timeout изменен с 30 до 120 секунд.
Проверка: тестовый запуск таски в Airflow UI.
EOF
Пример 3 (Английский, lang:en):
git commit -F- <<'EOF'
refactor(docker): optimize postgres-bookings image size
Зачем: reduce deployment time and registry storage costs.
Что: switched base image to alpine, removed intermediate build artifacts.
Проверка: docker build and check image size.
EOF