← ClaudeAtlas

file-naminglisted

Samuhlo's file/folder naming rule: kebab-case for files and folders, idiomatic casing inside code. Trigger: creating, renaming or refactoring files/folders/components/routes in Vue, Nuxt, React, Next, Astro or any Linux/CI-deployed project.
samuhlo/ein-agent · ★ 0 · Web & Frontend · score 73
Install: claude install-skill samuhlo/ein-agent
# File Naming — kebab-case files, idiomatic code Samuhlo's default for naming files and folders in production projects. Apply it whenever you **create or rename a file/folder**, scaffold a component, or refactor structure. ## Rule | Layer | Convention | Example | Why | | :--- | :--- | :--- | :--- | | Files & folders | `kebab-case` | `user-profile.vue`, `auth-service.ts` | Safe across Linux, Git, URLs, CI/CD | | Components / classes | `PascalCase` | `UserProfile`, `AuthService` | Language/framework convention | | Variables / functions | `camelCase` | `userProfile`, `fetchUserProfile()` | Natural reading inside JS/TS | The file is the armored transport box; the code inside is the real logic. They serve different functions, so they don't share a convention. ## Why it matters (not aesthetics) It removes dumb breakage points between local → Git → CI → production. - Locally (macOS/Windows) the filesystem is often case-insensitive: `HeaderNav.vue`, `headernav.vue` and `HEADERNAV.vue` can behave as the same file. - Production is almost always Linux, which is case-sensitive: `HeaderNav.vue` ≠ `headerNav.vue`. - Classic bug: rename a component changing only a letter's case, Git doesn't track it cleanly, it builds locally, then Vercel/CI fails with `File not found`. kebab-case kills it at the root: all lowercase, all explicit, zero ambiguity between OSes. ## File-based routing (Nuxt / Next / Astro) When the filename becomes a URL, naming stops being internal — it's public inte