docs: align departments and add departmental squads
Build and publish Eldorado documentation / build (pull_request) Successful in 31s

This commit is contained in:
jarvis-at-skic committed 2026-10-04 08:50:28 +00:00
1 parent 5bc1263be0
commit 01e2b4df39
3 files changed
+146 -33

No files matched your search

+21
View File
@@ -77,6 +77,27 @@ test('Product owns two teams and Technology owns five separate teams', () => {
}
}
});
test('departments share one row and each has delivery teams below it', () => {
const spec = JSON.parse(read('diagrams/organization-structure.architecture.json'));
const page = read('docs/organization/structure.mdx');
const departments = ['product', 'technology', 'operations', 'marketing', 'finance', 'people'];
const nodes = new Map(spec.components.map(n => [n.id, n]));
assert.equal(new Set(departments.map(id => nodes.get(id).pos[1])).size, 1);
for (const [i, id] of departments.entries()) {
const department = nodes.get(id);
const teams = spec.connections.filter(e => e.from === id).map(e => nodes.get(e.to));
assert.equal(teams.length, i === 0 ? 2 : i === 1 ? 5 : 1);
for (const team of teams) {
assert(team.pos[1] > department.pos[1] + department.size[1]);
assert.equal(team.pos[0], department.pos[0]);
assert.deepEqual(spec.connections.filter(e => e.to === team.id).map(e => e.from), [id]);
assert(page.includes(team.label));
}
}
for (const [i, a] of spec.components.entries()) for (const b of spec.components.slice(i + 1)) {
assert(!(a.pos[0] < b.pos[0] + b.size[0] && a.pos[0] + a.size[0] > b.pos[0] && a.pos[1] < b.pos[1] + b.size[1] && a.pos[1] + a.size[1] > b.pos[1]), `${a.id} overlaps ${b.id}`);
}
});
test('organization page presents an operating model, not research notes', () => {
const page = read('docs/organization/structure.mdx');
assert(page.includes('operating model') && page.includes('## Departments and teams'));