feat(workforce): add Position span-of-control evidence - #133
Draft
seonghobae wants to merge 11 commits into
Draft
Conversation
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: trueThanks 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 |
1 similar comment
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: trueThanks 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 |
This was referenced Aug 27, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Buyer-visible gap
Parent #94 makes solid-line Position-to-Position reporting reconstructable at one business/system coordinate, but Orgmetra still cannot derive a PII-minimized structural span-of-control snapshot for workforce design and diligence. This dependency-first child adds direct-report Position-seat counts only. It never counts workers, infers supervision from Person/Assignment, recommends an "optimal" span, or authorizes an employment decision.
Test-first repair sequence
ecdba2eeeda9132f449a12f9bd0be9970564dc1eadded the focused stacked-base workflow and regression surface before productionorgmetra_hris_kernel.span_of_controlexisted. That short-lived head was superseded before a terminal hosted RED completed, so no cancelled/absent execution is claimed as RED evidence.PositionSpanOfControlSnapshot,PositionSpanOfControlError,build_position_span_of_control_snapshot(...), package-root exports, beginner-readable package docs, ADR 0133, primary-research doctoring, and traceability.5311da5e47e3e33be8b2ffae159303431d89521c, run33089026577/ job98576486262, checked out that SHA and passed all 204 HRIS-kernel tests, but correctly failed the exact coverage gate at 99.53%:span_of_control.pyhad three unexercised direct-construction fail-closed branches (noncanonical aggregate counts, mutable top-level span collection, mutable span entry). That was treated as non-passing evidence rather than weakening the gate.7ba443be7622a6e8e213ad3e15ff01df3bd5596cadds realistic adversarial regressions for those three boundaries without changing production semantics.Governed behavior
PositionSpanOfControlSnapshotconsumes one exact governedPositionReportingSnapshotand preserves its tenant, business-date and UTC system-knowledge coordinate. Because the parent dataclass can also be constructed directly, this child revalidates the parent runtime type, non-sentinel opaque UUIDs, immutable two-item edge tuples, single manager per subordinate, no self-edge and cycle freedom before deriving evidence.The output stores only deterministic manager-Position UUID/direct-report-Position counts, fixed
structural_workforce_evidencestate, fixednot_authorized_for_employment_decisionauthority, and SHA-256-addressed canonical JSON. Person, Employment and Assignment identifiers are absent. The API is exported from the HRIS-kernel package root.Scientific boundary
Span of control is a descriptive organizational-structure measure, not a universal target. Primary research recorded under
docs/doctoring/position-span-of-control-references.mdshows that observed span relationships vary with work complexity, organizational level and organizational goals. Orgmetra therefore does not encode a single “good” span, performance score, staffing recommendation, promotion/termination signal or compensation implication.Exact-current-head evidence
Base/parent: #94
feat/position-reporting-hierarchy@2ff1262b976029e447dc736e6472eebbac30a7f5.Current child head:
139c715062c044fa3cb13967d94268069310c7b3.GitHub reports open · Draft · mergeable.
Position Span of Control Qualityrun33215365348, job98997658110, is terminal SUCCESS on the exact child head139c7150…; the exact focused workflow passed 213 HRIS-kernel tests with 100% statement and branch coverage (908 statements, 370 branches).This is focused stack-local evidence only. #94 checks/reviews do not transfer, and this child is not protected-
developproduct truth.Dependency / merge governance
Keep Draft and process #94 first. After #94 actually integrates, retarget/revalidate #133 against fresh
develop, reconcile any parent changes, then rerun every applicable Workforce/People/Job-Analysis/Foundation/Recovery/SAST/Security and central required workflow on one new exact head. Obtain qualifying independent non-author review under the live ruleset/commercial policy before merge.Do not self-approve, use routine administrator bypass, race another lifecycle writer, transfer predecessor evidence, turn a structural count into a high-impact decision rule, or mutate a dedicated-writer dependency.