- Add 60 new agents across all 10 categories (75 -> 135) - Add 95 new plugins with command files (25 -> 120) - Update all agents to use model: opus - Update README with complete plugin/agent tables - Update marketplace.json with all 120 plugins
51 lines
3.0 KiB
Markdown
51 lines
3.0 KiB
Markdown
# Naming Conventions
|
|
|
|
## General Principles
|
|
- Names should describe what something is or does, not how it works.
|
|
- Use domain-specific terminology from the project glossary.
|
|
- Avoid abbreviations unless universally understood: `id`, `url`, `db`, `config` are fine. `usr`, `mgr`, `proc` are not.
|
|
- Be consistent. If the codebase uses `remove`, do not introduce `delete` for the same concept.
|
|
- Longer names for larger scopes. Single letters only for loop counters and lambdas.
|
|
|
|
## JavaScript / TypeScript
|
|
- Variables and functions: `camelCase` (`getUserById`, `isActive`, `orderCount`).
|
|
- Classes and type aliases: `PascalCase` (`UserService`, `OrderStatus`, `ApiResponse`).
|
|
- Constants: `UPPER_SNAKE_CASE` for true constants (`MAX_RETRIES`, `DEFAULT_TIMEOUT`).
|
|
- Enums: `PascalCase` for name, `PascalCase` for members (`enum OrderStatus { Pending, Shipped }`).
|
|
- Booleans: prefix with `is`, `has`, `can`, `should` (`isEnabled`, `hasAccess`, `canEdit`).
|
|
- Event handlers: prefix with `on` or `handle` (`onClick`, `handleSubmit`).
|
|
- Files: `kebab-case.ts` for modules, `PascalCase.tsx` for React components.
|
|
|
|
## Python
|
|
- Variables and functions: `snake_case` (`get_user_by_id`, `is_active`, `order_count`).
|
|
- Classes: `PascalCase` (`UserService`, `OrderRepository`).
|
|
- Constants: `UPPER_SNAKE_CASE` (`MAX_RETRIES`, `DEFAULT_TIMEOUT`).
|
|
- Private members: single underscore prefix (`_internal_cache`, `_validate_input`).
|
|
- Dunder methods: double underscore (`__init__`, `__repr__`, `__eq__`).
|
|
- Modules and packages: `snake_case` (`user_service.py`, `data_access/`).
|
|
- Type variables: `PascalCase` with `T` suffix convention (`ItemT`, `ResponseT`).
|
|
|
|
## Go
|
|
- Exported identifiers: `PascalCase` (`GetUserByID`, `OrderService`, `MaxRetries`).
|
|
- Unexported identifiers: `camelCase` (`getUserByID`, `orderService`, `maxRetries`).
|
|
- Interfaces: describe behavior, often ending in `-er` (`Reader`, `Closer`, `UserRepository`).
|
|
- Packages: short, lowercase, single word (`auth`, `db`, `handler`). No underscores or hyphens.
|
|
- Acronyms: all caps when at the start or alone (`ID`, `URL`, `HTTP`), otherwise `Id`, `Url`.
|
|
- Receivers: one or two letter abbreviation of the type (`func (s *Server) Start()`).
|
|
|
|
## Rust
|
|
- Variables and functions: `snake_case` (`get_user_by_id`, `is_active`).
|
|
- Types, traits, and enums: `PascalCase` (`UserService`, `Serialize`, `OrderStatus`).
|
|
- Constants and statics: `UPPER_SNAKE_CASE` (`MAX_RETRIES`, `DEFAULT_PORT`).
|
|
- Modules: `snake_case` (`user_service`, `data_access`).
|
|
- Lifetimes: short lowercase (`'a`, `'ctx`, `'de`).
|
|
- Crate names: `kebab-case` in Cargo.toml, `snake_case` in code (`my-crate` becomes `my_crate`).
|
|
|
|
## Database
|
|
- Tables: `snake_case`, plural (`users`, `order_items`, `payment_methods`).
|
|
- Columns: `snake_case`, singular (`user_id`, `created_at`, `is_active`).
|
|
- Primary keys: `id` in the owning table.
|
|
- Foreign keys: `<singular_table>_id` (`user_id`, `order_id`).
|
|
- Indexes: `idx_<table>_<columns>` (`idx_orders_user_id`, `idx_users_email`).
|
|
- Migrations: `<timestamp>_<description>` (`20260115_add_orders_status_column`).
|