# Go Architecture

> Diseño de arquitectura limpia y modular en Go. Usar al diseñar un nuevo módulo, definir capas y responsabilidades, u organizar código. Use when this capability is needed.

- Skill: `tomevault-io/go-architecture` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add tomevault-io/go-architecture`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tomevault-io/go-architecture/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- 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-architecture

---


# Skill: go-architecture

Arquitectura de GoFHIR.

## Estructura del Proyecto

```
gofhir/
├── r4/, r4b/, r5/     # FHIR types por versión
├── fhirpath/          # FHIRPath evaluator
│   ├── fhirpath.go    # API pública
│   ├── cache.go       # Expression cache
│   ├── funcs/         # Registry de funciones
│   └── types/         # Sistema de tipos
├── validator/         # FHIR Validator
│   ├── validator.go   # API pública
│   ├── pipeline.go    # Pipeline pattern
│   ├── phases.go      # Fases de validación
│   └── internal/      # Implementaciones
└── docs/adr/          # ADRs
```

## Arquitectura del Validator

```
API: NewInitializedValidatorR4(), Validate()
         ↓
    Pipeline (ejecuta fases)
         ↓
    Phases: Structure → Constraints → Terminology → Extensions
         ↓
    Services: Registry, FHIRPath, TerminologyService
```

## Patrones Usados

- **Pipeline**: Fases ordenadas de validación
- **Registry**: Funciones FHIRPath, StructureDefinitions
- **Visitor**: TreeWalker para recorrer JSON
- **Composite**: Servicios de terminología combinados

## Inyección de Dependencias

```go
// Constructor con dependencias requeridas
v := NewValidator(registry, opts)

// Builder para opcionales
v = v.WithTerminologyService(ts).
      WithReferenceResolver(resolver)
```

## Referencias

```text
validator/pipeline.go, validator/interfaces.go
fhirpath/funcs/registry.go
validator/internal/
```

---
> 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 -->

