feat: add evidence-centered HR workspace slice - #53
Conversation
📝 WalkthroughWalkthroughHR 워크스페이스 UI와 보호된 People·Job Analysis 조회를 추가했습니다. Storybook과 Playwright 검증을 구성하고, CI·저장소 계약·문서·매니페스트를 ChangesHR 워크스페이스 통합
Estimated code review effort: 4 (Complex) | ~60 minutes Merge Risk: 🟡 Moderate · up to The HR workspace can continue showing previously approved People fields after access is denied and may display an older response after a newer request, creating a bounded privacy and correctness risk; inconsistent service dependency versions may also break reproducible installation or integration. These issues should be fixed or explicitly accepted before merge. Sequence Diagram(s)sequenceDiagram
participant Browser
participant HRWorkspaceApp
participant PeopleAPI
participant JobAnalysisAPI
Browser->>HRWorkspaceApp: 조회 폼 제출
HRWorkspaceApp->>PeopleAPI: 목적 코드와 인증 헤더로 People 조회
PeopleAPI-->>HRWorkspaceApp: fields 응답 또는 401/403 오류
HRWorkspaceApp->>JobAnalysisAPI: 목적 코드와 인증 헤더로 snapshot 조회
JobAnalysisAPI-->>HRWorkspaceApp: snapshot 응답 또는 오류
HRWorkspaceApp-->>Browser: 결과 또는 오류 상태 렌더링
Suggested reviewers: 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
Full details: Docstring CoverageExplanation Docstring coverage is 15.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 20 functions across 9 files. (23 skipped: 23 unsupported.)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Scope
Adds the dependency-free HR Home / Employee Profile fixture, shared design-token consumption, local Storybook, purpose-bound evidence review interactions, bitemporal presentation, high-impact confirmation, accessibility assertions, and English/Korean labels. This remains fixture/component-state evidence only: it does not claim deployed customer UI, People API write integration, production psychometric compute, or ownership of a dedicated-writer dependency.
This branch also owns the page-level keyboard bypass interaction for the existing HR Workspace UI. The Figma baseline was re-read without mutating the design file: nodes
1:10(HR Home) and1:28(Employee Profile) remain the visual geometry baseline. The bypass control is intentionally focus-only until keyboard focus, so its visible state is captured in Storybook and Chromium rather than by creating a conflicting Figma geometry change.Current branch truth
Fresh live base:
develop@9e3e4847510e1e612b48474ba42b177b8ed824dfExact head:
016f27e13f7a47cb78a1c936aa533cc8daa2c66cGitHub reports open · Draft · mergeable.
The Draft flag is authoritative: event history shows repeated Ready/Draft lifecycle mutations under a separate same-repository writer, so this loop does not race that lifecycle owner. Older evidence at predecessor heads is stale and is not reused.
Latest RED → root-cause repair
A separate writer advanced the canonical branch to predecessor
d955faf5d1e7e10ea3dda3b9deaa74db940bf634to reseal the new HR Workspaceindex.htmlprovenance. The new index evidence itself was correct, but that commit also changed the unrelateddatabase/migrations/0005_outbox_delivery_finalization.sqlmanifest digest to a value that did not match the file on disk.Foundation run
33042232951, job98418198435, proved exact checkout ofd955faf...and failed atValidate foundation packwith a deterministic provenance mismatch for migration 0005. The same job's--print-manifestrepair output proved the authoritative artifact evidence remained SHA-256b7e8790595b288f752d6ef5cc6cbfe4e1b6712248f5b7a3a25fa60016b6a4961, 6,125 bytes, 170 lines. All PostgreSQL integrity matrix jobs in that run were already GREEN, so changing migration source or weakening the validator would have been the wrong remedy.Root repair
016f27e13f7a47cb78a1c936aa533cc8daa2c66crestores only that unrelated migration digest while preserving the valid new HR Workspace index provenance. No product behavior, database migration, validation rule, security gate, or dependency contract was weakened.The earlier keyboard-bypass repair remains intact: the locale E2E now binds to the stable skip-link DOM identity and verifies the active English/Korean accessible name instead of re-resolving a stale English role locator after the locale switch.
Fresh current-head thread inspection shows all inline review threads resolved; submitted reviews are COMMENTED only.
Exact-current-head evidence
All applicable pull-request-triggered Orgmetra workflows currently materialized for exact head
016f27e13f7a47cb78a1c936aa533cc8daa2c66care terminal GREEN:330450165903304501657833045016555330450165663304501658933045016622330450166373304501659433045016615330450165503304501659633045016602There is no qualifying independent non-author
APPROVEorCHANGES_REQUESTEDon this PR. Exact-head GREEN is technical evidence only, not merge authorization.Merge governance
Effective organization ruleset 18156473 —
CWL Central required workflowsis active on the default branch, but its live policy is weaker than Orgmetra's acquisition-grade acceptance: it currently requires 1 approving review, dismisses stale reviews on push, does not require last-push approval, requires review-thread resolution and central required workflows, blocks deletion/non-fast-forward, and permitsOrganizationAdminbypass_mode=always/ current-user always-bypass.Issue #89 owns that commercial-control gap. Orgmetra acceptance remains at least 2 qualifying independent non-author approvals, approval after the last push, all applicable exact-current-head local/central gates terminal GREEN, resolved conversations, and no routine administrator bypass.
Do not self-approve, use routine admin bypass, weaken a gate, race the lifecycle writer, or transfer predecessor/foreign evidence.