Naming Conventions Style

Names encode intent for humans and agents: kebab-case slugs on disk, PascalCase components, camelCase functions, and hook names that describe returned state.

Wiki and docs

Wiki slugs use kebab-case.md. Disambiguate collisions (david-liu-princeton.md vs other David Liu pages). Source: AGENTS.md Entity Identity Protocol

TypeScript/React

Components and types: PascalCase. Functions, variables, hooks: camelCase. Custom hooks start with use and name the returned concept. Source: React Style; TypeScript Style

Files

Match primary export: ReticleButton.tsx exports ReticleButton. Colocate tests as *.test.ts or *.spec.ts per repo convention.

Dedalus monorepo

Follow Dedalus Style Guide and The Dedalus Edict for Python/Typer commands, package boundaries, and banned patterns. Personal wiki style extends, not overrides, Dedalus rules when editing Dedalus code.

Constants

Extract magic numbers to named constants at module or domain scope. Taste skills use ALL_CAPS dial names (MOTION_INTENSITY) for generation variance. Source: skills/engineering/taste-core/SKILL.md

Naming Contract

Surface Default Banned pattern Proof
Wiki pages Stable kebab-case slug, display title in Title Case Opaque IDs or incidental clone-folder names build-index and title normalizer
React components PascalCase file and primary export match Generic Component, Widget, NewThing names Local import/search review
Hooks use plus returned concept Verb soup naming internal steps Hook call sites read naturally
Functions Verb/object name with one responsibility Function names containing "and" Review split or test boundary
Constants Domain name plus units or qualifier Magic numbers and ambiguous VALUE names Search and typecheck

Proof

A name is good when search finds the owner, call sites read without comments, and a future agent can infer the boundary before opening the function body. If a name needs an explanatory comment, rename the thing first.

Style Rule Contract

This page follows Style Rule Contract: name the default pattern, banned pattern, reason, exception, proof, and codification path clearly enough that the next agent can apply the rule without asking Kevin again. If a local repo has a stricter rule, follow the local rule and update the wiki when the decision becomes durable.


Timeline

1 page links here