Loading...
Loading...
Scans repository structure and generates comprehensive architecture documentation including system overview, entry points, module relationships, data flow diagrams, and "edit here for X" guides. Creates ARCHITECTURE.md for onboarding and navigation. Use when users request "document the codebase", "explain the architecture", "create onboarding docs", or "map the system".
npx skill4agent add patricio0312rev/skills codebase-summarizer# Architecture Overview
## System Summary
[Project Name] is a [type] application built with [stack]. It follows [architecture pattern] and handles [primary use cases].
**Tech Stack:**
- Frontend: [framework + key libraries]
- Backend: [framework + key libraries]
- Database: [database + ORM]
- Infrastructure: [hosting + CI/CD]
## High-Level Architecture
```mermaid
graph TB
Client[Client/Browser] --> API[API Layer]
API --> Services[Business Logic]
Services --> DB[(Database)]
Services --> Cache[(Redis Cache)]
API --> Queue[Message Queue]
```src/
├── app/ # Application entry point and routing
├── components/ # Reusable UI components
├── lib/ # Utility functions and helpers
├── services/ # Business logic layer
├── models/ # Data models and schemas
└── types/ # TypeScript type definitionssrc/app/page.tsxsrc/app/api/src/services/auth/src/services/users/src/models/sequenceDiagram
Client->>API: POST /api/auth/register
API->>Validation: Validate input
Validation->>Services: UserService.create()
Services->>Database: Insert user
Database-->>Services: User created
Services->>Email: Send welcome email
Services-->>API: Return JWT
API-->>Client: 201 Createdsrc/app/api/[endpoint]/route.tssrc/services/src/models/// src/services/users/user.service.ts
export class UserService {
async findById(id: string) {
return prisma.user.findUnique({ where: { id } });
}
async create(data: CreateUserDto) {
// Validation, business logic, database operations
}
}// src/repositories/user.repository.ts
export class UserRepository {
async findAll() {
/* DB queries only */
}
async findById(id: string) {
/* DB queries only */
}
}src/app/api/[name]/route.tsexport async function GET(req: Request) {
// Implementation
}src/services/[name].service.tssrc/types/[name].tssrc/app/api/[name]/route.test.tsprisma/schema.prismamodel NewModel {
id String @id @default(cuid())
// fields
}npx prisma migrate dev --name add-new-modelnpx prisma generatesrc/services/new-model.service.tssrc/app/api/new-model/src/components/NewComponent/NewComponent.tsxNewComponent.module.cssNewComponent.test.tsxNewComponent.stories.tsxsrc/components/index.tssrc/services/auth/auth.service.tssrc/middleware/auth.middleware.tssrc/app/api/auth/| File | Purpose | Modify For |
|---|---|---|
| Root layout, providers | Global layout changes |
| Database connection | Connection config |
| API client setup | Request interceptors |
| Next.js middleware | Auth, redirects |
| Database schema | Data model changes |
| Environment vars | Adding config values |
nextprismareacttypescriptzodbcryptjsonwebtokendate-fnspnpm testnpx prisma generatenpx prisma generate.nextrm -rf .nextrm -rf node_modules && pnpm install
## Analysis Techniques
### Identify Framework
Look for telltale files:
- `next.config.js` → Next.js
- `vite.config.ts` → Vite
- `nest-cli.json` → NestJS
- `manage.py` → Django
- `Cargo.toml` → Rust
### Map Entry Points
- Frontend: `index.html`, `main.tsx`, `app.tsx`, `_app.tsx`
- Backend: `main.ts`, `server.ts`, `app.py`, `index.js`
- CLI: `cli.ts`, `__main__.py`, `main.go`
### Trace Request Flow
Follow typical paths:
1. Route/endpoint definition
2. Middleware/guards
3. Controller/handler
4. Service/business logic
5. Repository/model
6. Database query
### Module Categories
- **Core**: Essential business logic
- **Infrastructure**: Database, cache, queue
- **Utilities**: Helpers, formatters, validators
- **Features**: User-facing functionality
- **Config**: Environment, settings
## Mermaid Diagrams
### Architecture Diagram
```mermaid
graph LR
Client --> NextJS
NextJS --> API
API --> Services
Services --> Prisma
Prisma --> PostgreSQLsequenceDiagram
participant Client
participant API
participant Service
participant DB
Client->>API: Request
API->>Service: Process
Service->>DB: Query
DB-->>Service: Data
Service-->>API: Result
API-->>Client: Responsegraph TB
API[API Layer] --> Auth[Auth Service]
API --> Users[User Service]
Auth --> DB[(Database)]
Users --> DB
Users --> Cache[(Cache)]