feat(skills): add jira-workflow, repo-map, docs-map, go-standards
- descriptions state WHEN each skill applies - jira-workflow ships curl scripts reading TRACKER_URL/JIRA_TOKEN from env, no hardcoded secrets/URLs - repo-map/docs-map defer values to session corporate context; company specifics left as TODO - go-standards uses realistic Go defaults, company-specific bits marked TODO
This commit is contained in:
@@ -0,0 +1,59 @@
|
||||
---
|
||||
name: go-standards
|
||||
description: Используй при написании, ревью и проверке кода на Go в наших сервисах — структура сервиса, запуск линтеров и тестов, формат коммитов и merge request. Применяй всегда, когда пишешь или правишь Go-код, готовишь MR, а также в командах /bugfix, /feature и /review.
|
||||
---
|
||||
|
||||
# Стандарты Go
|
||||
|
||||
Наш основной стек — **Go**. Скилл описывает, как писать, проверять и оформлять код.
|
||||
Реалистичные общепринятые дефолты приведены ниже; то, что специфично для компании,
|
||||
помечено `TODO` — уточняй, не выдумывай.
|
||||
|
||||
## Структура сервиса
|
||||
|
||||
Ориентир (уточняется под компанию):
|
||||
|
||||
```
|
||||
cmd/<service>/main.go # точка входа
|
||||
internal/ # приватный код сервиса
|
||||
<domain>/ # доменные пакеты
|
||||
pkg/ # переиспользуемый публичный код (если есть)
|
||||
api/ # спецификации API (proto/openapi)
|
||||
```
|
||||
|
||||
<!-- TODO: заполнить реальной эталонной структурой сервиса компании -->
|
||||
|
||||
## Линтеры
|
||||
|
||||
- Форматирование: `gofmt -l -w .` и `goimports -w .` — код должен быть отформатирован.
|
||||
- Статический анализ: `go vet ./...`.
|
||||
- Основной линтер: **golangci-lint** — `golangci-lint run ./...`.
|
||||
Набор линтеров задаётся в `.golangci.yml` в корне репозитория.
|
||||
<!-- TODO: указать корпоративный .golangci.yml / общий пресет, если он есть -->
|
||||
|
||||
## Тесты
|
||||
|
||||
- Прогон всех тестов: `go test ./...`.
|
||||
- С гонками и покрытием: `go test -race -cover ./...`.
|
||||
- Требования к покрытию и обязательные виды тестов: `<!-- TODO: пороги покрытия, интеграционные тесты -->`.
|
||||
- Именование: `TestXxx`, табличные тесты приветствуются.
|
||||
|
||||
## Коммиты и MR
|
||||
|
||||
- **Формат коммитов:** `<!-- TODO: например Conventional Commits (feat:, fix:, chore:) или свой -->`.
|
||||
- **Ветки:** от основной, именование `<!-- TODO: напр. feature/PROJ-123-short-desc -->`.
|
||||
- **MR обязателен** (см. корпоративные правила из контекста сессии). Прямой push в защищённые
|
||||
ветки запрещён — расширение `permission-gate` дополнительно переспросит.
|
||||
- **Описание MR:** что и зачем изменено, как проверено (линтеры + тесты), ссылка на тикет
|
||||
(см. скилл `jira-workflow`).
|
||||
- Перед MR прогони линтеры и тесты — всё должно быть зелёным.
|
||||
|
||||
## Чек-лист перед MR
|
||||
|
||||
- [ ] `gofmt`/`goimports` без изменений
|
||||
- [ ] `go vet ./...` чисто
|
||||
- [ ] `golangci-lint run ./...` чисто
|
||||
- [ ] `go test ./...` (или `-race`) зелёные
|
||||
- [ ] есть тесты на новую логику / фикс
|
||||
- [ ] нет секретов и закоммиченных `.env`
|
||||
- [ ] описание MR со ссылкой на тикет
|
||||
Reference in New Issue
Block a user