Communitygithub.com

Arnés de Evaluación para Salud

Arnés de evaluación de seguridad del paciente para despliegues de aplicaciones sanitarias. Conjuntos de pruebas automatizadas para precisión de CDSS, exposición de PHI, integridad del flujo de trabajo clínico y cumplimiento de integración. Bloquea despliegues en caso de fallos de seguridad. Úselo cuando un despliegue sanitario deba estar sujeto a pruebas de seguridad del paciente para precisión de CDSS, exposición de PHI e integridad del flujo de trabajo.

¿Qué es Arnés de Evaluación para Salud?

El Healthcare Eval Harness es un sistema de verificación automatizada diseñado específicamente para entornos sanitarios. Su propósito principal es garantizar que ningún despliegue de aplicaciones clínicas (como EMR/EHR) se realice sin antes superar estrictas pruebas de seguridad del paciente. El sistema clasifica las pruebas en cinco categorías, tres de ellas críticas (precisión de CDSS, exposición de PHI e integridad de datos) que requieren una tasa de aprobación del 100 % y, si fallan, bloquean inmediatamente el despliegue. Las dos categorías restantes (flujo de trabajo clínico e integración) son de alta prioridad y requieren al menos un 95 % de aprobación, emitiendo advertencias en caso contrario. Es compatible con cualquier framework de pruebas (Jest, Vitest, pytest, PHPUnit, etc.) ya que las categorías y umbrales son agnósticos al framework. Se integra directamente en pipelines CI/CD, proporcionando comandos específicos para cada categoría y una matriz de aprobación/fallo clara. También incluye anti-patrones que advierten sobre malas prácticas comunes, como omitir pruebas críticas o rebajar umbrales. El resultado final es un informe de evaluación que indica si es seguro desplegar o no.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/affaan-m/everything-claude-code/tree/main/skills/healthcare-eval-harness

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Arnés de Evaluación para Salud — Verificación de Seguridad del Paciente

Sistema de verificación automatizada para despliegues de aplicaciones sanitarias. Un solo fallo CRÍTICO bloquea el despliegue. La seguridad del paciente no es negociable.

Nota: Los ejemplos utilizan Jest como ejecutor de pruebas de referencia. Adapte los comandos a su framework (Vitest, pytest, PHPUnit, etc.) — las categorías de prueba y los umbrales de aprobación son independientes del framework.

Cuándo Usarlo

  • Antes de cualquier despliegue de aplicaciones EMR/EHR
  • Después de modificar la lógica de CDSS (interacciones medicamentosas, validación de dosis, puntuaciones)
  • Después de cambiar esquemas de base de datos que afecten datos de pacientes
  • Después de modificar la autenticación o el control de acceso
  • Durante la configuración del pipeline CI/CD para aplicaciones sanitarias
  • Después de resolver conflictos de fusión en módulos clínicos

Cómo Funciona

El arnés de evaluación ejecuta cinco categorías de pruebas en orden. Las tres primeras (Precisión de CDSS, Exposición de PHI, Integridad de Datos) son puertas CRÍTICAS que requieren una tasa de aprobación del 100 % — un solo fallo bloquea el despliegue. Las dos restantes (Flujo de Trabajo Clínico, Integración) son puertas ALTAS que requieren una tasa de aprobación del 95 % o superior.

Cada categoría se asigna a un patrón de ruta de prueba de Jest. El pipeline de CI ejecuta las puertas CRÍTICAS con --bail (detenerse ante el primer fallo) y exige umbrales de cobertura con --coverage --coverageThreshold.

Categorías de Evaluación

1. Precisión de CDSS (CRÍTICA — 100 % requerido)

Prueba toda la lógica de apoyo a decisiones clínicas: pares de interacciones medicamentosas (ambas direcciones), reglas de validación de dosis, puntuaciones clínicas frente a especificaciones publicadas, sin falsos negativos, sin fallos silenciosos.

