Skip to content

feat(people): add employment events tracking and offboarding checklist#2830

Draft
Marfuen wants to merge 50 commits into
mainfrom
mariano/cs-312-feature-add-personnel-employment-events-date-tracking
Draft

feat(people): add employment events tracking and offboarding checklist#2830
Marfuen wants to merge 50 commits into
mainfrom
mariano/cs-312-feature-add-personnel-employment-events-date-tracking

Conversation

@Marfuen
Copy link
Copy Markdown
Contributor

@Marfuen Marfuen commented May 13, 2026

Summary

  • Add optional onboardDate and offboardDate fields to Member records
  • Onboarded/Offboarded columns in people table (onboard falls back to createdAt)
  • Auto-set offboardDate when a member is deactivated (manual or via employee sync)
  • Structured offboarding checklist with org-customizable templates (8 SOC 2/ISO defaults)
  • Per-member completion tracking with evidence uploads for items that require proof
  • Offboarding checklist settings under People > Settings
  • Bookmarkable tabs on employee detail page via ?tab= query param
  • Design system bumped to 1.1.19 (calendar fixes, bordered accordion variant)

Still TODO

  • Per-vendor access revocation tracking (vendor list as sub-items under "Revoke system access")
  • Move date range filters to auditor page

Test plan

  • Employee with offboardDate shows Offboarding tab with checklist
  • Evidence-required items expand to show dropzone
  • Simple items show inline Mark complete / Undo buttons
  • Completing/uncompleting items updates progress bar
  • People table shows Onboarded/Offboarded columns
  • Deactivating a member auto-sets offboard date
  • Employee sync deactivation auto-sets offboard date
  • People > Settings shows offboarding checklist management
  • Tabs persist on page refresh via URL

🤖 Generated with Claude Code


Summary by cubic

Adds employment event date tracking plus a redesigned offboarding checklist with evidence uploads and vendor-level access revocation tracking to make audit‑period hires/terminations easy to review and evidence (CS-312). Introduces optional onboardDate/offboardDate, People table columns, employment evidence APIs, per‑member offboarding tasks, and a summary card + grouped vendor list with a stable, fixed-height UI.

  • New Features

    • Optional member fields: onboardDate, offboardDate.
    • People table shows Onboarded (falls back to createdAt) and Offboarded columns.
    • Auto-set offboardDate when a member is deactivated (manual or via employee sync).
    • Employment event evidence APIs for onboarding/offboarding: upload, download, and delete attachments.
    • Offboarding checklist:
      • Org template with 8 SOC 2/ISO defaults; items can be edited/disabled; managed in People > Settings.
      • Per-member completion tracking with notes, evidence uploads, downloads, and bookmarkable Offboarding tab via ?tab=.
      • Vendor access revocation tracking under “Revoke system access”: confirm/undo with audit trail (who/when), confirm‑all, pagination; auto-completes the item when all are confirmed.
      • Polished UI: summary card, compact rows, grouped vendor list, fixed-height vendor area, status indicators, evidence links on vendor rows, and clear audit info—matching the design mock.
    • Bump @trycompai/design-system to 1.1.19.
  • Migration

    • Run DB migrations (adds onboardDate/offboardDate, offboarding checklist tables, access revocation table, and attachment types employment_onboard, employment_offboard, offboarding_checklist).
    • No backfill needed; Onboarded column uses createdAt if onboardDate is empty.
    • Default offboarding checklist items are auto-seeded per org.

Written for commit 15c66c3. Summary will update on new commits.

@linear
Copy link
Copy Markdown

linear Bot commented May 13, 2026

CS-312

@vercel
Copy link
Copy Markdown

vercel Bot commented May 13, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
app Ready Ready Preview, Comment May 13, 2026 6:03pm
comp-framework-editor Ready Ready Preview, Comment May 13, 2026 6:03pm
1 Skipped Deployment
Project Deployment Actions Updated (UTC)
portal Skipped Skipped May 13, 2026 6:03pm

Request Review

@mintlify
Copy link
Copy Markdown
Contributor

mintlify Bot commented May 13, 2026

Preview deployment for your docs. Learn more about Mintlify Previews.

Project Status Preview Updated (UTC)
CompAI 🟢 Ready View Preview May 13, 2026, 4:02 PM

💡 Tip: Enable Workflows to automatically generate PRs for you.

Marfuen and others added 20 commits May 13, 2026 13:29
…ent types

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…tering

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Adds a new "Employment Evidence" tab to the employee detail page that
allows uploading/downloading/deleting onboarding and offboarding evidence
documents. The tab appears between Device and Background Check, and
evidence sections are conditionally shown based on whether onboardDate
or offboardDate is set on the member.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Adds EmploymentEvidence and EmploymentEvidenceSection components and
wires a new "Employment Evidence" tab into Employee.tsx between Device
and Background Check. Evidence sections appear based on onboardDate and
offboardDate values.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…auto-set offboardDate on deactivation

Onboarded column falls back to member.createdAt when no explicit date is set.
Offboarded column is blank for active members.
Deactivating a member now auto-sets offboardDate if not already set.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Fixes calendar squished layout, missing hover/selection states, and
Button className override bug.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
….17)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…ompletion tracking

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Marfuen and others added 15 commits May 13, 2026 13:29
Follows the same pattern as PeoplePageTabs — tab state is derived from
the URL and changes update the URL via router.replace.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Complete=primary, Evidence required=destructive, Pending=secondary.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…inline actions

Only evidence-required items use the accordion pattern. Simple
acknowledgment items render as bordered rows with an inline
Mark complete / Undo button.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Adds bordered accordion variant with proper borders, spacing, and
hover states.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…cklist items

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Tighter gap between bordered accordion items.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…tion sync

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…list

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…t an action

"Revoke" → "Confirm revoked", "Revoked" → "Confirmed", destructive
button → outline. Makes it clear the admin is recording that access
was already removed, not triggering a revocation.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
… spans

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…revocation

- Bulk confirm-all API endpoint and frontend button
- Client-side pagination (10 vendors per page)
- Pagination controls with Previous/Next buttons

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Marfuen and others added 3 commits May 13, 2026 13:35
…en pages

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…tween pages

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…ct rows, and grouped vendor list

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Status circles with 3 states (done/partial/empty) using primary color
- Vendor rows use border-b dividers not bordered cards, bg-muted expanded area
- 44px left indent (pl-11) aligns vendor content with toolbar
- VendorMark uses rounded-sm not rounded-full, 22px size
- Attach evidence link with DocumentAttachment icon on vendor rows
- Confirmed rows show who/date in mono font + green check circle
- Proper typography: mono tabular-nums counters, font-normal weights
- Accent badges for Critical items, section headers with 10px bold uppercase
- Summary card uses 4-column grid with primary-colored days-since value

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant