Communitygithub.com

cumplimiento-fhi-phi

Patrones de cumplimiento de Información de Salud Protegida (PHI) e Información de Identificación Personal (PII) para aplicaciones sanitarias. Cubre clasificación de datos, control de acceso, pistas de auditoría, cifrado y vectores de filtración comunes. Útil al manejar PHI o PII en sistemas de salud, o al auditar control de acceso, pistas de auditoría o vectores de filtración.

¿Qué es cumplimiento-fhi-phi?

Este skill proporciona un conjunto completo de patrones de seguridad para proteger datos sensibles de pacientes, personal clínico y financieros en aplicaciones sanitarias, cumpliendo con normativas como HIPAA (EE.UU.), DISHA (India) y GDPR (UE). Su objetivo principal es guiar a desarrolladores y agentes de IA en la implementación de medidas de clasificación de datos, control de acceso a nivel de fila (RLS), pistas de auditoría inmutables y la prevención de vectores de filtración comunes como mensajes de error, registros en consola, parámetros URL o almacenamiento en el navegador. El skill es ideal para cualquier fase del desarrollo: desde el diseño de esquemas de bases de datos y la creación de APIs, hasta la revisión de código y el despliegue. Se apoya en ejemplos prácticos de código (SQL y TypeScript) y una lista de verificación previa al despliegue para garantizar que no se exponga información sensible. Es compatible con plataformas que utilicen PostgreSQL con RLS y sistemas de autenticación como Supabase, y su enfoque práctico permite integrarlo fácilmente en flujos de trabajo de agentes de IA como Claude Code, Cursor o Codex.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/affaan-m/ECC/tree/main/skills/healthcare-phi-compliance

Preguntar en tu IA favorita

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

Documentación

Patrones de Cumplimiento PHI/PII para Salud

Patrones para proteger datos de pacientes, datos de personal clínico y datos financieros en aplicaciones sanitarias. Aplicable a HIPAA (EE.UU.), DISHA (India), GDPR (UE) y protección general de datos sanitarios.

Cuándo Usarlo

  • Al construir cualquier funcionalidad que toque historiales de pacientes
  • Al implementar control de acceso o autenticación para sistemas clínicos
  • Al diseñar esquemas de bases de datos para datos sanitarios
  • Al construir APIs que devuelvan datos de pacientes o personal clínico
  • Al implementar pistas de auditoría o registro de actividad
  • Al revisar código en busca de vulnerabilidades de exposición de datos
  • Al configurar Seguridad a Nivel de Fila (RLS) para sistemas sanitarios multi-institucionales

Cómo Funciona

La protección de datos sanitarios opera en tres capas: clasificación (qué es sensible), control de acceso (quién puede verlo) y auditoría (quién lo vio).

Clasificación de Datos

PHI (Información de Salud Protegida) — cualquier dato que pueda identificar a un paciente Y esté relacionado con su salud: nombre del paciente, fecha de nacimiento, dirección, teléfono, correo electrónico, números de identificación nacional (SSN, Aadhaar, número NHS), números de historia clínica, diagnósticos, medicamentos, resultados de laboratorio, imágenes, detalles de pólizas y reclamaciones de seguros, registros de citas y admisiones, o cualquier combinación de lo anterior.

PII (Datos no sensibles de pacientes) en sistemas sanitarios: datos personales del personal clínico/administrativo, estructuras de honorarios de médicos y montos de pagos, salarios y datos bancarios de empleados, información de pagos a proveedores.

Control de Acceso: Seguridad a Nivel de Fila

ALTER TABLE pacientes ENABLE ROW LEVEL SECURITY;

-- Limitar acceso por institución
CREATE POLICY "personal_lee_propia_institucion"
  ON pacientes FOR SELECT TO authenticated
  USING (institucion_id IN (
    SELECT institucion_id FROM asignaciones_personal
    WHERE usuario_id = auth.uid() AND rol IN ('medico','enfermero','tec_lab','admin')
  ));

-- Registro de auditoría: solo inserción (a prueba de manipulaciones)
CREATE POLICY "auditoria_solo_insertar" ON registro_auditoria FOR INSERT
  TO authenticated WITH CHECK (usuario_id = auth.uid());
CREATE POLICY "auditoria_no_modificar" ON registro_auditoria FOR UPDATE USING (false);
CREATE POLICY "auditoria_no_eliminar" ON registro_auditoria FOR DELETE USING (false);

Pista de Auditoría

Cada acceso o modificación de PHI debe registrarse:

interface EntradaAuditoria {
  timestamp: string;
  usuario_id: string;
  paciente_id: string;
  accion: 'crear' | 'leer' | 'actualizar' | 'eliminar' | 'imprimir' | 'exportar';
  tipo_recurso: string;
  recurso_id: string;
  cambios?: { antes: object; despues: object };
  direccion_ip: string;
  sesion_id: string;
}

Vectores de Filtración Comunes

Mensajes de error: Nunca incluir datos identificativos del paciente en mensajes de error enviados al cliente. Registrar los detalles solo en el servidor.

Salida de consola: Nunca registrar objetos completos de pacientes. Usar identificadores internos opacos (UUID) — no números de historia clínica, identificaciones nacionales o nombres.

Parámetros URL: Nunca colocar datos identificativos del paciente en cadenas de consulta o segmentos de ruta que puedan aparecer en registros o el historial del navegador. Usar solo UUID opacos.

Almacenamiento del navegador: Nunca almacenar PHI en localStorage o sessionStorage. Mantener PHI solo en memoria, obtener bajo demanda.

