What problem does it solve? Instructors and administrators must determine each student's last date of academically related activity to comply with federal financial-aid rules (34 CFR 668.22 / R2T4), and doing this manually across a Canvas course roster is error-prone and carries federal-aid consequences. ## Core Features & Use Cases - Engagement Classification: Runs course_engagement_audit.py to classify students as NEVER_PARTICIPATED, UW (unofficial withdrawal), UF (unofficial fail / R2T4 candidate), or INACTIVE_ENROLLMENT for registrar review. - Automatic UF Cutoff Derivation: Derives the unofficial-withdrawal cutoff date from the Canvas course end date or term end date, with an explicit --uf-date override, and prints the resolved date and source for auditability. - FERPA-Safe Reporting: Writes named reports only outside the repo (e.g., ~/Downloads/) and de-identifies console output to user_id, keeping student privacy protected. - Use Case: At the end of a term, run the audit to surface students who stopped participating before the cutoff with failing grades, then hand the flagged candidates to the registrar or financial-aid office for the official R2T4 determination. ## Quick Start Ask the agent to run the Title IV engagement audit for the current Canvas course and list the unofficial-withdrawal candidates.