Agent skill
Project Folder Structure and Organization Understanding Capabillity
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.
Stars
163
Forks
31
Install this agent skill to your Project
npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/development/project-folder-structure-and-organization-understanding-capabill
SKILL.md
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.pyto get recursivelly all folders and files by name, organizated in an understandable structure.
Didn't find tool you were looking for?