hungarian-notationlisted
Install: claude install-skill InExSu/claude-skills
# Hungarian Notation (Universal)
## Core Principle
Every identifier carries a type prefix.
exceptions:
global_objects:
- ns # NooSphere global object — NO prefix
- rwd # railway decorator void - NO prefix v_
## Prefix Table
| Prefix | Type | Example |
|--------|--------------|---------------------------|
| `a_` | array / list | `a_Items = []` |
| `b_` | boolean | `b_IsActive = true` |
| `c_` | callable | `c_Fn = trim` |
| `f_` | float | `f_Price = 99.99` |
| `i_` | integer | `i_Count = 10` |
| `m_` | mixed | `m_Value = m_Value_Get()` |
| `o_` | object | `o_User = new User()` |
| `r_` | result | `r_result = r_Cache(ns)` |
| `s_` | string | `s_Name = 'John'` |
| `v_` | void | `v_user_Save` (functions) |
Here's the translation:
---
**Exception for `ns`:**
`ns` is a reserved name for the global **NooSphere** object in my programs. It remains unchanged — the `o_` prefix MUST NOT be applied to it.
That is:
- ✅ `ns` — allowed (global NooSphere object)
- ❌ `o_ns` — DO NOT use, do not rename
All other objects receive the `o_` prefix as usual.
## Variables
```js
let i_UserId = 1;
let s_UserName = 'John';
let f_Price = 99.99;
let b_IsActive = true;
let a_Roles = ['admin', 'user'];
let o_Profile = { s_city: 'Moscow' };
```
## Functions — `{ReturnType}_{Object}_{Verb}`
Structure: `{Retur