npx jest --testPathPattern='tests/cdss' --bail --ci --coverage

2. Exposición de PHI (CRÍTICA — 100 % requerido)

Prueba fugas de información sanitaria protegida: respuestas de error de API, salida de consola, parámetros de URL, almacenamiento del navegador, aislamiento entre instalaciones, acceso no autenticado, ausencia de claves de rol de servicio.

npx jest --testPathPattern='tests/security/phi' --bail --ci

3. Integridad de Datos (CRÍTICA — 100 % requerido)

Prueba la seguridad de los datos clínicos: encuentros bloqueados, entradas de pista de auditoría, protección contra borrado en cascada, manejo de ediciones concurrentes, sin registros huérfanos.

npx jest --testPathPattern='tests/data-integrity' --bail --ci

4. Flujo de Trabajo Clínico (ALTA — 95 % o más requerido)

Prueba flujos completos: ciclo de vida del encuentro, renderizado de plantillas, conjuntos de medicación, búsqueda de medicamentos/diagnósticos, PDF de prescripción, alertas de bandera roja.

tmp_json=$(mktemp)
npx jest --testPathPattern='tests/clinical' --ci --json --outputFile="$tmp_json" || true
total=$(jq '.numTotalTests // 0' "$tmp_json")
passed=$(jq '.numPassedTests // 0' "$tmp_json")
if [ "$total" -eq 0 ]; then
  echo "No se encontraron pruebas clínicas" >&2
  exit 1
fi
rate=$(echo "scale=2; $passed * 100 / $total" | bc)
echo "Tasa de aprobación clínica: ${rate}% ($passed/$total)"

5. Cumplimiento de Integración (ALTA — 95 % o más requerido)

Prueba sistemas externos: análisis de mensajes HL7 (v2.x), validación FHIR, mapeo de resultados de laboratorio, manejo de mensajes malformados.

tmp_json=$(mktemp)
npx jest --testPathPattern='tests/integration' --ci --json --outputFile="$tmp_json" || true
total=$(jq '.numTotalTests // 0' "$tmp_json")
passed=$(jq '.numPassedTests // 0' "$tmp_json")
if [ "$total" -eq 0 ]; then
  echo "No se encontraron pruebas de integración" >&2
  exit 1
fi
rate=$(echo "scale=2; $passed * 100 / $total" | bc)
echo "Tasa de aprobación de integración: ${rate}% ($passed/$total)"

Matriz de Aprobación/Fallo

CategoríaUmbralAnte un Fallo
Precisión de CDSS100 %BLOQUEAR despliegue
Exposición de PHI100 %BLOQUEAR despliegue
Integridad de Datos100 %BLOQUEAR despliegue
Flujo de Trabajo Clínico95 % o másADVERTENCIA, permitir con revisión
Integración95 % o másADVERTENCIA, permitir con revisión

Integración CI/CD

name: Puerta de Seguridad Sanitaria
on: [push, pull_request]

