diff --git a/docs/design/artboards/d215/index.html b/docs/design/artboards/d215/index.html
index 6a12f416d6..baedabeb38 100644
--- a/docs/design/artboards/d215/index.html
+++ b/docs/design/artboards/d215/index.html
@@ -749,6 +749,128 @@
.v2-run-trace-link a { font: 500 12.5px/1 var(--f-body); color: var(--se); text-decoration: none; }
.v2-run-trace-link span { margin-left: 12px; font-size: 12px; color: var(--mu); }
.app.m .v2-run-trace-link { min-height: 44px; }
+/* activity: the live v2-activity__* names (V2ActivityPage), redrawn in the connectors family: 1px
+ bordered cards, ink key for the deciding act, 32px bordered squares for secondary acts, mono meta.
+ Scoped to .v2-activity, the page's root. New names: __meta, __heading, __start--pending, __start-bar,
+ __queue-action--reply, __sections--scrolled. */
+.v2-activity { display: flex; flex-direction: column; min-width: 0; }
+.v2-activity button { all: unset; box-sizing: border-box; cursor: pointer; }
+.v2-activity .info { all: unset; cursor: help; position: relative; display: inline-grid; place-items: center; width: 18px; height: 18px; border-radius: 50%; color: var(--ph); }
+.v2-activity .v2-activity__header { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding-bottom: 20px; }
+.v2-activity .v2-activity__heading { display: flex; align-items: center; gap: 10px; min-width: 0; }
+.v2-activity .v2-activity__title { margin: 0; font: 800 30px/1.05 var(--f-display); letter-spacing: -0.03em; color: var(--ink); }
+.v2-activity .v2-activity__meta { font: 500 12px/16px var(--f-mono); color: var(--mu); white-space: nowrap; }
+.v2-activity .v2-activity__controls { display: flex; align-items: center; gap: 8px; flex: none; }
+.v2-activity .v2-activity__window, .v2-activity .v2-activity__scope { display: flex; gap: 2px; padding: 3px; border-radius: 9px; background: var(--sf); box-shadow: inset 0 0 0 1px var(--d); min-width: 0; }
+.v2-activity .v2-activity__window-button, .v2-activity .v2-activity__scope-button { display: inline-flex; align-items: center; height: 28px; padding: 0 10px; border-radius: 7px; font: 600 11.5px/1 var(--f-mono); color: var(--se); white-space: nowrap; }
+.v2-activity .v2-activity__window-button { font-family: var(--f-body); font-size: 12.5px; }
+.v2-activity .v2-activity__window-button--active, .v2-activity .v2-activity__scope-button--active { background: var(--t); color: var(--ink); }
+.v2-activity .v2-activity__compose, .v2-activity .v2-activity__start, .v2-activity .v2-activity__sections { width: 100%; max-width: 760px; margin-left: auto; margin-right: auto; }
+.v2-activity .v2-activity__compose { display: flex; flex-direction: column; gap: 8px; padding: 12px 14px; border-radius: 14px; background: var(--sf); box-shadow: inset 0 0 0 1px var(--d); }
+.v2-activity .v2-activity__compose-pod { display: inline-flex; align-items: center; gap: 8px; font-size: 12.5px; color: var(--mu); min-width: 0; }
+.v2-activity .v2-activity__compose-picker { min-width: 0; }
+.v2-activity .v2-activity__compose-picker-button { display: inline-flex; align-items: center; height: 30px; max-width: 240px; padding: 0 12px; border-radius: 8px; box-shadow: inset 0 0 0 1px var(--d); font: 600 13px/1 var(--f-body); color: var(--ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
+.v2-activity .v2-activity__compose-input { min-height: 44px; font-size: 14px; line-height: 20px; color: var(--ph); }
+.v2-activity .v2-activity__compose-foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
+.v2-activity .v2-activity__compose-hint { font: 500 11.5px/16px var(--f-mono); color: var(--mu); }
+.v2-activity .v2-activity__compose-send, .v2-activity .v2-activity__start-cta--current, .v2-activity .v2-activity__queue-actions > button:not([class]) { display: inline-flex; align-items: center; justify-content: center; height: 32px; padding: 0 13px; border-radius: 9px; font: 600 13px/1 var(--f-body); color: var(--on-fill); background: linear-gradient(180deg, var(--fill-a), var(--fill-b)); box-shadow: inset 0 0 0 1px var(--fill-edge); white-space: nowrap; }
+/* Get started: one bordered card; ink numbered marks; the current step's key is ink, the rest bordered */
+.v2-activity .v2-activity__start { margin-top: 16px; border-radius: 12px; background: var(--sf); box-shadow: inset 0 0 0 1px var(--d); overflow: hidden; }
+.v2-activity .v2-activity__start-head { display: flex; align-items: baseline; gap: 10px; padding: 10px 14px; border-bottom: 1px solid var(--d); }
+.v2-activity .v2-activity__start-head h2 { margin: 0; font: 600 14px/20px var(--f-body); letter-spacing: 0; color: var(--ink); }
+.v2-activity .v2-activity__start-kicker { font: 500 11px/16px var(--f-mono); color: var(--mu); }
+.v2-activity .v2-activity__start-row { display: grid; grid-template-columns: 28px minmax(0, 1fr) auto; gap: 12px; align-items: start; padding: 12px 14px; border-bottom: 1px solid var(--d); }
+.v2-activity .v2-activity__start-row:last-child { border-bottom: 0; }
+.v2-activity .v2-activity__start-num { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 8px; background: linear-gradient(180deg, var(--fill-a), var(--fill-b)); color: var(--on-fill); font: 500 11px/16px var(--f-mono); }
+.v2-activity .v2-activity__start-copy { min-width: 0; }
+.v2-activity .v2-activity__start-copy strong { display: block; font: 600 14px/20px var(--f-body); color: var(--ink); }
+.v2-activity .v2-activity__start-copy p { margin: 2px 0 0; font-size: 14px; line-height: 20px; color: var(--se); }
+.v2-activity .v2-activity__start-act > button:not([class]) { display: inline-flex; align-items: center; height: 32px; padding: 0 12px; border-radius: 9px; box-shadow: inset 0 0 0 1px var(--d); font: 600 13px/1 var(--f-body); color: var(--ink); white-space: nowrap; }
+/* Reserved state: same rows, same line boxes, bars in place of words — the card's height is fixed at first paint */
+.v2-activity .v2-activity__start--pending .v2-activity__start-num--pending { background: var(--t); }
+.v2-activity .v2-activity__start-bar { display: block; height: 20px; position: relative; }
+.v2-activity .v2-activity__start-bar::after { content: ""; position: absolute; left: 0; top: 5px; height: 10px; width: 92%; border-radius: 5px; background: var(--t); }
+.v2-activity .v2-activity__start-bar--title + .v2-activity__start-bar { margin-top: 2px; }
+.v2-activity .v2-activity__start-bar--title::after { width: 34%; background: var(--d); }
+.v2-activity .v2-activity__start-row .v2-activity__start-bar + .v2-activity__start-bar:last-child::after { width: 64%; }
+.v2-activity .v2-activity__start-bar--key { width: 132px; height: 32px; }
+.v2-activity .v2-activity__start-bar--key::after { top: 0; height: 32px; width: 100%; border-radius: 9px; background: var(--p); box-shadow: inset 0 0 0 1px var(--d); }
+.v2-activity--strip { padding: 0; height: 100%; background: var(--g); justify-content: center; }
+.v2-activity--strip .v2-activity__start { margin: 0 auto; width: calc(100% - 48px); }
+.v2-activity__strips { display: grid; gap: 18px; align-content: start; grid-column: span 2; min-width: 0; }
+@media (max-width: 640px) { .v2-activity__strips { grid-column: auto; } }
+/* sections */
+.v2-activity .v2-activity__sections { display: grid; gap: 30px; margin-top: 26px; }
+.v2-activity .v2-activity__section-heading { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; }
+.v2-activity .v2-activity__section h2 { margin: 0; font: 600 15px/20px var(--f-body); letter-spacing: 0; color: var(--ink); }
+.v2-activity .v2-activity__count { font: 500 11px/16px var(--f-mono); color: var(--se); }
+.v2-activity .v2-activity__empty--plain { padding: 16px 18px; border-radius: 10px; border: 1px dashed var(--b); }
+.v2-activity .v2-activity__empty--plain span { font-size: 13px; line-height: 18px; color: var(--se); }
+/* Needs you cards */
+.v2-activity .v2-activity__queue { display: grid; gap: 10px; }
+.v2-activity .v2-activity__queue-row { display: grid; grid-template-columns: 28px minmax(0, 1fr) auto; align-items: start; gap: 12px; padding: 11px 13px; border-radius: 10px; background: var(--sf); box-shadow: inset 0 0 0 1px var(--d); }
+.v2-activity .v2-activity__queue-mark { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 8px; }
+.v2-activity .v2-activity__queue-mark svg.i { width: 16px; height: 16px; stroke-width: 2; }
+.v2-activity .v2-activity__queue-mark--agent { background: linear-gradient(180deg, var(--c-fill-a), var(--c-fill-b)); color: var(--on-c); }
+.v2-activity .v2-activity__queue-mark--human { background: var(--t); color: var(--ink); }
+.v2-activity .v2-activity__queue-copy { min-width: 0; }
+.v2-activity .v2-activity__queue-kind { font: 500 11px/16px var(--f-mono); color: var(--se); }
+.v2-activity .v2-activity__queue-topline strong { display: block; font: 600 14px/20px var(--f-body); color: var(--ink); overflow-wrap: anywhere; }
+.v2-activity .v2-activity__queue-detail { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; margin-top: 3px; font-size: 14px; line-height: 20px; color: var(--se); cursor: pointer; }
+.v2-activity .v2-activity__queue-row--mention .v2-activity__queue-detail { color: var(--ink2); }
+.v2-activity .v2-activity__queue-actions { display: flex; align-items: center; justify-content: flex-end; gap: 6px; max-width: 320px; }
+.v2-activity .v2-activity__queue-action--bordered:not(.v2-activity__queue-action--icon), .v2-activity .v2-activity__option { display: inline-flex; align-items: center; justify-content: center; height: 32px; padding: 0 12px; border-radius: 9px; box-shadow: inset 0 0 0 1px var(--d); background: var(--sf); font: 600 13px/1 var(--f-body); color: var(--ink); white-space: nowrap; }
+.v2-activity .v2-activity__queue-action--icon { display: inline-grid; place-items: center; width: 32px; height: 32px; border-radius: 9px; background: var(--sf); box-shadow: inset 0 0 0 1px var(--d); color: var(--ink); flex: none; }
+.v2-activity .v2-activity__queue-action--icon svg.i { width: 16px; height: 16px; stroke-width: 2; }
+.v2-activity .v2-activity__queue-action--secondary.v2-activity__queue-action--icon { background: var(--t); }
+/* decision: options are content, one line under the question, first option cobalt */
+.v2-activity .v2-activity__queue-row--decision { row-gap: 12px; }
+.v2-activity .v2-activity__queue-row--decision .v2-activity__queue-actions { grid-column: 1 / -1; max-width: none; justify-content: flex-start; align-items: flex-start; flex-wrap: wrap; gap: 8px; }
+.v2-activity .v2-activity__option-choice { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
+.v2-activity .v2-activity__option--primary { color: var(--on-c); background: linear-gradient(180deg, var(--c-fill-a), var(--c-fill-b)); box-shadow: inset 0 0 0 1px var(--c-fill-b); }
+.v2-activity .v2-activity__option-recommended { font: 500 11px/14px var(--f-mono); color: var(--mu); padding-left: 2px; }
+.v2-activity .v2-activity__decision-footer { display: contents; }
+.v2-activity .v2-activity__option--other { box-shadow: none; background: transparent; color: var(--c-text); padding: 0 6px; }
+/* Moved forward */
+.v2-activity .v2-activity__moved-list { display: grid; gap: 10px; }
+.v2-activity .v2-activity__moved-group { border-radius: 10px; background: var(--sf); box-shadow: inset 0 0 0 1px var(--d); overflow: hidden; }
+.v2-activity .v2-activity__moved-head { display: flex; justify-content: space-between; padding: 9px 12px; border-bottom: 1px solid var(--d); font: 500 11px/16px var(--f-mono); color: var(--se); }
+.v2-activity .v2-activity__moved-line { display: grid; grid-template-columns: minmax(100px, auto) minmax(0, 1fr) auto; gap: 8px; padding: 8px 12px; font-size: 13px; line-height: 18px; color: var(--ink2); }
+.v2-activity .v2-activity__moved-line + .v2-activity__moved-line { border-top: 1px solid var(--d); }
+.v2-activity .v2-activity__moved-line strong { font-weight: 600; color: var(--ink); }
+.v2-activity .v2-activity__moved-line span { min-width: 0; overflow-wrap: anywhere; }
+.v2-activity .v2-activity__moved-line time { font: 500 11px/18px var(--f-mono); color: var(--mu); white-space: nowrap; }
+/* 390: head is the top bar; filters stack; every act 44px; a card's acts are ONE row */
+.app.m .mtop.v2-activity__header { padding: 0 12px 0 16px; gap: 8px; }
+.app.m .mtop.v2-activity__header h1 { font-size: 22px; }
+.app.m .mtop.v2-activity__header .v2-activity__meta { margin-left: auto; font-size: 11.5px; }
+.app.m .v2-activity { gap: 0; }
+.app.m .v2-activity .v2-activity__controls { flex-direction: column; align-items: stretch; gap: 8px; margin-bottom: 12px; }
+.app.m .v2-activity .v2-activity__window-button { flex: 1 1 0; justify-content: center; height: 36px; }
+.app.m .v2-activity .v2-activity__scope-button { height: 36px; }
+.app.m .v2-activity .v2-activity__compose-pod { flex: 1; }
+.app.m .v2-activity .v2-activity__compose-picker { flex: 1; }
+.app.m .v2-activity .v2-activity__compose-picker-button { display: flex; height: 44px; max-width: none; }
+.app.m .v2-activity .v2-activity__compose-input { min-height: 40px; }
+.app.m .v2-activity .v2-activity__compose-send { height: 44px; padding: 0 20px; font-size: 14px; }
+.app.m .v2-activity .v2-activity__start { margin-top: 12px; }
+.app.m .v2-activity .v2-activity__start-head { flex-direction: column; align-items: flex-start; gap: 2px; }
+.app.m .v2-activity .v2-activity__start-row { grid-template-columns: 28px minmax(0, 1fr); }
+.app.m .v2-activity .v2-activity__start-act { grid-column: 1 / -1; }
+.app.m .v2-activity .v2-activity__start-act > button { width: 100%; height: 44px; justify-content: center; font-size: 14px; }
+.app.m .v2-activity .v2-activity__sections { margin-top: 20px; gap: 22px; }
+.app.m .v2-activity .v2-activity__sections--scrolled { margin-top: 2px; }
+.app.m .v2-activity .v2-activity__queue-row { grid-template-columns: 28px minmax(0, 1fr); }
+.app.m .v2-activity .v2-activity__queue-actions { grid-column: 1 / -1; max-width: none; flex-wrap: nowrap; gap: 8px; }
+.app.m .v2-activity .v2-activity__queue-actions > button:not(.v2-activity__queue-action--icon) { flex: 1 1 0; height: 44px; font-size: 14px; }
+.app.m .v2-activity .v2-activity__queue-action--icon { width: 44px; height: 44px; }
+.app.m .v2-activity .v2-activity__queue-row--decision .v2-activity__queue-actions { flex-wrap: wrap; }
+.app.m .v2-activity .v2-activity__queue-row--decision .v2-activity__option-choice { flex: 1 1 100%; }
+.app.m .v2-activity .v2-activity__queue-row--decision .v2-activity__option-choice .v2-activity__option { height: 44px; font-size: 14px; }
+.app.m .v2-activity .v2-activity__queue-row--decision .v2-activity__option--other { flex: 1 1 0; height: 44px; justify-content: flex-start; }
+.app.m .v2-activity .v2-activity__moved-line { grid-template-columns: minmax(0, 1fr) auto; }
+.app.m .v2-activity .v2-activity__moved-line span { grid-column: 1 / -1; grid-row: 2; }
+/* activity:end */
/* first run: the live v2-first-run__* and v2-chat__start* names. The dialog sits inside .app, over the pod. */
.v2-chat__starts { display: grid; grid-template-columns: minmax(0, max-content); gap: 6px; margin: 2px 0 6px 48px; }
.v2-chat__start { all: unset; box-sizing: border-box; cursor: pointer; display: inline-flex; align-items: center; min-height: 32px; padding: 6px 12px; border-radius: 10px; font: 500 13px/1.35 var(--f-body); color: var(--ink); background: linear-gradient(180deg, var(--key-a), var(--key-b)); box-shadow: inset 0 0 0 1px var(--key-edge), var(--sh-key); }
@@ -896,6 +1018,10 @@
Say hello in the pod where it lives. If it doesn't answer, @mention it.
Slack or Telegram — the agent answers where your team already talks.
Say hello in the pod where it lives. If it doesn't answer, @mention it.
Slack or Telegram — the agent answers where your team already talks.
| Day zero · Today | Drawn. One pod, only Scout: 2 steps, current key Open My Workspace, both sections empty. |
| Step copy | "Say something to it" no longer claims an @mention is needed: Scout answers a plain hello in My Workspace (walk 11-02). The line now reads "Say hello in the pod where it lives. If it doesn't answer, @mention it." |
| Day zero · 7 days | Drawn at 390. Moved forward reads "Nothing moved in the last 7 days." |
| Get started · checking | Drawn beside the loaded card at the same height. Reserved only when hasEverHadAttention === false, the queue is 0 and the scope is All pods. |
| Busy | Drawn. One decision (Recommended under the first option), one approval, two mentions, two pod groups. |
| No agent yet (step 1) | Not drawn. The composer stays hidden and Hire an agent is the current key; same card, three rows. |
| Reply open, ruled, Other… | Not drawn. The editor takes the full card width, as prod does. |
| Loading, error, count unavailable | Not drawn. They keep prod's spinner, __error and Retry. |
Say hello in the pod where it lives. If it doesn't answer, @mention it.
Slack or Telegram — the agent answers where your team already talks.
Say hello in the pod where it lives. If it doesn't answer, @mention it.
Slack or Telegram — the agent answers where your team already talks.