folder-org

Project code structure and file organization. Use when creating files, organizing components, or deciding where code should live. (project)

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "folder-org" with this command: npx skills add ruchernchong/claude-kit/ruchernchong-claude-kit-folder-org

Folder Structure

Core Principle: Colocation

Place code as close to where it's relevant as possible. Things that change together should be located together.

Organization Approaches

Feature-Based (Recommended for Frontend)

Group by domain - all related code in one place:

src/features/
├── auth/
│   ├── components/
│   ├── hooks/
│   ├── auth.service.ts
│   └── auth.test.ts
├── users/
└── products/

Layer-Based (Common for Backend)

Group by technical layer:

src/
├── controllers/
├── services/
├── models/
├── routes/
└── middleware/

Monorepo

apps/           # Applications
├── web/
├── api/
packages/       # Shared libraries (by domain, not language)
├── types/
├── utils/
└── ui/

Where to Put Things

TypeLocation
Shared typestypes/ or packages/types/
Utilitieslib/ or utils/ (split by domain)
Configconfig/ or root
Unit testsColocate: foo.test.ts next to foo.ts
E2E testse2e/ or tests/e2e/
Mocks/fixtures__mocks__/ or test/mocks/

Naming Conventions

TypeConvention
Fileskebab-case.ts
Unit tests*.test.ts
E2E tests*.e2e.ts
Schemas*.schema.ts

Anti-Patterns

  • Catch-all files: Avoid utils.ts, helpers.ts - split by domain
  • Deep nesting: Keep < 4 levels, use descriptive names instead
  • Separated unit tests: Don't put all in __tests__/ - colocate instead
  • Language grouping: In monorepos, group by domain not language
  • Bloated barrels: Avoid index.ts with 50+ re-exports

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

create-branch

No summary provided by upstream source.

Repository SourceNeeds Review
General

create-issue

No summary provided by upstream source.

Repository SourceNeeds Review
General

update-issue

No summary provided by upstream source.

Repository SourceNeeds Review