jobs:
  safety-gate:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: '20'
      - run: npm ci

      # Puertas CRÍTICAS — 100 % requerido, detenerse ante el primer fallo
      - name: Precisión de CDSS
        run: npx jest --testPathPattern='tests/cdss' --bail --ci --coverage --coverageThreshold='{"global":{"branches":80,"functions":80,"lines":80}}'

      - name: Verificación de Exposición de PHI
        run: npx jest --testPathPattern='tests/security/phi' --bail --ci

      - name: Integridad de Datos
        run: npx jest --testPathPattern='tests/data-integrity' --bail --ci

      # Puertas ALTAS — 95 % o más requerido, verificación de umbral personalizada
      - name: Flujos de Trabajo Clínicos
        run: |
          TMP_JSON=$(mktemp)
          npx jest --testPathPattern='tests/clinical' --ci --json --outputFile="$TMP_JSON" || true
          TOTAL=$(jq '.numTotalTests // 0' "$TMP_JSON")
          PASSED=$(jq '.numPassedTests // 0' "$TMP_JSON")
          if [ "$TOTAL" -eq 0 ]; then
            echo "::error::No se encontraron pruebas clínicas"; exit 1
          fi
          RATE=$(echo "scale=2; $PASSED * 100 / $TOTAL" | bc)
          echo "Tasa de aprobación: ${RATE}% ($PASSED/$TOTAL)"
          if (( $(echo "$RATE < 95" | bc -l) )); then
            echo "::warning::La tasa de aprobación clínica ${RATE}% está por debajo del 95%"
          fi

      - name: Cumplimiento de Integración
        run: |
          TMP_JSON=$(mktemp)
          npx jest --testPathPattern='tests/integration' --ci --json --outputFile="$TMP_JSON" || true
          TOTAL=$(jq '.numTotalTests // 0' "$TMP_JSON")
          PASSED=$(jq '.numPassedTests // 0' "$TMP_JSON")
          if [ "$TOTAL" -eq 0 ]; then
            echo "::error::No se encontraron pruebas de integración"; exit 1
          fi
          RATE=$(echo "scale=2; $PASSED * 100 / $TOTAL" | bc)
          echo "Tasa de aprobación: ${RATE}% ($PASSED/$TOTAL)"
          if (( $(echo "$RATE < 95" | bc -l) )); then
            echo "::warning::La tasa de aprobación de integración ${RATE}% está por debajo del 95%"
          fi

Anti-Patrones

  • Omitir pruebas de CDSS "porque pasaron la última vez"
  • Establecer umbrales CRÍTICOS por debajo del 100 %
  • Usar --no-bail en conjuntos de pruebas CRÍTICAS
  • Simular (mockear) el motor CDSS en pruebas de integración (debe probarse la lógica real)
  • Permitir despliegues cuando la puerta de seguridad esté en rojo
  • Ejecutar pruebas sin --coverage en conjuntos de CDSS

Ejemplos

Ejemplo 1: Ejecutar Todas las Puertas Críticas Localmente

npx jest --testPathPattern='tests/cdss' --bail --ci --coverage && \
npx jest --testPathPattern='tests/security/phi' --bail --ci && \
npx jest --testPathPattern='tests/data-integrity' --bail --ci

Ejemplo 2: Verificar la Tasa de Aprobación de Puertas ALTAS

