JJijibora
Docs & Product Guide
On this page (5 sections)

Feature Package PK-02 + PK-06 — Housekeeping & Staff Workforce

Status: Package Specification
Domain: Housekeeping / Rooms Division / Staff
Maps to: Process 2 (Task Lists, Checklists & Gates), Process 3 (Schedules & Resource Booking), Playbooks H-2 & H-7
External integration: Synapse (staff chat), Keycloak/APF (permissions)


1. What These Packages Do

PK-02 (Housekeeping) gives the rooms division one auditable system for room turnover, inspections, and clean sign-off. PK-06 (Staff & Workforce) gives department heads shift rostering, attendance, and role-based permissions. Together they replace whiteboards, WhatsApp rosters, and paper checklists.

2. Features & Functionality — Housekeeping (PK-02)

FeatureWhat it doesWho uses itWhat stands behind it
Room turnover taskOn guest departure, a housekeeping task claim is created and bound to the roomHousekeeping supervisor, room attendantcns://workflow/task claim; truth_edge task→room
Checklist executionAttendant works a declarative checklist (linens, amenities, sanitization); records photo evidenceRoom attendantlookup.claims.checklist.v1; photo hash in claim.evidence; MinIO
Inspector sign-offA different staff member inspects and signs off; room moves to READYInspector, supervisorSoD: inspector ≠ cleaner (lookup.claims.sod.v1); fn::poce::record_step
Room status streamingRoom status (DIRTY → CLEAN → READY → OCCUPIED) streams to front desk in real timeFront desk agentNATS WebSocket workflow.{property}.housekeeping.*
Public-area roundsScheduled rounds for lobbies, corridors, public restrooms; missed rounds re-scheduleHousekeeping supervisorKestra tick → public-space.round.fired

3. Features & Functionality — Staff Workforce (PK-06)

FeatureWhat it doesWho uses itWhat stands behind it
Shift rosterDepartment head publishes shifts by role (attendant, technician, front desk)Department head, shift schedulerStaff→shift→role truth_edge; Keycloak/APF permissions
Role-based accessEach staff member sees only the functions their role permits in their property scopeAll staffAPF fn::app_perms::resolve_effective(user, app, scope)
Attendance & timeClock-in/out linked to shift; exceptions flagged for payrollHR, payrollSession context + login audit (s146)
Staff chatE2E-encrypted discussion rooms bound to operational threadsAll staffSynapse Matrix room; integration_entity mirror; cns://collaboration/discussion_comment claims

4. Workflow (Housekeeping)

  1. Guest departs → occupancy lease ends → housekeeping task created for room
  2. Task assigned to attendant (shift roster binds staff)
  3. Attendant completes checklist; photos to MinIO
  4. Inspector signs off (different person) → room → READY
  5. Front desk sees room ready; new occupancy lease can bind
  6. PoCE receipt records attendant, inspector, timestamps, photo hashes

5. Guard Rails

  • No auto-mark-clean without inspector sign-off
  • No room released to a new guest while a task is OPEN
  • Cleaner cannot inspect their own room (SoD)
  • No invented checklist items; bind from governed lookup
  • No hardcoded staff counts or productivity metrics on dashboards