Round #388

08 May 2026, 22:32· hr-law· claude-haiku-4-5-20251001· r13-clean-hints
Complexity
band 0
ZP / UO / OBS
3 / 5 / 0
Journey weight
532
Lightshift ΔL
+0.17

Prompt

During the investigation the accused employee went off sick with stress. Can we put the disciplinary on hold indefinitely or do we have to continue?

Zero-point index (what the engine surfaced)

ZPI-ZPI-0005 | 2026-05-08T22:32:14Z During the investigation the accused employee went off sick with stress. Can we put the disciplinary on hold indefinitely or do we have to continue? ZERO POINT — 3 entries (structural invariants) ● hsl(157.40, 100%, 34%) ACAS Code of Practice [contract] ● hsl(34.71, 100%, 34%) procedural fairness [contract] ● hsl(280.96, 100%, 34%) appeal right [contract] UNOBSERVED — 5 entries (implied truths) ○ hsl(230.00, 100%, 32%) right to be accompanied [feature] ○ hsl(231.00, 100%, 33%) appeal right [feature] ○ hsl(225.00, 100%, 34%) disciplinary investigation [feature] ○ hsl(180.00, 100%, 42%) Conduct disciplinary investigation [function] ○ hsl(182.25, 100%, 24%) Issue disciplinary invitation [function] OBSERVED — 0 entries (explicit in request) COMPLEXITY │ 8 entries │ spread: 51° │ band: LOW

Baseline response (no ZPI)

# Disciplinary Proceedings During Sick Leave You **cannot put the disciplinary on hold indefinitely** — you have obligations to continue, though with important caveats. ## Key Legal Principles **You should continue the process**, but: - **Adapt the pace** to accommodate genuine health needs - **Don't use absence as a reason to delay indefinitely** — this could breach natural justice and extend uncertainty unfairly - **Obtain medical advice** on fitness to participate before proceeding ## Practical Steps 1. **Request medical information** - Ask the employee/GP what restrictions exist - Can they participate in meetings (in person, remotely, via representatives)? - Timeframe for return to work? 2. **Reasonable adjustments** - Allow extended timeframes between meetings - Permit remote attendance - Allow representation by union/colleague - Written submissions instead of hearings 3. **Set a timetable** - Agree reasonable deadlines with the employee - Progress even if slowly — don't stall indefinitely 4. **Document everything** - Show you've offered accommodations - Record medical restrictions you're working around ## Red Flags - Don't assume stress means they can't participate at all - Continuing the process isn't "bullying" if done sensitively - Consider whether the investigation itself is addressing any work-related stress **Recommendation**: Seek legal/HR advice on the specific case, especially if prolonged absence continues.

Enhanced response (with ZPI)

