Merge remote-tracking branch 'origin/main' into feat/less-prompting-more-shipping
Build and publish Eldorado documentation / build (pull_request) Successful in 47s

This commit is contained in:
jarvis-at-skic committed 2026-10-08 17:41:24 +00:00
commit f059f4c324
13 files changed
+254 -89

No files matched your search

+7 -84
View File
@@ -1,5 +1,6 @@
---
title: Structure
pagination_next: structure/product
description: Eldorado’s organizational operating model, departments, teams and responsibilities.
---
@@ -26,90 +27,12 @@ Functional leaders translate company priorities into departmental plans. Team le
Product has **two teams** and Technology has **five teams**. Operations, Marketing, Finance & Accounting, and HR & Administration each have **one squad** covering their departmental workstreams. Each team belongs to one department, with its own leadership and responsibilities. The departments collaborate on delivery without sharing team ownership.
### Product
**Purpose:** improve the buyer and seller experience and turn marketplace opportunities into valuable product capabilities.
| Team | Responsibilities |
| --- | --- |
| Product Management | Product strategy, roadmaps, priorities and outcome measurement across discovery, categories, orders, seller tools, payments and operational workflows. |
| Product Design | User research, interaction design, design consistency and accessible buyer and seller experiences. |
Product Management owns what to improve and why. Product Design shapes the experience. Both work with Technology teams while remaining within Product.
### Technology
**Purpose:** build and operate a secure, reliable marketplace and improve the effectiveness of engineering.
| Team | Responsibilities |
| --- | --- |
| Product Engineering | Build and maintain marketplace capabilities, including search, orders, seller tools, checkout, wallet and operational tooling. |
| Platform & IT | Platform services, delivery infrastructure, observability, reliability, performance, internal systems, employee devices and identity administration. |
| Architecture & Security | Technical standards, system design, security architecture and secure engineering practices. |
| Quality Engineering | Test strategy, automation, release quality and defect prevention. |
| Data & AI | Analytics, experimentation, ranking, recommendations, marketplace ML and safe AI-assisted engineering workflows. |
The CTO owns technology direction. The Head of Engineering leads engineering delivery through Group Engineering Managers and Engineering Managers. The AI Architect coordinates AI enablement within Data & AI, working with Architecture & Security and the other Technology teams. These are leadership roles within the five-team structure, not additional teams.
### Operations
**Purpose:** keep marketplace trading dependable and resolve customer issues fairly and efficiently.
**Operations Squad** delivers the department’s responsibilities across the following workstreams.
| Workstream | Responsibilities |
| --- | --- |
| Customer Support | Buyer and seller assistance, knowledge management, self-service and support workflow automation. |
| Trust & Resolution | Disputes, appeals, refunds, warranties, chargebacks and complex customer cases. |
| Risk & Fraud | Transaction and account risk, fraud prevention, investigations and operational controls. |
| Operational Quality | Independent case reviews, quality standards, calibration, service accuracy and improvement tracking across operational teams. |
The COO coordinates Operations. Team leads manage specialists and daily service delivery. Operational Quality reports directly to the COO and reviews quality across teams.
### Marketing
**Purpose:** attract and retain customers, build the Eldorado brand and grow marketplace demand.
**Marketing Squad** delivers the department’s responsibilities across the following workstreams.
| Workstream | Responsibilities |
| --- | --- |
| Brand & Community | Brand positioning, campaigns, organic social, community and brand partnerships. |
| Creative | Campaign concepts, visual assets and performance creative. |
| SEO | Organic discovery, search visibility and content performance. |
| PPC & Affiliate | Paid acquisition, affiliate channels and return on marketing investment. |
| Influencer | Creator relationships, influencer programs and campaign delivery. |
| CRM | Customer lifecycle communication, retention, reactivation and campaign personalization. |
The CMO coordinates Marketing. The Brand Team Lead owns Brand & Community, with shared support from Creative and the other marketing workstreams.
### Finance & Accounting
**Purpose:** maintain financial control, support business decisions and keep marketplace money flows dependable.
**Finance & Accounting Squad** delivers the department’s responsibilities across the following workstreams.
| Workstream | Responsibilities |
| --- | --- |
| Financial Planning & Analysis | Budgets, forecasts, profitability, management reporting and investment analysis. |
| Accounting, Tax & Controls | Accounting, financial reporting, tax, audit coordination and internal controls. |
| Treasury & Payment Operations | Cash management, reconciliation, payout oversight, payment-provider coordination and financial risk. |
The CFO coordinates Finance & Accounting and works with executive leadership on business performance. Finance, Operations and Product share responsibility for effective payment and withdrawal processes, each within its own area of expertise.
### HR & Administration
**Purpose:** help teams attract, develop and retain people and provide an effective working environment.
**People & Administration Squad** delivers the department’s responsibilities across the following workstreams.
| Workstream | Responsibilities |
| --- | --- |
| Talent Acquisition | Recruitment, candidate experience, hiring coordination and workforce demand support. |
| People Operations | Employee onboarding, development, performance processes, policies and employee experience. |
| Office & Administration | Workplace services, office operations and administrative coordination. |
HR partners with department leaders on team capacity and development. People Operations works with Platform & IT on employee onboarding, role changes and offboarding.
- <span id="product">[Product](./structure/product.mdx)</span>
- <span id="technology">[Technology](./structure/technology.mdx)</span>
- <span id="operations">[Operations](./structure/operations.mdx)</span>
- <span id="marketing">[Marketing](./structure/marketing.mdx)</span>
- <span id="finance--accounting">[Finance & Accounting](./structure/finance-accounting.mdx)</span>
- <span id="hr--administration">[HR & Administration](./structure/hr-administration.mdx)</span>
## Related pages
@@ -0,0 +1,20 @@
---
title: Finance & Accounting
pagination_prev: structure/marketing
pagination_next: structure/hr-administration
description: Finance & Accounting purpose, teams and responsibilities in Eldorado’s operating model.
---
**Purpose:** maintain financial control, support business decisions and keep marketplace money flows dependable.
**Finance & Accounting Squad** delivers the department’s responsibilities across the following workstreams.
| Workstream | Responsibilities |
| --- | --- |
| Financial Planning & Analysis | Budgets, forecasts, profitability, management reporting and investment analysis. |
| Accounting, Tax & Controls | Accounting, financial reporting, tax, audit coordination and internal controls. |
| Treasury & Payment Operations | Cash management, reconciliation, payout oversight, payment-provider coordination and financial risk. |
The CFO coordinates Finance & Accounting and works with executive leadership on business performance. Finance, Operations and Product share responsibility for effective payment and withdrawal processes, each within its own area of expertise.
[Return to Structure overview](../structure.mdx)
@@ -0,0 +1,20 @@
---
title: HR & Administration
pagination_prev: structure/finance-accounting
pagination_next: collaboration
description: HR & Administration purpose, teams and responsibilities in Eldorado’s operating model.
---
**Purpose:** help teams attract, develop and retain people and provide an effective working environment.
**People & Administration Squad** delivers the department’s responsibilities across the following workstreams.
| Workstream | Responsibilities |
| --- | --- |
| Talent Acquisition | Recruitment, candidate experience, hiring coordination and workforce demand support. |
| People Operations | Employee onboarding, development, performance processes, policies and employee experience. |
| Office & Administration | Workplace services, office operations and administrative coordination. |
HR partners with department leaders on team capacity and development. People Operations works with Platform & IT on employee onboarding, role changes and offboarding.
[Return to Structure overview](../structure.mdx)
+23
View File
@@ -0,0 +1,23 @@
---
title: Marketing
pagination_prev: structure/operations
pagination_next: structure/finance-accounting
description: Marketing purpose, teams and responsibilities in Eldorado’s operating model.
---
**Purpose:** attract and retain customers, build the Eldorado brand and grow marketplace demand.
**Marketing Squad** delivers the department’s responsibilities across the following workstreams.
| Workstream | Responsibilities |
| --- | --- |
| Brand & Community | Brand positioning, campaigns, organic social, community and brand partnerships. |
| Creative | Campaign concepts, visual assets and performance creative. |
| SEO | Organic discovery, search visibility and content performance. |
| PPC & Affiliate | Paid acquisition, affiliate channels and return on marketing investment. |
| Influencer | Creator relationships, influencer programs and campaign delivery. |
| CRM | Customer lifecycle communication, retention, reactivation and campaign personalization. |
The CMO coordinates Marketing. The Brand Team Lead owns Brand & Community, with shared support from Creative and the other marketing workstreams.
[Return to Structure overview](../structure.mdx)
@@ -0,0 +1,21 @@
---
title: Operations
pagination_prev: structure/technology
pagination_next: structure/marketing
description: Operations purpose, teams and responsibilities in Eldorado’s operating model.
---
**Purpose:** keep marketplace trading dependable and resolve customer issues fairly and efficiently.
**Operations Squad** delivers the department’s responsibilities across the following workstreams.
| Workstream | Responsibilities |
| --- | --- |
| Customer Support | Buyer and seller assistance, knowledge management, self-service and support workflow automation. |
| Trust & Resolution | Disputes, appeals, refunds, warranties, chargebacks and complex customer cases. |
| Risk & Fraud | Transaction and account risk, fraud prevention, investigations and operational controls. |
| Operational Quality | Independent case reviews, quality standards, calibration, service accuracy and improvement tracking across operational teams. |
The COO coordinates Operations. Team leads manage specialists and daily service delivery. Operational Quality reports directly to the COO and reviews quality across teams.
[Return to Structure overview](../structure.mdx)
+17
View File
@@ -0,0 +1,17 @@
---
title: Product
pagination_prev: structure
pagination_next: structure/technology
description: Product purpose, teams and responsibilities in Eldorado’s operating model.
---
**Purpose:** improve the buyer and seller experience and turn marketplace opportunities into valuable product capabilities.
| Team | Responsibilities |
| --- | --- |
| Product Management | Product strategy, roadmaps, priorities and outcome measurement across discovery, categories, orders, seller tools, payments and operational workflows. |
| Product Design | User research, interaction design, design consistency and accessible buyer and seller experiences. |
Product Management owns what to improve and why. Product Design shapes the experience. Both work with Technology teams while remaining within Product.
[Return to Structure overview](../structure.mdx)
@@ -0,0 +1,20 @@
---
title: Technology
pagination_prev: structure/product
pagination_next: structure/operations
description: Technology purpose, teams and responsibilities in Eldorado’s operating model.
---
**Purpose:** build and operate a secure, reliable marketplace and improve the effectiveness of engineering.
| Team | Responsibilities |
| --- | --- |
| Product Engineering | Build and maintain marketplace capabilities, including search, orders, seller tools, checkout, wallet and operational tooling. |
| Platform & IT | Platform services, delivery infrastructure, observability, reliability, performance, internal systems, employee devices and identity administration. |
| Architecture & Security | Technical standards, system design, security architecture and secure engineering practices. |
| Quality Engineering | Test strategy, automation, release quality and defect prevention. |
| Data & AI | Analytics, experimentation, ranking, recommendations, marketplace ML and safe AI-assisted engineering workflows. |
The CTO owns technology direction. The Head of Engineering leads engineering delivery through Group Engineering Managers and Engineering Managers. The AI Architect coordinates AI enablement within Data & AI, working with Architecture & Security and the other Technology teams. These are leadership roles within the five-team structure, not additional teams.
[Return to Structure overview](../structure.mdx)
@@ -0,0 +1,41 @@
{
"sourceCommit": "88a43757762114a506f57ed4b44484306cae1aaa",
"departments": [
{
"label": "Product",
"slug": "product",
"bodySha256": "b7fd948091dbd7b7c2f51d494a5e83241a53c5d1d9b751267102a6c97ad29bd9",
"rows": 2
},
{
"label": "Technology",
"slug": "technology",
"bodySha256": "a74405d41a58b43e4e8ffbb0e98f835d25d80c6ab2ef9f314925832280c038d3",
"rows": 5
},
{
"label": "Operations",
"slug": "operations",
"bodySha256": "03254f56a3ea8e353a5d9b65c0342954bf65edec59073d20fb1ceaaf31d683c7",
"rows": 4
},
{
"label": "Marketing",
"slug": "marketing",
"bodySha256": "424d7c1d147472ced3b73eb8041048a982ce10330a51246ca35bed0cd150e633",
"rows": 6
},
{
"label": "Finance & Accounting",
"slug": "finance-accounting",
"bodySha256": "ffdacb9930114a6caf25a475bb207dcb58f27c13e08fb04e098ef1e30ea538a9",
"rows": 3
},
{
"label": "HR & Administration",
"slug": "hr-administration",
"bodySha256": "e663ca1c7b7fe83cff70d6e33235591fa082304d201dc4538235cc1a341ffd3c",
"rows": 3
}
]
}
+49
View File
@@ -0,0 +1,49 @@
const {chromium}=require('playwright');
const assert=require('node:assert/strict');
const fs=require('node:fs');
(async()=>{
const base=process.argv[2]||'http://127.0.0.1:4187';
const prefix='/eldorado-v1/documentation/organization/';
const departments=JSON.parse(fs.readFileSync('research/organization/department-migration.json')).departments;
const ids=['structure',...departments.map(d=>'structure/'+d.slug)];
const titles=['Structure',...departments.map(d=>d.label)];
const browser=await chromium.launch({headless:true,args:['--no-sandbox'],executablePath:process.env.PLAYWRIGHT_CHROMIUM_EXECUTABLE});
const results=[]; fs.mkdirSync('.cache/departments',{recursive:true});
try{
for(const width of [1440,390]){
const page=await browser.newPage({viewport:{width,height:900}}); const errors=[]; page.on('pageerror',e=>errors.push(e.message));
for(const [i,id] of ids.entries()){
assert.equal((await page.goto(base+prefix+id+'/',{waitUntil:'networkidle'})).status(),200);
assert.equal(await page.locator('h1').innerText(),titles[i]);
if(i){
assert.equal(await page.locator('.breadcrumbs a').filter({hasText:'Structure'}).getAttribute('href'),prefix+'structure/');
assert.equal(await page.locator('.pagination-nav__link--prev').getAttribute('href'),prefix+ids[i-1]+'/');
await page.getByRole('link',{name:'Return to Structure overview',exact:true}).click();
await page.waitForURL(base+prefix+'structure/');
await page.locator('article').getByRole('link',{name:titles[i],exact:true}).click();
await page.waitForURL(base+prefix+id+'/');
}
assert.equal(await page.locator('.pagination-nav__link--next').getAttribute('href'),prefix+(ids[i+1]||'collaboration')+'/');
assert(!await page.evaluate(()=>document.documentElement.scrollWidth>innerWidth));
await page.screenshot({path:`.cache/departments/${width}-${id.replaceAll('/','-')}.png`,fullPage:true});
if(width<997)await page.getByRole('button',{name:'Toggle navigation bar'}).click();
const menu=page.locator('.theme-doc-sidebar-menu').filter({visible:true});
await menu.getByRole('link',{name:'Structure',exact:true}).waitFor({state:'visible'});
const category=menu.locator('.theme-doc-sidebar-item-category');
await category.getByRole('link',{name:'Product',exact:true}).waitFor({state:'visible'});
assert.deepEqual(await category.locator(':scope > ul > li > a').allTextContents(),titles.slice(1));
assert.deepEqual(await menu.locator(':scope > li > a').allTextContents(),['Collaboration','SDLC']);
const caret=category.locator(':scope > .menu__list-item-collapsible > button');
await caret.click(); await category.getByRole('link',{name:'Product',exact:true}).waitFor({state:'hidden'});
await caret.click(); await category.getByRole('link',{name:'Product',exact:true}).waitFor({state:'visible'});
const next=(i+1)%ids.length;
await menu.getByRole('link',{name:titles[next],exact:true}).click(); await page.waitForURL(base+prefix+ids[next]+'/');
await page.locator('h1').filter({hasText:titles[next]}).waitFor();
results.push({width,id,navigation:true});
}
assert.deepEqual(errors,[]);await page.close();
}
fs.writeFileSync('.cache/departments/results.json',JSON.stringify(results,null,2));
console.log('PASS: '+results.length+' desktop/mobile department contexts, real sidebar/return/list navigation, breadcrumbs, pagination and overflow');
}finally{await browser.close();}
})().catch(e=>{console.error(e);process.exit(1)});
+26
View File
@@ -0,0 +1,26 @@
import {test} from 'node:test';
import assert from 'node:assert/strict';
import {readFileSync} from 'node:fs';
import {createHash} from 'node:crypto';
const read=p=>readFileSync(p,'utf8');
const slugs=['product','technology','operations','marketing','finance-accounting','hr-administration'];
test('all six department bodies are preserved exactly and absent from overview',()=>{
const manifest=JSON.parse(read('research/organization/department-migration.json'));
assert.deepEqual(manifest.departments.map(d=>d.slug),slugs);
const overview=read('docs/organization/structure.mdx');
for(const d of manifest.departments){
const page=read(`docs/organization/structure/${d.slug}.mdx`);
const body=page.replace(/^---\n[\s\S]*?\n---\n/, '').split('[Return to Structure overview]')[0].trim();
assert.equal(createHash('sha256').update(body).digest('hex'),d.bodySha256,d.slug);
assert(!overview.includes(body));
assert(overview.includes(`./structure/${d.slug}.mdx`));
assert(page.includes('(../structure.mdx)'));
}
assert.deepEqual(manifest.departments.map(d=>d.rows),[2,5,4,6,3,3]);
});
test('Structure is a linked category with six direct children and preserved peers',()=>{
const sidebar=read('sidebars/organization.ts');
assert(sidebar.includes("link: {type: 'doc', id: 'structure'}"));
assert.deepEqual([...sidebar.matchAll(/'structure\/([^']+)'/g)].map(m=>m[1]),slugs);
assert(sidebar.includes("'collaboration', 'sdlc'"));
});
+3 -3
View File
@@ -43,7 +43,7 @@ test('three independent section menus and Structure first', () => {
for (const section of ['Organization', 'Strategy', 'Contribution']) assert(config.includes(`label: '${section}'`));
assert(!config.includes("label: 'Documentation'"));
assert(!config.includes("label: 'Maintainer guide'"));
assert(read('sidebars/organization.ts').includes("organizationSidebar: ['structure', 'collaboration', 'sdlc']"));
assert(read('sidebars/organization.ts').includes("link: {type: 'doc', id: 'structure'}"));
for (const section of ['organization','strategy','contribution']) assert(config.includes(`id: '${section}'`));
});
test('Archify is pinned, licensed and rebuilt, not a remote embed', () => {
@@ -83,7 +83,7 @@ test('Product owns two teams and Technology owns five separate teams', () => {
for (const [dept, count, heading, next] of [['product',2,'Product','Technology'],['technology',5,'Technology','Operations']]) {
const teams = spec.components.filter(n => n.id.startsWith(`${dept}-team-`));
assert.equal(teams.length, count);
const section = page.split(`### ${heading}\n`)[1].split(`### ${next}\n`)[0];
const section = read(`docs/organization/structure/${dept}.mdx`);
const rows = section.split('\n').filter(l => l.startsWith('| ')).slice(2);
assert.equal(rows.length, count);
for (const team of teams) {
@@ -112,7 +112,7 @@ test('departments share one row and each has delivery teams below it', () => {
assert.equal(edge.fromSide, 'bottom');
assert.equal(spec.connections.find(e => e.from === 'management' && e.to === id).toSide, 'top');
assert.deepEqual(spec.connections.filter(e => e.to === team.id).map(e => e.from), [id]);
assert(page.includes(team.label));
assert(read(`docs/organization/structure/${({finance:'finance-accounting',people:'hr-administration'})[id] || id}.mdx`).includes(team.label));
}
}
for (const [i, a] of spec.components.entries()) for (const b of spec.components.slice(i + 1)) {
+1 -1
View File
@@ -15,7 +15,7 @@ test('seven existing strategy pages and two stage overviews preserve canonical r
assert(read('sidebars/strategy.ts').includes(`'${id === 'measurement' ? 'measurement/index' : id}'`));
}
for (const teams of Object.values(model.organization)) for (const name of teams) {
assert(read('docs/organization/structure.mdx').includes(name));
assert(readdirSync('docs/organization/structure').some(file => read(`docs/organization/structure/${file}`).includes(name)));
assert(read('docs/strategy/target-operating-model.mdx').includes(name));
}
});
+6 -1
View File
@@ -1,2 +1,7 @@
import type {SidebarsConfig} from '@docusaurus/plugin-content-docs';
export default {organizationSidebar: ['structure', 'collaboration', 'sdlc']} satisfies SidebarsConfig;
export default {organizationSidebar: [
{type: 'category', label: 'Structure', link: {type: 'doc', id: 'structure'},
items: ['structure/product', 'structure/technology', 'structure/operations',
'structure/marketing', 'structure/finance-accounting', 'structure/hr-administration']},
'collaboration', 'sdlc',
]} satisfies SidebarsConfig;