Files
pi-kit/skills/rust-standards/SKILL.md
Aleksey Shakhmatov c2cdf40cad docs(skills): fill cross-cutting Git/Jira conventions
- commit format: Conventional Commits (all six *-standards)
- branches/deploy: feature branches from main; release-* -> stage, tag v* -> prod (all six *-standards)
- jira-workflow: statuses To Do -> In Progress -> Review -> Done; who moves status when; MR link + status transition policy; comment guidance
- key-prefix list stays TODO (unknown project prefixes)

Verified: no leftover commit-format TODOs, deploy convention in all 6, skills still load via pi.
2026-07-16 13:10:34 +03:00

64 lines
3.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
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
- **Формат коммитов:** Conventional Commits (`feat:`, `fix:`, `chore:`, `docs:`, `refactor:`, `test:` …).
- **Ветки и деплой:** фича-ветки — от `main` (в имя ветки желательно включать ключ тикета).
Деплой управляется ветками/тегами: ветка `release-*` → раскатка на **stage**; тег `v*` → раскатка в **прод**.
Ветки `release-*` и теги `v*` без необходимости не пушь — `permission-gate` переспросит.
- **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 со ссылкой на тикет