feat(opencode): добавлена конфигурация с gitignore, bashrc и скриптами
Зачем: настройка рабочего окружения для инструмента opencode с поддержкой conventional commits. Что: созданы конфигурационные файлы, добавлен bashrc, gitignore, документация и skill для коммитов. Проверка: git status, проверка наличия файлов в opencode/.config/.
This commit is contained in:
1 parent
8a6e6a1923
commit
ab53f2501e
6 files changed
+267
No files matched your search
@@ -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 ключ в настройках аккаунта
|
||||||
@@ -1 +1,6 @@
|
|||||||
.DS_Store
|
.DS_Store
|
||||||
|
|
||||||
|
# Opencode local files
|
||||||
|
opencode/.config/opencode/package.json
|
||||||
|
opencode/.config/opencode/node_modules/
|
||||||
|
opencode/.config/opencode/bun.lock
|
||||||
@@ -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 — используйте свободно.
|
||||||
@@ -136,3 +136,7 @@ if [ -f ~/.custom_env ]; then
|
|||||||
source ~/.custom_env
|
source ~/.custom_env
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Opencode MCP конфигурация (добавьте в ~/.custom_env):
|
||||||
|
# export CONTEXT7_API_KEY="ваш_ключ_от_context7"
|
||||||
|
# export ZAI_API_KEY="ваш_ключ_от_z.ai"
|
||||||
|
|
||||||
@@ -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
|
||||||
|
|
||||||
Reference in new issue
Block a user