Dock dock.build · v0.3
Product walkthrough

One artifact's life, end to end.

Six scenes following a single real artifact — a Q1 customer review — from an agent's first publish through team feedback to a revised v2 and the workspace it lives in. This is the product as the user experiences it, screen by screen.

SCENE 1the maker + their agent · in Claude Code

"Publish this so the team can mark it up"

No deploy, no bucket, no permissions ticket. The agent finishes the report, calls one tool, and hands back a URL that's already gated to the company. The skill knows to suggest publishing whenever it produces a reviewable artifact.

zero ceremonyThe skill picked the title, visibility default (org-gated, never public), and slug. One confirmation, no forms.
the URL is the deliverablePaste it in Slack, the standup doc, the PR description. It will still resolve when the chat that made it is long gone.
same from every toolCodex, Cursor, ChatGPT, plain CLI — identical flow via the same MCP server (Channels).
SCENE 2the reviewer · in the browser

The artifact page: a document that knows it's a draft

Jess clicks the link in Slack, signs in with company SSO once, and lands on the live page. The artifact renders exactly as built — interactive chart and all — with the comment rail and version strip framing it as a thing under review, not a static file.

faithful renderScripts and charts run live, sandboxed per artifact. What the agent built is what reviewers judge.
presence & live updatesNew comments and versions appear without refresh — one SSE stream, no websocket infra (Spec).
provenance is visibleAgent-authored versions are labeled. Trust comes from knowing who — or what — made each revision.
SCENE 3the reviewer · still in the browser

Commenting: select anything, say the thing

Highlight text or click an element, type, done. The anchor (a W3C TextQuoteSelector under the hood) records exactly what was selected and on which version — so feedback survives republishing, and the agent later knows precisely what "this" refers to.

anchored, not floatingEvery comment pins to a quote or element + the version it was made on (base_version). No "which paragraph did you mean?"
threads, resolve, reopenReplies nest under the first comment. Anyone — human or agent — can resolve; reopening preserves the trail.
survives revisionsOn v2, anchors re-match by exact then fuzzy quote. If the text is gone, the comment goes to an "orphaned" shelf pinned to v1 — never silently lost.
SCENE 4the agent · wherever it lives

The agent reads the room and ships v2

Next session — or triggered by a webhook — the agent pulls open threads as structured data, edits the source file, and republishes against the same short_id, resolving both threads in the same call. Nobody copy-pasted feedback into a prompt.

SCENE 5the team · the workspace

The workspace: where the org's artifacts accumulate

A month in, the workspace is the team's living shelf — searchable, filtered by author or agent, with an activity feed that makes review work visible. This is the surface that turns one-off shares into an institution.

SCENE 6the owner · sharing & access

Access: private by default, deliberate when public

The share popover is the whole governance model in one card. Defaults protect (org-gated, noindex); going broader is an explicit act with the consequences spelled out. Self-hosted instances show the identical card — backed by their IdP instead of ours.

per-artifact, not per-folderEach artifact carries its own ACL. No inherited-permissions archaeology when something leaks scope.
audit trailWho viewed what, when — visible to the owner, exportable for compliance (hosted Team tier and self-host alike).
agents can't widen accessAgent tokens can publish and read; changing visibility is a human-only scope by default. The loop never accidentally publishes to the world.

What the walkthrough proves

Every scene is one person doing one natural thing — no step required learning a tool. The agent published where it already works, the reviewer commented like it's a doc, the revision shipped without a meeting. That's the whole bet: make the artifact's life cycle as frictionless as the chat that created it.