본문으로 건너뛰기
cccskills
무료GitHub에 공개

go-clean-architecture

Arquitectura Go estilo Alizia-BE (Educabot). Clean Architecture híbrida KISS, DI manual, entities/providers/usecases/entrypoints/repositories. Multi-tenant OrgID scope.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

SebastianLuser/claude-code-arcane스타 3(GitHub 3 + cccskills 0)
연동 도구PostgreSQL

실행 점수 미검증

설치 방법 보기

포함된 파일(3)

  • SKILL.md3.8 KB
  • references/anti-patterns.md376 B
  • references/checklist.md552 B

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

Go Clean Architecture (estilo Alizia-BE)

Arquitectura canónica backends Go Educabot. KISS + Clean by layers, DI manual, separación estricta.

Cuándo usar / NO usar

UsarNO usar
API backend nueva con lógica no trivialCLI simple / tool interno
Multi-tenant con OrgID scopePrototipo throwaway
Necesitás testabilidad por capaWorker de una sola función

Filosofía

  • Simpleza primero — no DDD pesado, no event sourcing, no CQRS prematuro
  • DI manual en cmd/ — no wire/fx/dig. Verbosidad es feature
  • One file = one responsibility (especialmente usecases)
  • Código en inglés, comunicación en español

Estructura de Directorios

cmd/                         ← Entry point + DI manual
  main.go, app.go, repositories.go, usecases.go, handlers.go, routes.go
src/core/                    ← DOMINIO PURO (sin imports infra)
  entities/                  ← Structs planos (sin tags GORM/JSON)
  providers/                 ← Interfaces (contratos) + errors.go
  usecases/{domain}/         ← Business logic, un archivo por usecase
src/entrypoints/rest/        ← HTTP handlers (sin lógica de negocio)
src/repositories/{domain}/   ← GORM impl (tags GORM acá, no en entities)
src/mocks/                   ← Un mock por provider
config/                      ← Env vars
db/migrations/               ← SQL up/down (golang-migrate)

Regla de Dependencias

entrypoints → usecases → providers (interfaces) ← repositories

  • Usecases NUNCA importan gorm/http/redis/openai — solo entities + providers
  • Interfaces en core/providers/ (consumer side, Go idiom)

Capas

CapaResponsabilidadReglas
EntitiesStructs del dominioSin tags GORM/JSON, sin lógica de persistencia
ProvidersInterfaces + errores sentinelErrValidation, ErrNotFound, ErrForbidden, etc.
UsecasesRequest.Validate() + Execute()Validate siempre primera línea. Validar OrgID siempre
EntrypointsHTTP ↔ Request translationSin lógica de negocio. Mapea sentinel → HTTP code
RepositoriesGORM impl de providersRow structs con tags GORM acá. Traducen row ↔ entity

Patrón Canónico Usecase

  • Struct CreateXxxRequest con Validate() error — wrappea con providers.ErrValidation
  • Interface CreateXxx con Execute(ctx, req) (result, error)
  • Impl createXxxImpl con deps como providers
  • Constructor NewCreateXxx(deps) CreateXxx

Multi-tenant (OrgID)

  • OrgID en cada Request de usecase, Validate() chequea OrgID != uuid.Nil
  • Cada query filtra por organization_id. RLS en Postgres como última barrera
  • Middleware JWT extrae OrgID del token → context

DI Manual en cmd/

  • cmd/repositories.go: buildRepositories(db) → struct con todos los repos
  • cmd/usecases.go: buildUseCases(repos) → struct con todos los usecases
  • cmd/handlers.go: buildHandlers(ucs) → struct con todos los handlers
  • Lectura completa del grafo de deps en un vistazo

Testing

CapaTipoHerramientas
UsecasesUnit con mockstestify + mocks por provider
RepositoriesIntegrationPostgres real (testcontainers)
HandlersHTTP con usecase mockeadohttptest + testify

Anti-patterns

→ Read references/anti-patterns.md for common architecture violations

Checklist

→ Read references/checklist.md for 11-item architecture compliance checklist

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Plan, design, and implement A/B tests and experiments with statistical rigor. Covers hypothesis frameworks, sample sizing, metrics, and result analysis.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

SebastianLuser/claude-code-arcane32026년 10월 27일 업데이트

Web/mobile accessibility decision guide: WCAG 2.2 AA, ARIA, keyboard nav, focus management, contrast, testing. Use for: a11y, accessibility, wcag, aria, screen reader, keyboard, contrast.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

SebastianLuser/claude-code-arcane32026년 10월 27일 업데이트

Generate, iterate, and scale ad creative for paid advertising across Google, Meta, LinkedIn, and X. Covers platform specs, creative frameworks, and quality validation.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

SebastianLuser/claude-code-arcane32026년 10월 27일 업데이트

Musica interactiva para juegos: layering vertical, re-secuenciacion horizontal, stingers, reglas de transicion con sync points, y mapeo de estados de gameplay a musica. Usar para: musica adaptativa, sistema de musica dinamica, transiciones musicales, combat music.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

SebastianLuser/claude-code-arcane32026년 10월 27일 업데이트

Design multi-agent systems, create agent architectures, define communication patterns, and build autonomous agent workflows with structured evaluation frameworks.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

SebastianLuser/claude-code-arcane32026년 10월 27일 업데이트

Inter-agent communication protocol for C-suite agent teams. Defines invocation syntax, loop prevention, isolation rules, response formats, and quality loops.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

SebastianLuser/claude-code-arcane32026년 10월 27일 업데이트

SebastianLuser의 스킬 모두 보기

이 스킬의 문제 신고