Understand the already-done project folder structure, archtecture, file patterns, and similar, in order to apply better solutions and file organizations. Use when you need to understand the project archtecture, and file/folder patterns and conventions.
Scanned 9/8/2026
Install to Claude Code
npx -y skills add mattnigh/skills_collection --skill collection --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Collection?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/mattnigh-collection-76208dc2)More formats (shields.io, HTML) on the badges page.
---
name: Project Folder Structure and Organization Understanding Capabillity
description: Understand the already-done project folder structure, archtecture, file patterns, and similar, in order to apply better solutions and file organizations. Use when you need to understand the project archtecture, and file/folder patterns and conventions.
---
# Basic Understanding
## Folder Structure
```
src/
├── domain/ # Application CORE (pure TypeScript, framework-free)
│ ├── @shared/ # Shared between bounded contexts
│ │ ├── entities/ # Base Entity, base AggregateRoot
│ │ ├── value-objects/ # Base ValueObject, UniqueEntityId
│ │ ├── errors/ # Base DomainError
│ │ └── either.ts # Either pattern (Left/Right)
│ │
│ └── [bounded-context]/ # E.g.: identity, catalog, orders, billing
│ ├── enterprise/ # Enterprise Layer (entities and business rules)
│ │ ├── entities/ # Domain entities
│ │ └── value-objects/ # Specific Value Objects
│ │
│ ├── application/ # Application Layer (use cases)
│ │ ├── use-cases/ # Use cases
│ │ └── repositories/ # Repository interfaces (contracts)
│ │
│ └── errors/ # Bounded context specific errors
│
├── infra/ # Infrastructure implementations
│ ├── database/
│ │ ├── prisma/ # Prisma Client, migrations
│ │ └── repositories/ # Repository implementations
│ │
│ ├── cryptography/ # Hashing, JWT, etc.
│ └── cache/ # Redis, etc.
│
├── http/ # HTTP Layer (NestJS)
│ ├── app.module.ts
│ ├── main.ts
│ └── [module]/ # E.g.: auth, users, products
│ ├── controllers/ # Receives request, calls service
│ ├── services/ # Instantiates and executes use-case
│ ├── schemas/ # Zod schemas for validation
│ ├── pipes/ # Validation pipes
│ ├── presenters/ # Transforms entity into response
│ └── [module].module.ts
│
└── env/ # Environment configuration
└── env.ts
```
## Dependency Rules
```
HTTP (NestJS) --> Application (Use Cases) --> Enterprise (Entities)
| |
v v
Infra <----------- Repositories (interfaces)
```
## Planned Bounded Contexts
| Context | Responsibility |
| -------- | ---------------------------------- |
| identity | Users, authentication, permissions |
| [others] | Define according to business needs |
## File Naming
| Type | Suffix | Example |
| ------------ | ---------------- | --------------------------------- |
| Entity | `.entity.ts` | `user.entity.ts` |
| Value Object | `.vo.ts` | `email.vo.ts` |
| Use Case | `.use-case.ts` | `create-account.use-case.ts` |
| Repository | `.repository.ts` | `users.repository.ts` |
| Error | `.error.ts` | `account-already-exists.error.ts` |
| Controller | `.controller.ts` | `auth.controller.ts` |
| Service | `.service.ts` | `auth.service.ts` |
| Schema | `.schema.ts` | `auth.controller.schema.ts` |
| Presenter | `.presenter.ts` | `user.presenter.ts` |
| Mapper | `.mapper.ts` | `prisma-user.mapper.ts` |
| Pipe | `.pipe.ts` | `zod-validation.pipe.ts` |
| Guard | `.guard.ts` | `auth.guard.ts` |
| Decorator | `.decorator.ts` | `public.decorator.ts` |
| Enum | `.enum.ts` | `role.enum.ts` |
| Provider | `.provider.ts` | `bcrypt.provider.ts` |
## Tests
```
src/domain/[bounded-context]/application/use-cases/__tests__/
create-account.use-case.spec.ts
src/http/[module]/__tests__/
auth.e2e-spec.ts
```
- Unit tests for use-cases (mocking repositories)
- E2E tests for controllers
# Scripts for full understanding (MUST USE)
- Use the `.claude/skills/structure_understander/scripts/read-structure.py` to get recursivelly all folders and files by name, organizated in an understandable structure.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!