tmp_json=$(mktemp)
npx jest --testPathPattern='tests/clinical' --ci --json --outputFile="$tmp_json" || true
jq '{
  passed: (.numPassedTests // 0),
  total: (.numTotalTests // 0),
  rate: (if (.numTotalTests // 0) == 0 then 0 else ((.numPassedTests // 0) / (.numTotalTests // 1) * 100) end)
}' "$tmp_json"
# Esperado: { "passed": 21, "total": 22, "rate": 95.45 }

Ejemplo 3: Informe de Evaluación

## Evaluación Sanitaria: 2026-03-27 [commit abc1234]

### Seguridad del Paciente: APROBADO

| Categoría | Pruebas | Aprobadas | Fallidas | Estado |
|-----------|---------|-----------|----------|--------|
| Precisión de CDSS | 39 | 39 | 0 | APROBADO |
| Exposición de PHI | 8 | 8 | 0 | APROBADO |
| Integridad de Datos | 12 | 12 | 0 | APROBADO |
| Flujo de Trabajo Clínico | 22 | 21 | 1 | 95.5 % APROBADO |
| Integración | 6 | 6 | 0 | APROBADO |

### Cobertura: 84 % (objetivo: 80 % o más)
### Veredicto: SEGURO PARA DESPLEGAR

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

accessibility

Design, implement, and audit inclusive digital products using WCAG 2.2 Level AA. Use when building or auditing UI that must meet WCAG 2.2 Level AA, or when reviewing a change for keyboard, contrast, or screen-reader support.

affaan-m/claude-api

Anthropic Claude API patterns for Python and TypeScript. Covers Messages API, streaming, tool use, vision, extended thinking, batches, prompt caching, and Claude Agent SDK. Use when building applications with the Claude API or Anthropic SDKs.

affaan-m/everything-claude-code

End-to-end marketing campaign planning and execution. Covers audience research, positioning, campaign angle definition, landing page copy, email sequences, social posts, ad copy, short-form video scripts, and content calendars. Use as the orchestration layer for multi-channel product launches. Use when planning or executing a multi-channel product launch, or producing landing page, email, social, or ad copy.

affaan-m/everything-claude-code

Development conventions and patterns for everything-claude-code. JavaScript project with conventional commits.

affaan-m/everything-claude-code-conventions

Development conventions and patterns for everything-claude-code. JavaScript project with conventional commits.

affaan-m/frontend-design

Create distinctive, production-grade frontend interfaces with high design quality. Use when the user asks to build web components, pages, or applications and the visual direction matters as much as the code quality.

affaan-m/gget

gget CLI and Python workflow for quick genomic database queries, sequence lookup, BLAST-style searches, enrichment checks, and reproducible bioinformatics evidence logs.

affaan-m/literature-review

Systematic literature-review workflow for academic, biomedical, technical, and scientific topics, including search planning, source screening, synthesis, citation checks, and evidence logging.

affaan-m/motion-ui

Production-ready UI motion system for React/Next.js. Use when implementing animations, transitions, or motion patterns.

affaan-m/project-guidelines-example

Example project-specific skill template based on a real production application.

affaan-m/pubmed-database

Direct PubMed and NCBI E-utilities search workflows for biomedical literature, MeSH queries, PMID lookup, citation retrieval, and API-backed literature monitoring.

affaan-m/scholar-evaluation

Structured scholarly-work evaluation for papers, proposals, literature reviews, methods sections, evidence quality, citation support, and research-writing feedback.

affaan-m/uspto-database

USPTO patent and trademark data workflow for official record lookup, PatentSearch queries, TSDR checks, assignment data, and reproducible IP research logs.

agent-architecture-audit

Full-stack diagnostic for agent and LLM applications. Audits the 12-layer agent stack for wrapper regression, memory pollution, tool discipline failures, hidden repair loops, and rendering corruption. Produces severity-ranked findings with code-first fixes. Essential for developers building agent applications, autonomous loops, or any LLM-powered feature. Use when an agent or LLM feature misbehaves and the failing layer is unknown, or before shipping an agent stack.

agent-eval

Head-to-head comparison of coding agents (Claude Code, Aider, Codex, etc.) on custom tasks with pass rate, cost, time, and consistency metrics. Use when choosing between coding agents, or when a change to an agent setup needs measured pass rate, cost, and time rather than an impression.

agent-harness-construction

Design and optimize AI agent action spaces, tool definitions, and observation formatting for higher completion rates. Use when defining or revising an agent

agentic-engineering

Operate as an agentic engineer using eval-first execution, decomposition, and cost-aware model routing. Use when planning or executing engineering work that agents will carry out end to end.

agentic-os

Build persistent multi-agent operating systems on Claude Code. Covers kernel architecture, specialist agents, slash commands, file-based memory, scheduled automation, and state management without external databases. Use when building a persistent multi-agent system on Claude Code with its own memory, commands, and scheduling.

agent-introspection-debugging

Structured self-debugging workflow for AI agent failures using capture, diagnosis, contained recovery, and introspection reports. Use when an agent run fails and you need a reproducible diagnosis instead of a retry.

agent-payment-x402

Add x402 payment execution to AI agents with per-task budgets, spending controls, and non-custodial wallets. Supports Base through agentwallet-sdk and X Layer through OKX Payments / OKX Agent Payments Protocol. Use when an agent must pay for something itself and needs per-task budgets, spending controls, and a non-custodial wallet.

Skills relacionados