Communitygithub.com

Conformité PHI/Données de santé

Modèles de conformité pour les Informations de Santé Protégées (PHI) et les Informations Personnelles Identifiables (PII) dans les applications de santé. Couvre la classification des données, le contrôle d'accès, les pistes d'audit, le chiffrement et les vecteurs de fuite courants.

Qu'est-ce que Données de santé ?

Cette compétence fournit des modèles de conformité complets pour la protection des Informations de Santé Protégées (PHI) et des Informations Personnelles Identifiables (PII) dans les applications de soins de santé. Elle est conçue pour les développeurs et les ingénieurs travaillant avec des systèmes soumis à des réglementations telles que HIPAA (États-Unis), DISHA (Inde), RGPD (UE) ou toute norme de protection des données de santé. La compétence couvre trois couches essentielles : la classification des données (identifier les PHI et les PII), le contrôle d'accès (appliquer la sécurité au niveau des lignes pour isoler les données par établissement) et les pistes d'audit (journaliser chaque accès et modification). Elle identifie également les vecteurs de fuite courants comme les messages d'erreur, les journaux console, les paramètres d'URL, le stockage navigateur et les clés de rôle de service. Le balisage des colonnes PHI/PII au niveau du schéma et une liste de vérification avant déploiement aident à garantir une conformité systématique. La compétence inclut des exemples concrets montrant des pratiques sûres et dangereuses pour la gestion des erreurs, l'isolation multi-établissement et la journalisation. Utilisez-la chaque fois que le code touche aux PHI ou aux PII dans un système de santé, ou lors d'un audit du contrôle d'accès, des pistes d'audit ou des vecteurs de fuite.

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

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Modèles de Conformité PHI/PII pour la Santé

Modèles pour protéger les données des patients, des cliniciens et les données financières dans les applications de santé. Applicable à HIPAA (États-Unis), DISHA (Inde), RGPD (UE) et à la protection générale des données de santé.

Quand Utiliser

  • Lors de la construction de toute fonctionnalité qui touche aux dossiers patients
  • Lors de la mise en œuvre du contrôle d'accès ou de l'authentification pour les systèmes cliniques
  • Lors de la conception de schémas de base de données pour les données de santé
  • Lors de la construction d'API qui renvoient des données patients ou cliniciens
  • Lors de la mise en œuvre de pistes d'audit ou de journalisation
  • Lors de la révision de code pour des vulnérabilités d'exposition des données
  • Lors de la configuration de la Sécurité au Niveau des Lignes (RLS) pour les systèmes multi-établissements de santé

Comment Ça Marche

La protection des données de santé fonctionne sur trois couches : classification (ce qui est sensible), contrôle d'accès (qui peut le voir) et audit (qui l'a vu).

Classification des Données

PHI (Protected Health Information) — toute donnée pouvant identifier un patient ET liée à sa santé : nom du patient, date de naissance, adresse, téléphone, email, numéros d'identification nationaux (SSN, Aadhaar, NHS), numéros de dossier médical, diagnostics, médicaments, résultats de laboratoire, imagerie, détails de police d'assurance et de réclamation, dossiers de rendez-vous et d'admission, ou toute combinaison de ce qui précède.

PII (Données non sensibles du patient) dans les systèmes de santé : informations personnelles des cliniciens/personnel, structures de frais et montants de paiement des médecins, salaires et coordonnées bancaires des employés, informations de paiement des fournisseurs.

Contrôle d'Accès : Sécurité au Niveau des Lignes

ALTER TABLE patients ENABLE ROW LEVEL SECURITY;

-- Limiter l'accès par établissement
CREATE POLICY "staff_read_own_facility"
  ON patients FOR SELECT TO authenticated
  USING (facility_id IN (
    SELECT facility_id FROM staff_assignments
    WHERE user_id = auth.uid() AND role IN ('doctor','nurse','lab_tech','admin')
  ));

-- Journal d'audit : insertion uniquement (inviolable)
CREATE POLICY "audit_insert_only" ON audit_log FOR INSERT
  TO authenticated WITH CHECK (user_id = auth.uid());
