Files
samreshu_docs/principles/git-workflow.md
Anton 99cd8ae727 docs: add full project documentation
- Architecture: overview, 7 ADR, tech stack
- Principles: code-style, git-workflow, security
- API contracts: auth, profile, tests, admin endpoints
- Database schema: tables, relationships, indexes
- LLM strategy: prompts, fallback, validation, Qwen 2.5 14B
- Onboarding: setup, Docker, .env template
- Progress: roadmap, changelog
- Agents: context, backend instructions

Made-with: Cursor
2026-03-04 12:07:17 +03:00

2.7 KiB
Raw Permalink Blame History

Git workflow

Ветки

main              стабильная ветка, всегда deployable
dev               текущая разработка (merge из feature-веток)
feat/<name>       новый функционал
fix/<name>        исправление бага
refactor/<name>   рефакторинг без изменения поведения
chore/<name>      инфраструктура, зависимости, CI
docs/<name>       документация

Правила

  • main защищён — прямые коммиты запрещены
  • Все изменения через Pull Request из feature-ветки в dev
  • Merge devmain при готовности к релизу
  • Feature-ветка живёт не дольше 3-5 дней

Conventional commits

Формат: type: description

Тип Когда
feat Новый функционал
fix Исправление бага
refactor Рефакторинг без изменения поведения
chore Зависимости, CI, конфигурация
docs Документация
test Добавление/изменение тестов
style Форматирование (без изменения логики)

Примеры:

feat: add LLM question generation endpoint
fix: correct test score calculation for multiple-choice
chore: update drizzle-orm to 0.35
docs: add LLM module description
refactor: extract subscription middleware
test: add auth service unit tests

Husky + lint-staged

npm install -D husky lint-staged
npx husky init
// package.json
{
  "lint-staged": {
    "*.{ts,js}": ["eslint --fix", "prettier --write"],
    "*.{json,md}": ["prettier --write"]
  }
}
# .husky/pre-commit
npx lint-staged

Commitlint

npm install -D @commitlint/cli @commitlint/config-conventional
// commitlint.config.ts
export default {
  extends: ['@commitlint/config-conventional'],
}
# .husky/commit-msg
npx --no -- commitlint --edit $1

Pull Request

Чеклист перед PR

  • Линтер проходит без ошибок
  • Тесты проходят
  • Нет console.log (только logger)
  • Нет any без обоснования
  • Коммиты соответствуют conventional commits

Описание PR

## Что сделано
<краткое описание изменений>

## Как тестировать
<шаги для проверки>

## Связанные задачи
<ссылки на issues если есть>