feat(vocab+class-view): mint HR domain (0x0DXX) — closes final 4-of-11 cross-axis identity gap from odoo-rs #14#127
Conversation
…OB/HR_EMPLOYMENT_CONTRACT (closes final 4-of-11 cross-axis gap from odoo-rs #14) - part 1
…ob/hr.contract (closes final 4-of-11 gap)
…/hr_job/hr_employment_contract
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
…oo_hr_models_resolve_into_the_hr_domain sibling test
|
Test fix pushed. CI failure: Two-part fix in the same commit ():
CI should now go green. (Same shape as the C2 #126 rebase fix earlier today — different failure mode, but the discipline that catches both is in |
Phase-3 HR cluster (C3) — closes the final cross-axis gap
The full closure of the 11-class gap surfaced by odoo-rs PR #14's
alignment_pin::seeded_classes_have_compatible_ogar_identity:After C3 merges: 11-of-11 closed.
New concept domain: HR (
0x0DXX)0x0D01HR_EMPLOYEEEmployee, Odoohr.employee(vcard:Individual)0x0D02HR_DEPARTMENTDepartment, Odoohr.department(org:OrganizationalUnit)0x0D03HR_JOBJob, Odoohr.job(org:Role)0x0D04HR_EMPLOYMENT_CONTRACTContract, Odoohr.contract(fibo:Contract— payroll computation stays outside the codebook)Distinct from
Auth(which is the IdP→classid bridge) and fromHealth(PHI). Mirrors arago HIRO HR semantics + Odoo
hr.*+ vcard/org/fiboalignment.
Synchronised across the registries (same shape as #110 AuthStore + #111 + #126)
ogar-vocab/src/lib.rsConceptDomainenumHRogar-vocab/src/lib.rscanonical_concept_domain0x0D → HRogar-vocab/src/lib.rsCODEBOOKogar-vocab/src/lib.rsclass_idsmodogar-vocab/src/lib.rsclass_ids::ALLogar-vocab/src/lib.rsbuildershr_employee()/hr_department()/hr_job()/hr_employment_contract()Class fnsogar-vocab/src/lib.rsall_promoted_classes()ogar-vocab/src/lib.rstests0x0D00 → HRtest arm (wasUnassigned);concepts_in_domain(ConceptDomain::HR).count() == 4ogar-vocab/src/ports.rsODOO_ALIASEShr.employee,hr.department,hr.job,hr.contract); count-drift assert 16 → 20ogar-class-view/src/lib.rsall_canonical_classes()Class attribute shapes
Schema-aligned minimal attributes per the alignment table in odoo-rs PR #14:
Why no keystone-spec review (unlike #110 AuthStore)
AuthStore #110 needed
docs/CLASSID-RBAC-KEYSTONE-SPEC.md §7because RBAC has heavy enforcement implications (authorize()is the runtime gate). HR is plain identity/master-data — same shape as Commerce 0x02XX or Health 0x09XX additions. No enforcement gate to design; the classid is just the identity key for the four entities. Mirroring drift discipline (E-OGAR-AUTH-MIRROR-DRIFT) applies as usual.Cross-repo follow-up needed
lance_graph_contract::ogar_codebook::CODEBOOKneeds to add the 4 HR entries;ConceptDomain::HRmirror variant;canonical_concept_domain0x0D arm;lance-graph-ogar::parity::domains_agree+1 arm(O::HR, C::HR). Same pattern as D3 #606.tests/alignment_pin.rs::seeded_classes_have_compatible_ogar_identityshould now report 0 remaining un-mapped seeded classes (was 7; will be 0 once odoo-rs bumps the OGAR pin past this PR). The hard-pin assertion can also extend from commerce-arm-only to "all 15 seeded classes have an OGAR classid" — total closure.Refs
0x0BXXdomain)E-OGAR-API-EDIT-PULL-FIRST(filed this session) — drove the pull-then-splice approach used to author this PR