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
BetterV4qwen2.5-coder-7b-instruct
BetterComments
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.