# Disciplinary Process Management with Medical Suspension Handling ```csharp using System; using System.Collections.Generic; using System.Linq; using Microsoft.Extensions.DependencyInjection; namespace DisciplinaryManagement { /// <summary> /// Represents the status of a disciplinary investigation /// </summary> public enum DisciplinaryStatus { NotStarted, InProgress, SuspendedPending, SuspendedMedical, Paused, Concluded, Appealed } /// <summary> /// Captures the business case for suspension decisions /// </summary> public class SuspensionDecision { public required string Reason { get; set; } public required DateTime DecisionDate { get; set; } public required string AuthorizedBy { get; set; } public string? ReviewScheduledDate { get; set; } public string? DocumentationReference { get; set; } } /// <summary> /// Tracks medical information relevant to disciplinary process /// </summary> public class MedicalConsideration { public required DateTime AbsenceStartDate { get; set; } public required string AbsenceReason { get; set; } public string? OccupationalHealthReferralDate { get; set; } public string? OccupationalHealthFindings { get; set; } public DateTime? LastReviewDate { get; set; } public bool EmployeeAwareOfDisciplinaryProcess { get; set; } } /// <summary> /// Core disciplinary investigation workflow /// Implements ACAS Code of Practice principles and procedural fairness /// </summary> public class DisciplinaryInvestigation { public required string CaseId { get; set; } public required string EmployeeId { get; set; } public required string EmployeeName { get; set; } public required string Allegation { get; set; } public required DateTime InitiatedDate { get; set; } public DisciplinaryStatus CurrentStatus { get; set; } = DisciplinaryStatus.NotStarted; public MedicalConsideration? MedicalConsideration { get; set; } public SuspensionDecision? ActiveSuspension { get; set; } public List<InvestigativeAction> Actions { get; set; } = []; public List<DisciplinaryDecision> Decisions { get; set; } = []; } public class InvestigativeAction { public required string ActionId { get; set; } public required DateTime ScheduledDate { get; set; } public DateTime? CompletedDate { get; set; } public required string Description { get; set; } } public class DisciplinaryDecision { public required DateTime DecisionDate { get; set; } public required string DecisionType { get; set; } // "Suspension", "Conclusion", "Appeal" public required string Rationale { get; set; } public string? AppealRightOffered { get; set; } public DateTime? AppealDeadline { get; set; } } /// <summary> /// Evaluates whether disciplinary process can be suspended and for how long /// Based on ACAS Code of Practice and procedural fairness principles /// </summary> public interface IDisciplinaryProcedureGatekeeper { DisciplinaryDecisionResult EvaluateMedicalSuspensionRequest( DisciplinaryInvestigation investigation, MedicalConsideration medical); } public class DisciplinaryDecisionResult { public bool CanSuspend { get; set; } public string Rationale { get; set; } public int? MaxSuspensionDays { get; set; } public List<string> RequiredActions { get; set; } = []; public List<string> Warnings { get; set; } = []; } public class ACASCompliantProcedureGatekeeper : IDisciplinaryProcedureGatekeeper { private const int MaxSuspensionWithoutReviewDays = 14; private const int AbsoluteMaxSuspensionDays = 60; public DisciplinaryDecisionResult EvaluateMedicalSuspensionRequest( DisciplinaryInvestigation investigation, MedicalConsideration medical) { var result = new DisciplinaryDecisionResult { CanSuspend = true, Rationale = "Medical absence during disciplinary process identified." }; // ACAS Code of Practice: Procedural fairness requires continued engagement if (investigation.CurrentStatus == DisciplinaryStatus.InProgress && medical.AbsenceReason.Contains("stress", StringComparison.OrdinalIgnoreCase)) { result.RequiredActions.Add( "Refer to Occupational Health for independent medical assessment " + "(required to establish fitness to participate)"); result.RequiredActions.Add( "Maintain contact with employee while on medical absence " + "(keep informed of process, obtain updates, show duty of care)"); result.RequiredActions.Add( "Do NOT assume indefinite suspension is acceptable " + "(contrary to procedural fairness principle of timeliness)"); // Set explicit review boundaries result.MaxSuspensionDays = AbsoluteMaxSuspensionDays; result.Warnings.Add( "ACAS Code of Practice: Indefinite suspension is unfair. " + "Disciplinary process should progress unless there are genuine, " + "documented reasons preventing the employee's participation."); result.Warnings.Add( "Employee stress may be caused by the disciplinary process itself. " + "Consider whether process can be adjusted to reduce stress " + "(e.g., shorter interviews, breaks, support person present)."); result.Warnings.Add( "Prolonged suspension may worsen mental health and damage trust. " + "Demonstrates lack of procedural fairness."); } return result; } } /// <summary> /// Coordinates the disciplinary process with mandatory review gates /// Implements appeal rights and procedural fairness /// </summary> public class DisciplinaryProcessCoordinator { private readonly IDisciplinaryProcedureGatekeeper _gatekeeper; private readonly Dictionary<string, DisciplinaryInvestigation> _investigations = []; public DisciplinaryProcessCoordinator(IDisciplinaryProcedureGatekeeper gatekeeper) { _gatekeeper = gatekeeper; } /// <summary> /// Initiates disciplinary investigation with procedural fairness documentation /// </summary> public string IssueDisciplinaryInvitation( string employeeId, string employeeName, string allegation) { var caseId = Guid.NewGuid().ToString("N")[..8]; var investigation = new DisciplinaryInvestigation { CaseId = caseId, EmployeeId = employeeId, EmployeeName = employeeName, Allegation = allegation, InitiatedDate = DateTime.UtcNow, CurrentStatus = DisciplinaryStatus.NotStarted }; _investigations[caseId] = investigation; // ACAS Code of Practice: Issue written invitation with clear details Console.WriteLine( $"[DISCIPLINARY INVITATION] Case {caseId}: {employeeName}\n" + $"Allegation: {allegation}\n" + $"Employee right to be accompanied: Yes\n" + $"Right to appeal: Documented\n"); return caseId; } /// <summary> /// Conducts investigation phase with evidence gathering /// </summary> public void ConductDisciplinaryInvestigation( string caseId, List<string> investigativeSteps) { if (!_investigations.TryGetValue(c

Grader chain

Each grader reads the same baseline + enhanced pair and casts an independent verdict. Disagreement is the framework's own signal — not noise to be averaged away.

V1samba/Meta-Llama-3.3-70B-Instruct
Better
V4qwen2.5-coder-7b-instruct
Better

Comments

Our grader said what it said. What do you say? Comment as a guest below.

No comments yet. Be the first to say what you make of this round.

← back to all rounds