Руководство для участников проекта. Язык разработки — TypeScript, стек описан в
CLAUDE.md.
| GitHub | Роль |
|---|---|
| jackrescuer-gif | PO / Lead |
| St1tcher86 | Contributor |
git clone https://github.com/<org>/tasktime-mvp.git
cd tasktime-mvp
# Запуск инфраструктуры (PostgreSQL + Redis)
make setup
# Запуск в dev-режиме (backend :3000 + frontend :5173)
make devТестовые аккаунты: admin / manager / dev / viewer @tasktime.ru, пароль password123
- Node.js 20 LTS
- Docker + Docker Compose
- GitHub CLI:
brew install gh→gh auth login - (опционально) Claude Code CLI или Cursor
main ← защищённая ветка, только через PR
↑
├── claude/jack-<описание> jackrescuer-gif через Claude Code
├── cursor/jack-<описание> jackrescuer-gif через Cursor
├── claude/alex-<описание> St1tcher86 через Claude Code
├── cursor/alex-<описание> St1tcher86 через Cursor
└── fix/<описание> хотфикс (оба)
Правило: в имени ветки всегда твой идентификатор (jack или alex). Так сразу видно в GitHub, чья ветка.
git fetch origin
git checkout main
git rebase origin/main# Для jackrescuer-gif:
git checkout -b claude/jack-add-export-csv
# Для St1tcher86:
git checkout -b claude/alex-fix-timer-bug# Коммиты по логическим единицам, не по файлам
git add backend/src/modules/issues/
git commit -m "feat: добавить экспорт задач в CSV"Формат: <тип>: <описание>
Типы: feat fix chore docs refactor test
git push -u origin claude/jack-add-export-csvgh pr create \
--title "feat: экспорт задач в CSV" \
--body "Добавлен endpoint GET /api/issues/export и кнопка в UI" \
--reviewer St1tcher86 # или jackrescuer-gifGitHub автоматически подставит шаблон из .github/PULL_REQUEST_TEMPLATE.md.
- CI проверяет: TypeScript build + ESLint + тесты
- Ревьюер: оставляет комментарии или апрувит
- Если нужны правки — коммитишь в ту же ветку, PR обновляется автоматически
# Только после CI зелёного + аппрув
gh pr merge --squash --delete-branchgit fetch origin
git rebase origin/main
# Если конфликты:
# 1. Открой конфликтный файл, реши конфликт
# 2. git add <файл>
# 3. git rebase --continue
git push --force-with-lease # безопасный force-push только своей ветки
--force-with-leaseбезопаснее--force: падает если кто-то ещё пушил в эту ветку.
Claude Code автоматически создаёт worktree-ветки. Убедись, что в настройках CLAUDE.md прописан твой префикс.
# Проверь что ветка создаётся с правильным префиксом
git branch --show-current
# Должно быть: claude/jack-... или claude/alex-...Если имя ветки не содержит твой префикс — переименуй перед push:
git branch -m claude/alex-<описание>Перед началом работы в Cursor:
git checkout -b cursor/alex-<описание>Cursor не создаёт ветки сам — нужно создать вручную.
- Перед началом работы над модулем — сообщи в чат: «беру
backend/src/modules/issues/» - Ветка живёт ≤ 2 дней → меньше diverge с main
- PR ≤ 400 строк diff — легче ревьюить и меньше конфликтов
git rebase origin/main— конфликты появятся явно- Реши каждый конфликт в редакторе
git add <файл> && git rebase --continue- Если совсем запутался:
git rebase --abort→ обратись к коллеге
- Нет жёсткого правила — договариваемся в PR-комментариях
main— истина. Что смёрджено, то и правда.
Одноразовая настройка — выполняет jackrescuer-gif как владелец репо.
Settings → Branches → Add branch protection rule → Branch name pattern: main
Включить:
- Require a pull request before merging
- Require approvals: 1
- Require status checks to pass before merging
- Выбрать:
backend,frontend(из CI)
- Выбрать:
- Require branches to be up to date before merging
- Do not allow bypassing the above settings
При каждом push в claude/*, cursor/* и PR в main:
| Job | Что делает |
|---|---|
backend |
TypeScript build + ESLint + Vitest + Supertest |
frontend |
TypeScript build + ESLint + Vitest |
Локальная проверка перед push:
# Backend
cd backend && npm run build && npm run lint && npm test
# Frontend
cd frontend && npm run build && npm run lint && npm testtasktime-mvp/
├── backend/
│ └── src/modules/ # auth, users, projects, issues, boards, sprints, time, teams, admin
├── frontend/
│ └── src/pages/ # основные страницы UI
├── prisma/ # схема БД + миграции
├── .github/workflows/ # CI/CD
├── CLAUDE.md # контекст для AI-агентов
└── CONTRIBUTING.md # этот файл
make dev # запустить всё (frontend + backend + docker)
make backend # только backend
make frontend # только frontend
npx prisma studio # GUI для БД (localhost:5555)
npx prisma migrate dev --name <name> # новая миграция
gh pr list # список открытых PR
gh pr view # просмотр текущего PR
gh pr checks # статус CI для текущего PRПиши jackrescuer-gif в Telegram или открывай issue в репо.