Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
161 commits
Select commit Hold shift + click to select a range
c28fe1b
test(validity): require governed analysis handoff
seonghobae Aug 20, 2026
5b0a1e5
feat(validity): add governed fast-mlsirm handoff
seonghobae Aug 20, 2026
3f99928
docs(validity): record governed analysis boundary
seonghobae Aug 20, 2026
30ac02a
chore(validity): integrate protected develop after #41
seonghobae Aug 20, 2026
a9168a9
test(validity): reject duplicate ADR numbers after integration
seonghobae Aug 20, 2026
6814fd9
fix(validity): reserve ADR 0027 for analysis handoff
seonghobae Aug 20, 2026
a4876a8
fix(validity): track reserved ADR 0027 in quality gate
seonghobae Aug 20, 2026
7e9cd76
docs(validity): bind references to ADR 0027
seonghobae Aug 20, 2026
a872938
fix(validity): remove conflicting ADR 0025 allocation
seonghobae Aug 20, 2026
22fd374
test(validity): require resolved reviewer identity separation
seonghobae Aug 21, 2026
8432d1c
fix(validity): require authoritative actor identity separation
seonghobae Aug 21, 2026
68a15c4
docs(validity): trace authoritative actor separation
seonghobae Aug 21, 2026
f0c30c5
docs(validity): record identity-separation repair
seonghobae Aug 21, 2026
c381518
chore(validity): integrate protected develop after #43
seonghobae Aug 21, 2026
d0c06d2
feat(validity): validate pinned numerical result envelopes
seonghobae Aug 21, 2026
0a31737
test(validity): reject impossible complete missingness totals
seonghobae Aug 21, 2026
2419aa9
fix(validity): reject impossible missingness summaries
seonghobae Aug 21, 2026
c17936c
test(validity): reject subclassed result evidence
seonghobae Aug 21, 2026
f31422a
fix(validity): require exact result evidence types
seonghobae Aug 21, 2026
e11ae2a
docs(validity): record result evidence hardening
seonghobae Aug 21, 2026
e9a7a31
docs(validity): define hardened result envelope
seonghobae Aug 21, 2026
8b26520
docs(validity): trace result integrity regressions
seonghobae Aug 21, 2026
b33cbda
docs(validity): bind result integrity in ADR
seonghobae Aug 21, 2026
081942a
test(validity): cover criterion overlap guard
seonghobae Aug 21, 2026
d6bb5f2
test(validity): reject temporal evidence subclasses
seonghobae Aug 21, 2026
b616a13
fix(validity): require exact temporal evidence type
seonghobae Aug 21, 2026
219c2e3
fix(validity): remove unused kernel revision import
seonghobae Aug 21, 2026
89c9707
test(validity): require completed_at diagnostics
seonghobae Aug 22, 2026
b72c7a0
fix(validity): report field-correct timestamp errors
seonghobae Aug 22, 2026
5197338
fix(validity): bind result timestamp diagnostic
seonghobae Aug 22, 2026
e7c3404
test(validity): align temporal diagnostic regression
seonghobae Aug 22, 2026
a8da84c
fix(validity): freeze handoff evidence boundaries
seonghobae Aug 29, 2026
5081844
test(validity): reject overflowing worker numerics
seonghobae Aug 29, 2026
a55f95c
test(validity): require ADR-wide quality trigger
seonghobae Aug 29, 2026
06db366
fix(validity): normalize numeric conversion failures
seonghobae Aug 29, 2026
be52fc7
fix(validity): run ADR uniqueness check for all ADR changes
seonghobae Aug 29, 2026
376c2ca
docs(validity): pin reproducible selection-validation references
seonghobae Aug 29, 2026
2ff2582
docs(validity): trace repaired evidence boundaries
seonghobae Aug 29, 2026
4359cfb
docs(validity): record numeric and missingness ownership boundaries
seonghobae Aug 29, 2026
2f6d1dc
test(validity): require shared config quality triggers
seonghobae Aug 29, 2026
8815f73
fix(validity): retrigger quality on shared config
seonghobae Aug 29, 2026
3c2a1de
docs(validity): record shared-config gate integrity
seonghobae Aug 29, 2026
6ca5547
docs(validity): trace shared-config quality evidence
seonghobae Aug 29, 2026
c242814
merge(validity): adopt protected develop before owner replay
seonghobae Sep 16, 2026
276b395
test(validity): replay owner contract on protected truth
seonghobae Sep 16, 2026
22022b5
fix(ci): integrate validity owner into consolidated gate
seonghobae Sep 16, 2026
85ac772
fix(ci): reseal validity foundation manifest
seonghobae Sep 16, 2026
a2d98fa
test(validity): require final analysis weight lineage
seonghobae Sep 16, 2026
9a25f72
test(validity): bind weighted result to weight evidence
seonghobae Sep 16, 2026
adf9816
feat(validity): add final analysis weight receipt
seonghobae Sep 16, 2026
0fd40c1
feat(validity): export analysis weight provenance
seonghobae Sep 16, 2026
318145f
feat(validity): bind weighted results to exact weight evidence
seonghobae Sep 16, 2026
9430466
docs(validity): record analysis weight evidence boundary
seonghobae Sep 16, 2026
d55bdc7
docs(validity): trace final weight lineage
seonghobae Sep 16, 2026
fe88b73
docs(validity): doctor analysis weight provenance
seonghobae Sep 16, 2026
c2e6d70
test(validity): cover analysis weight receipt edge cases
seonghobae Sep 16, 2026
efac8be
test(validity): close weighted result edge coverage
seonghobae Sep 16, 2026
0d56b9a
docs(validity): record weight-lineage executable slice
seonghobae Sep 16, 2026
5cbd155
docs(validity): explain weighted result evidence
seonghobae Sep 16, 2026
7aa5e25
test(validity): add RED for governed weight-adjustment evidence
seonghobae Sep 16, 2026
2bd7188
feat(validity): govern nonresponse and calibration weight evidence
seonghobae Sep 16, 2026
892dde2
test(validity): bind typed adjustment evidence in weight lineage
seonghobae Sep 16, 2026
5c14ae9
feat(validity): export governed adjustment receipts
seonghobae Sep 16, 2026
36ba026
test(validity): close adjustment-evidence branch coverage
seonghobae Sep 16, 2026
b60f9bb
docs(validity): document typed nonresponse and calibration receipts
seonghobae Sep 16, 2026
91aee7f
docs(validity): record typed weight-adjustment evidence
seonghobae Sep 16, 2026
64d4f8b
docs(adr): govern nonresponse and calibration weight evidence
seonghobae Sep 16, 2026
6b44051
docs(traceability): bind typed weight-adjustment evidence
seonghobae Sep 16, 2026
05a9476
test(validity): add RED for point-variance receipt aliasing
seonghobae Sep 16, 2026
63c3460
fix(validity): reject point-variance receipt aliasing
seonghobae Sep 16, 2026
e202089
test(validity): add trimming and bounding provenance RED
seonghobae Sep 16, 2026
87b284d
feat(validity): bind trimming and bounding weight provenance
seonghobae Sep 16, 2026
4d8a375
feat(validity): export trimming and bounding receipt
seonghobae Sep 16, 2026
12b2abc
docs(validity): document trimming and bounding provenance
seonghobae Sep 16, 2026
baf0fb0
docs(adr): record trimming and bounding weight evidence
seonghobae Sep 16, 2026
fd8ea5b
docs(traceability): add trimming and bounding evidence
seonghobae Sep 16, 2026
32934e7
docs(validity): record trimming and bounding receipt slice
seonghobae Sep 16, 2026
f71669c
test(validity): add RED weight eligibility receipt contract
seonghobae Sep 16, 2026
4201a46
feat(validity): bind weight eligibility to estimand scope
seonghobae Sep 16, 2026
7afa6ce
feat(validity): export weight eligibility receipt
seonghobae Sep 16, 2026
c500f17
test(validity): reject weight estimand eligibility mismatch
seonghobae Sep 16, 2026
6be0ff3
docs(validity): document weight eligibility congruence
seonghobae Sep 16, 2026
003daf9
docs(validity): bind estimand to weight eligibility evidence
seonghobae Sep 16, 2026
831945a
docs(validity): trace weight eligibility congruence
seonghobae Sep 16, 2026
149966a
docs(validity): doctor current SIPP weight eligibility evidence
seonghobae Sep 16, 2026
827adc0
docs(validity): record weight eligibility contract
seonghobae Sep 16, 2026
1bd4e64
test(validity): close eligibility scope type edge
seonghobae Sep 16, 2026
a72160d
test(validity): close estimand eligibility edges
seonghobae Sep 16, 2026
4d18ade
test(validity): add RED purpose-bound calibration evidence
seonghobae Sep 16, 2026
abdf2e1
feat(validity): bind calibration auxiliaries to purpose authority
seonghobae Sep 16, 2026
1d93e3b
docs(validity): document purpose-bound calibration authority
seonghobae Sep 16, 2026
23ec330
docs(validity): govern calibration auxiliary purpose evidence
seonghobae Sep 16, 2026
bba2ce0
docs(validity): trace calibration purpose authority
seonghobae Sep 16, 2026
189b8cb
docs(validity): doctor privacy purpose authority
seonghobae Sep 16, 2026
a9e4d0e
docs(validity): record purpose-bound calibration authority
seonghobae Sep 16, 2026
af3c59b
test(validity): require owner-corroboratable calibration use evidence
seonghobae Sep 17, 2026
84fe298
fix(validity): bind calibration receipt to exact scientific-use autho…
seonghobae Sep 17, 2026
44a5425
docs(validity): reconcile calibration authority receipt contract
seonghobae Sep 17, 2026
4eca586
docs(traceability): bind calibration receipt to owner authority tuple
seonghobae Sep 17, 2026
ea6e6d6
docs(changelog): record calibration authority correlation repair
seonghobae Sep 17, 2026
b810abd
docs(adr): reconcile exact calibration authority correlation
seonghobae Sep 17, 2026
d2b5e8c
test(validity): require versioned disposition receipt identity
seonghobae Sep 17, 2026
6d63a3c
fix(validity): bind nonresponse to versioned disposition input
seonghobae Sep 17, 2026
2bf77d6
docs(validity): trace versioned disposition input
seonghobae Sep 17, 2026
406efbb
test(validity): require point-variance lineage compatibility evidence
seonghobae Sep 17, 2026
f0b3f81
feat(validity): bind variance evidence to final point-weight lineage
seonghobae Sep 17, 2026
bdf344b
feat(validity): export weight-variance compatibility receipt
seonghobae Sep 17, 2026
cfdcae4
feat(validity): fail closed on point-variance weight mismatch
seonghobae Sep 17, 2026
053d0fc
test(validity): bind weighted results to compatibility evidence
seonghobae Sep 17, 2026
215c2b1
docs(validity): record point-variance compatibility contract
seonghobae Sep 17, 2026
af6bf73
docs(validity): trace point-variance compatibility evidence
seonghobae Sep 17, 2026
bd1d992
docs(validity): document point-variance compatibility boundary
seonghobae Sep 17, 2026
0f1d0e9
docs(adr): require point-variance lineage compatibility
seonghobae Sep 17, 2026
1259184
test(validity): cover compatibility receipt trust boundaries
seonghobae Sep 17, 2026
16093c5
test(validity): cover result compatibility trust boundary
seonghobae Sep 17, 2026
7551b37
test(validity): require benchmark authority provenance
seonghobae Sep 17, 2026
a862d12
test(validity): keep benchmark provenance RED causal
seonghobae Sep 17, 2026
949b562
fix(validity): bind calibration benchmark authority
seonghobae Sep 17, 2026
aa97628
docs(validity): trace benchmark authority provenance
seonghobae Sep 17, 2026
bb79d94
docs(adr): make benchmark authority explicit
seonghobae Sep 17, 2026
972cf7a
docs(validity): document benchmark owner evidence
seonghobae Sep 17, 2026
f19fad1
docs(traceability): bind benchmark owner coordinates
seonghobae Sep 17, 2026
7775fd9
test(validity): RED version auxiliary calibration projection
seonghobae Sep 17, 2026
f62d4e4
fix(validity): version calibration auxiliary projection
seonghobae Sep 17, 2026
26ace2c
test(validity): cover auxiliary projection version
seonghobae Sep 17, 2026
9248019
test(validity): fold projection RED into canonical suite
seonghobae Sep 17, 2026
941c35f
docs(validity): document versioned auxiliary projection
seonghobae Sep 17, 2026
155fe44
docs(validity): record projection-version provenance
seonghobae Sep 17, 2026
d727c8d
docs(adr): bind calibration projection version
seonghobae Sep 17, 2026
4bc8139
docs(traceability): version calibration auxiliary projection
seonghobae Sep 17, 2026
5eb4b12
test(validity): make verification status explicit
seonghobae Sep 17, 2026
c2d89b8
fix(validity): mark nonconverged results not verifiable
seonghobae Sep 17, 2026
959d812
docs(validity): record explicit verification status
seonghobae Sep 17, 2026
b78b908
test(validity): keep converged leaf evidence non-authorizing
seonghobae Sep 17, 2026
bb81618
fix(validity): keep leaf verification non-authorizing
seonghobae Sep 17, 2026
dbb0708
docs(validity): keep verification state non-authorizing
seonghobae Sep 17, 2026
33e7ce0
test(validity): require explicit calibration fallback method provenance
seonghobae Sep 17, 2026
702dc04
fix(validity): bind calibration fallback to actual generating algorithm
seonghobae Sep 17, 2026
9fdaae4
test(validity): align calibration fallback semantics with generating …
seonghobae Sep 17, 2026
4e4d4b2
docs(validity): record actual calibration fallback algorithm provenance
seonghobae Sep 17, 2026
7e69072
docs(validity): document calibration fallback generating method
seonghobae Sep 17, 2026
29158ce
docs(adr): require actual calibration fallback algorithm provenance
seonghobae Sep 17, 2026
958fbc3
docs(traceability): bind calibration fallback to actual generating me…
seonghobae Sep 17, 2026
a782563
test(validity): cover malformed calibration fallback provenance
seonghobae Sep 17, 2026
befbc8a
test(validity): require append-only result correction lineage
seonghobae Sep 17, 2026
3b03baa
fix(validity): version corrected scientific results append-only
seonghobae Sep 17, 2026
8164a3d
docs(validity): record result correction lineage
seonghobae Sep 17, 2026
0d7c9cb
docs(validity): explain corrected result provenance
seonghobae Sep 17, 2026
c4c640f
docs(validity): trace corrected result lineage
seonghobae Sep 17, 2026
b4aeec9
docs(adr): govern append-only corrected validation results
seonghobae Sep 17, 2026
9c12026
test(validity): expose calibration constraint drift
seonghobae Sep 18, 2026
ed6fb63
fix(validity): bind applied calibration constraints
seonghobae Sep 18, 2026
305560d
test(validity): bind fallback applied constraints
seonghobae Sep 18, 2026
2ce954c
test(validity): preserve applied calibration constraints
seonghobae Sep 18, 2026
76b91e5
docs(validity): distinguish reviewed and applied calibration constraints
seonghobae Sep 18, 2026
11c37a9
docs(validity): make calibration constraint drift explicit
seonghobae Sep 18, 2026
ce399d3
docs(validity): trace calibration constraint application
seonghobae Sep 18, 2026
6c02fc0
docs(validity): record calibration constraint provenance
seonghobae Sep 18, 2026
9e334df
fix(ci): reseal validity changelog evidence
seonghobae Sep 18, 2026
e22df24
fix(validity): allow governed long reference namespaces
seonghobae Sep 18, 2026
6a3e2aa
test(validity): reach compatibility type guard
seonghobae Sep 20, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/workflows/foundation-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,7 @@ jobs:
PYTHONPATH=packages/offer-approval/src COVERAGE_FILE=/tmp/orgmetra-offer-approval.coverage python -m pytest -c packages/offer-approval/pyproject.toml packages/offer-approval/tests
PYTHONPATH=packages/requisition-review/src COVERAGE_FILE=/tmp/orgmetra-requisition-review.coverage python -m pytest -c packages/requisition-review/pyproject.toml packages/requisition-review/tests
PYTHONPATH=packages/selection-review/src COVERAGE_FILE=/tmp/orgmetra-selection-review.coverage python -m pytest -c packages/selection-review/pyproject.toml packages/selection-review/tests
PYTHONPATH=packages/validity-analysis/src COVERAGE_FILE=/tmp/orgmetra-validity-analysis.coverage python -m pytest -c packages/validity-analysis/pyproject.toml packages/validity-analysis/tests
PYTHONPATH=services/job-analysis-api/src:packages/hris-kernel/src:packages/keyverse-adapter/src COVERAGE_FILE=/tmp/orgmetra-job-analysis-api.coverage python -m pytest -c services/job-analysis-api/pyproject.toml services/job-analysis-api/tests
PYTHONPATH=services/people-api/src:packages/hris-kernel/src:packages/keyverse-adapter/src COVERAGE_FILE=/tmp/orgmetra-people-api.coverage python -m pytest -c services/people-api/pyproject.toml services/people-api/tests
- name: Run PostgreSQL contracts in isolated containers
Expand Down
5 changes: 3 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,9 @@ All notable changes to Orgmetra will be documented in this file.
### Added

