How the Canvas Artifact Viewer earned trust
Epic 16, the Artifact Viewer, brings a VS-Code-style tabbed file browser directly into the Canvas workspace — a unified viewer that "lives on the Canvas workspace... like having VS Code's tab system directly in Canvas."
The question isn't whether it can be built. It's whether the build can be trusted.
The Canvas Artifact Viewer was built from a written spec via Amplifier's autonomous workflow. The repo — "Workspaces x Canvas" — is real, the epic is real, the owner is named.
A working feature exists. Now: how big is what the workflow generated?
The V3 handoff review lists four core files: TabsPane, ProjectPicker, WorkspaceFileBrowser, and the project MCP server. That's real generated code at real scale.
But scale is not the same as correctness. Volume alone earns no trust.
Volume is not the same as correctness. A feature that looks finished — that compiles and renders — is only half done. The other half is proving it actually works.
So the workflow needs an answer: how does the build carry proof forward?
A written HANDOFF.md records exactly what was checked and whether it passed. It's the artifact that carries verification forward instead of leaving "does it work?" as an open question.
And for V3, that handoff had something to report.
Smoke tests, end-to-end tests, and an API-level security check all passed, and four bug fixes were confirmed. This is the build passing through the verification loop instead of stopping at "it compiles."
That passing loop is what turns a diff into something shippable.
"Epic 16 Artifact Viewer V3 with verified bug fixes" merged on 2026-01-31. Epic 16 went into main via PR #329 (2026-02-03) and was later refactored into a plugin. The verified half is what made it shippable.
So what's the lesson to carry out of the room?
Ship the handoff, not just the diff. An autonomous workflow can generate a working feature — but the verification loop is what converts generated code into trusted, merged code. The missing half is non-optional.
Feature status: Shipped & iteratedData as of: February 13, 2026 (independently re-checked in a fresh session via live gh/git/grep against microsoft/workspaces2).
Feature status: Shipped and iterated — V3 merged (PR #297), merged to main (PR #329), refactored into a plugin (PR #338).
Research performed:
gh api repos/microsoft/workspaces2/contents/docs/02-requirements/epics/16-artifact-viewer.md (Owner: Chris Park; 444 lines)gh repo view microsoft/workspaces2 --json description,createdAt,pushedAt ("Workspaces x Canvas", created 2025-11-14)gh pr view 297 --repo microsoft/workspaces2 + gh api .../HANDOFF.md (merged 2026-01-31 by cpark4x; VERIFIED)gh api .../docs/ai_working/artifact_viewer/HANDOFF.md (TabsPane 775, ProjectPicker 238, WorkspaceFileBrowser 312, projectMcpServer 188 = 1,513)gh api repos/microsoft/workspaces2/commits/bb1b277b62 (PR #329, 2026-02-03) and gh pr view 338 (plugin refactor, 2026-02-06)gh api users/cpark4x (name "Chris Park")Gaps: The "built blind at 1,538 lines," a 1,021-line CANVAS-ARTIFACT-VIEWER-SPEC.md, a 528-line prompt with 19 features, a 35-deep recursion loop, and a forgotten SESSION-HANDOFF.md could NOT be traced to any surviving file or commit and are treated as unverified. The nearest verifiable analogue is the V3 component set summing to 1,513 lines, which was VERIFIED rather than unverified. The named repo bkrabach/claude-trace-viewer is an unrelated claude-trace log viewer and contains no Artifact Viewer.
Primary contributor: Chris Park (cpark4x) — Epic 16 owner; authored/merged PR #297 and PR #329.