People pillar · v0.8.1

role Role

Role definition aligned with W3C ORG Post and Role.

$id · https://corpospec.com/schemas/v0.8.1/role.schema.json

Fields

Field Type Required Description
id PathRef yes PathRef of this record (e.g. `people/roles/cto`).
level RoleLevel yes Seniority level (see `RoleLevel`).
responsibilities string[] yes List of responsibilities owned by this role. Mirrors `OrgUnit.planned_roles`: a unit's planned roles are realised here.
title string yes Human-readable title as it would appear on a business card (e.g. `"Chief Technology Officer"`).
unit string yes Id of the `OrgUnit` this role lives in. Local identifier (not a PathRef) because the unit set is defined inline on `OrgStructure`.
abbreviation string? Short uppercase code used in diagrams and cap-table shorthand (e.g. `"CTO"`, `"GF"`, `"FDF"`). Optional — not every role has a stable abbreviation.
compensation_band CompensationBand? Compensation band for the role.
custom RoleCustom? Typed custom extension fields (employment, benefits, hiring plan).
headcount integer? Approved headcount for this role. `0` means "approved but unfilled".
reports_to PathRef? PathRef of the role this role reports to. `None` only for the top-of-hierarchy role (e.g. Geschäftsführer, CEO).

Definitions

Shared types referenced within this schema.

CompensationBand
Compensation band. Callers are expected to ensure `min <= max`. JSON Schema cannot express cross-field numeric inequalities without `allOf`/`oneOf` gymnastics; the invariant is documented here and enforced by `corpospec-validate`.
type: object
CompensationSchedule
Compensation schedule for a role. Encodes a two-tier plan: an initial (`pre_pre_seed_*`) rate, followed by a higher (`post_pre_seed_*`) rate that activates on a named trigger.
type: object
CompensationTrigger
Event that triggers the post-pre-seed compensation tier to activate. Stored as a machine-readable discriminator so downstream tooling can reason about compensation scenarios without parsing prose.
EmployerContributions
Employer social-insurance contribution breakdown (German system). All percentages are expressed as a fraction of gross salary, 0.0–100.0. These are employer-side contributions; employee-side is mirrored via deductions on the payslip.
type: object
EmploymentType
Employment type enumerating the contractual relationship kinds observed across UNSTARTER, ACME, and German-law companies modelled in CorpoSpec. Includes the German-law specific values (`angestellte`, `geschaeftsfuehrer`, `minijob-520`, `werkstudent`) alongside internationally common categories.
HeadcountPlan
Headcount plan for a role.
type: object
IpBoundaries
IP boundary definitions for a role. Relevant when the incumbent performs work for multiple legal entities (e.g. Forward-Deployed Founder operating a personal company in parallel).
type: object
IsoCountry
ISO 3166-1 alpha-2 country code.
pattern: ^[A-Z]{2}$
IsoCurrency
ISO 4217 currency code.
pattern: ^[A-Z]{3}$
IsoDate
ISO 8601 date (YYYY-MM-DD).
type: string
PathRef
Path-based cross-reference relative to .corpospec/ root. Pattern: `^[a-z0-9_-]+(/[a-z0-9_.-]+)+$`
pattern: ^[a-z0-9_-]+(/[a-z0-9_.-]+)+$
RoleCustom
Typed extension fields for Role. Union of all role-specific custom fields observed in `.corpospec/` YAML data across UNSTARTER, KICKGEIST and ACME.
type: object
RoleCustomStatus
Lifecycle status of a `Role` record. Distinct from `StatusActive` (which models entities such as companies or products): here we track the hiring lifecycle of an individual seat.
RoleLevel
Role level in the organization.
RoleRequirements
Role requirements (must-have / nice-to-have skills and traits).
type: object
ScheinselbstaendigkeitSafeguards
Scheinselbstaendigkeit risk safeguards. Under German law (§ 7 SGB IV), an apparently self-employed contractor may be reclassified as a dependent employee if integration with the employer is too deep. This record documents the mitigation strategy.
type: object
TimeAllocation
Time allocation plan for a role.
type: object
TimeAllocationModel
Model governing how a role's time is allocated between competing work streams.
TimeAllocationOption
Time allocation option for a role (e.g. FDF split model).
type: object

Reference in your YAML

# yaml-language-server: $schema=https://corpospec.com/schemas/v0.8.1/role.schema.json