- Accepted ADRs 0001–0003 now include buyer-facing Context, Decision, and Consequences grounded in verified ISO 30400:2022, ISO 30414:2025, Uniform Guidelines (29 C.F.R. Part 1607), SIOP (2018), OpenAPI Specification v3.2.0, OpenID Connect Core 1.0 errata set 2, CloudEvents v1.0.2, Jensen and Snodgrass (1999), Snodgrass (1999), and Allen (1983) records already listed in `docs/doctoring/REFERENCES.md`. ADRs 0004 and 0005 gained APA 7th References pointers to that same bibliography without changing their Decision bodies.
- Active-PR governed Job Analysis persistence/API on the canonical `JobAnalysisSnapshot` model: migration `0013_job_analysis_snapshot.sql` stores immutable tenant-scoped snapshot, Task, KSAO, Task–KSAO, FJA and write-command evidence; `POST /v1/tenants/{tenant_record_id}/job-analysis-snapshots` and matching GET enforce purpose-bound Keyverse scope, authenticated-principal actor authority, bounded/strict JSON handling, transactional Idempotency-Key serialization, parent-scope fail-closed integrity, forced RLS, and atomic audit/outbox evidence. ADR 0014 records the persistence decision while ADR 0007 remains the domain/evidence authority; validated evidence still requires accountable human review and non-LLM provenance, and the service does not make a high-impact employment decision.
- Active-PR governed Job Analysis persistence/API on the canonical `JobAnalysisSnapshot` model: migration `0013_job_analysis_snapshot.sql` stores immutable tenant-scoped snapshot, Task, KSAO, FJA and write-command evidence; `POST /v1/tenants/{tenant_record_id}/job-analysis-snapshots` and matching GET enforce purpose-bound Keyverse scope, authenticated-principal actor authority, bounded/strict JSON handling, transactional Idempotency-Key serialization, parent-scope fail-closed integrity, forced RLS, and atomic audit/outbox evidence. ADR 0014 records the persistence decision while ADR 0007 remains the domain/evidence authority; validated evidence still requires accountable human review and non-LLM provenance, and the service does not make a high-impact employment decision.
- Active-PR `orgmetra_selection_review` packet for PII-minimized, evidence-bound human selection review: canonical operational tenant identity, UUID-backed opaque candidate/Job/sealed-evidence/reviewer references, explicit purpose/reason/evidence version, deterministic canonical JSON and SHA-256 correlation, mandatory human decision state, redacted packet repr, and provenance-paired model evidence that remains `untrusted_draft`, with exact 100% owned statement and branch coverage required by its quality gate.
- Active-PR `orgmetra_validity_analysis` handoff/result boundary: exact tenant and evidence references, reviewed fast-mlsirm pin, distinct requester/reviewer actors, aggregate-only scientific evidence, construction-time UTC and finite-number snapshots, canonical JSON/SHA-256 correlation, and human-review-only result authority.
- Active performance-criterion scope hardening: `criterion_observation_scope_guard` rejects criterion outcomes for a Job the worker did not effectively hold at the observation date, observations before the relevant assignment, and observations outside the referenced performance cycle while preserving valid multiple-assignment cases and existing bitemporal correction semantics. The guard evaluates current-recorded facts, derives the date coordinate from `observed_at` in UTC so session `TimeZone` cannot alter the result, uses a trusted function search path, and adds no PII or automated employment decision authority. The Foundation PostgreSQL contract also rejects a closed `recorded_to` on each time-coordinate lookup and proves UTC midnight plus non-UTC session `TimeZone` boundaries.
- Bitemporal tenant-scoped organization hierarchy validation that rejects visible indirect parent cycles and reuses single-valued recorded-time reconstruction before graph traversal.
- Stacked governed job-analysis evidence contract via `JobAnalysisSnapshot`, `TaskEvidence`, `KSAORequirement`, `TaskKSAOLink`, `FunctionalJobAnalysisProfile`, and `EvidenceSource`: tenant/Job-scoped observable tasks, explicit Task-to-KSAO linkage, importance/difficulty/proficiency ratings, source/version/retrieval/SHA-256 provenance, deterministic canonical snapshot bytes, current O*NET evidence support, and historical DOT Data/People/Things compatibility. Validated snapshots require accountable human review and complete non-LLM evidence; LLM-origin material remains `analysis_draft`, and the snapshot is evidence input rather than a hiring, promotion, termination, compensation, or other high-impact employment decision.
Expand All @@ -18,7 +19,7 @@ All notable changes to Orgmetra will be documented in this file.
- `employment_record_version.employment_concurrency_code` constrained to `exclusive` or `concurrent`.
- ADR 0005 for exclusive employment and staffable seats.
- `orgmetra_hris_kernel` 0.3.0 with identity-scoped bitemporal resolution, assignment-employment coverage, allocation-portfolio checks, and a Memorial Hospital RN correction case at 100% statement and branch coverage.
- `employment_record_version` and `position_record_version` so employment and position identity stay stable across retroactive corrections.
- `employment_record_version` and `position_record_version` so corrections no longer mint a new employment or position identifier.
- `assignment_record.employment_record_id` bound to the same person as the covering employment.
- `orgmetra_keyverse_adapter` that binds an opaque Keyverse subject to a person and rejects passwords, passkeys, and tokens.
- Design tokens for the repeating HR actions: approve, review, correct, request evidence, compare, export, and escalate.
Expand Down
Loading
Loading