feat(skills): add rust-standards, typescript-standards, python-standards
- mirror go-standards: structure, linters/formatters, tests, commits/MR, pre-MR checklist - ecosystem defaults (clippy/rustfmt, eslint/prettier/tsc, ruff/mypy/pytest); company specifics marked TODO - verified all four *-standards skills load via pi RPC get_commands
This commit is contained in:
@@ -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/<package>/ # src-layout
|
||||||
|
__init__.py
|
||||||
|
tests/
|
||||||
|
```
|
||||||
|
|
||||||
|
<!-- TODO: заполнить реальной эталонной структурой / шаблоном (менеджер: poetry/uv/pip-tools?) -->
|
||||||
|
|
||||||
|
## Линтеры и форматирование
|
||||||
|
|
||||||
|
- Линтер + форматтер: **ruff** — `ruff check .` и `ruff format --check .`
|
||||||
|
(локально `ruff format .`). Конфиг — в `pyproject.toml` (`[tool.ruff]`).
|
||||||
|
- Типы: **mypy** — `mypy .` (конфиг `[tool.mypy]`).
|
||||||
|
<!-- TODO: корпоративный набор правил ruff/mypy (строгость), если есть -->
|
||||||
|
|
||||||
|
## Тесты
|
||||||
|
|
||||||
|
- Прогон: **pytest** — `pytest` (с покрытием — `pytest --cov`).
|
||||||
|
- Требования к покрытию / обязательные виды тестов: `<!-- TODO -->`.
|
||||||
|
|
||||||
|
## Окружение и зависимости
|
||||||
|
|
||||||
|
- Менеджер зависимостей и lock: `<!-- TODO: poetry / uv / pip-tools -->` — lock коммитим.
|
||||||
|
- Виртуальное окружение — обязательно; глобально пакеты не ставим.
|
||||||
|
|
||||||
|
## Коммиты и MR
|
||||||
|
|
||||||
|
- **Формат коммитов:** `<!-- TODO: например Conventional Commits или свой -->`.
|
||||||
|
- **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 со ссылкой на тикет
|
||||||
@@ -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
|
||||||
|
<module>/
|
||||||
|
tests/ # интеграционные тесты
|
||||||
|
benches/ # бенчмарки (если есть)
|
||||||
|
```
|
||||||
|
|
||||||
|
<!-- TODO: заполнить реальной эталонной структурой crate/workspace компании -->
|
||||||
|
|
||||||
|
## Линтеры и форматирование
|
||||||
|
|
||||||
|
- Форматирование: `cargo fmt --all` (проверка в CI — `cargo fmt --all -- --check`).
|
||||||
|
- Линтер: **clippy** — `cargo clippy --all-targets --all-features -- -D warnings`.
|
||||||
|
Настройки — в `clippy.toml` / атрибутах crate.
|
||||||
|
<!-- TODO: корпоративный набор clippy-lints, если есть -->
|
||||||
|
|
||||||
|
## Тесты
|
||||||
|
|
||||||
|
- Прогон: `cargo test --all-features`.
|
||||||
|
- Для workspace: `cargo test --workspace`.
|
||||||
|
- Требования к покрытию / обязательные виды тестов: `<!-- TODO -->`.
|
||||||
|
|
||||||
|
## Сборка и зависимости
|
||||||
|
|
||||||
|
- Сборка: `cargo build` (релиз — `cargo build --release`).
|
||||||
|
- Аудит зависимостей: `cargo audit` (если подключён).
|
||||||
|
- `Cargo.lock` коммитим для бинарников/сервисов.
|
||||||
|
|
||||||
|
## Коммиты и MR
|
||||||
|
|
||||||
|
- **Формат коммитов:** `<!-- TODO: например Conventional Commits или свой -->`.
|
||||||
|
- **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 со ссылкой на тикет
|
||||||
@@ -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
|
||||||
|
<feature>/
|
||||||
|
test/ | *.test.ts # рядом с кодом или в test/
|
||||||
|
```
|
||||||
|
|
||||||
|
<!-- TODO: заполнить реальной эталонной структурой / шаблоном проекта (менеджер пакетов: npm/pnpm/yarn?) -->
|
||||||
|
|
||||||
|
## Линтеры и форматирование
|
||||||
|
|
||||||
|
- Типы: `tsc --noEmit` — без ошибок типов.
|
||||||
|
- Линтер: **ESLint** — `eslint .` (конфиг `.eslintrc*` / `eslint.config.*`).
|
||||||
|
- Форматирование: **Prettier** — `prettier --check .` (в CI), `prettier --write .` локально.
|
||||||
|
<!-- TODO: корпоративный конфиг eslint/prettier (общий пресет?), если есть -->
|
||||||
|
|
||||||
|
## Тесты
|
||||||
|
|
||||||
|
- Прогон: `<!-- TODO: vitest / jest / node --test -->` — напр. `npm test`.
|
||||||
|
- Требования к покрытию: `<!-- TODO -->`.
|
||||||
|
|
||||||
|
## Сборка и зависимости
|
||||||
|
|
||||||
|
- Сборка: `npm run build` (или скрипт проекта).
|
||||||
|
- Пакетный менеджер и lock-файл: `<!-- TODO: npm/pnpm/yarn -->` — lock коммитим.
|
||||||
|
|
||||||
|
## Коммиты и MR
|
||||||
|
|
||||||
|
- **Формат коммитов:** `<!-- TODO: например Conventional Commits или свой -->`.
|
||||||
|
- **MR обязателен** (см. корпоративные правила из контекста сессии). Прямой push в защищённые
|
||||||
|
ветки запрещён — расширение `permission-gate` дополнительно переспросит.
|
||||||
|
- Перед MR: `tsc --noEmit`, `eslint .`, `prettier --check .`, тесты — всё зелёное.
|
||||||
|
- Описание MR: что и зачем, как проверено, ссылка на тикет (скилл `jira-workflow`).
|
||||||
|
|
||||||
|
## Чек-лист перед MR
|
||||||
|
|
||||||
|
- [ ] `tsc --noEmit` без ошибок
|
||||||
|
- [ ] `eslint .` чисто
|
||||||
|
- [ ] `prettier --check .` чисто
|
||||||
|
- [ ] тесты зелёные, есть тесты на новую логику / фикс
|
||||||
|
- [ ] нет секретов и закоммиченных `.env`
|
||||||
|
- [ ] описание MR со ссылкой на тикет
|
||||||
|
|
||||||
|
> Для UI-задач полезен скилл `frontend-design` (ставится по профилю при установке).
|
||||||
Reference in New Issue
Block a user