---
name: CheckResult
lang: go
domain: infra
version: "1.0.0"
algebraic: product
definition: |
  type CheckResult struct {
      ID         string `json:"id"`
      Status     string `json:"status"`
      Severity   string `json:"severity"`
      DurationMs int64  `json:"duration_ms"`
      ExitCode   int    `json:"exit_code"`
      Stdout     string `json:"stdout,omitempty"`
      Stderr     string `json:"stderr,omitempty"`
      Error      string `json:"error,omitempty"`
  }
description: "Salida de ejecutar un E2ECheck individual. Captura status (pass/fail/skip), severidad heredada del check, duracion en ms, exit code del proceso, stdout/stderr capturados, y mensaje de error si aplica."
tags: [e2e, result, check, validation, infra, testing]
uses_types: []
file_path: "functions/infra/check_result.go"
---

## Campos

- `id`: mismo ID del `E2ECheck` que origino este resultado.
- `status`: `pass` si todos los predicados se cumplen, `fail` si alguno falla, `skip` si el check no tiene cmd/ref/health.
- `severity`: `critical` o `warning`, heredado del `E2ECheck.Severity`.
- `duration_ms`: tiempo total de ejecucion del check en milisegundos.
- `exit_code`: codigo de salida del proceso. 0 si es check de tipo health o skip.
- `stdout`: salida capturada del proceso (truncada si excede 4KB).
- `stderr`: error capturado del proceso.
- `error`: mensaje de error de infraestructura (timeout, exec.Error, etc.).

## Notas

Tipo de retorno de `e2e_run_checks_go_infra`. Los resultados con `status=fail` y
`severity=critical` son candidatos a generar proposals via `proposal_from_failure_go_infra`.