CREATE POLICY "audit_no_modify" ON audit_log FOR UPDATE USING (false);
CREATE POLICY "audit_no_delete" ON audit_log FOR DELETE USING (false);

Piste d'Audit

Chaque accès ou modification de PHI doit être journalisé :

interface AuditEntry {
  timestamp: string;
  user_id: string;
  patient_id: string;
  action: 'create' | 'read' | 'update' | 'delete' | 'print' | 'export';
  resource_type: string;
  resource_id: string;
  changes?: { before: object; after: object };
  ip_address: string;
  session_id: string;
}

Vecteurs de Fuite Courants

Messages d'erreur : N'incluez jamais de données identifiant le patient dans les messages d'erreur renvoyés au client. Consignez les détails côté serveur uniquement.

Sortie console : Ne journalisez jamais les objets patients complets. Utilisez des identifiants internes opaques (UUID) — pas de numéros de dossier médical, d'identifiants nationaux ou de noms.

Paramètres d'URL : Ne mettez jamais de données identifiant le patient dans les chaînes de requête ou les segments de chemin qui pourraient apparaître dans les journaux ou l'historique du navigateur. Utilisez uniquement des UUID opaques.

Stockage navigateur : Ne stockez jamais de PHI dans localStorage ou sessionStorage. Conservez les PHI en mémoire uniquement, récupérez-les à la demande.

Clés de rôle de service : N'utilisez jamais la clé service_role dans le code côté client. Utilisez toujours la clé anon/publiable et laissez le RLS appliquer l'accès.

Journaux et surveillance : Ne journalisez jamais les dossiers patients complets. Utilisez uniquement des identifiants opaques (pas de numéros de dossier médical). Nettoyez les traces de pile avant de les envoyer aux services de suivi des erreurs.

Balisage du Schéma de Base de Données

Marquez les colonnes PHI/PII au niveau du schéma :

COMMENT ON COLUMN patients.name IS 'PHI: patient_name';
COMMENT ON COLUMN patients.dob IS 'PHI: date_of_birth';
COMMENT ON COLUMN patients.aadhaar IS 'PHI: national_id';
COMMENT ON COLUMN doctor_payouts.amount IS 'PII: financial';

Liste de Vérification Avant Déploiement

Avant chaque déploiement :

  • Pas de PHI dans les messages d'erreur ou les traces de pile
  • Pas de PHI dans console.log/console.error
  • Pas de PHI dans les paramètres d'URL
  • Pas de PHI dans le stockage navigateur
  • Pas de clé service_role dans le code client
  • RLS activé sur toutes les tables PHI/PII
  • Piste d'audit pour toutes les modifications de données
  • Délai d'expiration de session configuré
  • Authentification API sur tous les points de terminaison PHI
  • Isolement des données entre établissements vérifié

Exemples

Exemple 1 : Gestion d'Erreur Sûre vs Non Sûre

// MAUVAIS — fuit des PHI dans l'erreur
throw new Error(`Patient ${patient.name} introuvable dans ${patient.facility}`);

// BON — erreur générique, détails journalisés côté serveur avec identifiants opaques uniquement
logger.error('Échec de la recherche patient', { recordId: patient.id, facilityId });
throw new Error('Enregistrement introuvable');

Exemple 2 : Politique RLS pour l'Isolement Multi-Établissement

-- Un médecin de l'établissement A ne peut pas voir les patients de l'établissement B
CREATE POLICY "facility_isolation"
  ON patients FOR SELECT TO authenticated
  USING (facility_id IN (
    SELECT facility_id FROM staff_assignments WHERE user_id = auth.uid()
  ));

-- Test : connectez-vous en tant que médecin-établissement-a, interrogez les patients de l'établissement-b
-- Résultat attendu : 0 lignes retournées

Exemple 3 : Journalisation Sûre

// MAUVAIS — journalise des données identifiables du patient
console.log('Traitement du patient :', patient);

// BON — journalise uniquement l'identifiant interne opaque
console.log('Traitement de l\'enregistrement :', patient.id);
// Remarque : même patient.id doit être un UUID opaque, pas un numéro de dossier médical

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 associés