Files
AGENTS/rules/concerns/naming.md
m3tm3re 8910413315 feat(rules): add initial rule files for concerns, languages, and frameworks
Concerns (6 files):
- coding-style.md (163 lines): patterns, anti-patterns, error handling, SOLID
- naming.md (105 lines): naming conventions table per language
- documentation.md (149 lines): docstrings, WHY vs WHAT, README standards
- testing.md (134 lines): AAA pattern, mocking philosophy, TDD
- git-workflow.md (118 lines): conventional commits, branch naming, PR format
- project-structure.md (82 lines): directory layout, entry points, config placement

Languages (4 files):
- python.md (224 lines): uv, ruff, pyright, pytest, pydantic, idioms, anti-patterns
- typescript.md (150 lines): strict mode, discriminated unions, satisfies, as const
- nix.md (129 lines): flake structure, module patterns, alejandra, anti-patterns
- shell.md (100 lines): set -euo pipefail, shellcheck, quoting, POSIX

Frameworks (1 file):
- n8n.md (42 lines): workflow design, node patterns, Error Trigger, security

Context budget: 975 lines (concerns + python) < 1500 limit

Refs: T6-T16 of rules-system plan
2026-02-17 19:05:45 +01:00

2.1 KiB

Naming Conventions

Use consistent naming across all code. Follow language-specific conventions.

Language Reference

Type Python TypeScript Nix Shell
Variables snake_case camelCase camelCase UPPER_SNAKE
Functions snake_case camelCase camelCase lower_case
Classes PascalCase PascalCase - -
Constants UPPER_SNAKE UPPER_SNAKE camelCase UPPER_SNAKE
Files snake_case camelCase hyphen-case hyphen-case
Modules snake_case camelCase - -

General Rules

Files: Use hyphen-case for documentation, snake_case for Python, camelCase for TypeScript. Names should describe content.

Variables: Use descriptive names. Avoid single letters except loop counters. No Hungarian notation.

Functions: Use verb-noun pattern. Name describes what it does, not how it does it.

Classes: Use PascalCase with descriptive nouns. Avoid abbreviations.

Constants: Use UPPER_SNAKE with descriptive names. Group related constants.

Examples

Python:

# Variables
user_name = "alice"
is_authenticated = True

# Functions
def get_user_data(user_id):
    pass

# Classes
class UserProfile:
    pass

# Constants
MAX_RETRIES = 3
API_ENDPOINT = "https://api.example.com"

TypeScript:

// Variables
const userName = "alice";
const isAuthenticated = true;

// Functions
function getUserData(userId: string): User {
    return null;
}

// Classes
class UserProfile {
    private name: string;
}

// Constants
const MAX_RETRIES = 3;
const API_ENDPOINT = "https://api.example.com";

Nix:

# Variables
let
  userName = "alice";
  isAuthenticated = true;
in
# ...

Shell:

# Variables
USER_NAME="alice"
IS_AUTHENTICATED=true

# Functions
get_user_data() {
    echo "Getting data"
}

# Constants
MAX_RETRIES=3
API_ENDPOINT="https://api.example.com"

File Naming

Use these patterns consistently. No exceptions.

  • Skills: hyphen-case
  • Python: snake_case.py
  • TypeScript: camelCase.ts or hyphen-case.ts
  • Nix: hyphen-case.nix
  • Shell: hyphen-case.sh
  • Markdown: UPPERCASE.md or sentence-case.md