Участие в проекте¶
Мы любим вклад сообщества! Вот как помочь сделать opencode_initializer лучше.
Кодекс поведения¶
Проект следует Contributor Covenant 2.1. Пожалуйста, прочитайте перед участием.
Сообщение об ошибках¶
- Проверьте существующие issues
- Используйте шаблон баг-репорта
- Укажите: ОС, версию оболочки, версию установщика, полный вывод ошибки
Предложения функций¶
- Проверьте существующие issues
- Используйте шаблон запроса функции
- Опишите: проблему, предлагаемое решение, рассмотренные альтернативы
Pull Request'ы¶
Настройка¶
Процесс разработки¶
- Создайте ветку:
git checkout -b feat/my-feature - Внесите изменения: скрипты, тесты, документация
- Тестируйте: запустите набор тестов
- Линтинг: ShellCheck и shfmt
- Коммит: следуйте Conventional Commits
- Пуш:
git push origin feat/my-feature - PR: создайте pull request на GitHub
Стиль кода¶
| Правило | Пример |
|---|---|
| 2 пробела для отступа | local var="value" |
| snake_case переменные | my_variable, SCRIPT_DIR для глобальных |
[[ ]] вместо [ ] | if [[ -f "$file" ]]; then |
$(cmd) вместо бэктиков | result=$(command) |
local для всех переменных функций | local name="$1" |
| Кавычки вокруг переменных | "$HOME", не $HOME |
| Без захардкоженных секретов | Используйте CLI аргументы или env vars |
set -euo pipefail | В начале каждого скрипта |
set -o inherit_errexit | В setup.sh |
Тестирование¶
# Полный набор тестов
bash tests/run_tests.sh
# Только проверка синтаксиса
bash -n setup.sh
for f in src/lib/*.sh src/modes/*.sh; do bash -n "$f"; done
# ShellCheck
shellcheck setup.sh src/lib/*.sh src/modes/*.sh
# Проверка форматирования
shfmt -d -i 2 -ci setup.sh src/lib/*.sh src/modes/*.sh
Pre-commit хуки¶
Автоматически запускает ShellCheck, shfmt и gitleaks при каждом коммите.
Документация¶
Документация собирается с помощью MkDocs Material:
source .venv-docs/bin/activate
mkdocs serve # Локальный сервер
mkdocs build # Сборка
mkdocs gh-deploy # Деплой (только мейнтейнеры)
Чеклист PR¶
- Код следует стилю (2 пробела, snake_case)
- Нет захардкоженных секретов
- Новые функции покрыты тестами
-
bash -nпроходит на всех изменённых файлах -
bash tests/run_tests.shпроходит -
AGENTS.mdобновлён при изменениях архитектуры - Коммиты в формате conventional commits
Безопасность¶
- Никогда не коммитьте секреты. Используйте CLI аргументы или переменные окружения.
- Сообщайте об уязвимостях приватно: см. SECURITY.md
- gitleaks pre-commit хук ловит распространённые паттерны секретов
Структура проекта¶
opencode_initializer/
├── setup.sh # Оркестратор (561 строка)
├── dev.sh # CLI инструмент
├── opencode.json # AI конфиг
├── mkdocs.yml # Конфиг документации
├── src/
│ ├── lib/ # 39 модулей
│ └── modes/ # 5 режимных скриптов
├── tests/ # Наборы тестов
├── docs/ # Документация (этот сайт)
├── migrations/ # Миграции
├── scripts/ # Утилиты
├── .github/ # CI + шаблоны
└── AGENTS.md # Инструкции для AI
Признание¶
Контрибьюторы отмечены в графе контрибьюторов GitHub и в заметках к релизам.
Спасибо за вклад!
См. также¶
- Справочник — CLI и схема opencode.json
- MCP, LSP и плагины — каталог компонентов
- FAQ — частые вопросы
- Архитектура — C4-диаграммы и проектные решения