> ## Documentation Index
> Fetch the complete documentation index at: https://docs.encoreos.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Employee Relations — Integration

> Version: 1.0.0 Last Updated: 2026-03-24 Spec: HR-14 Employee Relations Enhancements catalog: HR-14-ENHANCEMENTS (EN-1 accommodations documented below) Constitu…

**Version:** 1.0.0\
**Last Updated:** 2026-03-24\
**Spec:** [HR-14 Employee Relations](../../../specs/hr/specs/HR-14-employee-relations.md)\
**Enhancements catalog:** [HR-14-ENHANCEMENTS](../../../specs/hr/specs/HR-14-ENHANCEMENTS.md) (EN-1 accommodations documented below)\
**Constitution Reference:** Section 1.2 (Core Independence), Section 1.3 (Integration Patterns)

***

## Overview

HR-14 manages employee relations incidents, investigations, and disciplinary actions. It publishes events for disciplinary terminations and incident reports, and integrates with HR-03 (Offboarding) and GR-06 (Incident Management).

***

## Integration Points

### Platform Foundation (PF) Dependencies

**Required PF Features:**

* **PF-10 (Notifications)**: Incident notifications, investigation assignments
  * **Integration Type:** Platform Integration Layer
  * **Usage:** Notify HR admins of new incidents, notify employees of case updates
* **PF-11 (Documents)**: Investigation documents, disciplinary action documentation
  * **Integration Type:** Platform Integration Layer
  * **Usage:** Attach investigation evidence, disciplinary action acknowledgment forms

### Consumer Core Dependencies (Downstream)

**Internal HR Features:**

* **HR-01 (Employee Directory)**: Employee context
* **HR-03 (Offboarding)**: Termination workflow integration

**External Cores:**

* **GR-03 (Compliance)**: Compliance reporting
* **GR-06 (Incident Management)**: Cross-module incident tracking

***

## ADA reasonable accommodations (HR-14-ENHANCEMENTS / EN-1)

