# Go Project Structure

> Estructura de proyecto y módulos en Go. Usar al crear nuevos proyectos u organizar código existente. Use when this capability is needed.

- Skill: `tomevault-io/go-project-structure` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add tomevault-io/go-project-structure`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tomevault-io/go-project-structure/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: tomevault-io (https://skillmd.com/u/tomevault-io)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/tomevault-io/go-project-structure

---


# Skill: go-project-structure

Estructura de proyecto y módulos en Go.

## Cuándo usar este skill

- Al crear nuevos proyectos
- Al organizar código existente
- Al definir estructura de paquetes

## Estructura del Proyecto GoFHIR

```
gofhir/
├── go.work                    # Go workspace
├── go.mod
├── CLAUDE.md                  # Instrucciones globales
│
├── fhirpath/                  # FHIRPath evaluator
│   ├── go.mod
│   ├── fhirpath.go           # API pública
│   ├── options.go            # Opciones funcionales
│   └── internal/             # Implementación privada
│
├── validator/                 # FHIR Validator
│   ├── go.mod
│   ├── validator.go
│   ├── interfaces.go
│   └── internal/
│
├── r4/, r4b/, r5/            # Tipos FHIR por versión
│
├── docs/adr/                  # ADRs
│
└── .claude/
    └── skills/               # Skills de desarrollo
```

## Reglas de Organización

### 1. Un Paquete = Una Responsabilidad

```
validator/   # Validación
fhirpath/    # Expresiones
terminology/ # Terminología
```

### 2. Internal para Privado

```go
// mypackage/internal/core/processor.go
// NO accesible desde fuera de mypackage
```

### 3. Nombrado de Paquetes

```go
package validator   // ✅ BIEN
package fhirvalidator  // ❌ Redundante
```

## Archivos Especiales

- `doc.go` - Documentación del paquete
- `interfaces.go` - Interfaces públicas
- `options.go` - Opciones funcionales
- `errors.go` - Tipos de error

---
> Converted and distributed by [TomeVault](https://tomevault.io/claim/gofhir) — claim your Tome and manage your conversions.
<!-- tomevault:4.0:skill_md:2026-04-13 -->

