Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

05 — Work Breakdown

The work is organized into streams (long-lived areas of responsibility), epics (a phase’s worth of work in one stream) and work packages (WPs: self-contained briefs an agent can complete in one to several sessions). Phase 0 is broken down to Ready work packages. Phase 1 is broken down to draft work packages that the Phase-0 gate review will refine. Later phases are listed as epics.

Streams

StreamScopeMain repo
MODELDocument model, CRDT adapter, styles, numbering, fieldsbayan-core
FORMATSDOCX, RTF, DOC, ODT, HTML, Markdown import/export; packaging; preservationbayan-core
TEXTFonts, shaping, Unicode, line breaking, hyphenation, Word measurement modelbayan-core
LAYOUTParagraphs, pagination, tables, floats, notes, sections, headers/footers, math, chartsbayan-core
OUTPUTDisplay lists, rasterization, PDF family, printingbayan-core (+ desktop for print)
EDITSelection, commands, transactions, undo, clipboard, find, autocorrect, track changesbayan-core
LABFidelity Lab: corpora, Word ground truth, metrics, Word Behavior Notes, determinism matrixbayan-core (lab/)
UIShared UI manifest, strings, icons; desktop and web interfacescore + desktop + web
DESKTOPQt shell, canvas, input, accessibility bridge, packagingbayan-desktop
WEBReact shell, worker engine host, compositor, input bridge, accessibility mirror, PWAbayan-web
SYNCSync protocol, presence, offline queue (client side)bayan-core
SERVERAccounts, devices, groups, relay, storage, admin, deploymentbayan-server
CRYPTOMLS, identity and device keys, recovery, link sharingcore + server
SECURITYThreat models, fuzzing, hardening, audits, supply chainall
A11Y-I18NAccessibility and internationalization across all layersall
AUTOMATION-AIScripting, extensions, VBA tools, local AIbayan-core (+ shells)
DOCSKnowledge base, handbooks, contributor guidesdocs
RELEASEVersioning, signing, SBOM, provenance, distribution, updatesall

Sizing

SizeMeaning
SAbout one focused agent session; one pull request.
MTwo to four sessions; one or two pull requests.
LFive or more sessions or several pull requests; usually a spike or a subsystem.

Phase 0 — Bedrock: Ready work packages

Briefs are in workpackages/phase-0/. Waves show what can run in parallel; a WP may start as soon as its dependencies are merged.

