Skip to content

mizcausevic-dev/employment-decision-record-audit-stream-reference

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

employment-decision-record-audit-stream-reference

AGPL-3.0 reference implementation of employment-decision-record-audit-stream. Runs the MomentumHR × VendorE HireAssess v2.x hiring-decisioning trajectory end-to-end. Enforces the HR Tech 2-invariant design — the only Suite audit-stream with TWO truly orthogonal candidate-protection invariants: human-hiring-decision-required (federal Title VII / EEOC) + NYC Local Law 144 candidate-notice (sub-state jurisdictional rule with statutory time-window).

Part of the Kinetic Gain Protocol Suite.

Sibling to fhir-resource-access-audit-reference, matter-decision-record-audit-stream-reference, grid-decision-record-audit-stream-reference, defense-decision-record-audit-stream-reference, government-decision-record-audit-stream-reference, and financial-decision-record-audit-stream-reference.

What this proves

The HR Tech invariant design is unusual: the two invariants are truly orthogonal — neither implies nor depends on the other:

  1. human-hiring-decision-required — every event with an adverse-action-capable kind AND an adverse outcome.recommendation (decline / rescind / do-not-promote / performance-below / terminate-recommended) MUST carry agent.human_hiring_decision_maker_id_tokenized. Maps to EEOC AI Guidance (May 2023) + Title VII disparate-impact analysis + ADA reasonable-accommodation review obligation.

  2. NYC Local Law 144 candidate-notice — every event where the candidate's city is NYC AND ai_screening_used: true MUST carry agent.ll_144_candidate_notice_provided_at AND that timestamp MUST be ≥10 business days before the event (modeled here as 14 calendar days). Maps to NYC LL 144 (effective July 5, 2023) + NYC DCWP Rule 5-303.

The orthogonality matters: a non-NYC candidate's adverse recommendation needs human review but no LL 144 notice. A NYC candidate's AI screening needs LL 144 notice but no human review (until the recommendation turns adverse). And the time-window check on LL 144 — 10 business days BEFORE — is a backward-looking wall-clock invariant unlike DefenseTech's forward-looking 72-hour clock.

Architecture

orchestrator.mjs (4 steps, both invariants exercised)
   │
   ├─ requests access via hiring-vault.mjs (enforces both invariants at request-time)
   │
   ├─ builds hash-chained event via event-builder.mjs (canonical-JSON SHA-256)
   │
   └─ emits to examples/momentumhr-hireassess-reference-stream.ndjson

verifier.mjs (independent, post-hoc)
   │
   ├─ chain integrity (each prev_hash = prior hash)
   ├─ invariant #1: human-hiring-decision on adverse recommendations
   └─ invariant #2: NYC LL 144 candidate-notice + 14-day backward-window check

Run it

git clone https://github.com/mizcausevic-dev/employment-decision-record-audit-stream-reference
cd employment-decision-record-audit-stream-reference
npm install
npm start    # 4-step trajectory + verifier
npm test     # 11 unit tests — most thorough coverage of any reference impl

Expected output:

Built 4 events → examples/momentumhr-hireassess-reference-stream.ndjson
OK · 4 events · chain ✓ · 2 invariants ✓ (human-hiring-decision + NYC LL 144 candidate-notice)

Canonical trajectory — MomentumHR × VendorE HireAssess v2.x

Step Event Candidate Invariants exercised
1 Job posting created (none — no AI, no candidate)
2 NYC candidate AI-screened NYC #2 — LL 144 notice from 2026-10-20 (16 days before)
3 NYC candidate interview AI-scored NYC #2 — LL 144 notice still applies on subsequent events
4 Decline recommendation NYC #1 (adverse) + #2 (NYC+AI)

Notice provided at 2026-10-20T08:00:00Z. First AI event is 2026-11-05T14:00:00Z — that's 16 days, comfortably past the 14-day minimum.

Vault denial scenarios (covered by tests)

Failure mode Reason
NYC AI screening without LL 144 notice "NYC candidate + AI screening requires ll_144_candidate_notice_provided_at"
NYC AI screening with notice <14 days prior "NYC LL 144 notice provided only N days before AI use"
Non-NYC AI screening without notice Permitted — LL 144 is NYC-only
Adverse hiring decision without human decision maker "Adverse-action-capable kind X with recommendation Y requires human_hiring_decision_maker_id_tokenized"
Clean-advisory recommendation without human Permitted — advisory-only output is not adverse

Why this trajectory matters

NYC LL 144 is the most active-enforcement risk in US AI employment law right now. Real lawsuits filed in 2025-2026 citing it; NYC DCWP started issuing fines in late 2024. Most enterprise HR vendors have NOT updated their audit trails to prove notice was given and bias audit was published. This reference impl shows what compliant operation looks like at the event level — every NYC + AI event carries the notice timestamp; the verifier independently checks the backward-looking window.

The combo with human-hiring-decision is what protects vendors from the worst-case "AI made the call and a candidate got declined without a human ever touching it" scenario — that's the EEOC-investigatable + Title VII-litigable failure mode that most concerns plaintiffs' bar.

Composes with

Compliance posture

Reference implementation readiness scaffolding for EEOC AI Guidance + Title VII + ADA + ADEA + GINA + NYC LL 144 + IL 820 ILCS 42 + MD HB 1202 + CO SB 24-205. Does NOT constitute EEOC compliance attestation, NYC DCWP bias-audit publication, or ADA reasonable-accommodation determination. The mock hiring vault is in-memory — production deployments must integrate with the employer's ATS (Greenhouse / Workday / UKG / Lever) and identity provider (Okta / Azure AD), publish bias-audit reports per LL 144's annual cadence, and route adverse-action notices through Reg B-style disclosure workflows. NYC LL 144 also requires PUBLICLY publishing the bias audit summary — this reference impl does not generate that artifact; it proves the underlying audit trail exists. Per the standing Suite public-language guardrail: readiness · evidence · posture · controls · scaffolding — never "compliant" / "certified" without external attestation.

License

AGPL-3.0-only. Spec repos this depends on remain MIT.

About

AGPL-3.0 reference impl of HR Tech audit-stream. Only Suite audit-stream with TWO truly orthogonal candidate-protection invariants: human-hiring-decision (EEOC + Title VII) + NYC LL 144 candidate-notice with 14-day backward window. Runs MomentumHR × HireAssess v2.x end-to-end.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages