SCHEDULING
Generate resident schedules respecting ACGME rules, institutional policies, and individual preferences. Orchestrates constraint propagation, optimization, and conflict resolution for medical residency program scheduling.
$ 설치
git clone https://github.com/Euda1mon1a/Autonomous-Assignment-Program-Manager /tmp/Autonomous-Assignment-Program-Manager && cp -r /tmp/Autonomous-Assignment-Program-Manager/.claude/skills/SCHEDULING ~/.claude/skills/Autonomous-Assignment-Program-Manager// tip: Run this command in your terminal to install the skill
name: SCHEDULING description: Generate resident schedules respecting ACGME rules, institutional policies, and individual preferences. Orchestrates constraint propagation, optimization, and conflict resolution for medical residency program scheduling.
SCHEDULING Skill
Comprehensive workflow expertise for generating ACGME-compliant medical residency schedules. This skill orchestrates the entire schedule generation process from requirements gathering through validation and deployment.
Overview
Medical residency scheduling is a multi-objective constraint satisfaction problem with three tiers of requirements:
- Tier 1 (Absolute): ACGME regulatory compliance - non-negotiable
- Tier 2 (Institutional): Program-specific policies - requires approval to override
- Tier 3 (Optimization): Preferences and fairness - best-effort satisfaction
This skill guides you through the complete workflow to produce schedules that satisfy all Tier 1 constraints, maximize Tier 2 satisfaction, and optimize Tier 3 objectives.
When to Use This Skill
Use this skill when:
- Generating a new academic year schedule
- Creating rotation schedules for a specific block period
- Regenerating schedules after major changes (new residents, policy updates)
- Resolving systemic scheduling conflicts
- Optimizing existing schedules for better coverage or fairness
- Training on the scheduling system workflow
Do NOT use this skill for:
- Simple swap requests (use
swap-managementskill) - Single assignment changes (use direct API)
- ACGME validation only (use
acgme-complianceskill) - Emergency coverage gaps (use incident response procedures)
Five Phases of Schedule Generation
All schedule generation follows this structured workflow:
Phase 1: Requirements Gathering
Purpose: Collect all constraints, preferences, and data inputs
Activities:
- Identify scheduling horizon (dates, blocks)
- Gather personnel data (residents, faculty, qualifications)
- Collect absence data (leave, TDY, deployments)
- Document rotation requirements (templates, coverage levels)
- Capture preferences (shift preferences, continuity requests)
- Review institutional policies (local rules, special requirements)
Output: Complete SchedulingContext with all inputs validated
See: Workflows/generate-schedule.md - Phase 1 details
Phase 2: Constraint Propagation
Purpose: Apply constraints systematically to reduce search space
Activities:
- Apply ACGME hard constraints (80-hour, 1-in-7, supervision)
- Enforce availability constraints (absences block assignments)
- Apply qualification constraints (only assign qualified personnel)
- Propagate temporal constraints (post-call relief, continuity)
- Identify constraint conflicts early
Output: Feasibility analysis, reduced solution space
See: Workflows/constraint-propagation.md
Phase 3: Optimization
Purpose: Find high-quality solutions using solver algorithms
Activities:
- Select appropriate solver (greedy, CP-SAT, PuLP, hybrid)
- Define optimization objectives (fairness, preferences, efficiency)
- Run solver with timeout and monitoring
- Generate multiple solutions (Pareto frontier)
- Evaluate solution quality metrics
Output: 1-3 candidate schedules with trade-off analysis
See: schedule-optimization skill for solver details
Phase 4: Conflict Resolution
Purpose: Handle unavoidable conflicts and trade-offs
Activities:
- Identify remaining hard conflicts
- Rank conflicts by severity and impact
- Generate trade-off proposals
- Document exceptions and rationale
- Escalate unresolvable conflicts
Output: Conflict resolution report, exception documentation
See: Workflows/conflict-resolution.md
Phase 5: Validation & Deployment
Purpose: Verify compliance and safely deploy schedule
Activities:
- Run comprehensive ACGME validation
- Verify coverage requirements met
- Check resilience metrics (N-1 contingency, 80% utilization)
- Create database backup (MANDATORY)
- Deploy schedule to production
- Generate reports and notifications
Output: Deployed schedule, validation report, backups
See: safe-schedule-generation skill for deployment procedures
Key Files and Components
Backend Scheduling System
| Component | Location | Purpose |
|---|---|---|
| Scheduling Engine | backend/app/scheduling/engine.py | Main orchestrator |
| Solvers | backend/app/scheduling/solvers.py | CP-SAT, greedy, PuLP algorithms |
| Constraints | backend/app/scheduling/constraints/ | Modular constraint system |
| ACGME Validator | backend/app/scheduling/acgme_validator.py | Compliance checking |
| Context Builder | backend/app/scheduling/context.py | Data aggregation |
Constraint System
All constraints inherit from BaseConstraint and implement:
validate()- Check if assignment violates constraintapply()- Apply constraint to solver modelpenalty()- Soft constraint penalty calculation
Constraint Categories:
| Category | Files | Examples |
|---|---|---|
| ACGME | acgme.py | 80-hour, 1-in-7, supervision |
| Availability | temporal.py | Absences, blackout dates |
| Coverage | capacity.py, inpatient.py | Minimum staffing levels |
| Equity | equity.py, call_equity.py | Fair workload distribution |
| Resilience | resilience.py | 80% utilization, N-1 |
| Specialty | fmit.py, night_float_post_call.py | Rotation-specific rules |
See: Reference/constraint-index.md for complete constraint catalog
MCP Tools for Scheduling
| Tool | Phase | Purpose |
|---|---|---|
generate_schedule | 3 | Generate new schedule |
validate_acgme_compliance | 5 | Check ACGME rules |
detect_conflicts | 4 | Find scheduling conflicts |
analyze_swap_candidates | 4 | Find conflict resolutions |
get_schedule_health | 5 | Quality metrics |
run_contingency_analysis_resilience_tool | 5 | N-1/N-2 validation |
Output Format
Schedule Generation Request
{
"start_date": "2026-07-01",
"end_date": "2027-06-30",
"algorithm": "cp_sat",
"timeout_seconds": 300,
"objectives": {
"acgme_compliance": 1.0,
"fairness": 0.25,
"preferences": 0.20,
"efficiency": 0.15
}
}
Schedule Generation Response
{
"schedule_id": "2026-2027-academic-year",
"status": "success",
"assignments_created": 4380,
"validation": {
"acgme_compliant": true,
"violations": [],
"warnings": [
"Resident PGY1-03 approaching 75 hours in week 12"
]
},
"metrics": {
"coverage_rate": 0.97,
"fairness_gini": 0.12,
"preference_satisfaction": 0.84,
"n1_compliant": true
},
"alternatives": [
{
"id": "alt-1",
"description": "Maximizes fairness (Gini=0.08)",
"trade_offs": "Lower preference satisfaction (0.78)"
}
]
}
Error Handling
Common Errors and Resolutions
| Error | Cause | Resolution |
|---|---|---|
NO_FEASIBLE_SOLUTION | Over-constrained problem | Relax Tier 3 constraints, check absences |
ACGME_VIOLATION | Invalid configuration | Review resident hours, supervision ratios |
INSUFFICIENT_COVERAGE | Not enough personnel | Reduce coverage requirements or add personnel |
TIMEOUT | Problem too complex | Use decomposition, increase timeout, or hybrid solver |
DATABASE_ERROR | Connection/backup issue | Verify backend health, check backup status |
Escalation Triggers
Escalate to Program Director when:
- Multiple Tier 1 violations cannot be resolved
- Systemic policy conflict (e.g., ACGME vs. institutional)
- Resource insufficiency (not enough residents/faculty)
- Solver repeatedly fails to find solutions
Escalate to Technical Team when:
- Solver crashes or hangs repeatedly
- Database corruption or backup failure
- Performance degradation (>10 minute solve times)
- New constraint type needed
Success Criteria
A successfully generated schedule must meet:
| Criterion | Target | Validation Method |
|---|---|---|
| ACGME Compliance | 100% (zero violations) | validate_acgme_compliance |
| Coverage | >95% blocks assigned | Count assignments vs. required |
| Fairness | Gini coefficient <0.15 | Workload distribution analysis |
| Resilience | N-1 compliant | run_contingency_analysis |
| Preference Match | >80% soft preferences | User satisfaction survey |
Integration with Other Skills
- acgme-compliance: Phase 2 and Phase 5 validation
- schedule-optimization: Phase 3 solver execution
- safe-schedule-generation: Phase 5 deployment procedures
- swap-management: Post-deployment adjustments
- schedule-verification: Human review checklist
- constraint-preflight: Adding new constraints
See Also
Workflow Documents
Workflows/generate-schedule.md- Detailed step-by-step workflowWorkflows/constraint-propagation.md- Constraint handling strategiesWorkflows/conflict-resolution.md- Trade-off negotiation
Reference Documents
Reference/acgme-rules.md- ACGME compliance requirementsReference/institutional-rules.md- Tripler-specific policiesReference/constraint-index.md- All constraints with priorities
Architecture Documentation
docs/architecture/SOLVER_ALGORITHM.md- Technical algorithm detailsdocs/architecture/cross-disciplinary-resilience.md- Resilience frameworkdocs/development/CODEX_SYSTEM_OVERVIEW.md- System architecture
Related Skills
schedule-optimization- Solver algorithms and optimizationsafe-schedule-generation- Backup and deployment safetyacgme-compliance- Regulatory compliance validationswap-management- Post-deployment schedule adjustmentsschedule-verification- Human review procedures
Repository
