Learn by Directing AI
All materials

CLAUDE.md

ML P7: CI/CD + Drift Detection

Client: Priya Krishnamurthy, MedConnect Staffing (Bangalore, India) Project: Build CI/CD infrastructure with eval gates and drift detection for the nurse-to-hospital matching model.

What you are building

An automated CI/CD pipeline using GitHub Actions that runs the evaluation suite and blocks deployment when the model fails quality thresholds. A drift detection system using Evidently AI that monitors production data for distributional shifts. A response plan that connects drift alerts to operational decisions.

Tech stack

  • Python 3.11
  • GitHub Actions (CI/CD)
  • Evidently AI (drift detection)
  • scikit-learn (evaluation suite)
  • MLflow (experiment tracking)
  • Git/GitHub (version control, branch-based workflows)

File structure

materials/
  placement-data-training.csv    -- training baseline dataset (2,400 rows)
  placement-data-production.csv  -- production data with drift (600 rows)
  ci-cd-workflow-template.yml    -- GitHub Actions workflow template
  evaluation-suite.py            -- evaluation script with metrics and thresholds
  requirements.txt               -- pinned Python dependencies
  drift-config-template.py       -- Evidently AI drift detection template
  response-plan-template.md      -- drift response plan template

Work breakdown

  • T1: Project setup + client discovery + work decomposition planning
  • T2: CI/CD pipeline with GitHub Actions -- eval gates that block bad models
  • T3: Drift detection with Evidently AI -- monitor key features for distributional shift
  • T4: Response plan design + drift integration into CI/CD pipeline
  • T5: End-to-end verification + delivery documentation

Verification targets

  • CI/CD eval gate blocks deployment when model metrics fall below thresholds
  • Drift detection identifies shifted features in production data
  • Drift detection reports stable features as stable
  • Response plan has at least three severity levels with distinct procedures
  • End-to-end system works for both pass and fail paths

Commit convention

Commit after completing each ticket. Use descriptive messages: "T2: configure eval gate with recall and fairness thresholds" not "update pipeline."