IDTitleRepoSizeDepends onWave
X-001Repository baseline: governance files, PR template, DCO, REUSE checkallM—1
DOCS-001Knowledge-base site (mdBook) and docs CIdocsS—1
CORE-001Core workspace scaffold and verification gatecoreM—1
DESK-001Desktop scaffold and CIdesktopM— (stub engine until CORE-007)1
WEB-001Web scaffold and CIwebM—1
SRV-001Server scaffold, container and CIserverM—1
X-002CI security baseline: hardened workflows, workflow linting, ScorecardallSEach repo’s scaffold2
X-003Supply-chain enforcement and the monthly update runbookall code reposMCORE-001, SRV-001, WEB-001, DESK-0012
CORE-002bayan-units: integer layout units and deterministic mathcoreSCORE-0012
CORE-004Spike: Word-shaped document model on LorocoreLCORE-0012
CORE-005bayan-opc: hardened package layercoreMCORE-0012
CORE-006bayan-xml: Markup-Compatibility-aware XML with lossless preservationcoreMCORE-0012
CORE-007Engine skeleton: protocol v0, C ABI, WebAssembly worker hostcoreLCORE-0012
LAB-001Corpus infrastructure and public corpus v1coreMCORE-0012
LAB-003Layout JSON schema and PDF glyph extractioncoreMCORE-0012
SRV-002Spike: MLS encryption of CRDT updates, native and WebAssemblyserverLSRV-0012
CORE-009Lint exceptions that nobody wrote: check what the compiler silencedcoreMCORE-0012
CORE-003Spike: deterministic text pipeline across platformscoreLCORE-0023
LAB-002Word ground-truth harness on the reference machinecoreMLAB-001; owner provides reference machine3
LAB-004Comparison metrics and fidelity reportcoreMLAB-0033
DESK-002Spike: Qt Quick document canvas, input and accessibilitydesktopLDESK-001, CORE-0073
WEB-002Spike: worker canvas, input bridge and accessibility mirrorwebLWEB-001, CORE-0073
CORE-010Fuzz targets for the engine boundary and CRDT updatescoreMCORE-004, CORE-005, CORE-006, CORE-007; the follow-up that keeps fuzzing failures private3
CORE-011Retire the interim parsers: bayan-opc’s metadata on bayan-xml, the lab’s scanner on bayan-opc and bayan-xmlcoreMCORE-005, CORE-006, LAB-0013
CORE-012The outside world, part 2: the rest of std, the build environment, exemptions per itemcoreMCORE-0093
X-004CodeQL without write access: analysis and upload in separate jobsallSX-0023
CORE-008Font audit and bundled-library proposalcore + docsMCORE-003; LAB-002 for Microsoft font metrics4
LAB-005Probe generator and first Word measurement studycore + docsLLAB-002, LAB-003, CORE-0034
SRV-003Threat model v1: server, sync and encryptiondocsMSRV-002, CORE-0074
DOCS-002Contributor onboarding and development-environment guidesdocsSAll Wave-1 scaffolds4
DESK-003The desktop’s tests and sanitizers against the real engine boundarydesktopMDESK-002, CORE-0074
WEB-003Automated accessibility rules (axe) in the end-to-end testswebSWEB-0024
flowchart LR
  subgraph W1["Wave 1"]
    X001[X-001]; DOCS001[DOCS-001]; CORE001[CORE-001]; DESK001[DESK-001]; WEB001[WEB-001]; SRV001[SRV-001]
  end
  subgraph W2["Wave 2"]
    X002[X-002]; X003[X-003]; CORE002[CORE-002]; CORE004[CORE-004]; CORE005[CORE-005]; CORE006[CORE-006]; CORE007[CORE-007]; LAB001[LAB-001]; LAB003[LAB-003]; SRV002[SRV-002]; CORE009[CORE-009]
  end
  subgraph W3["Wave 3"]
    CORE003[CORE-003]; LAB002[LAB-002]; LAB004[LAB-004]; DESK002[DESK-002]; WEB002[WEB-002]; CORE010[CORE-010]; CORE011[CORE-011]; CORE012[CORE-012]; X004[X-004]
  end
  subgraph W4["Wave 4"]
    CORE008[CORE-008]; LAB005[LAB-005]; SRV003[SRV-003]; DOCS002[DOCS-002]; DESK003[DESK-003]; WEB003[WEB-003]
  end
  CORE001 --> CORE002 --> CORE003
  CORE001 --> CORE004
  CORE001 --> CORE005
  CORE001 --> CORE006
  CORE001 --> CORE007
  CORE001 --> LAB001 --> LAB002
  CORE001 --> LAB003 --> LAB004
  SRV001 --> SRV002 --> SRV003
  DESK001 --> DESK002
  WEB001 --> WEB002
  CORE007 --> DESK002
  CORE007 --> WEB002
  CORE007 --> SRV003
  CORE003 --> CORE008
  LAB002 --> CORE008
  LAB002 --> LAB005
  LAB003 --> LAB005
  CORE003 --> LAB005
  CORE001 --> X003
  SRV001 --> X003
  WEB001 --> X003
  DESK001 --> X003
  CORE001 --> CORE009 --> CORE012
  CORE004 --> CORE010
  CORE005 --> CORE010
  CORE006 --> CORE010
  CORE007 --> CORE010
  CORE005 --> CORE011
  CORE006 --> CORE011
  LAB001 --> CORE011
  X002 --> X004
  DESK002 --> DESK003
  CORE007 --> DESK003
  WEB002 --> WEB003
  GATE{{"Phase-0 gate review"}}
  CORE008 --> GATE
  LAB005 --> GATE
  SRV003 --> GATE
  DOCS002 --> GATE
  CORE004 --> GATE
  DESK002 --> GATE
  WEB002 --> GATE
  LAB004 --> GATE
  CORE010 --> GATE
  CORE011 --> GATE
  CORE012 --> GATE
  X004 --> GATE
  DESK003 --> GATE
  WEB003 --> GATE

Suggested pace: run three to five work packages at a time, so that you can review every pull request properly. Wave 1 alone is six independent packages; start with CORE-001, SRV-001 and WEB-001 if you want the fewest moving parts.

Owner-dependent items: LAB-002 (and therefore LAB-005 and part of CORE-008) needs the Word reference machine described in 09-owner-checklist.md.

Phase 1 — Faithful Viewer: draft work packages

Drafts are in workpackages/phase-1/. They are scoped and ordered but will be refined into Ready briefs at the Phase-0 gate, because the spikes may change them.

StreamDraft WPsFile
MODEL, FORMATS, TEXT, LAYOUT, OUTPUTCORE-101 … CORE-130: model v1; DOCX import (body; styles, theme, settings, fonts; numbering; tables, sections, headers/footers, notes, comments; drawings); lossless export; style cascade; numbering engine; font system; text pipeline; line breaking, justification, tabs and bidi; paragraph layout and pagination; headers, footers and page numbers; tables; floats and wrapping; notes; columns and sections; fields; comment and revision display; display list and rasterizer; images and DrawingML; EMF/WMF/EMF+; PDF export; viewing API; equations; charts and SmartArt; accessibility tree; performance; active-content blockingcore.md
LABLAB-101 … LAB-109: corpus growth and private corpus; Word studies (paragraphs, tables, floats, pagination); fidelity gate; determinism gate; Word re-open verification; public dashboardlab.md
DESKTOPDESK-101 … DESK-104: viewer application; printing path; accessibility bridge; packaging, signing and updatesdesktop.md
WEBWEB-101 … WEB-103: viewer application; accessibility mirror; PWA, offline and deploymentweb.md
SERVER, CRYPTOSRV-101 … SRV-105: identity; storage; MLS delivery and WebSocket relay; sync protocol v1 and reference client; operationsserver.md
DOCSDOCS-101 … DOCS-103: viewer guide and release notes; living architecture and API reference; Word Behavior Notes publicationdocs.md
RELEASEX-101, X-102: release engineering across repositories; nightly cross-repo integrationcross-cutting.md

