What the audit measured
16
Surfaces
Pages and dialogs captured as complete DOM dumps
1,627
Elements
1,115 interactive
177
Unique test ids
983 elements carry one
76
Shared test ids
Appear on more than one surface
228
Label gaps
Interactive elements with no derivable accessible name
57
API endpoints
11 functional domains
1,249
Network requests
611 functional after filtering
95
Captures
Curated gallery, every file verified present
Start here
Runbook
Seven phases from first save to Teams channel, with every data-testid, every constraint, and every capture that proves it.
Object model
A typed model of the agent, its knowledge, tools, skills, settings, publish channels, evaluations, and workflow nodes.
SDK
The @raybot/object-model package: types, JSON Schemas, semantic id parsing, and validators over the audit datasets.
Coral schema
Sixteen surfaces, 1,627 elements, 177 unique test ids, and the naming scheme that binds the UI layer to the API layer.
API surface
Fifty-seven observed endpoints across eleven functional domains and seven hosts, each with a confidence rating.
Screenshot gallery
All 95 curated captures, filterable by phase, with the crosswalk to the superseded originals.
Automation patterns
The Playwright MCP conventions that made the build reproducible, including the per-node capture loop and the stale-ref rule.
Session forensics
What the Copilot CLI session stores actually retain, the nine recovered terminal commands, and why the build transcript is gone.
Honesty notes
This documentation reports what the build actually produced, including the parts that did not work. The Teams channel is blocked by a tenant App Customization Policy consent that was never granted. The built-in evaluation scored zero percent against a six-pair eval set even though the same questions ground correctly in Preview with live citations. Both outcomes are documented in full rather than omitted.