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
|
||||
|
||||
# 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
|
||||
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