Spoke
enterprise-jobframe
Your tenant's instance of the JobFrame canon — job profiles, overlays, governance, and the job ⇄ person ⇄ position graph, built for the people who run job architecture.
Character
Problem
External. Job descriptions live in scattered docs nobody maintains; a leadership philosophy lives in a deck nobody reads; comp visibility is an all-or-nothing argument with legal.
Internal. You are asked to operationalize strategy across every role on command, and to disclose pay responsibly — but the tools force you to choose between control and consistency.
Philosophical. A role's architecture should be assembled from trusted pieces and governed like code — versioned, audited, never silently overwritten.
Guide
Abstract
Background. Enterprises need their own instance of a canonical job architecture — profiles, overrides, lifecycle, and the job ⇄ person ⇄ position graph — without forking or corrupting the shared canon.
Methodology. A top-down constructor assembles profiles from canon components with preserved component ids + edit provenance; a pure injection engine applies overlay fragments by level × function (composing with Focus, idempotent, with stale-fragment retirement); a disclosure policy engine gates comp artifacts by viewer scope, the min-N privacy floor, and pay-transparency law.
Scope. The tenant instance + governance — it composes the canon (job-family-agent), comp (anycomp / wage-benchmark / wage-compliance), and people/org (org-graph) over HTTP; it does not own them.
Contribution. Organizational Overlays as a second JD axis parallel to Focus, and a disclosure policy where public posting is one setting — generalizing the public-vs-enterprise comp-exposure decision.
Evidence / Provenance. PAT-JFE-ENT series; every adoption + injection + lifecycle transition routes to a shared review queue + audit log.
Plan
- 01
Scaffold from canon
GET
/api/spokes/enterprise-jobframe/scaffold?familyId=&focusId=&levelId=to assemble a profile from canon components — accept, reject, or edit each brick. - 02
Adopt an overlay
Pick an organizational overlay (philosophy / strategy / change objective) and inject it org-wide by level × function; track rollout per role.
- 03
Set a disclosure policy
Configure who sees what comp data; the min-N floor and any pay-transparency law are enforced for you — individual pay is never exposed.
- 04
Govern + version
Approve / publish gate on admin+; publish snapshots an immutable version; canon promotion is a governed proposal, never a silent mutation.
Call to Action
Direct. curl the scaffold endpoint and assemble your first governed profile.
Transitional. Read the Enterprise JobFrame build-out for the overlay + disclosure model.
Spoke I/O (visual language v1)
Every toolbox spoke shares the same abstract choreography: typed inputs on the left, distilled verbs in the center, typed outputs on the right, and (when relevant) cross-spoke HTTP composition along the bottom rail. Source package: @people-analytics-toolbox/spoke-illustrations.
Try it now
Copy this curl. Paste in any terminal. Public read — no auth needed.
enterprise-jobframe.scaffold
GETTop-down constructor scaffold assembled from the JobFrame canon.
curl -sS "https://people-analytics-toolbox.vercel.app/api/spokes/enterprise-jobframe/scaffold?familyId=SWE&focusId=GEN&levelId=P3"
Vendor the contract
The Zod contract is the source of truth. Vendor a copy into your consumer app — you keep it; we don't break it underneath you. Re-vendor when the version bumps.
// Vendor canonical types: // src/spokes/enterprise-jobframe/contracts/types.ts
Source path: src/spokes/enterprise-jobframe/contracts/types.ts · GitHub
Failure
Strategy stays trapped in slides, job descriptions rot, and comp disclosure is a recurring fight — the architecture is a document system instead of a governed part of HR operations.
Success
Every role is assembled from trusted canon, carries the org's current philosophy, and discloses pay exactly as policy and law require — versioned, audited, and never overwriting the shared canon.