@bonesofspring/ai-rules 0.1.33 → 0.1.34

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bonesofspring/ai-rules",
3
- "version": "0.1.33",
3
+ "version": "0.1.34",
4
4
  "description": "Presets of Cursor and Claude rules/commands for Revy Ross personal use",
5
5
  "license": "MIT",
6
6
  "author": "Revy Ross",
@@ -0,0 +1,45 @@
1
+ ---
2
+ description: Предпочитать стрелочные функции при написании кода
3
+ alwaysApply: true
4
+ ---
5
+
6
+ # Стрелочные функции
7
+
8
+ При разработке **использовать стрелочный синтаксис** для функций, где это допустимо в TypeScript/JavaScript.
9
+
10
+ ## Что делать
11
+
12
+ - Объявлять функции как **`const имя = (...) => { ... }`** вместо **`function имя(...) { ... }`**, если не нужны особенности объявления `function`.
13
+ - Колбэки и обработчики — стрелочные функции: `.map((x) => ...)`, `onClick={() => ...}`.
14
+ - React-компоненты и хуки — как стрелочные функции с явной типизацией пропсов/возврата по принятому в проекте стилю.
15
+
16
+ ## Исключения (допустимо не стрелка)
17
+
18
+ - **Генераторы** (`function*`) — стрелкой не выразить.
19
+ - **Методы класса** — если в коде используются классы, допустимы обычные методы (`method() {}`), а не стрелки в теле класса (из‑за `this`).
20
+ - Когда осознанно нужны **подъём (hoisting)** или **имя функции в стеке** только у `function` — редкие случаи; иначе предпочитать стрелку.
21
+
22
+ ## Примеры
23
+
24
+ ```typescript
25
+ // ❌ Избегать для нового кода
26
+ function formatLabel(id: string): string {
27
+ return id.toUpperCase()
28
+ }
29
+
30
+ // ✅ Предпочтительно
31
+ const formatLabel = (id: string): string => {
32
+ return id.toUpperCase()
33
+ }
34
+ ```
35
+
36
+ ```tsx
37
+ // ✅ Предпочтительно
38
+ const UserCard = ({ name }: { name: string }) => {
39
+ return <span>{name}</span>
40
+ }
41
+ ```
42
+
43
+ ## Требование к агенту
44
+
45
+ При генерации и правке кода **по умолчанию выбирать стрелочные функции**; отступать к `function` только в случаях из раздела исключений.