Core Conventions
Reusable, project-agnostic conventions designed to keep codebases scalable and easy for AI agents to navigate.
When to Use
Use this skill when:
- Starting a new feature and deciding where code should live
- Refactoring to improve maintainability
- Enforcing “one-thing-per-file” discipline
- Establishing naming/layout conventions and boundary rules
Non-Negotiables (MUST)
- Keep many small, focused files with explicit boundaries.
- One exported symbol per file for your own modules (component/hook/function/type).
- No barrel/index files (e.g.
index.ts) that hide dependencies. - No inline types outside
types/. - No helper functions inside components or hooks; extract to
utils/. - Avoid adding new dependencies for trivial helpers unless explicitly approved.
Placement / Boundaries
- Route/pages:
app/** - Reusable UI:
components/<area>/... - Orchestration (state/effects):
hooks/<area>/useXxx.ts - Pure logic:
utils/<area>/xxx.ts - External boundaries (network/DB/auth/storage):
services/<area>/xxx.ts - Shared shapes:
types/<area>/Xxx.ts
Rules
Core Principles
core-agent-defaults- Agent behavior defaults (small changes, ask questions, avoid dependencies)core-code-style- Code style guidelines (English-only, pure functions, avoid nesting)core-repo-hygiene- Repository hygiene (no barrel files, one responsibility, thin handlers)
Boundaries & Placement
core-boundaries-decision-tree- Decision tree for where code belongs (app, components, hooks, utils, services, types)core-boundaries-hard-rules- Hard rules for boundaries (one export, no inline types, no helpers in components)
Naming & Layout
core-naming-folder-layout- Folder structure conventionscore-naming-file-naming- File naming conventions (PascalCase, camelCase, kebab-case)core-naming-exports- Export conventions (default vs named, Next.js exceptions)core-naming-imports- Import conventions (no barrel files, relative vs aliases)
Services vs Utils
core-services-vs-utils-contract- When to use services/ vs utils/core-services-vs-utils-api- API guidance for services and utilscore-services-vs-utils-route-handlers- Route handler requirements
Anti-Patterns
core-anti-patterns-file-structure- File structure anti-patterns (multiple exports, barrel files, misc modules)core-anti-patterns-types- Type anti-patterns (inline types, huge type files)core-anti-patterns-react- React anti-patterns (fetching in components, helpers in components)core-anti-patterns-app-router- App Router anti-patterns (fat handlers, unvalidated input)core-anti-patterns-dependencies- Dependency anti-patterns (trivial helpers)core-anti-patterns-vite-browser- Vite/Browser runtime anti-patterns (process.env, Node globals)
Related Skills
busirocket-typescript-standards- TypeScript-specific standardsbusirocket-react- React component, hook, and state (Zustand) patternsbusirocket-refactor-workflow- Refactoring workflow
How to Use
Read individual rule files for detailed explanations and code examples:
rules/core-agent-defaults.md
rules/core-boundaries-decision-tree.md
rules/core-naming-folder-layout.md
Each rule file contains:
- Brief explanation of why it matters
- Code examples (correct and incorrect patterns)
- Additional context and best practices