diff --git a/skills/python-standards/SKILL.md b/skills/python-standards/SKILL.md new file mode 100644 index 0000000..64899f3 --- /dev/null +++ b/skills/python-standards/SKILL.md @@ -0,0 +1,56 @@ +--- +name: python-standards +description: Используй при написании, ревью и проверке кода на Python в наших сервисах — структура проекта, запуск ruff/mypy, тесты, формат коммитов и merge request. Применяй всегда, когда пишешь или правишь Python-код, готовишь MR, а также в командах /bugfix, /feature и /review для Python-репозиториев. +--- + +# Стандарты Python + +Один из наших языков — **Python**. Ниже — общепринятые дефолты экосистемы; специфичное для +компании помечено `TODO` — уточняй, не выдумывай. + +## Структура + +Ориентир (уточняется под компанию): + +``` +pyproject.toml +src// # src-layout + __init__.py +tests/ +``` + + + +## Линтеры и форматирование + +- Линтер + форматтер: **ruff** — `ruff check .` и `ruff format --check .` + (локально `ruff format .`). Конфиг — в `pyproject.toml` (`[tool.ruff]`). +- Типы: **mypy** — `mypy .` (конфиг `[tool.mypy]`). + + +## Тесты + +- Прогон: **pytest** — `pytest` (с покрытием — `pytest --cov`). +- Требования к покрытию / обязательные виды тестов: ``. + +## Окружение и зависимости + +- Менеджер зависимостей и lock: `` — lock коммитим. +- Виртуальное окружение — обязательно; глобально пакеты не ставим. + +## Коммиты и MR + +- **Формат коммитов:** ``. +- **MR обязателен** (см. корпоративные правила из контекста сессии). Прямой push в защищённые + ветки запрещён — расширение `permission-gate` дополнительно переспросит. +- Перед MR: `ruff check .`, `ruff format --check .`, `mypy .`, `pytest` — всё зелёное. +- Описание MR: что и зачем, как проверено, ссылка на тикет (скилл `jira-workflow`). + +## Чек-лист перед MR + +- [ ] `ruff check .` чисто +- [ ] `ruff format --check .` чисто +- [ ] `mypy .` чисто +- [ ] `pytest` зелёные, есть тесты на новую логику / фикс +- [ ] нет секретов и закоммиченных `.env` +- [ ] описание MR со ссылкой на тикет diff --git a/skills/rust-standards/SKILL.md b/skills/rust-standards/SKILL.md new file mode 100644 index 0000000..1899286 --- /dev/null +++ b/skills/rust-standards/SKILL.md @@ -0,0 +1,60 @@ +--- +name: rust-standards +description: Используй при написании, ревью и проверке кода на Rust в наших сервисах — структура crate/workspace, запуск clippy/rustfmt, тесты, формат коммитов и merge request. Применяй всегда, когда пишешь или правишь Rust-код, готовишь MR, а также в командах /bugfix, /feature и /review для Rust-репозиториев. +--- + +# Стандарты Rust + +Один из наших языков — **Rust**. Ниже — общепринятые дефолты экосистемы; специфичное для +компании помечено `TODO` — уточняй, не выдумывай. + +## Структура + +Ориентир (уточняется под компанию): + +``` +Cargo.toml # crate или [workspace] +src/ + main.rs / lib.rs + / +tests/ # интеграционные тесты +benches/ # бенчмарки (если есть) +``` + + + +## Линтеры и форматирование + +- Форматирование: `cargo fmt --all` (проверка в CI — `cargo fmt --all -- --check`). +- Линтер: **clippy** — `cargo clippy --all-targets --all-features -- -D warnings`. + Настройки — в `clippy.toml` / атрибутах crate. + + +## Тесты + +- Прогон: `cargo test --all-features`. +- Для workspace: `cargo test --workspace`. +- Требования к покрытию / обязательные виды тестов: ``. + +## Сборка и зависимости + +- Сборка: `cargo build` (релиз — `cargo build --release`). +- Аудит зависимостей: `cargo audit` (если подключён). +- `Cargo.lock` коммитим для бинарников/сервисов. + +## Коммиты и MR + +- **Формат коммитов:** ``. +- **MR обязателен** (см. корпоративные правила из контекста сессии). Прямой push в защищённые + ветки запрещён — расширение `permission-gate` дополнительно переспросит. +- Перед MR: `cargo fmt --check`, `cargo clippy -D warnings`, `cargo test` — всё зелёное. +- Описание MR: что и зачем, как проверено, ссылка на тикет (скилл `jira-workflow`). + +## Чек-лист перед MR + +- [ ] `cargo fmt --all -- --check` чисто +- [ ] `cargo clippy --all-targets --all-features -- -D warnings` чисто +- [ ] `cargo test` зелёные +- [ ] есть тесты на новую логику / фикс +- [ ] нет секретов и закоммиченных `.env` +- [ ] описание MR со ссылкой на тикет diff --git a/skills/typescript-standards/SKILL.md b/skills/typescript-standards/SKILL.md new file mode 100644 index 0000000..21bc037 --- /dev/null +++ b/skills/typescript-standards/SKILL.md @@ -0,0 +1,60 @@ +--- +name: typescript-standards +description: Используй при написании, ревью и проверке кода на TypeScript/JavaScript в наших проектах — структура пакета, запуск eslint/prettier/tsc, тесты, формат коммитов и merge request. Применяй всегда, когда пишешь или правишь TS/JS-код, готовишь MR, а также в командах /bugfix, /feature и /review для фронтенд/Node-репозиториев. +--- + +# Стандарты TypeScript + +Один из наших языков — **TypeScript** (фронтенд и Node-сервисы). Ниже — общепринятые дефолты +экосистемы; специфичное для компании помечено `TODO` — уточняй, не выдумывай. + +## Структура + +Ориентир (уточняется под компанию): + +``` +package.json +tsconfig.json +src/ + index.ts + / +test/ | *.test.ts # рядом с кодом или в test/ +``` + + + +## Линтеры и форматирование + +- Типы: `tsc --noEmit` — без ошибок типов. +- Линтер: **ESLint** — `eslint .` (конфиг `.eslintrc*` / `eslint.config.*`). +- Форматирование: **Prettier** — `prettier --check .` (в CI), `prettier --write .` локально. + + +## Тесты + +- Прогон: `` — напр. `npm test`. +- Требования к покрытию: ``. + +## Сборка и зависимости + +- Сборка: `npm run build` (или скрипт проекта). +- Пакетный менеджер и lock-файл: `` — lock коммитим. + +## Коммиты и MR + +- **Формат коммитов:** ``. +- **MR обязателен** (см. корпоративные правила из контекста сессии). Прямой push в защищённые + ветки запрещён — расширение `permission-gate` дополнительно переспросит. +- Перед MR: `tsc --noEmit`, `eslint .`, `prettier --check .`, тесты — всё зелёное. +- Описание MR: что и зачем, как проверено, ссылка на тикет (скилл `jira-workflow`). + +## Чек-лист перед MR + +- [ ] `tsc --noEmit` без ошибок +- [ ] `eslint .` чисто +- [ ] `prettier --check .` чисто +- [ ] тесты зелёные, есть тесты на новую логику / фикс +- [ ] нет секретов и закоммиченных `.env` +- [ ] описание MR со ссылкой на тикет + +> Для UI-задач полезен скилл `frontend-design` (ставится по профилю при установке).