Skip to content

v0.87.0

Choose a tag to compare

@robertblust robertblust released this 08 Oct 11:42
· 185 commits to main since this release
82c35d6

Core's role is now seat (#310). The type was always a seat: its schema called it one, every schema that referenced it said "the seat", and a process names one per phase. The word said otherwise, and the organization pack showed what that costs, since the standards it draws on use "role" and "job" for what a person is employed as. A seat is now core/seat-schema.md, keeping its id, in model/seats/; a profile holds seats; every ref → role in the process, phase, KPI, risk, decision and control schemas is ref → seat; and a Type cell in ## Applies to names seat. Experience's string field role, which held job titles and parts such as speaker or author, is capacity, with the same meaning. The organization pack's job.seats names seats.

What breaks. Every instance: the checker of this release refuses an instance pinned to an earlier core, and an instance still holding model/roles/ fails the checks of core 0.63.0. Three consumers of the package change with it. companygraph-meta-model/instance: constraintsOf names R16's join on a column called As by the kind "as", no longer "roles", which the MCP server reads. companygraph-meta-model/plan: upgradePlan requires model, every file under the instance's model/, and refuses without it when the core carries seat-schema.md; it returns moved, and writes and writePlan may carry bytes as a Uint8Array, which the Obsidian plugin's upgrade must pass and write. A site drawing a migrated instance needs robertblust/design's next release, which draws seats on the page that becomes Processes. The commit-author check and the judge say "names no seat of" and "its seats does not name it" where they said role.

How to take it. Run companygraph upgrade. It moves every file under model/roles/ to model/seats/ with its id, keeps the folder README's text with only its heading, folder and schema path changed, renames a profile's roles: to seats: and an experience's role: to capacity:, and turns a role cell in a Type column into seat. It refuses, writing nothing, when pages sit in both model/roles/ and model/seats/ or a page carries both keys; settle those by hand and run it again. It then names, without rewriting, the instance's own files that still say roles, typically README.md, AGENTS.md, the export guide's {{count:Roles}} and the seats README; edit them, since the export build fails on {{count:Roles}} until you do. The list cannot catch prose that names the old words in passing, so also search your own text for `role`, ref → role and model/roles/. Then run check. companygraph, guestgraph and robertblust mental-model, upgraded from core 0.61.0, move their seats and pass.