003-naming-conventions

003-naming-conventions is a cursor rule for Cursor from cmnemoi/cursor-rules. It costs 0 tokens per session (930 once invoked), scanned A, original, MIT.

A set of PHP rules for choosing consistent, descriptive names for files, folders, classes, namespaces, and tests.

In plain words
What is it for?
It is for applying naming standards across a PHP codebase, including unit and functional test files.
Why use it?
It reduces confusing or inconsistent names, making code easier to read, search, and maintain.

Cursor rule for Cursor

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add rules/cmnemoi/cursor-rules/003-naming-conventions
Clone the repo
git clone --depth 1 https://github.com/cmnemoi/cursor-rules

Made for: Cursor.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for 003-naming-conventions

README.md
[![agentmods](https://agentmods.dev/badge/rules/cmnemoi/cursor-rules/003-naming-conventions.svg)](https://agentmods.dev/rules/cmnemoi/cursor-rules/003-naming-conventions)
Your own site
<a href="https://agentmods.dev/rules/cmnemoi/cursor-rules/003-naming-conventions"><img src="https://agentmods.dev/badge/rules/cmnemoi/cursor-rules/003-naming-conventions.svg" alt="Measured on agentmods" height="20"></a>
Per session 0 Nothing until a file matches its globs; then the whole rule loads.
When invoked 930 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00000 $0.00930
Opus 5 $0.00000 $0.00465
Sonnet 5 $0.00000 $0.00186
Haiku 4.5 $0.00000 $0.00093

Measured 3d ago against content hash 7ce16ae7aae2, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

003-naming-conventions scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 3d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

emush/.cursor/rules/003-naming-conventions.mdc · 92 lines

How it starts

The opening of the file, as written. The whole thing — 92 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Naming Conventions Standards

1.0.0

Context

  • These rules apply to all code across the PHP backend
  • They ensure consistent and meaningful naming
  • They promote code readability and maintainability
  • They align with PHP best practices and Domain-Driven Design principles

Requirements

General Principles

  • Names should be descriptive and reveal intent
  • Names should be searchable and pronounceable
  • Avoid abbreviations except for common ones (e.g., ID, HTTP)
  • Use consistent terminology across the codebase
  • Domain language should be used consistently

Files and Directories

  • Use PascalCase for PHP class files (e.g., ProjectFactory.php)
  • Use PascalCase for directories representing namespaces (e.g., Project/, Factory/)
  • Group files by domain/feature rather than type (e.g., Project/, Player/, Daedalus/)
  • File names should match the primary class they contain (e.g., ProjectFactory.php for ProjectFactory class)
  • Test files should follow the pattern {ClassUnderTest}Test.php for unit tests
  • Functional tests should follow the pattern {Feature}Cest.php

Namespaces

  • Use PascalCase for namespace components (e.g., Mush\Project\Factory)
  • Namespace structure should follow PSR-4 autoloading standards
  • Root namespace should be Mush followed by domain/feature name
  • Test namespace should be Mush\tests followed by test type and domain (e.g., Mush\tests\unit\Project)

Classes and Interfaces

  • Use PascalCase for class, interface, trait, and enum names (e.g., ProjectFactory, PlayerStatusEnum)
  • Use nouns or noun phrases for class names
  • Suffix interfaces with Interface (e.g., RoomLogServiceInterface)
  • Use descriptive suffixes for specific types:
    • Factory for factory classes
    • Service for service classes
    • Repository for repositories
    • Subscriber or Listener for event listeners
    • Enum for enumeration classes
    • Config for configuration classes
    • Handler for handlers
    • Event for events

Read the full file on GitHub · 92 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 3d ago First seen · 92 lines · 930 tokens per session scan A 7ce16ae7aae2

Subscribe to this mod's changes

003-naming-conventions is a cursor rule published in the GitHub repository cmnemoi/cursor-rules (2 stars, last pushed 1y ago), licensed MIT. It costs nothing until one of its globs matches a file; then it loads 930 tokens. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.