**Spec:** [HR-14-ENHANCEMENTS — EN-1](../../../specs/hr/specs/HR-14-ENHANCEMENTS.md#en-1-ada-reasonable-accommodation-tracking)\
**Status:** Planned (implementation pending)

**Purpose:** Structured ADA interactive process, accommodation implementation tracking, periodic reviews, and compliance reporting — with PHI-grade handling of medical documentation.

**Data:** `hr_accommodation_requests`, `hr_accommodation_interactions`, `hr_accommodation_implementations` (all `organization_id`-scoped; heightened RLS per spec).

**Platform Integration Layer (required):**

* **HR-01:** Employee profile, canonical manager/reporting relationship for manager-visible implementation rows and notification routing.
* **HR-04:** Schedule modification accommodations may reference or trigger scheduling adjustments through the platform layer.
* **PF-10 / platform notifications:** Request assignment, interactive-process reminders, review due dates, manager notifications (accommodation details only — no disability category or medical content).
* **PF / Supabase Storage:** Private org-scoped bucket or paths for medical attachments; storage policies mirror application RLS; managers must not have read access to medical objects.

**v1 scope note:** No required FK to an Employee Relations case record until the HR-14 case entity is stable; forward-compatible optional `employee_relations_case_id` may be added later.

**Permission keys (PF-30):** `hr.accommodations.view`, `hr.accommodations.manage`, `hr.accommodations.implementation.view` — see spec Permission keys table.

***

## Event Contracts

### Event: `hr_disciplinary_action_termination`

**Publisher:** HR (HR-14)\
**Subscribers:** HR-03 (Offboarding), GR-06 (Incident Management)\
**Status:** 📝 Planned

**Purpose:** Trigger offboarding workflow and compliance tracking when disciplinary action results in termination

**Publish Trigger:** When `hr_disciplinary_actions.action_type = 'termination'` and `status = 'active'` is set

**Payload Schema:**

```typescript theme={null}
interface HrDisciplinaryActionTerminationPayload {
  event_type: 'hr_disciplinary_action_termination';
  event_id: uuid;
  organization_id: uuid;
  disciplinary_action_id: uuid;
  employee_id: uuid;
  action_type: 'termination';
  termination_reason: string;
  action_date: date;
  timestamp: timestamptz;
}
```

**Consumer Integration:**

* **HR-03 (Offboarding)**: Subscribes to trigger offboarding workflow; expects ACK within 1 hour
* **GR-06 (Incident Management)**: Subscribes for compliance tracking; expects ACK within 24 hours

**Error/Acknowledgment Behavior:**

* Timeout: 30 minutes for HR-03, 24 hours for GR-06
* Retry: 3 attempts with exponential backoff
* DLQ: Failed events after retries moved to dead letter queue for manual review
* Required ACK window: HR-03 must ACK within 1 hour, GR-06 within 24 hours

### Event: `hr_incident_reported`

**Publisher:** HR (HR-14)\
**Subscribers:** GR-06 (Incident Management)\
**Status:** 📝 Planned

**Purpose:** Cross-module incident tracking for compliance and safety

**Publish Trigger:** When new `hr_incidents` record is created via INSERT trigger or API

**Payload Schema:**

```typescript theme={null}
interface HrIncidentReportedPayload {
  event_type: 'hr_incident_reported';
  event_id: uuid;
  organization_id: uuid;
  incident_id: uuid;
  incident_type: 'accident' | 'injury' | 'safety_violation' | 'property_damage' | 'other';
  severity: 'minor' | 'moderate' | 'serious' | 'critical';
  incident_date: date;
  site_id: uuid | null;
  employee_id: uuid | null;
  reported_by: uuid;
  timestamp: timestamptz;
}
```

**Consumer Integration:**

* **GR-06 (Incident Management)**: Subscribes for cross-module incident tracking; expects ACK within 4 hours for critical incidents, 24 hours for others

**Error/Acknowledgment Behavior:**

* Timeout: 4 hours for critical incidents, 24 hours for others
* Retry: 5 attempts for critical incidents, 3 for others
* DLQ: Failed events after retries moved to dead letter queue
* Required ACK window: Critical incidents must ACK within 4 hours, others within 24 hours

***

## Platform Integration Layer Usage

**Consumes:**

* **PF-10 (Notifications)**: Incident notifications, investigation assignments via `@/platform/notifications`
* **PF-11 (Documents)**: Investigation documents, disciplinary action documentation via `@/platform/documents`

***

## Security Considerations

### Multi-Tenancy

* ✅ **RLS Enforcement**: All `hr_incidents` and `hr_disciplinary_actions` tables filtered by `organization_id` via RLS policies

### Role-Based Access Control

* ✅ **HR Admin**: Full access to all incidents and disciplinary actions
* ✅ **Manager**: View incidents and disciplinary actions for direct reports
* ✅ **Staff**: View own incidents only (if permitted)

### Data Protection

* ✅ **PII Handling**: Incident and disciplinary action records may contain sensitive employee information; access controlled via RLS
* ✅ **Audit Trail**: All incident and disciplinary action changes logged via PF-04

***

## Testing Requirements

* [ ] Event payload structure validation
* [ ] Event fires on trigger condition (disciplinary action termination, incident creation)
* [ ] Correct `organization_id` included in all events
* [ ] Subscribers handle events correctly (HR-03, GR-06)
* [ ] ACK timeout and retry logic works correctly
* [ ] DLQ handling for failed events
* [ ] RLS policies enforce org isolation on incident and disciplinary action queries

***

## References

* [HR-14 Spec](../../../specs/hr/specs/HR-14-employee-relations.md)
* [HR-14-ENHANCEMENTS Spec](../../../specs/hr/specs/HR-14-ENHANCEMENTS.md)
* [EVENT\_CONTRACTS.md](./EVENT_CONTRACTS.md)
* [CROSS\_CORE\_INTEGRATIONS.md](./CROSS_CORE_INTEGRATIONS.md)
