Skip to content
Back to skills

Conventions Skill

ASecurity

Naming patterns, formatting rules, import order, and module design standards for modern software codebases.

  • 3 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added June 3, 2026
ai-agentsgoreactexpressdebuggingrefactoringgitapifrontenddocumentation

Works with

  • api

Security analysis

A100/100

Scanned June 3, 2026

npx -y skills add kinqsradiollc/BrainRouter --skill conventions-skill --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Conventions Skill?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Conventions Skill
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/kinqsradiollc-conventions-skill/badge)](https://www.skillsdirectory.com/skills/kinqsradiollc-conventions-skill)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: conventions-skill
description: Naming patterns, formatting rules, import order, and module design standards for modern software codebases.
hints:
  - Inspect project root configuration files (e.g. .prettierrc, eslint.config.js) to align with existing styling tools.
  - Check existing project files for naming patterns and module architecture styles.
  - Follow kebab-case for system files and PascalCase for UI components (e.g. React components).
  - Keep functions focused and under 50 lines; extract complex logic into small, reusable helpers.
  - Eliminate console.log statements before committing, substituting appropriate logging utilities.
---

# Coding Conventions Skill

## Overview

This skill ensures all new code written in the codebase matches existing style and patterns. Load this before writing new files, adding features, or conducting code reviews.

## Workflow

- **[CONV-001] Naming**
  - Files: `kebab-case` for all files (`user-service.ts`, `location-controller.ts`)
  - React components: `PascalCase.tsx` (`SpotCard.tsx`, `AuthGuard.tsx`)
  - Functions & variables: `camelCase`
  - Constants: `UPPER_SNAKE_CASE`
  - Types & Interfaces: `PascalCase`, no `I` prefix (`User`, not `IUser`)
  - Event handlers: `handleEventName` pattern (`handleSubmit`, `handleDelete`)

- **[CONV-002] Code Style**
  - Formatter: Prettier (check `.prettierrc`)
  - Linter: ESLint (check `eslint.config.js`)
  - Quotes: single quotes for strings
  - Semicolons: required
  - Line length: 100 characters max
  - Indentation: 2 spaces
  - No `console.log` in committed code — use the project logger

- **[CONV-003] Import Order**
  1. External packages (`react`, `express`, `zod`)
  2. Internal modules (`@/lib`, `@/services`, `@/components`)
  3. Relative imports (`./utils`, `../types`)
  4. Type imports (`import type {}`) — always last
  - Blank line between each group; alphabetical within groups

- **[CONV-004] Error Handling**
  - Throw errors, catch at route/boundary level — not deep in utilities
  - Custom errors extend `Error` class, named `*Error` (`ValidationError`, `NotFoundError`)
  - Async functions use `try/catch` — no `.catch()` chains
  - Always log error context before re-throwing

- **[CONV-005] Function Design**
  - Keep functions under 50 lines; extract helpers for complex logic
  - Max 3 parameters — use an options object for 4+
  - Destructure object parameters in the signature: `function fn({ id, name }: Params)`
  - Use explicit `return` statements; return early for guard clauses

- **[CONV-006] Module Design**
  - Named exports preferred; default exports only for React components
  - Barrel files (`index.ts`) re-export the public API only
  - Do not export internal helpers from barrel files
  - Avoid circular dependencies — import from specific files if needed

- **[CONV-007] Comments**
  - Explain *why*, not *what*
  - Document business rules and non-obvious algorithms
  - JSDoc required for public API functions (`@param`, `@returns`, `@throws`)
  - TODOs: `// TODO: description` — link to issue number if available

## Required Checks

- [ ] File and function names match `CONV-001` patterns.
- [ ] No `console.log` left in committed code.
- [ ] Imports are ordered and grouped per `CONV-003`.
- [ ] All async code uses `try/catch`.
- [ ] Functions stay under 50 lines.

## When to Use
- Use when creating new modules, adding endpoints, writing frontend components, or conducting local codebase cleanups and refactoring.
- NOT for simple documentation-only changes or config modifications.

## Common Rationalizations
| Rationalization | Reality |
|---|---|
| I'll format the code manually later. | Automated formatting ensures clean git diffs and prevents formatting noise. |
| It's just a single console.log for quick debugging. | Forgotten debug logs clutter runtime output in production and create noise. |

## Red Flags
- Committing code with generic `console.log` statements instead of proper logging mechanisms.
- Functions exceeding 50-60 lines without being split into cohesive helpers.
- Inconsistent file naming conventions (e.g. mixing `camelCase` and `kebab-case` filenames in the same folder).

## Verification
After completing the skill, confirm:
- [ ] Prettier/ESLint rules have been run and all styling warnings are cleared.
- [ ] All imported modules are ordered according to standard grouping.
- [ ] Functions are short, clean, well-scoped, and documented where necessary.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…