Critical path for Phase 1: CORE-101 → CORE-102/103/105 → CORE-108 → CORE-110/111/112 → CORE-113 → CORE-115/116 → CORE-121 → CORE-125 → DESK-101 / WEB-101, with LAB studies feeding CORE-111 through CORE-118 throughout.

Phases 2–6: epics

Each epic becomes a set of work packages at the gate review before its phase.

Phase 2 — Writer

EpicStreamSummary
E2-EDIT-COREEDITSelection and caret model (including bidirectional and table selections), commands and transactions, undo/redo, typing and IME composition, delete and merge semantics measured against Word
E2-FORMATEDIT, MODELCharacter and paragraph formatting commands, styles with impact preview, lists, format painter, clear/reveal formatting
E2-TABLE-EDITEDITInsert, draw, structure editing, merge/split, autofit, sort, formulas, conversions
E2-OBJECTSEDIT, LAYOUTInsert, move, resize, wrap and anchor pictures, shapes, text boxes
E2-CLIPBOARDFORMATS, EDITOOXML, HTML, RTF and plain-text clipboard both ways; paste options
E2-REVIEWEDITTrack-changes authoring, accept/reject, comments authoring and threads
E2-FINDEDITFind and replace with formatting, special characters and Word wildcards
E2-SAVEFORMATS, EDITMinimal-diff export of edited content, atomic saves, autosave and recovery journal
E2-PROOFAUTOMATION-AISpelling, English grammar rules engine, hyphenation
E2-UI-MANIFESTUICommands, ribbon, menus, KeyTips, shortcuts, declarative dialogs, Fluent strings, icons
E2-DESK-UI, E2-WEB-UIDESKTOP, WEBClassic ribbon, panes, dialogs and Focus mode in each shell
E2-A11Y-EDITA11Y-I18NScreen-reader editing on desktop and web; keyboard-only operation
E2-I18NA11Y-I18NLocalization pipeline, mirrored right-to-left interface, IME test matrix, kashida, kinsoku and character grid
E2-FORMATSFORMATSRTF, HTML paste, Markdown, plain text; password-encrypted files
E2-TEMPLATESMODEL.dotx support, default template and styles
E2-PDFOUTPUTPDF/A-2b and tagged PDF
E2-LABLABEdit-fidelity harness: the same scripted edits in Word and BayanDocs
E2-SRVSERVER, CRYPTOServer groundwork for Phase 3: groups, devices, relay hardening

Phase 3 — Together

E3-ACCOUNTS (OIDC, passkeys, sessions) · E3-DEVICES-KEYS (identity keys, cross-signing, recovery kit, device approval and administrator client policy, COL-13) · E3-GROUPS-SHARING (MLS group per document, roles, E2EE link sharing, revocation) · E3-SYNC (client and server sync, encrypted snapshots, compaction) · E3-PRESENCE · E3-OFFLINE (queues, encrypted local cache, partition tests) · E3-HISTORY (named versions, restore, compare) · E3-COMMENTS-RT · E3-ADMIN (console, CLI, policies, quotas) · E3-DEPLOY (container, compose, docs, backups) · E3-AUDIT (external cryptography and server audit) · E3-SCALE (load tests, PERF-07).

Phase 4 — Press

E4-MATH-EDIT · E4-CHARTS-EDIT · E4-CITATIONS · E4-INDEX-TOA · E4-COMPARE · E4-MAILMERGE · E4-FORMS (content controls, legacy form fields, data binding) · E4-PROTECT-SIGN · E4-RIBBON-CUSTOM · E4-DOC-IMPORT · E4-ODT · E4-HTML-EXPORT · E4-PRINT (PDF/X, ICC CMYK, bleed, slug, marks) · E4-PDF-VALIDATED (PDF/A, PDF/UA in CI) · E4-A11Y-CHECKER · E4-OUTLINE-VIEW · E4-CJK-ADVANCED (vertical text, ruby, combined characters) · E4-TABLET · E4-ENTERPRISE (SCIM, compliance escrow) · E4-SCALEOUT · E4-PROTOCOL-CONFORMANCE (public conformance suite for third-party clients, COL-14) · E4-VBA-VIEWER.

Phase 5 — Insight

E5-AI-PROVIDER (runtime, model management, policy) · E5-AI-FEATURES (grammar, style, context suggestions) · E5-SPEECH (dictation, read aloud) · E5-AUTOMATION-API · E5-EXTENSIONS (WebAssembly components) · E5-VBA-TRANSLATE · E5-EPUB · E5-TYPO-PLUS (optimal line breaking and other opt-in typography) · E5-HISTORY-IN-DOCX (file-based merge).

Phase 6 — 1.0 Parity+

E6-FIDELITY-1.0 · E6-LONG-TAIL · E6-VBA-RUNTIME · E6-A11Y-CERT · E6-L10N · E6-PERF · E6-AUDIT · E6-TABLET-EDIT · E6-LTS (long-term support and release policy).