# Naming Conventions Comprehensive naming rules for all file types. See SKILL.md Rule 2 for overview. ## Slug Generation ### Rules - Convert title/topic to lowercase - Replace spaces and special chars with hyphens - Keep numbers - Max 50 characters (truncate at word boundary) - No leading/trailing hyphens - No consecutive hyphens ### Examples | Title | Slug | |-------|------| | "User Authentication Flow" | `user-authentication-flow` | | "Fix: API Rate Limiting Bug #42" | `fix-api-rate-limiting-bug-42` | | "10 Tips for Better CI/CD" | `10-tips-for-better-ci-cd` | | "AI & Automation: A Guide" | `ai-automation-a-guide` | ## Date Formats Use `$CK_PLAN_DATE_FORMAT` env var if set, otherwise default to `YYMMDD-HHmm`. | Format | Example | Use case | |--------|---------|----------| | `YYMMDD-HHmm` | `260304-1530` | Default for time-sensitive files | | `YYMMDD` | `260304` | Date-only (ADRs, daily reports) | | No date | `{slug}` | Evergreen content | ### When to timestamp - Plans, reports, journals, sessions, brainstorms - Generated/AI content - Campaign-specific assets - Any content that becomes stale over time ### When NOT to timestamp - Docs (architecture, standards, guides) - Config files - Source code - Templates - Brand assets (logos, styles) ## Code File Naming Defer to `descriptive-name` hook for language-specific conventions: | Language | Convention | Example | |----------|-----------|---------| | JS/TS/Python/Shell | kebab-case | `user-auth-service.ts` | | C#/Java/Kotlin/Swift | PascalCase | `UserAuthService.cs` | | Go/Rust | snake_case | `user_auth_service.go` | | CSS/SCSS | kebab-case | `auth-form-styles.scss` | **Priority:** Self-documenting > short. A long descriptive name is better than a cryptic abbreviation. ## File Extensions | Type | Extensions | |------|-----------| | Images | `.png`, `.jpg`, `.webp`, `.svg`, `.gif` | | Videos | `.mp4`, `.mov`, `.webm` | | Audio | `.mp3`, `.wav`, `.m4a` | | Documents | `.md`, `.txt`, `.pdf` | | Data | `.json`, `.yaml`, `.yml`, `.csv`, `.xml` | | Config | `.json`, `.yaml`, `.toml`, `.ini`, `.env` | ## Variant Naming ### Size variants Pattern: `{name}-{width}x{height}.{ext}` - `hero-1920x1080.png` - `thumbnail-300x200.jpg` - `banner-mobile-640x100.png` ### Platform variants Pattern: `{name}-{platform}.{ext}` - `cover-youtube.png` - `post-instagram.png` - `ad-linkedin.jpg` ### Theme/style variants Pattern: `{name}-{variant}.{ext}` - `logo-dark.svg` - `logo-light.svg` - `banner-alt.png` ### Version variants Pattern: `{name}-v{N}.{ext}` - `mockup-v2.png` - `proposal-v3.pdf` ## Directory Naming - Always kebab-case - Plural for collections: `tests/`, `scripts/`, `assets/` - Singular for specific items: `src/auth/`, `docs/` - No abbreviations: `configurations/` not `configs/` (exception: well-known like `docs/`, `src/`) ## Report File Naming Pattern: `{agent-type}-{YYMMDD-HHmm}-{slug}.md` Examples: - `scout-260304-1530-auth-module-analysis.md` - `researcher-260304-1545-oauth2-comparison.md` - `brainstorm-260304-1600-caching-strategy.md` - `code-reviewer-260304-1700-api-endpoints.md` ## Plan Folder Naming Pattern: `{YYMMDD-HHmm}-{slug}/` Examples: - `260304-1530-implement-user-authentication/` - `260305-0900-migrate-database-to-postgres/` - `260306-1400-redesign-dashboard-layout/` ## Scene/Sequence Naming Pattern: `scene-{NN}-{position}.{ext}` or `step-{NN}-{name}.{ext}` - `scene-01-start.png`, `scene-01-end.png` - `step-01-install.md`, `step-02-configure.md` Zero-padded numbers for correct sorting.