Добавить Cursor rules, init-cursor и скрипты настройки git remotes.
Канонический источник для клонирования в $HOME\CursorRules на новых ПК.
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
---
|
||||
description: Перед работой — прочитай все применимые rules
|
||||
alwaysApply: true
|
||||
---
|
||||
|
||||
# Всегда читай правила
|
||||
|
||||
Перед **любой** задачей (код, git, push, релиз, ответ пользователю):
|
||||
|
||||
1. **Прочитай все применимые rules** — user rules, workspace `.cursor/rules/`, особенно с `alwaysApply: true`.
|
||||
2. **Не начинай работу**, пока не понял ограничения из rules (git, Cursor в репо, version-bump, язык ответа и т.д.).
|
||||
3. **При конфликте** запроса пользователя и rule — остановись, объясни конфликт, спроси подтверждение.
|
||||
|
||||
## Обязательные проверки по типу задачи
|
||||
|
||||
| Задача | Перед действием прочитай / проверь |
|
||||
|--------|-------------------------------------|
|
||||
| `git commit` / `push` | `no-cursor-in-repositories` — нет `.cursor/` в staged; `.gitignore` содержит `.cursor/` |
|
||||
| Push в `home` | `gitea-home-api` — сначала API, потом SSH push |
|
||||
| Bump версии | `version-bump` (+ `version-bump-rdp` / `version-bump-ssh` для агентских мониторов) |
|
||||
| Коммит | `git log -1 --format=fuller` — нет `cursoragent`, `Co-authored-by: Cursor` |
|
||||
|
||||
## Если rule нарушен
|
||||
|
||||
- **Не push**, не «доделывай быстрее».
|
||||
- Исправь (amend / filter / commit-tree), затем снова проверь лог.
|
||||
|
||||
Правила важнее скорости выполнения задачи.
|
||||
@@ -0,0 +1,24 @@
|
||||
---
|
||||
description: Git, контекст файлов и формат ответов
|
||||
alwaysApply: true
|
||||
---
|
||||
|
||||
# Контекст и дисциплина
|
||||
|
||||
## Git
|
||||
|
||||
- **Не** `git commit` / **не** `git push` без явной команды пользователя.
|
||||
- Перед commit: покажи `git diff --stat`, дождись подтверждения.
|
||||
- Conventional Commits: `feat:`, `fix:`, `docs:`, `refactor:`.
|
||||
|
||||
## Контекст
|
||||
|
||||
- Файлы: `@`, открытые вкладки, явные пути — не сканируй весь репо без запроса.
|
||||
- Не грузи файлы >500 строк без необходимости.
|
||||
- Локальные копии; не качай пакеты/URL без ошибки сборки или явного запроса.
|
||||
|
||||
## Ответы
|
||||
|
||||
- Язык: **русский** (если пользователь не переключился).
|
||||
- По коду — diff/фрагменты, не дублируй неизменённые блоки.
|
||||
- Без воды, но достаточно полно для понимания (не обрезай сложные ответы до одной строки).
|
||||
@@ -0,0 +1,18 @@
|
||||
---
|
||||
description: Bump версии RDP/SSH агентов — иначе ПК не обновятся
|
||||
globs: **/Login_Monitor.ps1,**/Deploy-LoginMonitor.ps1,**/Sac-Client.ps1,**/ssh-monitor,**/sac-client.sh,**/update_ssh_monitor.sh
|
||||
alwaysApply: false
|
||||
---
|
||||
|
||||
# Версии агентских мониторов
|
||||
|
||||
Любая **существенная правка** без bump **не доедет** до компьютеров.
|
||||
|
||||
| Стек | Файлы | Поле / файл версии |
|
||||
|------|-------|-------------------|
|
||||
| RDP | `Login_Monitor.ps1`, `version.txt` | `$ScriptVersion` = `version.txt` |
|
||||
| SSH | `ssh-monitor`, `version.txt` | `SSH_MONITOR_VERSION` = `version.txt` |
|
||||
|
||||
Подробности: `version-bump-rdp.mdc`, `version-bump-ssh.mdc`.
|
||||
|
||||
**SAC backend:** `backend/app/version.py` (`APP_VERSION`) — отдельный релиз, на агенты ПК не влияет.
|
||||
@@ -0,0 +1,12 @@
|
||||
---
|
||||
description: Краткий C# без лишних токенов в выводе
|
||||
globs: **/*.cs
|
||||
alwaysApply: false
|
||||
---
|
||||
|
||||
# C# — компактный вывод
|
||||
|
||||
- File-scoped namespaces, pattern matching, target-typed `new()`, primary constructors где уместно.
|
||||
- Без XML-комментариев, `#region`, лишних `using`.
|
||||
- Без `Console.WriteLine` / debug-log, если задача не про логирование.
|
||||
- Expression-bodied members, где читаемо.
|
||||
@@ -0,0 +1,37 @@
|
||||
---
|
||||
description: Gitea home — репо через API, не вручную в вебе
|
||||
alwaysApply: true
|
||||
---
|
||||
|
||||
# Gitea home (papatramp)
|
||||
|
||||
При push в **`home`**, настройке remotes или первом заливе — **через Gitea API**. Не проси создать репо вручную при `Push to create is not enabled` / `Cannot find repository`.
|
||||
|
||||
## Пути (локально, не в git-репо)
|
||||
|
||||
| Назначение | Путь |
|
||||
|------------|------|
|
||||
| Конфиг API (секреты) | `$HOME\CursorRules\local\papatramp-gitea.conf` |
|
||||
| Remotes | `$HOME\CursorRules\scripts\Set-GitRemotes.ps1` |
|
||||
| Создать репо на home | `$HOME\CursorRules\scripts\Ensure-GiteaHomeRepo.ps1` |
|
||||
|
||||
`init-cursor` копирует в репо **только `*.mdc`**.
|
||||
|
||||
SSH **`home`**: `ssh://git@git.papatramp.lan:2222/PapaTramp/<RepoName>.git`
|
||||
|
||||
## Алгоритм
|
||||
|
||||
1. `GET {GiteaApiUrl}/api/v1/repos/PapaTramp/{RepoName}` — Basic Auth из конфига.
|
||||
2. Если **404** — `POST {GiteaApiUrl}/api/v1/user/repos` (или `.../orgs/PapaTramp/repos`), тело: `{ "name": "<RepoName>", "private": true, "auto_init": false }`.
|
||||
Или: `Ensure-GiteaHomeRepo.ps1 -RepoName <RepoName>`.
|
||||
3. `git push home <branch>` (SSH).
|
||||
|
||||
## Запрещено
|
||||
|
||||
- «Создайте репо в Gitea сами» без попытки API.
|
||||
- Коммитить `papatramp-gitea.conf`, пароли, временные скрипты с credentials.
|
||||
- HTTPS/`origin` для home вместо remote **`home`**.
|
||||
|
||||
## API недоступен
|
||||
|
||||
Сообщи, что LAN/API (`192.168.128.48:3000`) недоступен — VPN/сеть. Не отправляй в веб-интерфейс.
|
||||
@@ -0,0 +1,50 @@
|
||||
---
|
||||
description: Не коммитить .cursor/ и IDE-файлы в git-репозитории
|
||||
alwaysApply: true
|
||||
---
|
||||
|
||||
# Cursor не попадает в git
|
||||
|
||||
В **коммитах и tracked-файлах** запрещено добавлять артефакты Cursor как IDE/агента.
|
||||
|
||||
## Запрещено коммитить
|
||||
|
||||
| Путь | Назначение |
|
||||
|------|------------|
|
||||
| **`.cursor/`** | rules, hooks, hooks.json, settings — только локально |
|
||||
| **`.cursorignore`** | индексация IDE, не часть продукта |
|
||||
| **`AGENTS.md`**, **`CURSOR.md`** | служебные файлы IDE |
|
||||
|
||||
Не создавать `.cursor/hooks/` с auto-push/auto-commit в репозиториях проекта.
|
||||
|
||||
## Обязательно в `.gitignore` каждого репо
|
||||
|
||||
```gitignore
|
||||
.cursor/
|
||||
.cursorignore
|
||||
```
|
||||
|
||||
При работе в репозитории: если строк нет — **добавить в том же коммите**, что и код, **не** коммитить сами `.cursor/`.
|
||||
|
||||
После `init-cursor` (копирование rules в проект) — rules остаются **локально** и **не попадают** в `git add`.
|
||||
|
||||
## Перед `git commit` / `git push`
|
||||
|
||||
1. `git status` — в staged **нет** `.cursor/` и `.cursorignore`.
|
||||
2. **Не** использовать `git add -A` / `git add .` без проверки.
|
||||
3. Если `.cursor` уже в индексе: `git rm -r --cached .cursor` и `git rm --cached .cursorignore`.
|
||||
4. `git ls-files` — не должно быть путей, начинающихся с `.cursor`.
|
||||
|
||||
## Запрещено в тексте коммитов и docs
|
||||
|
||||
- Упоминания Cursor IDE, Cursor Agent, cursoragent, cursor.com, cursor.sh.
|
||||
- Trailers: Co-authored-by: Cursor, Made-with: Cursor.
|
||||
|
||||
## Разрешено (не путать с IDE)
|
||||
|
||||
- CSS cursor: pointer; poll cursor, DB cursor, Console.CursorLeft, MOEX analytics.cursor.
|
||||
|
||||
## Git / GitHub
|
||||
|
||||
- Author и committer — Andrey Lutsenko, без co-author Cursor.
|
||||
- Перед push в public: git log --format=fuller, поиск cursoragent / Co-authored-by: Cursor.
|
||||
@@ -0,0 +1,12 @@
|
||||
---
|
||||
description: Компактный PowerShell в выводе агента
|
||||
globs: **/*.{ps1,psm1}
|
||||
alwaysApply: false
|
||||
---
|
||||
|
||||
# PowerShell — компактный вывод
|
||||
|
||||
- Pipeline вместо многострочных `foreach`, где читаемо.
|
||||
- Без comment-based help и лишних `Write-Host`, если не просили UI/логи.
|
||||
- Не дублируй длинные CLI-аргументы целиком — placeholder или переменная.
|
||||
- Сохраняй стиль и алиасы **существующего файла**; не навязывай `gc`/`gci` если в проекте полные имена.
|
||||
@@ -0,0 +1,12 @@
|
||||
---
|
||||
description: Компактный Python в выводе агента
|
||||
globs: **/*.py
|
||||
alwaysApply: false
|
||||
---
|
||||
|
||||
# Python — компактный вывод
|
||||
|
||||
- Comprehensions, ternary — где читаемо; stdlib (`pathlib`, `json`, `subprocess`) без лишних зависимостей.
|
||||
- Type hints — только если уже приняты в файле.
|
||||
- Без docstrings/комментариев «для объяснения», если не просили.
|
||||
- При правках — функция/метод, не весь файл; `# ... existing code ...` для неизменных блоков.
|
||||
@@ -0,0 +1,20 @@
|
||||
---
|
||||
description: Bump version.txt и $ScriptVersion в RDP-login-monitor
|
||||
globs: **/Login_Monitor.ps1,**/Deploy-LoginMonitor.ps1,**/Sac-Client.ps1,**/Exchange-MailSecurity.ps1,**/Watchdog_RDP_Monitor.ps1,**/version.txt
|
||||
alwaysApply: false
|
||||
---
|
||||
|
||||
# Bump RDP-login-monitor
|
||||
|
||||
Без bump **`Deploy-LoginMonitor.ps1` не обновит ПК** (`version.txt` vs `deployed_version.txt`).
|
||||
|
||||
## В том же коммите
|
||||
|
||||
1. `Login_Monitor.ps1` — `$ScriptVersion` (напр. `2.0.7-SAC`)
|
||||
2. `version.txt` — **та же строка**
|
||||
|
||||
Patch: `2.0.6-SAC` → `2.0.7-SAC`. Крупный релиз — minor по смыслу.
|
||||
|
||||
`Exchange-MailSecurity.ps1` — свой `$ScriptVersion`, bump только при правке этого пакета.
|
||||
|
||||
После bump — публикация на NETLOGON.
|
||||
@@ -0,0 +1,18 @@
|
||||
---
|
||||
description: Bump version.txt и SSH_MONITOR_VERSION в ssh-monitor
|
||||
globs: **/ssh-monitor,**/sac-client.sh,**/update_ssh_monitor.sh,**/version.txt
|
||||
alwaysApply: false
|
||||
---
|
||||
|
||||
# Bump ssh-monitor
|
||||
|
||||
Без bump **`update_ssh_monitor.sh` не скопирует скрипт** (sha256).
|
||||
|
||||
## В том же коммите
|
||||
|
||||
1. `ssh-monitor` — `SSH_MONITOR_VERSION="X.Y.Z-SAC"`
|
||||
2. `version.txt` — **та же строка**
|
||||
|
||||
Patch по умолчанию. `sac-client.sh` версию не задаёт — берёт из установленного `ssh-monitor`.
|
||||
|
||||
После push: `git pull` + `update_ssh_monitor.sh` на хостах.
|
||||
@@ -0,0 +1,14 @@
|
||||
---
|
||||
description: Patch/minor bump версии при осмысленных правках
|
||||
alwaysApply: true
|
||||
---
|
||||
|
||||
# Bump версии
|
||||
|
||||
## Patch (обычно)
|
||||
|
||||
После осмысленного изменения — **+0.0.1** (`0.7.0` → `0.7.1`) в **том же коммите**.
|
||||
|
||||
## Minor / major
|
||||
|
||||
При заметном релизе — по смыслу (`0.6.x` → `0.7.0`). Не обязательно на каждую мелочь.
|
||||
Reference in New Issue
Block a user