Claves de rol de servicio: Nunca usar la clave service_role en código del lado del cliente. Usar siempre la clave anónima/publicable y dejar que RLS aplique el control.

Registros y monitoreo: Nunca registrar registros completos de pacientes. Usar solo identificadores opacos (no números de historia clínica). Sanitizar trazas de pila antes de enviar a servicios de seguimiento de errores.

Etiquetado de Esquema de Base de Datos

Marcar columnas PHI/PII a nivel de esquema:

COMMENT ON COLUMN pacientes.nombre IS 'PHI: nombre_paciente';
COMMENT ON COLUMN pacientes.fecha_nac IS 'PHI: fecha_nacimiento';
COMMENT ON COLUMN pacientes.aadhaar IS 'PHI: id_nacional';
COMMENT ON COLUMN pagos_medicos.monto IS 'PII: financiero';

Lista de Verificación de Despliegue

Antes de cada despliegue:

  • Sin PHI en mensajes de error o trazas de pila
  • Sin PHI en console.log/console.error
  • Sin PHI en parámetros URL
  • Sin PHI en almacenamiento del navegador
  • Sin clave service_role en código del cliente
  • RLS habilitado en todas las tablas PHI/PII
  • Pista de auditoría para todas las modificaciones de datos
  • Timeout de sesión configurado
  • Autenticación de API en todos los endpoints PHI
  • Aislamiento de datos entre instituciones verificado

Ejemplos

Ejemplo 1: Manejo de Errores Seguro vs Inseguro

// MALO — filtra PHI en el error
throw new Error(`Paciente ${paciente.nombre} no encontrado en ${paciente.institucion}`);

// BUENO — error genérico, detalles registrados en servidor solo con IDs opacos
logger.error('Falló búsqueda de paciente', { recordId: paciente.id, institucionId });
throw new Error('Registro no encontrado');

Ejemplo 2: Política RLS para Aislamiento Multi-Institucional

-- El médico de la Institución A no puede ver pacientes de la Institución B
CREATE POLICY "aislamiento_institucion"
  ON pacientes FOR SELECT TO authenticated
  USING (institucion_id IN (
    SELECT institucion_id FROM asignaciones_personal WHERE usuario_id = auth.uid()
  ));

-- Prueba: iniciar sesión como medico-institucion-a, consultar pacientes de institucion-b
-- Resultado esperado: 0 filas devueltas

Ejemplo 3: Registro Seguro

// MALO — registra datos identificables del paciente
console.log('Procesando paciente:', paciente);

// BUENO — registra solo ID interno opaco
console.log('Procesando registro:', paciente.id);
// Nota: incluso paciente.id debe ser un UUID opaco, no un número de historia clínica

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/content-engine

Create platform-native content systems for X, LinkedIn, TikTok, YouTube, newsletters, and repurposed multi-platform campaigns. Use when the user wants social posts, threads, scripts, content calendars, or one source asset adapted cleanly across platforms.

affaan-m/ECC

Multi-platform content distribution across X, LinkedIn, Threads, and Bluesky. Adapts content per platform using content-engine patterns. Never posts identical content cross-platform. Use when the user wants to distribute content across social platforms.

affaan-m/fal-ai-media

Unified media generation via fal.ai MCP — image, video, and audio. Covers text-to-image (Nano Banana), text/image-to-video (Seedance, Kling, Veo 3), text-to-speech (CSM-1B), and video-to-audio (ThinkSound). Use when the user wants to generate images, videos, or audio with AI.

affaan-m/manim-video

日本語翻訳:このファイルは manim-video 用の日本語翻訳が必要です

affaan-m/remotion-video-creation

Remotion のベストプラクティス - React で動画を作成する。3D、アニメーション、音声、字幕、チャート、トランジションなどをカバーするドメイン固有の29のルール。

affaan-m/video-editing

AI-assisted video editing workflows for cutting, structuring, and augmenting real footage. Covers the full pipeline from raw capture through FFmpeg, Remotion, ElevenLabs, fal.ai, and final polish in Descript or CapCut. Use when the user wants to edit video, cut footage, create vlogs, or build video content.

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.

agent-self-evaluation

Use after completing any non-trivial task. The agent self-rates its output on 5 axes — accuracy, completeness, clarity, actionability, conciseness — with concrete evidence per criterion. Produces a structured 1-5 scorecard with specific improvement suggestions.

agent-sort

Build an evidence-backed ECC install plan for a specific repo by sorting skills, commands, rules, hooks, and extras into DAILY vs LIBRARY buckets using parallel repo-aware review passes. Use when ECC should be trimmed to what a project actually needs instead of loading the full bundle.

ai-first-engineering

Engineering operating model for teams where AI agents generate a large share of implementation output. Use when setting team process, review gates, or ownership rules for a codebase largely written by agents.

ai-regression-testing

Regression testing strategies for AI-assisted development. Sandbox-mode API testing without database dependencies, automated bug-check workflows, and patterns to catch AI blind spots where the same model writes and reviews code. Use when adding regression coverage to AI-assisted code, or when the same model both wrote and reviewed a change.

android-clean-architecture

Clean Architecture patterns for Android and Kotlin Multiplatform projects — module structure, dependency rules, UseCases, Repositories, and data layer patterns. Use when structuring modules, layers, or data flow in an Android or KMP project.

angular-developer

Generates Angular code and provides architectural guidance. Trigger when creating projects, components, or services, or for best practices on reactivity (signals, linkedSignal, resource), forms, dependency injection, routing, SSR, accessibility (ARIA), animations, styling (component styles, Tailwind CSS), testing, or CLI tooling.

Skills relacionados