Merge master to refresh trusted PR CI

Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
DottaandPaperclip committed 2026-10-12 17:36:04 -05:00
commit b5046ec022
258 files changed
+2356 -1509

No files matched your search

@@ -163,7 +163,7 @@ Touch:
resolved, stale, disabled/submitting, and validation-error states.
- `ui/src/fixtures/issueThreadInteractionFixtures.ts` — seed at least one
pending and one resolved fixture for the new kind.
- `ui/storybook/stories/issue-thread-interactions.stories.tsx` — Storybook entries
- `ui/storybook/stories/questions-and-approvals/issue-thread-interactions.stories.tsx` — Storybook entries
for the key states.
- `ui/src/pages/IssueDetail.tsx` — extend the per-kind branches the card is
rendered from (callback wiring, response submission).
@@ -52,6 +52,12 @@ feature coverage.
Preserve story exports and IDs. Before moves/title changes, capture the existing
built `index.json`; use explicit meta IDs when needed and compare IDs afterward.
Place stories under `ui/storybook/stories/<primary-feature-area>/`. Use the feature
map's section and feature names as their sidebar prefix; keep useful scenario
groupings beneath that prefix. Put shared fixture modules in `ui/storybook/support/`.
Keep the catalog's `stableId` equal to the explicit CSF meta ID even when the title
changes. Unmapped component examples belong under Foundations; the catalog guide
belongs under Overview. The checker verifies these conventions.
Keep review links and snapshot names working. Prefer classification/index fixes
before bulk directory moves. Record every directly rendered production subject in
the catalog's review sources, including relative imports and primitives when they
+5
View File
@@ -124,6 +124,11 @@ API responses and MCP transports keep their existing compression behavior.
The board UI Storybook keeps stories and Storybook config under `ui/storybook/` so component review files stay out of the app source routes.
Stories are grouped in `ui/storybook/stories/<feature-area>/` and the sidebar follows
the feature map's sections and feature names. Shared fixtures live in
`ui/storybook/support/`. Keep each suite's explicit meta `id` and catalog `stableId`
when changing titles or locations so existing review links remain valid.
Start from the downstream [Storybook feature index](../maps/storybook-map/INDEX.md)
to find existing stories by capability. Its [contract](../maps/storybook-map/README.md)
separates production subjects, prototype implementations, simulated data, and
+1 -1
View File
@@ -77,4 +77,4 @@ Task setup defaults to personal identity when supported and the requesting agent
Service and native-authority tests cover discovery, current identity, company boundaries, cross-run deduplication, additive grants and installs, permission denial, resolution atomicity, restart delivery and stale assignment. `tests/e2e/in-feed-native/playwright.config.ts` starts source `test-drive` instances with fresh data directories and a deterministic fake Codex provider plus MCP server. It exercises the real native runner and gateway; it is fixture proof, not live Notion or GitHub proof. Run with `pnpm exec playwright test -c tests/e2e/in-feed-native/playwright.config.ts`.
Offline Storybook examples live in `ui/storybook/stories/in-feed-connections.stories.tsx`. Build with `pnpm --filter @paperclipai/ui build-storybook`, then run `pnpm exec playwright test -c tests/storybook-visual/in-feed-connections.config.ts`. The suite checks every independently addressable story in both themes, catches play-function failures, and saves screenshots. Live provider acceptance additionally requires a model credential and a test workspace/account; do not describe fixture results or local-trusted testing as authenticated/cloud acceptance.
Offline Storybook examples live in `ui/storybook/stories/connection-setup/in-feed-connections.stories.tsx`. Build with `pnpm --filter @paperclipai/ui build-storybook`, then run `pnpm exec playwright test -c tests/storybook-visual/in-feed-connections.config.ts`. The suite checks every independently addressable story in both themes, catches play-function failures, and saves screenshots. Live provider acceptance additionally requires a model credential and a test workspace/account; do not describe fixture results or local-trusted testing as authenticated/cloud acceptance.
+324 -324
View File
@@ -14,14 +14,14 @@ Status describes product alignment; implementation describes the rendered subjec
| Story suite | Capabilities | Product / implementation / data | Stories / play functions | Review note |
| --- | --- | --- | --- | --- |
| [Private tasks/00 Review guide](../../ui/storybook/stories/private-tasks/00-review-guide.stories.tsx) | `access/resources`, `tasks/properties` | unreviewed / guide / static | 1 / 0 | Review guide retained; explanatory content does not establish runtime or production coverage. |
| [Private tasks/01 Creation](../../ui/storybook/stories/private-tasks/01-creation.stories.tsx) | `access/resources`, `tasks/properties` | unreviewed / production / fixtures | 22 / 14 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Private tasks/02 Sharing](../../ui/storybook/stories/private-tasks/02-sharing.stories.tsx) | `access/resources`, `tasks/properties` | unreviewed / production / fixtures | 26 / 10 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Private tasks/03 Task actions](../../ui/storybook/stories/private-tasks/03-task-actions.stories.tsx) | `access/resources`, `tasks/properties` | unreviewed / production / fixtures | 11 / 7 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Private tasks/04 References and blockers](../../ui/storybook/stories/private-tasks/04-references-and-blockers.stories.tsx) | `access/resources`, `tasks/properties` | unreviewed / production / fixtures | 12 / 5 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Private tasks/05 Projects](../../ui/storybook/stories/private-tasks/05-projects.stories.tsx) | `access/resources`, `tasks/properties`, `projects/lifecycle` | unreviewed / production / fixtures | 19 / 12 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Private tasks/06 Full product pages](../../ui/storybook/stories/private-tasks/06-full-product-pages.stories.tsx) | `access/resources`, `tasks/properties`, `projects/lifecycle` | unreviewed / production / fixtures | 21 / 12 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Private tasks/07 User stories](../../ui/storybook/stories/private-tasks/07-user-stories.stories.tsx) | `access/resources`, `tasks/properties` | unreviewed / production / fixtures | 13 / 7 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Getting started and access/Login, invitations, and access/Private tasks/00 Review guide](../../ui/storybook/stories/access/private-tasks/00-review-guide.stories.tsx) | `access/resources`, `tasks/properties` | unreviewed / guide / static | 1 / 0 | Review guide retained; explanatory content does not establish runtime or production coverage. |
| [Getting started and access/Login, invitations, and access/Private tasks/01 Creation](../../ui/storybook/stories/access/private-tasks/01-creation.stories.tsx) | `access/resources`, `tasks/properties` | unreviewed / production / fixtures | 22 / 14 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Getting started and access/Login, invitations, and access/Private tasks/02 Sharing](../../ui/storybook/stories/access/private-tasks/02-sharing.stories.tsx) | `access/resources`, `tasks/properties` | unreviewed / production / fixtures | 26 / 10 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Getting started and access/Login, invitations, and access/Private tasks/03 Task actions](../../ui/storybook/stories/access/private-tasks/03-task-actions.stories.tsx) | `access/resources`, `tasks/properties` | unreviewed / production / fixtures | 11 / 7 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Getting started and access/Login, invitations, and access/Private tasks/04 References and blockers](../../ui/storybook/stories/access/private-tasks/04-references-and-blockers.stories.tsx) | `access/resources`, `tasks/properties` | unreviewed / production / fixtures | 12 / 5 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Getting started and access/Login, invitations, and access/Private tasks/05 Projects](../../ui/storybook/stories/access/private-tasks/05-projects.stories.tsx) | `access/resources`, `tasks/properties`, `projects/lifecycle` | unreviewed / production / fixtures | 19 / 12 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Getting started and access/Login, invitations, and access/Private tasks/06 Full product pages](../../ui/storybook/stories/access/private-tasks/06-full-product-pages.stories.tsx) | `access/resources`, `tasks/properties`, `projects/lifecycle` | unreviewed / production / fixtures | 21 / 12 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Getting started and access/Login, invitations, and access/Private tasks/07 User stories](../../ui/storybook/stories/access/private-tasks/07-user-stories.stories.tsx) | `access/resources`, `tasks/properties` | unreviewed / production / fixtures | 13 / 7 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
## activity
@@ -29,10 +29,10 @@ Status describes product alignment; implementation describes the rendered subjec
| Story suite | Capabilities | Product / implementation / data | Stories / play functions | Review note |
| --- | --- | --- | --- | --- |
| [Tools/Activity (audit feed)](../../ui/storybook/stories/activity-feed.stories.tsx) | `activity/activity`, `gateways-profiles/activity` | unreviewed / production / fixtures | 4 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Apps/App detail · Activity (lifecycle)](../../ui/storybook/stories/app-activity-lifecycle.stories.tsx) | `activity/activity`, `gateways-profiles/activity` | unreviewed / production / fixtures | 4 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Product/Data Visualization & Misc](../../ui/storybook/stories/data-viz-misc.stories.tsx) | `activity/overview` | unreviewed / production / fixtures | 21 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Pages/Work Timeline](../../ui/storybook/stories/work-timeline.stories.tsx) | `activity/timeline` | unreviewed / production / fixtures | 4 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Oversight and operation/Dashboards and audit trails/Tools/Activity (audit feed)](../../ui/storybook/stories/activity/activity-feed.stories.tsx) | `activity/activity`, `gateways-profiles/activity` | unreviewed / production / fixtures | 4 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Oversight and operation/Dashboards and audit trails/Apps/App detail · Activity (lifecycle)](../../ui/storybook/stories/activity/app-activity-lifecycle.stories.tsx) | `activity/activity`, `gateways-profiles/activity` | unreviewed / production / fixtures | 4 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Oversight and operation/Dashboards and audit trails/Product/Data Visualization & Misc](../../ui/storybook/stories/activity/data-viz-misc.stories.tsx) | `activity/overview` | unreviewed / production / fixtures | 21 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Oversight and operation/Dashboards and audit trails/Pages/Work Timeline](../../ui/storybook/stories/activity/work-timeline.stories.tsx) | `activity/timeline` | unreviewed / production / fixtures | 4 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
## agent-chat
@@ -40,10 +40,10 @@ Status describes product alignment; implementation describes the rendered subjec
| Story suite | Capabilities | Product / implementation / data | Stories / play functions | Review note |
| --- | --- | --- | --- | --- |
| [Design explorations/Agent chat sidebar/Pages](../../ui/storybook/stories/agent-chat-sidebar.stories.tsx) | `agent-chat/discovery`, `agent-chat/history` | current / production / fixtures | 9 / 1 | Wrapper mounts production Layout and AgentChat; conversation selection and sends use in-memory routes. Directory name is not prototype evidence. |
| [Design explorations/Agent chat](../../ui/storybook/stories/agent-chat.stories.tsx) | `agent-chat/discovery`, `agent-chat/history` | mixed / mixed / fixtures | 17 / 0 | Production conversation/task routes with a local ChatEntryLanding. Default-agent behavior and fallback API responses remain outside current-product parity. |
| [Design explorations/Agent chat sidebar/Components](../../ui/storybook/stories/agent-conversation-sidebar.stories.tsx) | `agent-chat/discovery`, `agent-chat/history` | current / production / fixtures | 10 / 1 | Support module re-exports production AgentConversationSidebar; search/selection use fixture callbacks. |
| [Design explorations/Chat entry](../../ui/storybook/stories/chat-entry.stories.tsx) | `agent-chat/discovery`, `agent-chat/history` | historical / mixed / fixtures | 9 / 3 | Retained first-created-agent sidebar/landing design predates personal primary-agent selection. Shared production conversation components remain useful. |
| [Tasks and conversations/Agent conversations and project handoff/Design explorations/Agent chat sidebar/Pages](../../ui/storybook/stories/agent-chat/agent-chat-sidebar.stories.tsx) | `agent-chat/discovery`, `agent-chat/history` | current / production / fixtures | 9 / 1 | Wrapper mounts production Layout and AgentChat; conversation selection and sends use in-memory routes. Directory name is not prototype evidence. |
| [Tasks and conversations/Agent conversations and project handoff/Design explorations/Agent chat](../../ui/storybook/stories/agent-chat/agent-chat.stories.tsx) | `agent-chat/discovery`, `agent-chat/history` | mixed / mixed / fixtures | 17 / 0 | Production conversation/task routes with a local ChatEntryLanding. Default-agent behavior and fallback API responses remain outside current-product parity. |
| [Tasks and conversations/Agent conversations and project handoff/Design explorations/Agent chat sidebar/Components](../../ui/storybook/stories/agent-chat/agent-conversation-sidebar.stories.tsx) | `agent-chat/discovery`, `agent-chat/history` | current / production / fixtures | 10 / 1 | Support module re-exports production AgentConversationSidebar; search/selection use fixture callbacks. |
| [Tasks and conversations/Agent conversations and project handoff/Design explorations/Chat entry](../../ui/storybook/stories/agent-chat/chat-entry.stories.tsx) | `agent-chat/discovery`, `agent-chat/history` | historical / mixed / fixtures | 9 / 3 | Retained first-created-agent sidebar/landing design predates personal primary-agent selection. Shared production conversation components remain useful. |
## agents
@@ -51,25 +51,25 @@ Status describes product alignment; implementation describes the rendered subjec
| Story suite | Capabilities | Product / implementation / data | Stories / play functions | Review note |
| --- | --- | --- | --- | --- |
| [Pages/Agent Detail](../../ui/storybook/stories/agent-detail.stories.tsx) | `agents/lifecycle`, `agents/instructions` | unreviewed / production / fixtures | 1 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Agents/Persistent files](../../ui/storybook/stories/agent-files.stories.tsx) | `agents/instructions` | unreviewed / production / fixtures | 9 / 7 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Product/Agent Management](../../ui/storybook/stories/agent-management.stories.tsx) | `agents/lifecycle`, `agents/instructions` | unreviewed / production / fixtures | 3 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Agents/Personas/Full pages](../../ui/storybook/stories/agent-persona-pages.stories.tsx) | `agents/organization`, `navigation-preferences/profile` | unreviewed / production / fixtures | 6 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Agents/Personas](../../ui/storybook/stories/agent-personas.stories.tsx) | `agents/organization`, `navigation-preferences/profile` | unreviewed / production / fixtures | 19 / 1 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Agents/Configuration refresh](../../ui/storybook/stories/agent-settings-redesign.stories.tsx) | `agents/lifecycle`, `agents/instructions` | mixed / mixed / fixtures | 15 / 0 | Production configuration panels in a locally composed settings shell; full AgentDetail route parity remains unreviewed. |
| [Product/Built-in Agents](../../ui/storybook/stories/built-in-agents.stories.tsx) | `agents/built-in` | unreviewed / production / fixtures | 4 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Onboarding/External agent invitation/Components](../../ui/storybook/stories/external-agent-invite/components.stories.tsx) | `agents/hire`, `access/invitations` | unreviewed / production / fixtures | 8 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Onboarding/External agent invitation/Journeys](../../ui/storybook/stories/external-agent-invite/journeys.stories.tsx) | `agents/hire`, `access/invitations` | unreviewed / production / fixtures | 20 / 4 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Onboarding/New agent](../../ui/storybook/stories/new-agent-onboarding.stories.tsx) | `agents/hire` | historical / prototype / fixtures | 37 / 1 | Retained local wizard predates production ui/src/components/new-agent flow; shared fields do not make the wizard current. |
| [Primary Agent/00 Review guide](../../ui/storybook/stories/primary-agent/00-review-guide.stories.tsx) | `agents/organization`, `tasks/create`, `agent-chat/discovery` | unreviewed / guide / static | 1 / 0 | Review guide retained; explanatory content does not establish runtime or production coverage. |
| [Primary Agent/01 Components](../../ui/storybook/stories/primary-agent/01-components.stories.tsx) | `agents/organization`, `tasks/create`, `agent-chat/discovery` | unreviewed / production / fixtures | 5 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Primary Agent/02 Sidebar](../../ui/storybook/stories/primary-agent/02-sidebar.stories.tsx) | `agents/organization`, `tasks/create`, `agent-chat/discovery` | unreviewed / production / fixtures | 12 / 1 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Primary Agent/03 Agents](../../ui/storybook/stories/primary-agent/03-agents.stories.tsx) | `agents/organization`, `tasks/create`, `agent-chat/discovery` | unreviewed / production / fixtures | 14 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Primary Agent/04 New task](../../ui/storybook/stories/primary-agent/04-new-task.stories.tsx) | `agents/organization`, `tasks/create`, `agent-chat/discovery` | unreviewed / production / fixtures | 9 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Primary Agent/05 Chat](../../ui/storybook/stories/primary-agent/05-chat.stories.tsx) | `agents/organization`, `tasks/create`, `agent-chat/discovery` | unreviewed / production / fixtures | 8 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Primary Agent/06 Journeys](../../ui/storybook/stories/primary-agent/06-journeys.stories.tsx) | `agents/organization`, `tasks/create`, `agent-chat/discovery` | unreviewed / production / fixtures | 11 / 11 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Primary Agent/07 Confirmation](../../ui/storybook/stories/primary-agent/07-confirmation.stories.tsx) | `agents/organization`, `tasks/create`, `agent-chat/discovery` | unreviewed / production / fixtures | 4 / 1 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Summaries/SummarySlotCard](../../ui/storybook/stories/summary-slot-card.stories.tsx) | `agents/built-in` | unreviewed / production / fixtures | 15 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Agents and reusable capabilities/Hiring, configuration, and organization/Pages/Agent Detail](../../ui/storybook/stories/agents/agent-detail.stories.tsx) | `agents/lifecycle`, `agents/instructions` | unreviewed / production / fixtures | 1 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Agents and reusable capabilities/Hiring, configuration, and organization/Agents/Persistent files](../../ui/storybook/stories/agents/agent-files.stories.tsx) | `agents/instructions` | unreviewed / production / fixtures | 9 / 7 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Agents and reusable capabilities/Hiring, configuration, and organization/Product/Agent Management](../../ui/storybook/stories/agents/agent-management.stories.tsx) | `agents/lifecycle`, `agents/instructions` | unreviewed / production / fixtures | 3 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Agents and reusable capabilities/Hiring, configuration, and organization/Agents/Personas/Full pages](../../ui/storybook/stories/agents/agent-persona-pages.stories.tsx) | `agents/organization`, `navigation-preferences/profile` | unreviewed / production / fixtures | 6 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Agents and reusable capabilities/Hiring, configuration, and organization/Agents/Personas](../../ui/storybook/stories/agents/agent-personas.stories.tsx) | `agents/organization`, `navigation-preferences/profile` | unreviewed / production / fixtures | 19 / 1 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Agents and reusable capabilities/Hiring, configuration, and organization/Agents/Configuration refresh](../../ui/storybook/stories/agents/agent-settings-redesign.stories.tsx) | `agents/lifecycle`, `agents/instructions` | mixed / mixed / fixtures | 15 / 0 | Production configuration panels in a locally composed settings shell; full AgentDetail route parity remains unreviewed. |
| [Agents and reusable capabilities/Hiring, configuration, and organization/Product/Built-in Agents](../../ui/storybook/stories/agents/built-in-agents.stories.tsx) | `agents/built-in` | unreviewed / production / fixtures | 4 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Agents and reusable capabilities/Hiring, configuration, and organization/Onboarding/External agent invitation/Components](../../ui/storybook/stories/agents/external-agent-invite/components.stories.tsx) | `agents/hire`, `access/invitations` | unreviewed / production / fixtures | 8 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Agents and reusable capabilities/Hiring, configuration, and organization/Onboarding/External agent invitation/Journeys](../../ui/storybook/stories/agents/external-agent-invite/journeys.stories.tsx) | `agents/hire`, `access/invitations` | unreviewed / production / fixtures | 20 / 4 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Agents and reusable capabilities/Hiring, configuration, and organization/Onboarding/New agent](../../ui/storybook/stories/agents/new-agent-onboarding.stories.tsx) | `agents/hire` | historical / prototype / fixtures | 37 / 1 | Retained local wizard predates production ui/src/components/new-agent flow; shared fields do not make the wizard current. |
| [Agents and reusable capabilities/Hiring, configuration, and organization/Primary Agent/00 Review guide](../../ui/storybook/stories/agents/primary-agent/00-review-guide.stories.tsx) | `agents/organization`, `tasks/create`, `agent-chat/discovery` | unreviewed / guide / static | 1 / 0 | Review guide retained; explanatory content does not establish runtime or production coverage. |
| [Agents and reusable capabilities/Hiring, configuration, and organization/Primary Agent/01 Components](../../ui/storybook/stories/agents/primary-agent/01-components.stories.tsx) | `agents/organization`, `tasks/create`, `agent-chat/discovery` | unreviewed / production / fixtures | 5 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Agents and reusable capabilities/Hiring, configuration, and organization/Primary Agent/02 Sidebar](../../ui/storybook/stories/agents/primary-agent/02-sidebar.stories.tsx) | `agents/organization`, `tasks/create`, `agent-chat/discovery` | unreviewed / production / fixtures | 12 / 1 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Agents and reusable capabilities/Hiring, configuration, and organization/Primary Agent/03 Agents](../../ui/storybook/stories/agents/primary-agent/03-agents.stories.tsx) | `agents/organization`, `tasks/create`, `agent-chat/discovery` | unreviewed / production / fixtures | 14 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Agents and reusable capabilities/Hiring, configuration, and organization/Primary Agent/04 New task](../../ui/storybook/stories/agents/primary-agent/04-new-task.stories.tsx) | `agents/organization`, `tasks/create`, `agent-chat/discovery` | unreviewed / production / fixtures | 9 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Agents and reusable capabilities/Hiring, configuration, and organization/Primary Agent/05 Chat](../../ui/storybook/stories/agents/primary-agent/05-chat.stories.tsx) | `agents/organization`, `tasks/create`, `agent-chat/discovery` | unreviewed / production / fixtures | 8 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Agents and reusable capabilities/Hiring, configuration, and organization/Primary Agent/06 Journeys](../../ui/storybook/stories/agents/primary-agent/06-journeys.stories.tsx) | `agents/organization`, `tasks/create`, `agent-chat/discovery` | unreviewed / production / fixtures | 11 / 11 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Agents and reusable capabilities/Hiring, configuration, and organization/Primary Agent/07 Confirmation](../../ui/storybook/stories/agents/primary-agent/07-confirmation.stories.tsx) | `agents/organization`, `tasks/create`, `agent-chat/discovery` | unreviewed / production / fixtures | 4 / 1 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Agents and reusable capabilities/Hiring, configuration, and organization/Summaries/SummarySlotCard](../../ui/storybook/stories/agents/summary-slot-card.stories.tsx) | `agents/built-in` | unreviewed / production / fixtures | 15 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
## app-permissions
@@ -77,10 +77,10 @@ Status describes product alignment; implementation describes the rendered subjec
| Story suite | Capabilities | Product / implementation / data | Stories / play functions | Review note |
| --- | --- | --- | --- | --- |
| [Tools & Access/ActionCard](../../ui/storybook/stories/action-card.stories.tsx) | `app-permissions/test-action`, `app-permissions/action-policy` | unreviewed / production / fixtures | 5 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Apps/Action permissions test](../../ui/storybook/stories/action-permissions-test.stories.tsx) | `app-permissions/test-action`, `app-permissions/action-policy` | unreviewed / production / fixtures | 7 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Apps/Managed accounts](../../ui/storybook/stories/apps-managed-accounts.stories.tsx) | `app-permissions/account-maintenance` | current / production / fixture-server | 1 / 0 | Production Browse requires owned tests/aggregator-accounts/test-drive.ts on localhost:4310; providers are simulated. Not an offline story. |
| [Tools/Permitted vs Installed](../../ui/storybook/stories/permitted-vs-installed.stories.tsx) | `app-permissions/agent-access`, `app-permissions/action-policy` | unreviewed / production / fixtures | 12 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Apps, channels, and extensions/App access and action permissions/Tools & Access/ActionCard](../../ui/storybook/stories/app-permissions/action-card.stories.tsx) | `app-permissions/test-action`, `app-permissions/action-policy` | unreviewed / production / fixtures | 5 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Apps, channels, and extensions/App access and action permissions/Apps/Action permissions test](../../ui/storybook/stories/app-permissions/action-permissions-test.stories.tsx) | `app-permissions/test-action`, `app-permissions/action-policy` | unreviewed / production / fixtures | 7 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Apps, channels, and extensions/App access and action permissions/Apps/Managed accounts](../../ui/storybook/stories/app-permissions/apps-managed-accounts.stories.tsx) | `app-permissions/account-maintenance` | current / production / fixture-server | 1 / 0 | Production Browse requires owned tests/aggregator-accounts/test-drive.ts on localhost:4310; providers are simulated. Not an offline story. |
| [Apps, channels, and extensions/App access and action permissions/Tools/Permitted vs Installed](../../ui/storybook/stories/app-permissions/permitted-vs-installed.stories.tsx) | `app-permissions/agent-access`, `app-permissions/action-policy` | unreviewed / production / fixtures | 12 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
## budgets-costs
@@ -88,8 +88,8 @@ Status describes product alignment; implementation describes the rendered subjec
| Story suite | Capabilities | Product / implementation / data | Stories / play functions | Review note |
| --- | --- | --- | --- | --- |
| [Product/Budget & Finance](../../ui/storybook/stories/budget-finance.stories.tsx) | `budgets-costs/cost-reporting`, `budgets-costs/budgets` | unreviewed / production / fixtures | 1 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Costs/Subscriptions](../../ui/storybook/stories/costs/subscriptions.stories.tsx) | `budgets-costs/cost-reporting`, `budgets-costs/budgets` | unreviewed / production / fixtures | 7 / 4 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Oversight and operation/Costs and budgets/Product/Budget & Finance](../../ui/storybook/stories/budgets-costs/budget-finance.stories.tsx) | `budgets-costs/cost-reporting`, `budgets-costs/budgets` | unreviewed / production / fixtures | 1 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Oversight and operation/Costs and budgets/Costs/Subscriptions](../../ui/storybook/stories/budgets-costs/costs/subscriptions.stories.tsx) | `budgets-costs/cost-reporting`, `budgets-costs/budgets` | unreviewed / production / fixtures | 7 / 4 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
## chat-channels
@@ -97,20 +97,20 @@ Status describes product alignment; implementation describes the rendered subjec
| Story suite | Capabilities | Product / implementation / data | Stories / play functions | Review note |
| --- | --- | --- | --- | --- |
| [Connections/AgentMail setup](../../ui/storybook/stories/agentmail-onboarding.stories.tsx) | `chat-channels/providers`, `connection-setup/channel-setup` | unreviewed / production / fixtures | 19 / 16 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Connections/AgentMail settings](../../ui/storybook/stories/agentmail-settings.stories.tsx) | `chat-channels/lifecycle` | unreviewed / production / fixtures | 8 / 5 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Connections/AgentMail tasks](../../ui/storybook/stories/agentmail.stories.tsx) | `chat-channels/conversation` | unreviewed / prototype / fixtures | 9 / 2 | Local EmailTaskExperience combines production composer/bubbles with simulated email lifecycle; compare against IssueDetail before claiming page parity. |
| [Connections/Chat connection actions](../../ui/storybook/stories/chat-connection-actions.stories.tsx) | `chat-channels/providers` | unreviewed / production / fixtures | 1 / 1 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Connections/Chat management](../../ui/storybook/stories/chat-management/chat-management.stories.tsx) | `chat-channels/lifecycle` | unreviewed / production / fixtures | 15 / 6 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Connectors/GitHub bot management](../../ui/storybook/stories/github-bot-management/management.stories.tsx) | `chat-channels/providers`, `chat-channels/conversation` | unreviewed / production / fixtures | 33 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Historical/GitHub chat prototypes](../../ui/storybook/stories/github-chat.stories.tsx) | `chat-channels/providers`, `chat-channels/conversation` | historical / prototype / fixtures | 48 / 9 | Historical wizard retained for original setup/access/review design; current GitHub setup is ui/src/pages/apps/chat/GitHubChatSetup.tsx. |
| [Connections/GitHub and Code Review Bot](../../ui/storybook/stories/github-connections.stories.tsx) | `chat-channels/providers`, `connection-setup/channel-setup` | unreviewed / production / fixtures | 7 / 7 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Connections/iMessage Photon](../../ui/storybook/stories/imessage-photon.stories.tsx) | `chat-channels/conversation` | unreviewed / production / fixtures | 13 / 7 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Connections/Slack/Automatic setup](../../ui/storybook/stories/slack-automatic-setup.stories.tsx) | `chat-channels/providers`, `connection-setup/channel-setup` | unreviewed / production / fixtures | 18 / 3 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Connections/Slack/Avatar in Settings](../../ui/storybook/stories/slack-avatar-settings.stories.tsx) | `chat-channels/identity` | current / production / fixtures | 1 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Connections/Slack/Communication in Settings](../../ui/storybook/stories/slack-communication-settings.stories.tsx) | `chat-channels/identity` | current / production / fixtures | 4 / 1 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Connections/Slack/Managed setup](../../ui/storybook/stories/slack-managed-setup.stories.tsx) | `chat-channels/providers`, `connection-setup/channel-setup` | unreviewed / production / fixtures | 21 / 7 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Connections/Slack/Task tools](../../ui/storybook/stories/slack-tools.stories.tsx) | `chat-channels/conversation` | unreviewed / production / fixtures | 5 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Apps, channels, and extensions/External chat and email/Connections/AgentMail setup](../../ui/storybook/stories/chat-channels/agentmail-onboarding.stories.tsx) | `chat-channels/providers`, `connection-setup/channel-setup` | unreviewed / production / fixtures | 19 / 16 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Apps, channels, and extensions/External chat and email/Connections/AgentMail settings](../../ui/storybook/stories/chat-channels/agentmail-settings.stories.tsx) | `chat-channels/lifecycle` | unreviewed / production / fixtures | 8 / 5 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Apps, channels, and extensions/External chat and email/Connections/AgentMail tasks](../../ui/storybook/stories/chat-channels/agentmail.stories.tsx) | `chat-channels/conversation` | unreviewed / prototype / fixtures | 9 / 2 | Local EmailTaskExperience combines production composer/bubbles with simulated email lifecycle; compare against IssueDetail before claiming page parity. |
| [Apps, channels, and extensions/External chat and email/Connections/Chat connection actions](../../ui/storybook/stories/chat-channels/chat-connection-actions.stories.tsx) | `chat-channels/providers` | unreviewed / production / fixtures | 1 / 1 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Apps, channels, and extensions/External chat and email/Connections/Chat management](../../ui/storybook/stories/chat-channels/chat-management/chat-management.stories.tsx) | `chat-channels/lifecycle` | unreviewed / production / fixtures | 15 / 6 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Apps, channels, and extensions/External chat and email/Connectors/GitHub bot management](../../ui/storybook/stories/chat-channels/github-bot-management/management.stories.tsx) | `chat-channels/providers`, `chat-channels/conversation` | unreviewed / production / fixtures | 33 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Apps, channels, and extensions/External chat and email/Historical/GitHub chat prototypes](../../ui/storybook/stories/chat-channels/github-chat.stories.tsx) | `chat-channels/providers`, `chat-channels/conversation` | historical / prototype / fixtures | 48 / 9 | Historical wizard retained for original setup/access/review design; current GitHub setup is ui/src/pages/apps/chat/GitHubChatSetup.tsx. |
| [Apps, channels, and extensions/External chat and email/Connections/GitHub and Code Review Bot](../../ui/storybook/stories/chat-channels/github-connections.stories.tsx) | `chat-channels/providers`, `connection-setup/channel-setup` | unreviewed / production / fixtures | 7 / 7 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Apps, channels, and extensions/External chat and email/Connections/iMessage Photon](../../ui/storybook/stories/chat-channels/imessage-photon.stories.tsx) | `chat-channels/conversation` | unreviewed / production / fixtures | 13 / 7 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Apps, channels, and extensions/External chat and email/Connections/Slack/Automatic setup](../../ui/storybook/stories/chat-channels/slack-automatic-setup.stories.tsx) | `chat-channels/providers`, `connection-setup/channel-setup` | unreviewed / production / fixtures | 18 / 3 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Apps, channels, and extensions/External chat and email/Connections/Slack/Avatar in Settings](../../ui/storybook/stories/chat-channels/slack-avatar-settings.stories.tsx) | `chat-channels/identity` | current / production / fixtures | 1 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Apps, channels, and extensions/External chat and email/Connections/Slack/Communication in Settings](../../ui/storybook/stories/chat-channels/slack-communication-settings.stories.tsx) | `chat-channels/identity` | current / production / fixtures | 4 / 1 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Apps, channels, and extensions/External chat and email/Connections/Slack/Managed setup](../../ui/storybook/stories/chat-channels/slack-managed-setup.stories.tsx) | `chat-channels/providers`, `connection-setup/channel-setup` | unreviewed / production / fixtures | 21 / 7 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Apps, channels, and extensions/External chat and email/Connections/Slack/Task tools](../../ui/storybook/stories/chat-channels/slack-tools.stories.tsx) | `chat-channels/conversation` | unreviewed / production / fixtures | 5 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
## companies
@@ -118,11 +118,11 @@ Status describes product alignment; implementation describes the rendered subjec
| Story suite | Capabilities | Product / implementation / data | Stories / play functions | Review note |
| --- | --- | --- | --- | --- |
| [Decision models/01 Settings](../../ui/storybook/stories/decision-models/01-settings.stories.tsx) | `companies/identity`, `budgets-costs/cost-reporting` | unreviewed / production / fixtures | 11 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Decision models/02 History](../../ui/storybook/stories/decision-models/02-history.stories.tsx) | `companies/identity`, `budgets-costs/cost-reporting` | unreviewed / production / fixtures | 4 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Decision models/03 Journey](../../ui/storybook/stories/decision-models/03-journey.stories.tsx) | `companies/identity`, `budgets-costs/cost-reporting` | unreviewed / production / fixtures | 3 / 1 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Fast responses/01 Settings](../../ui/storybook/stories/fast-responses/01-settings.stories.tsx) | `companies/identity`, `budgets-costs/cost-reporting` | unreviewed / production / fixtures | 9 / 0 | Production settings view with simulated callbacks. Excluded exported fixture helpers and added the onConnectionChange spy required during rendering; full save/API state parity remains unreviewed. |
| [Fast responses/02 History](../../ui/storybook/stories/fast-responses/02-history.stories.tsx) | `companies/identity`, `budgets-costs/cost-reporting` | current / production / fixtures | 4 / 0 | Shared production DecisionHistoryTable receives fastResponse=true, matching FastResponseHistory presentation; API loading/error and feature-gate wrapper are outside this story. |
| [Getting started and access/Companies and portability/Decision models/01 Settings](../../ui/storybook/stories/companies/decision-models/01-settings.stories.tsx) | `companies/identity`, `budgets-costs/cost-reporting` | unreviewed / production / fixtures | 11 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Getting started and access/Companies and portability/Decision models/02 History](../../ui/storybook/stories/companies/decision-models/02-history.stories.tsx) | `companies/identity`, `budgets-costs/cost-reporting` | unreviewed / production / fixtures | 4 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Getting started and access/Companies and portability/Decision models/03 Journey](../../ui/storybook/stories/companies/decision-models/03-journey.stories.tsx) | `companies/identity`, `budgets-costs/cost-reporting` | unreviewed / production / fixtures | 3 / 1 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Getting started and access/Companies and portability/Fast responses/01 Settings](../../ui/storybook/stories/companies/fast-responses/01-settings.stories.tsx) | `companies/identity`, `budgets-costs/cost-reporting` | unreviewed / production / fixtures | 9 / 0 | Production settings view with simulated callbacks. Excluded exported fixture helpers and added the onConnectionChange spy required during rendering; full save/API state parity remains unreviewed. |
| [Getting started and access/Companies and portability/Fast responses/02 History](../../ui/storybook/stories/companies/fast-responses/02-history.stories.tsx) | `companies/identity`, `budgets-costs/cost-reporting` | current / production / fixtures | 4 / 0 | Shared production DecisionHistoryTable receives fastResponse=true, matching FastResponseHistory presentation; API loading/error and feature-gate wrapper are outside this story. |
## connection-setup
@@ -130,25 +130,25 @@ Status describes product alignment; implementation describes the rendered subjec
| Story suite | Capabilities | Product / implementation / data | Stories / play functions | Review note |
| --- | --- | --- | --- | --- |
| [Components/Agent setup prompt](../../ui/storybook/stories/agent-setup-prompt.stories.tsx) | `connection-setup/channel-setup`, `gateways-profiles/client-connect` | unreviewed / production / fixtures | 11 / 3 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Apps/Canonical icon registry](../../ui/storybook/stories/AppLogoRegistry.stories.tsx) | `connection-setup/catalog` | unreviewed / production / fixtures | 2 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Apps/Catalog source selection](../../ui/storybook/stories/apps-catalog-source-selection.stories.tsx) | `connection-setup/catalog` | proposed / prototype / fixtures | 12 / 1 | Local catalog composition uses shipped cards and filters; retains design exploration purpose, not acceptance of the Apps route. |
| [Apps/Connect discoverability (PAP-11091)](../../ui/storybook/stories/apps-connect-discoverability.stories.tsx) | `connection-setup/catalog` | unreviewed / production / fixtures | 5 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Apps/Connect name at create time (PAP-11283)](../../ui/storybook/stories/apps-connect-name.stories.tsx) | `connection-setup/identity-and-access` | unreviewed / production / fixtures | 2 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Apps/Connections/Arcade](../../ui/storybook/stories/ArcadeConnection.stories.tsx) | `connection-setup/credentials`, `connection-setup/failure` | unreviewed / production / fixtures | 26 / 1 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Connections/Browser Use Cloud/Settings](../../ui/storybook/stories/browser-use-settings.stories.tsx) | `connection-setup/credentials` | current / production / fixtures | 9 / 2 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Apps/Connections/Composio](../../ui/storybook/stories/ComposioConnection.stories.tsx) | `connection-setup/credentials`, `connection-setup/failure` | unreviewed / production / fixtures | 27 / 1 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Design explorations/Connections/Agent instructions](../../ui/storybook/stories/connection-instructions.stories.tsx) | `connection-setup/credentials`, `agents/instructions` | unreviewed / production / fixtures | 20 / 5 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Apps/Connections/Provider choice](../../ui/storybook/stories/ConnectionProviderChoice.stories.tsx) | `connection-setup/identity-and-access` | unreviewed / production / fixtures | 7 / 4 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Apps/Enterpret connector](../../ui/storybook/stories/enterpret-connect-flow.stories.tsx) | `connection-setup/credentials`, `connection-setup/failure` | unreviewed / production / fixtures | 9 / 1 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Apps/Connections/Executor](../../ui/storybook/stories/ExecutorConnection.stories.tsx) | `connection-setup/credentials`, `connection-setup/failure` | unreviewed / production / fixtures | 26 / 1 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [PR reviews/Fireflies and app webhooks](../../ui/storybook/stories/fireflies-pr.stories.tsx) | `connection-setup/credentials`, `routines/triggers` | unreviewed / production / fixtures | 27 / 5 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Connections/In-task connections](../../ui/storybook/stories/in-feed-connections.stories.tsx) | `connection-setup/task-request` | unreviewed / production / fixtures | 78 / 23 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Apps/Managed Cloud OAuth handoff](../../ui/storybook/stories/managed-cloud-oauth-handoff.stories.tsx) | `connection-setup/handoff` | unreviewed / production / fixtures | 4 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Apps/Connections/Memory](../../ui/storybook/stories/memory-connectors.stories.tsx) | `connection-setup/credentials`, `agents/instructions` | unreviewed / production / fixtures | 21 / 7 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Apps/Notion MCP connect flow (PAP-16650)](../../ui/storybook/stories/notion-connect-flow.stories.tsx) | `connection-setup/credentials`, `connection-setup/failure` | unreviewed / production / fixtures | 7 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Reviews/PAP-17835 Personal connection identity](../../ui/storybook/stories/personal-connection-identity.stories.tsx) | `connection-setup/identity-and-access` | unreviewed / production / fixtures | 10 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Apps/Connections/Zapier](../../ui/storybook/stories/ZapierConnection.stories.tsx) | `connection-setup/credentials`, `connection-setup/failure` | unreviewed / production / fixtures | 21 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Apps, channels, and extensions/Connection setup/Components/Agent setup prompt](../../ui/storybook/stories/connection-setup/agent-setup-prompt.stories.tsx) | `connection-setup/channel-setup`, `gateways-profiles/client-connect` | unreviewed / production / fixtures | 11 / 3 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Apps, channels, and extensions/Connection setup/Apps/Canonical icon registry](../../ui/storybook/stories/connection-setup/AppLogoRegistry.stories.tsx) | `connection-setup/catalog` | unreviewed / production / fixtures | 2 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Apps, channels, and extensions/Connection setup/Apps/Catalog source selection](../../ui/storybook/stories/connection-setup/apps-catalog-source-selection.stories.tsx) | `connection-setup/catalog` | proposed / prototype / fixtures | 12 / 1 | Local catalog composition uses shipped cards and filters; retains design exploration purpose, not acceptance of the Apps route. |
| [Apps, channels, and extensions/Connection setup/Apps/Connect discoverability (PAP-11091)](../../ui/storybook/stories/connection-setup/apps-connect-discoverability.stories.tsx) | `connection-setup/catalog` | unreviewed / production / fixtures | 5 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Apps, channels, and extensions/Connection setup/Apps/Connect name at create time (PAP-11283)](../../ui/storybook/stories/connection-setup/apps-connect-name.stories.tsx) | `connection-setup/identity-and-access` | unreviewed / production / fixtures | 2 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Apps, channels, and extensions/Connection setup/Apps/Connections/Arcade](../../ui/storybook/stories/connection-setup/ArcadeConnection.stories.tsx) | `connection-setup/credentials`, `connection-setup/failure` | unreviewed / production / fixtures | 26 / 1 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Apps, channels, and extensions/Connection setup/Connections/Browser Use Cloud/Settings](../../ui/storybook/stories/connection-setup/browser-use-settings.stories.tsx) | `connection-setup/credentials` | current / production / fixtures | 9 / 2 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Apps, channels, and extensions/Connection setup/Apps/Connections/Composio](../../ui/storybook/stories/connection-setup/ComposioConnection.stories.tsx) | `connection-setup/credentials`, `connection-setup/failure` | unreviewed / production / fixtures | 27 / 1 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Apps, channels, and extensions/Connection setup/Design explorations/Connections/Agent instructions](../../ui/storybook/stories/connection-setup/connection-instructions.stories.tsx) | `connection-setup/credentials`, `agents/instructions` | unreviewed / production / fixtures | 20 / 5 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Apps, channels, and extensions/Connection setup/Apps/Connections/Provider choice](../../ui/storybook/stories/connection-setup/ConnectionProviderChoice.stories.tsx) | `connection-setup/identity-and-access` | unreviewed / production / fixtures | 7 / 4 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Apps, channels, and extensions/Connection setup/Apps/Enterpret connector](../../ui/storybook/stories/connection-setup/enterpret-connect-flow.stories.tsx) | `connection-setup/credentials`, `connection-setup/failure` | unreviewed / production / fixtures | 9 / 1 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Apps, channels, and extensions/Connection setup/Apps/Connections/Executor](../../ui/storybook/stories/connection-setup/ExecutorConnection.stories.tsx) | `connection-setup/credentials`, `connection-setup/failure` | unreviewed / production / fixtures | 26 / 1 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Apps, channels, and extensions/Connection setup/PR reviews/Fireflies and app webhooks](../../ui/storybook/stories/connection-setup/fireflies-pr.stories.tsx) | `connection-setup/credentials`, `routines/triggers` | unreviewed / production / fixtures | 27 / 5 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Apps, channels, and extensions/Connection setup/Connections/In-task connections](../../ui/storybook/stories/connection-setup/in-feed-connections.stories.tsx) | `connection-setup/task-request` | unreviewed / production / fixtures | 78 / 23 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Apps, channels, and extensions/Connection setup/Apps/Managed Cloud OAuth handoff](../../ui/storybook/stories/connection-setup/managed-cloud-oauth-handoff.stories.tsx) | `connection-setup/handoff` | unreviewed / production / fixtures | 4 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Apps, channels, and extensions/Connection setup/Apps/Connections/Memory](../../ui/storybook/stories/connection-setup/memory-connectors.stories.tsx) | `connection-setup/credentials`, `agents/instructions` | unreviewed / production / fixtures | 21 / 7 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Apps, channels, and extensions/Connection setup/Apps/Notion MCP connect flow (PAP-16650)](../../ui/storybook/stories/connection-setup/notion-connect-flow.stories.tsx) | `connection-setup/credentials`, `connection-setup/failure` | unreviewed / production / fixtures | 7 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Apps, channels, and extensions/Connection setup/Reviews/PAP-17835 Personal connection identity](../../ui/storybook/stories/connection-setup/personal-connection-identity.stories.tsx) | `connection-setup/identity-and-access` | unreviewed / production / fixtures | 10 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Apps, channels, and extensions/Connection setup/Apps/Connections/Zapier](../../ui/storybook/stories/connection-setup/ZapierConnection.stories.tsx) | `connection-setup/credentials`, `connection-setup/failure` | unreviewed / production / fixtures | 21 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
## developer-labs
@@ -156,7 +156,7 @@ Status describes product alignment; implementation describes the rendered subjec
| Story suite | Capabilities | Product / implementation / data | Stories / play functions | Review note |
| --- | --- | --- | --- | --- |
| [UX Labs/Converted Test Pages](../../ui/storybook/stories/ux-labs.stories.tsx) | `developer-labs/interaction-labs` | unreviewed / production / fixtures | 4 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Contributor surfaces/Developer previews and diagnostic labs/UX Labs/Converted Test Pages](../../ui/storybook/stories/developer-labs/ux-labs.stories.tsx) | `developer-labs/interaction-labs` | unreviewed / production / fixtures | 4 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
## documents-artifacts
@@ -164,37 +164,37 @@ Status describes product alignment; implementation describes the rendered subjec
| Story suite | Capabilities | Product / implementation / data | Stories / play functions | Review note |
| --- | --- | --- | --- | --- |
| [Explorations/Artifact cards/Commit](../../ui/storybook/stories/artifact-cards/commit.stories.tsx) | `documents-artifacts/work-products` | unreviewed / production / fixtures | 1 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Explorations/Artifact cards/Data](../../ui/storybook/stories/artifact-cards/data.stories.tsx) | `documents-artifacts/work-products` | unreviewed / production / fixtures | 1 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Explorations/Artifact cards/Document](../../ui/storybook/stories/artifact-cards/document.stories.tsx) | `documents-artifacts/work-products` | unreviewed / production / fixtures | 1 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Explorations/Artifact cards/File](../../ui/storybook/stories/artifact-cards/file.stories.tsx) | `documents-artifacts/work-products` | unreviewed / production / fixtures | 1 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Explorations/Artifact cards/Image](../../ui/storybook/stories/artifact-cards/image.stories.tsx) | `documents-artifacts/work-products` | unreviewed / production / fixtures | 1 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Explorations/Artifact cards/Link preview](../../ui/storybook/stories/artifact-cards/link-preview.stories.tsx) | `documents-artifacts/work-products` | unreviewed / production / fixtures | 1 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Explorations/Artifact cards/Pull request](../../ui/storybook/stories/artifact-cards/pull-request.stories.tsx) | `documents-artifacts/work-products` | unreviewed / production / fixtures | 1 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Explorations/Artifact cards/Video](../../ui/storybook/stories/artifact-cards/video.stories.tsx) | `documents-artifacts/work-products` | unreviewed / production / fixtures | 1 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Artifact upload/01 Artifacts pane](../../ui/storybook/stories/artifact-upload/01-components.stories.tsx) | `documents-artifacts/attachments` | unreviewed / production / fixtures | 10 / 3 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Artifact upload/02 Paused task journey](../../ui/storybook/stories/artifact-upload/02-task-journey.stories.tsx) | `documents-artifacts/attachments` | unreviewed / production / fixtures | 6 / 1 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Pages/Artifacts](../../ui/storybook/stories/artifacts.stories.tsx) | `documents-artifacts/library`, `documents-artifacts/work-products` | unreviewed / production / fixtures | 6 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Components/CSV File Tab](../../ui/storybook/stories/csv-preview.stories.tsx) | `documents-artifacts/attachments` | unreviewed / production / fixtures | 4 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Product/Documents/Annotations](../../ui/storybook/stories/document-annotations.stories.tsx) | `documents-artifacts/annotations` | unreviewed / production / fixtures | 9 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Product/Document Comments](../../ui/storybook/stories/document-comments.stories.tsx) | `documents-artifacts/annotations` | unreviewed / production / fixtures | 1 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Components/File Viewer Sheet](../../ui/storybook/stories/file-viewer.stories.tsx) | `documents-artifacts/attachments` | unreviewed / production / fixtures | 13 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [HTML artifacts/01 Preview](../../ui/storybook/stories/html-artifacts/01-preview.stories.tsx) | `documents-artifacts/attachments`, `workspaces/files-git` | unreviewed / production / fixtures | 5 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [HTML artifacts/02 Workspace](../../ui/storybook/stories/html-artifacts/02-workspace.stories.tsx) | `documents-artifacts/attachments`, `workspaces/files-git` | unreviewed / production / fixtures | 3 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [HTML artifacts/03 Task journey](../../ui/storybook/stories/html-artifacts/03-task-journey.stories.tsx) | `documents-artifacts/attachments`, `workspaces/files-git` | unreviewed / production / fixtures | 3 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Task Chat/Rich Work Product Cards](../../ui/storybook/stories/rich-work-product-cards.stories.tsx) | `documents-artifacts/work-products` | unreviewed / production / fixtures | 9 / 3 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Tasks/Artifact Gallery](../../ui/storybook/stories/task-artifact-gallery.stories.tsx) | `documents-artifacts/library`, `documents-artifacts/work-products` | unreviewed / production / fixtures | 8 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Tasks/Text file tabs](../../ui/storybook/stories/task-text-files.stories.tsx) | `documents-artifacts/attachments` | unreviewed / production / fixtures | 7 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Tasks and conversations/Documents, attachments, and work products/Explorations/Artifact cards/Commit](../../ui/storybook/stories/documents-artifacts/artifact-cards/commit.stories.tsx) | `documents-artifacts/work-products` | unreviewed / production / fixtures | 1 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Tasks and conversations/Documents, attachments, and work products/Explorations/Artifact cards/Data](../../ui/storybook/stories/documents-artifacts/artifact-cards/data.stories.tsx) | `documents-artifacts/work-products` | unreviewed / production / fixtures | 1 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Tasks and conversations/Documents, attachments, and work products/Explorations/Artifact cards/Document](../../ui/storybook/stories/documents-artifacts/artifact-cards/document.stories.tsx) | `documents-artifacts/work-products` | unreviewed / production / fixtures | 1 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Tasks and conversations/Documents, attachments, and work products/Explorations/Artifact cards/File](../../ui/storybook/stories/documents-artifacts/artifact-cards/file.stories.tsx) | `documents-artifacts/work-products` | unreviewed / production / fixtures | 1 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Tasks and conversations/Documents, attachments, and work products/Explorations/Artifact cards/Image](../../ui/storybook/stories/documents-artifacts/artifact-cards/image.stories.tsx) | `documents-artifacts/work-products` | unreviewed / production / fixtures | 1 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Tasks and conversations/Documents, attachments, and work products/Explorations/Artifact cards/Link preview](../../ui/storybook/stories/documents-artifacts/artifact-cards/link-preview.stories.tsx) | `documents-artifacts/work-products` | unreviewed / production / fixtures | 1 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Tasks and conversations/Documents, attachments, and work products/Explorations/Artifact cards/Pull request](../../ui/storybook/stories/documents-artifacts/artifact-cards/pull-request.stories.tsx) | `documents-artifacts/work-products` | unreviewed / production / fixtures | 1 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Tasks and conversations/Documents, attachments, and work products/Explorations/Artifact cards/Video](../../ui/storybook/stories/documents-artifacts/artifact-cards/video.stories.tsx) | `documents-artifacts/work-products` | unreviewed / production / fixtures | 1 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Tasks and conversations/Documents, attachments, and work products/Artifact upload/01 Artifacts pane](../../ui/storybook/stories/documents-artifacts/artifact-upload/01-components.stories.tsx) | `documents-artifacts/attachments` | unreviewed / production / fixtures | 10 / 3 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Tasks and conversations/Documents, attachments, and work products/Artifact upload/02 Paused task journey](../../ui/storybook/stories/documents-artifacts/artifact-upload/02-task-journey.stories.tsx) | `documents-artifacts/attachments` | unreviewed / production / fixtures | 6 / 1 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Tasks and conversations/Documents, attachments, and work products/Pages/Artifacts](../../ui/storybook/stories/documents-artifacts/artifacts.stories.tsx) | `documents-artifacts/library`, `documents-artifacts/work-products` | unreviewed / production / fixtures | 6 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Tasks and conversations/Documents, attachments, and work products/Components/CSV File Tab](../../ui/storybook/stories/documents-artifacts/csv-preview.stories.tsx) | `documents-artifacts/attachments` | unreviewed / production / fixtures | 4 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Tasks and conversations/Documents, attachments, and work products/Product/Documents/Annotations](../../ui/storybook/stories/documents-artifacts/document-annotations.stories.tsx) | `documents-artifacts/annotations` | unreviewed / production / fixtures | 9 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Tasks and conversations/Documents, attachments, and work products/Product/Document Comments](../../ui/storybook/stories/documents-artifacts/document-comments.stories.tsx) | `documents-artifacts/annotations` | unreviewed / production / fixtures | 1 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Tasks and conversations/Documents, attachments, and work products/Components/File Viewer Sheet](../../ui/storybook/stories/documents-artifacts/file-viewer.stories.tsx) | `documents-artifacts/attachments` | unreviewed / production / fixtures | 13 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Tasks and conversations/Documents, attachments, and work products/HTML artifacts/01 Preview](../../ui/storybook/stories/documents-artifacts/html-artifacts/01-preview.stories.tsx) | `documents-artifacts/attachments`, `workspaces/files-git` | unreviewed / production / fixtures | 5 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Tasks and conversations/Documents, attachments, and work products/HTML artifacts/02 Workspace](../../ui/storybook/stories/documents-artifacts/html-artifacts/02-workspace.stories.tsx) | `documents-artifacts/attachments`, `workspaces/files-git` | unreviewed / production / fixtures | 3 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Tasks and conversations/Documents, attachments, and work products/HTML artifacts/03 Task journey](../../ui/storybook/stories/documents-artifacts/html-artifacts/03-task-journey.stories.tsx) | `documents-artifacts/attachments`, `workspaces/files-git` | unreviewed / production / fixtures | 3 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Tasks and conversations/Documents, attachments, and work products/Task Chat/Rich Work Product Cards](../../ui/storybook/stories/documents-artifacts/rich-work-product-cards.stories.tsx) | `documents-artifacts/work-products` | unreviewed / production / fixtures | 9 / 3 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Tasks and conversations/Documents, attachments, and work products/Tasks/Artifact Gallery](../../ui/storybook/stories/documents-artifacts/task-artifact-gallery.stories.tsx) | `documents-artifacts/library`, `documents-artifacts/work-products` | unreviewed / production / fixtures | 8 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Tasks and conversations/Documents, attachments, and work products/Tasks/Text file tabs](../../ui/storybook/stories/documents-artifacts/task-text-files.stories.tsx) | `documents-artifacts/attachments` | unreviewed / production / fixtures | 7 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
## foundations-and-guides
| Story suite | Capabilities | Product / implementation / data | Stories / play functions | Review note |
| --- | --- | --- | --- | --- |
| [Components/Forms & Editors](../../ui/storybook/stories/forms-editors.stories.tsx) | Shared foundations or contributor guide; no single business capability owns this suite. | unreviewed / production / fixtures | 3 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Foundations/Primitive Matrix](../../ui/storybook/stories/foundations.stories.tsx) | Shared foundations or contributor guide; no single business capability owns this suite. | unreviewed / production / fixtures | 1 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Overview/Storybook Guide](../../ui/storybook/stories/overview.stories.tsx) | Shared foundations or contributor guide; no single business capability owns this suite. | unreviewed / guide / static | 1 / 0 | Generated inventory counts replace stale hand-maintained Planned/Covered claims; no execution coverage is implied. |
| [Foundations/Primitive Coverage](../../ui/storybook/stories/primitives-coverage.stories.tsx) | Shared foundations or contributor guide; no single business capability owns this suite. | unreviewed / production / fixtures | 11 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Foundations/Status Language](../../ui/storybook/stories/status-language.stories.tsx) | Shared foundations or contributor guide; no single business capability owns this suite. | unreviewed / production / fixtures | 1 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Foundations/Components/Forms & Editors](../../ui/storybook/stories/foundations/forms-editors.stories.tsx) | Shared foundations or contributor guide; no single business capability owns this suite. | unreviewed / production / fixtures | 3 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Foundations/Primitive Matrix](../../ui/storybook/stories/foundations/foundations.stories.tsx) | Shared foundations or contributor guide; no single business capability owns this suite. | unreviewed / production / fixtures | 1 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Foundations/Primitive Coverage](../../ui/storybook/stories/foundations/primitives-coverage.stories.tsx) | Shared foundations or contributor guide; no single business capability owns this suite. | unreviewed / production / fixtures | 11 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Foundations/Status Language](../../ui/storybook/stories/foundations/status-language.stories.tsx) | Shared foundations or contributor guide; no single business capability owns this suite. | unreviewed / production / fixtures | 1 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Overview/Storybook Guide](../../ui/storybook/stories/overview/overview.stories.tsx) | Shared foundations or contributor guide; no single business capability owns this suite. | unreviewed / guide / static | 1 / 0 | Generated inventory counts replace stale hand-maintained Planned/Covered claims; no execution coverage is implied. |
## gateways-profiles
@@ -202,13 +202,13 @@ Status describes product alignment; implementation describes the rendered subjec
| Story suite | Capabilities | Product / implementation / data | Stories / play functions | Review note |
| --- | --- | --- | --- | --- |
| [Tools/Access profiles](../../ui/storybook/stories/access-profiles.stories.tsx) | `gateways-profiles/profiles` | unreviewed / production / fixtures | 18 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Tools/Gateways (PAP-11182)](../../ui/storybook/stories/gateways-tab.stories.tsx) | `gateways-profiles/gateway` | unreviewed / production / fixtures | 3 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Assistant connections/Manage connections](../../ui/storybook/stories/public-mcp-connections.stories.tsx) | `gateways-profiles/client-connect` | current / production / fixtures | 9 / 4 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Assistant connections/Consent](../../ui/storybook/stories/public-mcp-consent.stories.tsx) | `gateways-profiles/client-connect` | current / production / fixtures | 25 / 14 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Assistant connections/Device authorization](../../ui/storybook/stories/public-mcp-device.stories.tsx) | `gateways-profiles/client-connect` | current / production / fixtures | 7 / 3 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Assistant connections/Start here](../../ui/storybook/stories/public-mcp-journey.stories.tsx) | `gateways-profiles/client-connect` | unreviewed / production / fixtures | 14 / 4 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Assistant connections/Experimental setting](../../ui/storybook/stories/public-mcp-setting.stories.tsx) | `gateways-profiles/client-connect` | unreviewed / production / fixtures | 8 / 5 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Apps, channels, and extensions/Tool gateways and access profiles/Tools/Access profiles](../../ui/storybook/stories/gateways-profiles/access-profiles.stories.tsx) | `gateways-profiles/profiles` | unreviewed / production / fixtures | 18 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Apps, channels, and extensions/Tool gateways and access profiles/Tools/Gateways (PAP-11182)](../../ui/storybook/stories/gateways-profiles/gateways-tab.stories.tsx) | `gateways-profiles/gateway` | unreviewed / production / fixtures | 3 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Apps, channels, and extensions/Tool gateways and access profiles/Assistant connections/Manage connections](../../ui/storybook/stories/gateways-profiles/public-mcp-connections.stories.tsx) | `gateways-profiles/client-connect` | current / production / fixtures | 9 / 4 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Apps, channels, and extensions/Tool gateways and access profiles/Assistant connections/Consent](../../ui/storybook/stories/gateways-profiles/public-mcp-consent.stories.tsx) | `gateways-profiles/client-connect` | current / production / fixtures | 25 / 14 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Apps, channels, and extensions/Tool gateways and access profiles/Assistant connections/Device authorization](../../ui/storybook/stories/gateways-profiles/public-mcp-device.stories.tsx) | `gateways-profiles/client-connect` | current / production / fixtures | 7 / 3 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Apps, channels, and extensions/Tool gateways and access profiles/Assistant connections/Start here](../../ui/storybook/stories/gateways-profiles/public-mcp-journey.stories.tsx) | `gateways-profiles/client-connect` | unreviewed / production / fixtures | 14 / 4 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Apps, channels, and extensions/Tool gateways and access profiles/Assistant connections/Experimental setting](../../ui/storybook/stories/gateways-profiles/public-mcp-setting.stories.tsx) | `gateways-profiles/client-connect` | unreviewed / production / fixtures | 8 / 5 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
## inbox-search
@@ -216,11 +216,11 @@ Status describes product alignment; implementation describes the rendered subjec
| Story suite | Capabilities | Product / implementation / data | Stories / play functions | Review note |
| --- | --- | --- | --- | --- |
| [Product/Inbox/Blocked tab](../../ui/storybook/stories/blocked-inbox.stories.tsx) | `inbox-search/triage`, `recovery/diagnosis` | unreviewed / production / fixtures | 5 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Decisions/DecisionCard](../../ui/storybook/stories/decision-card.stories.tsx) | `inbox-search/decisions` | unreviewed / production / fixtures | 9 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Pages/Decisions Desk](../../ui/storybook/stories/decisions-desk.stories.tsx) | `inbox-search/decisions` | unreviewed / production / fixtures | 6 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Product/Search & Command K](../../ui/storybook/stories/search.stories.tsx) | `inbox-search/search` | unreviewed / prototype / fixtures | 1 / 0 | Local search-page composition mounts production result components; does not establish parity with the production Search route. |
| [Pages/Decisions](../../ui/storybook/stories/what-needs-me.stories.tsx) | `inbox-search/decisions` | unreviewed / production / fixtures | 13 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Tasks and conversations/Inbox, decisions, and search/Product/Inbox/Blocked tab](../../ui/storybook/stories/inbox-search/blocked-inbox.stories.tsx) | `inbox-search/triage`, `recovery/diagnosis` | unreviewed / production / fixtures | 5 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Tasks and conversations/Inbox, decisions, and search/Decisions/DecisionCard](../../ui/storybook/stories/inbox-search/decision-card.stories.tsx) | `inbox-search/decisions` | unreviewed / production / fixtures | 9 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Tasks and conversations/Inbox, decisions, and search/Pages/Decisions Desk](../../ui/storybook/stories/inbox-search/decisions-desk.stories.tsx) | `inbox-search/decisions` | unreviewed / production / fixtures | 6 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Tasks and conversations/Inbox, decisions, and search/Product/Search & Command K](../../ui/storybook/stories/inbox-search/search.stories.tsx) | `inbox-search/search` | unreviewed / prototype / fixtures | 1 / 0 | Local search-page composition mounts production result components; does not establish parity with the production Search route. |
| [Tasks and conversations/Inbox, decisions, and search/Pages/Decisions](../../ui/storybook/stories/inbox-search/what-needs-me.stories.tsx) | `inbox-search/decisions` | unreviewed / production / fixtures | 13 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
## instance-operations
@@ -228,7 +228,7 @@ Status describes product alignment; implementation describes the rendered subjec
| Story suite | Capabilities | Product / implementation / data | Stories / play functions | Review note |
| --- | --- | --- | --- | --- |
| [Product/Dev Ops Surfaces](../../ui/storybook/stories/dev-ops-surfaces.stories.tsx) | `instance-operations/server-service` | unreviewed / production / fixtures | 1 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Oversight and operation/Instance operations/Product/Dev Ops Surfaces](../../ui/storybook/stories/instance-operations/dev-ops-surfaces.stories.tsx) | `instance-operations/server-service` | unreviewed / production / fixtures | 1 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
## navigation-preferences
@@ -236,9 +236,9 @@ Status describes product alignment; implementation describes the rendered subjec
| Story suite | Capabilities | Product / implementation / data | Stories / play functions | Review note |
| --- | --- | --- | --- | --- |
| [Announcements/AnnouncementCard](../../ui/storybook/stories/announcement-card.stories.tsx) | `navigation-preferences/announcements` | unreviewed / production / fixtures | 11 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Prototypes/Task detail/Mobile tabs](../../ui/storybook/stories/mobile-task-tabs.stories.tsx) | `navigation-preferences/navigation` | proposed / prototype / fixtures | 4 / 2 | Local composition retained for its original design purpose; full production parity remains unreviewed. |
| [Product/Navigation & Layout](../../ui/storybook/stories/navigation-layout.stories.tsx) | `navigation-preferences/navigation` | unreviewed / production / fixtures | 2 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Oversight and operation/Navigation, profile, and announcements/Announcements/AnnouncementCard](../../ui/storybook/stories/navigation-preferences/announcement-card.stories.tsx) | `navigation-preferences/announcements` | unreviewed / production / fixtures | 11 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Oversight and operation/Navigation, profile, and announcements/Prototypes/Task detail/Mobile tabs](../../ui/storybook/stories/navigation-preferences/mobile-task-tabs.stories.tsx) | `navigation-preferences/navigation` | proposed / prototype / fixtures | 4 / 2 | Local composition retained for its original design purpose; full production parity remains unreviewed. |
| [Oversight and operation/Navigation, profile, and announcements/Product/Navigation & Layout](../../ui/storybook/stories/navigation-preferences/navigation-layout.stories.tsx) | `navigation-preferences/navigation` | unreviewed / production / fixtures | 2 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
## onboarding
@@ -246,9 +246,9 @@ Status describes product alignment; implementation describes the rendered subjec
| Story suite | Capabilities | Product / implementation / data | Stories / play functions | Review note |
| --- | --- | --- | --- | --- |
| [Onboarding/Agent arc](../../ui/storybook/stories/onboarding-agent-arc.stories.tsx) | `onboarding/adapter`, `onboarding/first-task` | unreviewed / production / fixtures | 27 / 11 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Onboarding/Character](../../ui/storybook/stories/onboarding-character.stories.tsx) | `onboarding/company` | unreviewed / production / fixtures | 3 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Onboarding/Connect a model](../../ui/storybook/stories/onboarding-connect-model.stories.tsx) | `onboarding/adapter`, `onboarding/first-task` | historical / prototype / fixtures | 5 / 0 | Older tile/mode preview; onboarding-agent-arc mounts the production wizard. |
| [Getting started and access/Onboarding and first work/Onboarding/Agent arc](../../ui/storybook/stories/onboarding/onboarding-agent-arc.stories.tsx) | `onboarding/adapter`, `onboarding/first-task` | unreviewed / production / fixtures | 27 / 11 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Getting started and access/Onboarding and first work/Onboarding/Character](../../ui/storybook/stories/onboarding/onboarding-character.stories.tsx) | `onboarding/company` | unreviewed / production / fixtures | 3 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Getting started and access/Onboarding and first work/Onboarding/Connect a model](../../ui/storybook/stories/onboarding/onboarding-connect-model.stories.tsx) | `onboarding/adapter`, `onboarding/first-task` | historical / prototype / fixtures | 5 / 0 | Older tile/mode preview; onboarding-agent-arc mounts the production wizard. |
## projects
@@ -256,10 +256,10 @@ Status describes product alignment; implementation describes the rendered subjec
| Story suite | Capabilities | Product / implementation / data | Stories / play functions | Review note |
| --- | --- | --- | --- | --- |
| [Proposals/Project repos/New project](../../ui/storybook/stories/new-project-repos.stories.tsx) | `projects/repositories` | proposed / mixed / fixtures | 18 / 5 | RepositoryEditor is shipped, but NewProjectPrototype composes its own creation flow. Preserve proposal until route parity is checked. |
| [Workspaces/Project runtime provision command](../../ui/storybook/stories/project-execution-workspace-strategy.stories.tsx) | `projects/defaults`, `workspaces/provisioning` | unreviewed / production / fixtures | 2 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Proposals/Project repos/Configuration](../../ui/storybook/stories/project-repos-configuration.stories.tsx) | `projects/repositories` | proposed / mixed / fixtures | 12 / 0 | Production properties plus local configuration page composition; repository interaction is simulated. |
| [Product/Projects Goals Workspaces](../../ui/storybook/stories/projects-goals-workspaces.stories.tsx) | `projects/lifecycle`, `goals/hierarchy`, `workspaces/binding` | unreviewed / production / fixtures | 1 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Projects and execution/Projects and repositories/Proposals/Project repos/New project](../../ui/storybook/stories/projects/new-project-repos.stories.tsx) | `projects/repositories` | proposed / mixed / fixtures | 18 / 5 | RepositoryEditor is shipped, but NewProjectPrototype composes its own creation flow. Preserve proposal until route parity is checked. |
| [Projects and execution/Projects and repositories/Workspaces/Project runtime provision command](../../ui/storybook/stories/projects/project-execution-workspace-strategy.stories.tsx) | `projects/defaults`, `workspaces/provisioning` | unreviewed / production / fixtures | 2 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Projects and execution/Projects and repositories/Proposals/Project repos/Configuration](../../ui/storybook/stories/projects/project-repos-configuration.stories.tsx) | `projects/repositories` | proposed / mixed / fixtures | 12 / 0 | Production properties plus local configuration page composition; repository interaction is simulated. |
| [Projects and execution/Projects and repositories/Product/Projects Goals Workspaces](../../ui/storybook/stories/projects/projects-goals-workspaces.stories.tsx) | `projects/lifecycle`, `goals/hierarchy`, `workspaces/binding` | unreviewed / production / fixtures | 1 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
## questions-and-approvals
@@ -267,14 +267,14 @@ Status describes product alignment; implementation describes the rendered subjec
| Story suite | Capabilities | Product / implementation / data | Stories / play functions | Review note |
| --- | --- | --- | --- | --- |
| [Chat & Comments/Agent Chat Unanswered Questions](../../ui/storybook/stories/agent-chat-unanswered-questions.stories.tsx) | `questions-and-approvals/dismiss-and-reopen`, `agent-chat/history` | unreviewed / production / fixtures | 9 / 6 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Composer/Question flow](../../ui/storybook/stories/composer-question-flow.stories.tsx) | `questions-and-approvals/questions` | unreviewed / production / fixtures | 3 / 1 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Chat & Comments/Connection Reviews](../../ui/storybook/stories/connection-reviews.stories.tsx) | `questions-and-approvals/tool-review`, `connection-setup/task-request` | unreviewed / production / fixtures | 25 / 8 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Issue Detail/Plan Decompositions](../../ui/storybook/stories/issue-plan-decompositions.stories.tsx) | `questions-and-approvals/plan-review`, `task-coordination/delegation` | unreviewed / production / fixtures | 2 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Chat & Comments/Issue Thread Interactions](../../ui/storybook/stories/issue-thread-interactions.stories.tsx) | `questions-and-approvals/questions`, `questions-and-approvals/confirmations`, `questions-and-approvals/audience` | unreviewed / production / fixtures | 53 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Chat & Comments/Rich ACP interactions](../../ui/storybook/stories/rich-acp-interactions.stories.tsx) | `questions-and-approvals/questions`, `questions-and-approvals/confirmations`, `questions-and-approvals/audience` | unreviewed / production / fixtures | 12 / 8 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Composer/Interaction above composer](../../ui/storybook/stories/task-chat-interaction-above-composer.stories.tsx) | `questions-and-approvals/questions`, `questions-and-approvals/confirmations`, `questions-and-approvals/audience` | current / production / fixtures | 15 / 5 | Corrected local dismissal/send harness: questions leave no pending badge; confirmations retain reopen. Production cards/composer; persisted dismissal is covered separately by unanswered-question fixtures. |
| [Chat & Comments/Task Chat Unanswered Questions](../../ui/storybook/stories/task-chat-unanswered-questions.stories.tsx) | `questions-and-approvals/dismiss-and-reopen`, `tasks/discussion` | unreviewed / production / fixtures | 6 / 1 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Tasks and conversations/Questions and approvals/Chat & Comments/Agent Chat Unanswered Questions](../../ui/storybook/stories/questions-and-approvals/agent-chat-unanswered-questions.stories.tsx) | `questions-and-approvals/dismiss-and-reopen`, `agent-chat/history` | unreviewed / production / fixtures | 9 / 6 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Tasks and conversations/Questions and approvals/Composer/Question flow](../../ui/storybook/stories/questions-and-approvals/composer-question-flow.stories.tsx) | `questions-and-approvals/questions` | unreviewed / production / fixtures | 3 / 1 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Tasks and conversations/Questions and approvals/Chat & Comments/Connection Reviews](../../ui/storybook/stories/questions-and-approvals/connection-reviews.stories.tsx) | `questions-and-approvals/tool-review`, `connection-setup/task-request` | unreviewed / production / fixtures | 25 / 8 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Tasks and conversations/Questions and approvals/Issue Detail/Plan Decompositions](../../ui/storybook/stories/questions-and-approvals/issue-plan-decompositions.stories.tsx) | `questions-and-approvals/plan-review`, `task-coordination/delegation` | unreviewed / production / fixtures | 2 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Tasks and conversations/Questions and approvals/Chat & Comments/Issue Thread Interactions](../../ui/storybook/stories/questions-and-approvals/issue-thread-interactions.stories.tsx) | `questions-and-approvals/questions`, `questions-and-approvals/confirmations`, `questions-and-approvals/audience` | unreviewed / production / fixtures | 53 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Tasks and conversations/Questions and approvals/Chat & Comments/Rich ACP interactions](../../ui/storybook/stories/questions-and-approvals/rich-acp-interactions.stories.tsx) | `questions-and-approvals/questions`, `questions-and-approvals/confirmations`, `questions-and-approvals/audience` | unreviewed / production / fixtures | 12 / 8 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Tasks and conversations/Questions and approvals/Composer/Interaction above composer](../../ui/storybook/stories/questions-and-approvals/task-chat-interaction-above-composer.stories.tsx) | `questions-and-approvals/questions`, `questions-and-approvals/confirmations`, `questions-and-approvals/audience` | current / production / fixtures | 15 / 5 | Corrected local dismissal/send harness: questions leave no pending badge; confirmations retain reopen. Production cards/composer; persisted dismissal is covered separately by unanswered-question fixtures. |
| [Tasks and conversations/Questions and approvals/Chat & Comments/Task Chat Unanswered Questions](../../ui/storybook/stories/questions-and-approvals/task-chat-unanswered-questions.stories.tsx) | `questions-and-approvals/dismiss-and-reopen`, `tasks/discussion` | unreviewed / production / fixtures | 6 / 1 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
## recovery
@@ -282,17 +282,17 @@ Status describes product alignment; implementation describes the rendered subjec
| Story suite | Capabilities | Product / implementation / data | Stories / play functions | Review note |
| --- | --- | --- | --- | --- |
| [App/Connection recovery](../../ui/storybook/stories/cloud-access-recovery.stories.tsx) | `recovery/reconnect` | unreviewed / production / fixtures | 3 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Task chat/Recovery notice](../../ui/storybook/stories/execution-blocker-notice.stories.tsx) | `recovery/diagnosis` | unreviewed / production / fixtures | 1 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Tasks/Execution recovery](../../ui/storybook/stories/execution-recovery.stories.tsx) | `recovery/diagnosis` | unreviewed / production / fixtures | 18 / 2 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Product/Issue/Blocked notice](../../ui/storybook/stories/issue-blocked-notice.stories.tsx) | `recovery/diagnosis`, `task-coordination/dependencies` | unreviewed / production / fixtures | 7 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Tasks/Model capacity retry](../../ui/storybook/stories/model-capacity-retry.stories.tsx) | `recovery/bounded-continuation` | unreviewed / production / fixtures | 1 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Design previews/Recovery notice](../../ui/storybook/stories/recovery-notice-preview.stories.tsx) | `recovery/diagnosis`, `recovery/source-action` | current / production / fixtures | 9 / 3 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Product/Issue Scheduled retry surfaces](../../ui/storybook/stories/scheduled-retry.stories.tsx) | `recovery/bounded-continuation` | unreviewed / production / fixtures | 1 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Paperclip/Source Issue Recovery](../../ui/storybook/stories/source-issue-recovery.stories.tsx) | `recovery/diagnosis`, `recovery/source-action` | unreviewed / production / fixtures | 5 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Paperclip/Source-resolved Fold](../../ui/storybook/stories/source-resolved-fold.stories.tsx) | `recovery/diagnosis`, `recovery/source-action` | unreviewed / production / fixtures | 5 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Workspace branch recovery/01 Repair card](../../ui/storybook/stories/workspace-branch-recovery/01-component.stories.tsx) | `recovery/workspace` | unreviewed / production / fixtures | 8 / 4 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Workspace branch recovery/02 Task journey](../../ui/storybook/stories/workspace-branch-recovery/02-task-journey.stories.tsx) | `recovery/workspace` | unreviewed / production / fixtures | 2 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Projects and execution/Recovery/App/Connection recovery](../../ui/storybook/stories/recovery/cloud-access-recovery.stories.tsx) | `recovery/reconnect` | unreviewed / production / fixtures | 3 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Projects and execution/Recovery/Task chat/Recovery notice](../../ui/storybook/stories/recovery/execution-blocker-notice.stories.tsx) | `recovery/diagnosis` | unreviewed / production / fixtures | 1 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Projects and execution/Recovery/Tasks/Execution recovery](../../ui/storybook/stories/recovery/execution-recovery.stories.tsx) | `recovery/diagnosis` | unreviewed / production / fixtures | 18 / 2 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Projects and execution/Recovery/Product/Issue/Blocked notice](../../ui/storybook/stories/recovery/issue-blocked-notice.stories.tsx) | `recovery/diagnosis`, `task-coordination/dependencies` | unreviewed / production / fixtures | 7 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Projects and execution/Recovery/Tasks/Model capacity retry](../../ui/storybook/stories/recovery/model-capacity-retry.stories.tsx) | `recovery/bounded-continuation` | unreviewed / production / fixtures | 1 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Projects and execution/Recovery/Design previews/Recovery notice](../../ui/storybook/stories/recovery/recovery-notice-preview.stories.tsx) | `recovery/diagnosis`, `recovery/source-action` | current / production / fixtures | 9 / 3 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Projects and execution/Recovery/Product/Issue Scheduled retry surfaces](../../ui/storybook/stories/recovery/scheduled-retry.stories.tsx) | `recovery/bounded-continuation` | unreviewed / production / fixtures | 1 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Projects and execution/Recovery/Paperclip/Source Issue Recovery](../../ui/storybook/stories/recovery/source-issue-recovery.stories.tsx) | `recovery/diagnosis`, `recovery/source-action` | unreviewed / production / fixtures | 5 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Projects and execution/Recovery/Paperclip/Source-resolved Fold](../../ui/storybook/stories/recovery/source-resolved-fold.stories.tsx) | `recovery/diagnosis`, `recovery/source-action` | unreviewed / production / fixtures | 5 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Projects and execution/Recovery/Workspace branch recovery/01 Repair card](../../ui/storybook/stories/recovery/workspace-branch-recovery/01-component.stories.tsx) | `recovery/workspace` | unreviewed / production / fixtures | 8 / 4 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Projects and execution/Recovery/Workspace branch recovery/02 Task journey](../../ui/storybook/stories/recovery/workspace-branch-recovery/02-task-journey.stories.tsx) | `recovery/workspace` | unreviewed / production / fixtures | 2 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
## routines
@@ -300,11 +300,11 @@ Status describes product alignment; implementation describes the rendered subjec
| Story suite | Capabilities | Product / implementation / data | Stories / play functions | Review note |
| --- | --- | --- | --- | --- |
| [Product/Routines · Detail (variation C)](../../ui/storybook/stories/routine-detail-c.stories.tsx) | `routines/definition`, `routines/management` | unreviewed / production / fixtures | 8 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Product/Routines · Secrets tab](../../ui/storybook/stories/routine-secrets.stories.tsx) | `routines/definition`, `secrets/runtime-delivery` | unreviewed / production / fixtures | 4 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Product/Routines/Webhooks UX preview](../../ui/storybook/stories/routine-webhooks-ux.stories.tsx) | `routines/triggers` | unreviewed / production / fixtures | 21 / 5 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Product/Routines/Webhooks](../../ui/storybook/stories/routine-webhooks.stories.tsx) | `routines/triggers` | unreviewed / production / fixtures | 16 / 14 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Product/Routines · List (grouped cards)](../../ui/storybook/stories/routines-list-groups.stories.tsx) | `routines/definition`, `routines/management` | unreviewed / production / fixtures | 1 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Automation and structured work/Routines, schedules, and triggers/Product/Routines · Detail (variation C)](../../ui/storybook/stories/routines/routine-detail-c.stories.tsx) | `routines/definition`, `routines/management` | unreviewed / production / fixtures | 8 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Automation and structured work/Routines, schedules, and triggers/Product/Routines · Secrets tab](../../ui/storybook/stories/routines/routine-secrets.stories.tsx) | `routines/definition`, `secrets/runtime-delivery` | unreviewed / production / fixtures | 4 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Automation and structured work/Routines, schedules, and triggers/Product/Routines/Webhooks UX preview](../../ui/storybook/stories/routines/routine-webhooks-ux.stories.tsx) | `routines/triggers` | unreviewed / production / fixtures | 21 / 5 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Automation and structured work/Routines, schedules, and triggers/Product/Routines/Webhooks](../../ui/storybook/stories/routines/routine-webhooks.stories.tsx) | `routines/triggers` | unreviewed / production / fixtures | 16 / 14 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Automation and structured work/Routines, schedules, and triggers/Product/Routines · List (grouped cards)](../../ui/storybook/stories/routines/routines-list-groups.stories.tsx) | `routines/definition`, `routines/management` | unreviewed / production / fixtures | 1 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
## runs-adapters
@@ -312,21 +312,21 @@ Status describes product alignment; implementation describes the rendered subjec
| Story suite | Capabilities | Product / implementation / data | Stories / play functions | Review note |
| --- | --- | --- | --- | --- |
| [Onboarding/Saved connections](../../ui/storybook/stories/agent-connection-reuse.stories.tsx) | `runs-adapters/validation`, `agents/hire` | current / production / fixtures | 7 / 6 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [AI Connections/Usage limits](../../ui/storybook/stories/ai-connection-usage.stories.tsx) | `runs-adapters/validation` | unreviewed / production / fixtures | 8 / 8 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [AI Connections/Review](../../ui/storybook/stories/ai-connections.stories.tsx) | `runs-adapters/validation` | unreviewed / production / fixtures | 46 / 15 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Connectors/Pool host](../../ui/storybook/stories/connection-pool-connector.stories.tsx) | `runs-adapters/validation`, `connection-setup/catalog` | unreviewed / production / fixtures | 5 / 3 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [AI Connections/Connection pools](../../ui/storybook/stories/connection-pools.stories.tsx) | `runs-adapters/validation` | unreviewed / production / fixtures | 16 / 2 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Assistant connections/Dot Runner](../../ui/storybook/stories/dot-runner-connection.stories.tsx) | `runs-adapters/validation`, `gateways-profiles/client-connect` | unreviewed / production / fixtures | 4 / 2 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [AI Connections/Provider routing/07 Subscription sign-in](../../ui/storybook/stories/local-ai-subscription.stories.tsx) | `runs-adapters/validation` | unreviewed / production / fixtures | 4 / 3 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [AI Connections/Provider routing/00 Overview](../../ui/storybook/stories/provider-routing-00-overview.stories.tsx) | `runs-adapters/validation` | unreviewed / guide / static | 1 / 0 | Review guide retained; explanatory content does not establish runtime or production coverage. |
| [AI Connections/Provider routing/01 Onboarding](../../ui/storybook/stories/provider-routing-01-onboarding.stories.tsx) | `runs-adapters/validation` | mixed / mixed / fixtures | 6 / 3 | Design-review route uses simulated account/provider state; audit the rendered subject before treating it as the live connection flow. |
| [AI Connections/Provider routing/02 Connect](../../ui/storybook/stories/provider-routing-02-connect.stories.tsx) | `runs-adapters/validation` | mixed / mixed / fixtures | 14 / 3 | Design-review route uses simulated account/provider state; audit the rendered subject before treating it as the live connection flow. |
| [AI Connections/Provider routing/03 Agent](../../ui/storybook/stories/provider-routing-03-agent.stories.tsx) | `runs-adapters/validation` | mixed / mixed / fixtures | 34 / 7 | Design-review route uses simulated account/provider state; audit the rendered subject before treating it as the live connection flow. |
| [AI Connections/Provider routing/04 Manage](../../ui/storybook/stories/provider-routing-04-manage.stories.tsx) | `runs-adapters/validation` | mixed / mixed / fixtures | 11 / 5 | Design-review route uses simulated account/provider state; audit the rendered subject before treating it as the live connection flow. |
| [AI Connections/Provider routing/05 Recovery](../../ui/storybook/stories/provider-routing-05-recovery.stories.tsx) | `runs-adapters/validation` | mixed / mixed / fixtures | 7 / 2 | Design-review route uses simulated account/provider state; audit the rendered subject before treating it as the live connection flow. |
| [AI Connections/Provider routing/06 Production components](../../ui/storybook/stories/provider-routing-06-production.stories.tsx) | `runs-adapters/validation` | unreviewed / production / fixtures | 5 / 5 | Design-review route uses simulated account/provider state; audit the rendered subject before treating it as the live connection flow. |
| [Composer/Session goals](../../ui/storybook/stories/session-goals.stories.tsx) | `runs-adapters/session` | unreviewed / production / fixtures | 3 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Agents and reusable capabilities/Runs, harnesses, and model accounts/Onboarding/Saved connections](../../ui/storybook/stories/runs-adapters/agent-connection-reuse.stories.tsx) | `runs-adapters/validation`, `agents/hire` | current / production / fixtures | 7 / 6 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Agents and reusable capabilities/Runs, harnesses, and model accounts/AI Connections/Usage limits](../../ui/storybook/stories/runs-adapters/ai-connection-usage.stories.tsx) | `runs-adapters/validation` | unreviewed / production / fixtures | 8 / 8 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Agents and reusable capabilities/Runs, harnesses, and model accounts/AI Connections/Review](../../ui/storybook/stories/runs-adapters/ai-connections.stories.tsx) | `runs-adapters/validation` | unreviewed / production / fixtures | 46 / 15 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Agents and reusable capabilities/Runs, harnesses, and model accounts/Connectors/Pool host](../../ui/storybook/stories/runs-adapters/connection-pool-connector.stories.tsx) | `runs-adapters/validation`, `connection-setup/catalog` | unreviewed / production / fixtures | 5 / 3 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Agents and reusable capabilities/Runs, harnesses, and model accounts/AI Connections/Connection pools](../../ui/storybook/stories/runs-adapters/connection-pools.stories.tsx) | `runs-adapters/validation` | unreviewed / production / fixtures | 16 / 2 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Agents and reusable capabilities/Runs, harnesses, and model accounts/Assistant connections/Dot Runner](../../ui/storybook/stories/runs-adapters/dot-runner-connection.stories.tsx) | `runs-adapters/validation`, `gateways-profiles/client-connect` | unreviewed / production / fixtures | 4 / 2 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Agents and reusable capabilities/Runs, harnesses, and model accounts/AI Connections/Provider routing/07 Subscription sign-in](../../ui/storybook/stories/runs-adapters/local-ai-subscription.stories.tsx) | `runs-adapters/validation` | unreviewed / production / fixtures | 4 / 3 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Agents and reusable capabilities/Runs, harnesses, and model accounts/AI Connections/Provider routing/00 Overview](../../ui/storybook/stories/runs-adapters/provider-routing-00-overview.stories.tsx) | `runs-adapters/validation` | unreviewed / guide / static | 1 / 0 | Review guide retained; explanatory content does not establish runtime or production coverage. |
| [Agents and reusable capabilities/Runs, harnesses, and model accounts/AI Connections/Provider routing/01 Onboarding](../../ui/storybook/stories/runs-adapters/provider-routing-01-onboarding.stories.tsx) | `runs-adapters/validation` | mixed / mixed / fixtures | 6 / 3 | Design-review route uses simulated account/provider state; audit the rendered subject before treating it as the live connection flow. |
| [Agents and reusable capabilities/Runs, harnesses, and model accounts/AI Connections/Provider routing/02 Connect](../../ui/storybook/stories/runs-adapters/provider-routing-02-connect.stories.tsx) | `runs-adapters/validation` | mixed / mixed / fixtures | 14 / 3 | Design-review route uses simulated account/provider state; audit the rendered subject before treating it as the live connection flow. |
| [Agents and reusable capabilities/Runs, harnesses, and model accounts/AI Connections/Provider routing/03 Agent](../../ui/storybook/stories/runs-adapters/provider-routing-03-agent.stories.tsx) | `runs-adapters/validation` | mixed / mixed / fixtures | 34 / 7 | Design-review route uses simulated account/provider state; audit the rendered subject before treating it as the live connection flow. |
| [Agents and reusable capabilities/Runs, harnesses, and model accounts/AI Connections/Provider routing/04 Manage](../../ui/storybook/stories/runs-adapters/provider-routing-04-manage.stories.tsx) | `runs-adapters/validation` | mixed / mixed / fixtures | 11 / 5 | Design-review route uses simulated account/provider state; audit the rendered subject before treating it as the live connection flow. |
| [Agents and reusable capabilities/Runs, harnesses, and model accounts/AI Connections/Provider routing/05 Recovery](../../ui/storybook/stories/runs-adapters/provider-routing-05-recovery.stories.tsx) | `runs-adapters/validation` | mixed / mixed / fixtures | 7 / 2 | Design-review route uses simulated account/provider state; audit the rendered subject before treating it as the live connection flow. |
| [Agents and reusable capabilities/Runs, harnesses, and model accounts/AI Connections/Provider routing/06 Production components](../../ui/storybook/stories/runs-adapters/provider-routing-06-production.stories.tsx) | `runs-adapters/validation` | unreviewed / production / fixtures | 5 / 5 | Design-review route uses simulated account/provider state; audit the rendered subject before treating it as the live connection flow. |
| [Agents and reusable capabilities/Runs, harnesses, and model accounts/Composer/Session goals](../../ui/storybook/stories/runs-adapters/session-goals.stories.tsx) | `runs-adapters/session` | unreviewed / production / fixtures | 3 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
## secrets
@@ -334,11 +334,11 @@ Status describes product alignment; implementation describes the rendered subjec
| Story suite | Capabilities | Product / implementation / data | Stories / play functions | Review note |
| --- | --- | --- | --- | --- |
| [Task credential access/01 Notice](../../ui/storybook/stories/credential-access/01-notice.stories.tsx) | `secrets/runtime-delivery`, `recovery/diagnosis` | unreviewed / production / fixtures | 5 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Task credential access/02 Task page](../../ui/storybook/stories/credential-access/02-task-page.stories.tsx) | `secrets/runtime-delivery`, `recovery/diagnosis` | unreviewed / production / fixtures | 6 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Product/Environment Variables Editor](../../ui/storybook/stories/environment-variables-editor.stories.tsx) | `secrets/runtime-delivery` | unreviewed / production / fixtures | 11 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Product/Secrets](../../ui/storybook/stories/secrets.stories.tsx) | `secrets/company-secrets`, `secrets/vault-import` | unreviewed / production / fixtures | 4 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Product/User secrets](../../ui/storybook/stories/user-secrets.stories.tsx) | `secrets/user-secrets` | unreviewed / production / fixtures | 4 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Apps, channels, and extensions/Secrets and proposals/Task credential access/01 Notice](../../ui/storybook/stories/secrets/credential-access/01-notice.stories.tsx) | `secrets/runtime-delivery`, `recovery/diagnosis` | unreviewed / production / fixtures | 5 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Apps, channels, and extensions/Secrets and proposals/Task credential access/02 Task page](../../ui/storybook/stories/secrets/credential-access/02-task-page.stories.tsx) | `secrets/runtime-delivery`, `recovery/diagnosis` | unreviewed / production / fixtures | 6 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Apps, channels, and extensions/Secrets and proposals/Product/Environment Variables Editor](../../ui/storybook/stories/secrets/environment-variables-editor.stories.tsx) | `secrets/runtime-delivery` | unreviewed / production / fixtures | 11 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Apps, channels, and extensions/Secrets and proposals/Product/Secrets](../../ui/storybook/stories/secrets/secrets.stories.tsx) | `secrets/company-secrets`, `secrets/vault-import` | unreviewed / production / fixtures | 4 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Apps, channels, and extensions/Secrets and proposals/Product/User secrets](../../ui/storybook/stories/secrets/user-secrets.stories.tsx) | `secrets/user-secrets` | unreviewed / production / fixtures | 4 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
## skills
@@ -346,18 +346,18 @@ Status describes product alignment; implementation describes the rendered subjec
| Story suite | Capabilities | Product / implementation / data | Stories / play functions | Review note |
| --- | --- | --- | --- | --- |
| [Agent Skills/AgentSkillRow](../../ui/storybook/stories/agent-skill-row.stories.tsx) | `skills/policy` | unreviewed / production / fixtures | 5 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [QA / Agent skills edge states](../../ui/storybook/stories/agent-skills-edge.stories.tsx) | `skills/policy` | unreviewed / production / fixtures | 2 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Skill Studio/AgentsUsingSkill](../../ui/storybook/stories/agents-using-skill.stories.tsx) | `skills/policy` | unreviewed / production / fixtures | 5 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Skill Studio/EditACopy](../../ui/storybook/stories/fork-skill-flow.stories.tsx) | `skills/authoring` | unreviewed / production / fixtures | 6 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Product/Skill Studio · FrontmatterPanel](../../ui/storybook/stories/frontmatter-panel.stories.tsx) | `skills/authoring` | unreviewed / production / fixtures | 13 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Skills/GitHub sync journey](../../ui/storybook/stories/github-skills-journey.stories.tsx) | `skills/versions`, `skills/discovery` | unreviewed / production / fixtures | 14 / 3 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Skills/GitHub synced skills](../../ui/storybook/stories/github-synced-skills.stories.tsx) | `skills/versions`, `skills/discovery` | unreviewed / production / fixtures | 19 / 6 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Skills/Repository packages](../../ui/storybook/stories/repository-skill-packages/repository-skill-packages.stories.tsx) | `skills/versions`, `skills/discovery` | unreviewed / production / fixtures | 9 / 3 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Skills/Import progress](../../ui/storybook/stories/skill-import-progress.stories.tsx) | `skills/versions`, `skills/discovery` | unreviewed / production / fixtures | 6 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Product/Skills/Policy surfaces](../../ui/storybook/stories/skill-policy-surfaces.stories.tsx) | `skills/policy` | unreviewed / production / fixtures | 2 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Skills Store/Skill detail](../../ui/storybook/stories/skills-store-detail.stories.tsx) | `skills/discovery` | unreviewed / production / fixtures | 4 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Skills Store/Discovery grid](../../ui/storybook/stories/skills-store-discovery.stories.tsx) | `skills/discovery` | unreviewed / production / fixtures | 3 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Agents and reusable capabilities/Skills and Skill Studio/Agent Skills/AgentSkillRow](../../ui/storybook/stories/skills/agent-skill-row.stories.tsx) | `skills/policy` | unreviewed / production / fixtures | 5 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Agents and reusable capabilities/Skills and Skill Studio/QA / Agent skills edge states](../../ui/storybook/stories/skills/agent-skills-edge.stories.tsx) | `skills/policy` | unreviewed / production / fixtures | 2 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Agents and reusable capabilities/Skills and Skill Studio/Skill Studio/AgentsUsingSkill](../../ui/storybook/stories/skills/agents-using-skill.stories.tsx) | `skills/policy` | unreviewed / production / fixtures | 5 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Agents and reusable capabilities/Skills and Skill Studio/Skill Studio/EditACopy](../../ui/storybook/stories/skills/fork-skill-flow.stories.tsx) | `skills/authoring` | unreviewed / production / fixtures | 6 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Agents and reusable capabilities/Skills and Skill Studio/Product/Skill Studio · FrontmatterPanel](../../ui/storybook/stories/skills/frontmatter-panel.stories.tsx) | `skills/authoring` | unreviewed / production / fixtures | 13 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Agents and reusable capabilities/Skills and Skill Studio/Skills/GitHub sync journey](../../ui/storybook/stories/skills/github-skills-journey.stories.tsx) | `skills/versions`, `skills/discovery` | unreviewed / production / fixtures | 14 / 3 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Agents and reusable capabilities/Skills and Skill Studio/Skills/GitHub synced skills](../../ui/storybook/stories/skills/github-synced-skills.stories.tsx) | `skills/versions`, `skills/discovery` | unreviewed / production / fixtures | 19 / 6 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Agents and reusable capabilities/Skills and Skill Studio/Skills/Repository packages](../../ui/storybook/stories/skills/repository-skill-packages/repository-skill-packages.stories.tsx) | `skills/versions`, `skills/discovery` | unreviewed / production / fixtures | 9 / 3 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Agents and reusable capabilities/Skills and Skill Studio/Skills/Import progress](../../ui/storybook/stories/skills/skill-import-progress.stories.tsx) | `skills/versions`, `skills/discovery` | unreviewed / production / fixtures | 6 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Agents and reusable capabilities/Skills and Skill Studio/Product/Skills/Policy surfaces](../../ui/storybook/stories/skills/skill-policy-surfaces.stories.tsx) | `skills/policy` | unreviewed / production / fixtures | 2 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Agents and reusable capabilities/Skills and Skill Studio/Skills Store/Skill detail](../../ui/storybook/stories/skills/skills-store-detail.stories.tsx) | `skills/discovery` | unreviewed / production / fixtures | 4 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Agents and reusable capabilities/Skills and Skill Studio/Skills Store/Discovery grid](../../ui/storybook/stories/skills/skills-store-discovery.stories.tsx) | `skills/discovery` | unreviewed / production / fixtures | 3 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
## steering
@@ -365,10 +365,10 @@ Status describes product alignment; implementation describes the rendered subjec
| Story suite | Capabilities | Product / implementation / data | Stories / play functions | Review note |
| --- | --- | --- | --- | --- |
| [Composer/Steering and queued messages](../../ui/storybook/stories/composer-queued-messages.stories.tsx) | `steering/queue`, `steering/edit-order-discard`, `steering/steer`, `steering/interrupt` | current / production / fixtures | 6 / 1 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Surfaces/Interrupt Handoff](../../ui/storybook/stories/interrupt-handoff.stories.tsx) | `steering/interrupt` | unreviewed / production / fixtures | 5 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Composer/Paused task takeover](../../ui/storybook/stories/paused-composer.stories.tsx) | `steering/stop-and-pause` | historical / prototype / fixtures | 8 / 0 | Retained local paused takeover; task-execution-controls exercises the shipped pause/stop controls. |
| [Composer/Execution controls](../../ui/storybook/stories/task-execution-controls.stories.tsx) | `steering/stop-and-pause` | current / production / fixtures | 22 / 6 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Tasks and conversations/Steering and queued messages/Composer/Steering and queued messages](../../ui/storybook/stories/steering/composer-queued-messages.stories.tsx) | `steering/queue`, `steering/edit-order-discard`, `steering/steer`, `steering/interrupt` | current / production / fixtures | 6 / 1 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Tasks and conversations/Steering and queued messages/Surfaces/Interrupt Handoff](../../ui/storybook/stories/steering/interrupt-handoff.stories.tsx) | `steering/interrupt` | unreviewed / production / fixtures | 5 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Tasks and conversations/Steering and queued messages/Composer/Paused task takeover](../../ui/storybook/stories/steering/paused-composer.stories.tsx) | `steering/stop-and-pause` | historical / prototype / fixtures | 8 / 0 | Retained local paused takeover; task-execution-controls exercises the shipped pause/stop controls. |
| [Tasks and conversations/Steering and queued messages/Composer/Execution controls](../../ui/storybook/stories/steering/task-execution-controls.stories.tsx) | `steering/stop-and-pause` | current / production / fixtures | 22 / 6 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
## task-coordination
@@ -376,11 +376,11 @@ Status describes product alignment; implementation describes the rendered subjec
| Story suite | Capabilities | Product / implementation / data | Stories / play functions | Review note |
| --- | --- | --- | --- | --- |
| [Product/Decisions/Stalled review actions](../../ui/storybook/stories/issue-review-panel.stories.tsx) | `task-coordination/signoff` | unreviewed / production / fixtures | 2 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Product/Issue Monitor surfaces](../../ui/storybook/stories/monitor-surfaces.stories.tsx) | `task-coordination/tree-control` | unreviewed / production / fixtures | 1 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [UX Labs/Tasks Created From a Task](../../ui/storybook/stories/originating-tasks.stories.tsx) | `task-coordination/delegation`, `projects/task-context` | unreviewed / production / fixtures | 14 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [UX Labs/Sub-issues Workflow Checklist](../../ui/storybook/stories/sub-issues-workflow.stories.tsx) | `task-coordination/dependencies`, `task-coordination/delegation` | unreviewed / production / fixtures | 1 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Product/Task Watchdog surfaces](../../ui/storybook/stories/task-watchdog-surfaces.stories.tsx) | `task-coordination/tree-control` | unreviewed / production / fixtures | 1 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Tasks and conversations/Delegation, dependencies, and signoff/Product/Decisions/Stalled review actions](../../ui/storybook/stories/task-coordination/issue-review-panel.stories.tsx) | `task-coordination/signoff` | unreviewed / production / fixtures | 2 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Tasks and conversations/Delegation, dependencies, and signoff/Product/Issue Monitor surfaces](../../ui/storybook/stories/task-coordination/monitor-surfaces.stories.tsx) | `task-coordination/tree-control` | unreviewed / production / fixtures | 1 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Tasks and conversations/Delegation, dependencies, and signoff/UX Labs/Tasks Created From a Task](../../ui/storybook/stories/task-coordination/originating-tasks.stories.tsx) | `task-coordination/delegation`, `projects/task-context` | unreviewed / production / fixtures | 14 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Tasks and conversations/Delegation, dependencies, and signoff/UX Labs/Sub-issues Workflow Checklist](../../ui/storybook/stories/task-coordination/sub-issues-workflow.stories.tsx) | `task-coordination/dependencies`, `task-coordination/delegation` | unreviewed / production / fixtures | 1 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Tasks and conversations/Delegation, dependencies, and signoff/Product/Task Watchdog surfaces](../../ui/storybook/stories/task-coordination/task-watchdog-surfaces.stories.tsx) | `task-coordination/tree-control` | unreviewed / production / fixtures | 1 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
## tasks
@@ -388,27 +388,27 @@ Status describes product alignment; implementation describes the rendered subjec
| Story suite | Capabilities | Product / implementation / data | Stories / play functions | Review note |
| --- | --- | --- | --- | --- |
| [Paperclip/Assigned Backlog Safeguards](../../ui/storybook/stories/assigned-backlog-safeguards.stories.tsx) | `tasks/completion`, `recovery/diagnosis` | unreviewed / production / fixtures | 5 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Product/Chat & Comments](../../ui/storybook/stories/chat-comments.stories.tsx) | `tasks/discussion`, `runs-adapters/runs` | unreviewed / production / fixtures | 6 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Tasks/Completed activity preview](../../ui/storybook/stories/completed-activity.stories.tsx) | `tasks/discussion`, `runs-adapters/runs` | current / production / fixtures | 8 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Composer/Add menu](../../ui/storybook/stories/composer-add-menu.stories.tsx) | `tasks/create` | unreviewed / production / fixtures | 14 / 14 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Composer/Mobile assignee picker](../../ui/storybook/stories/composer-mobile-assignee.stories.tsx) | `tasks/create`, `runs-adapters/availability` | unreviewed / production / fixtures | 3 / 1 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Composer/Model and effort picker](../../ui/storybook/stories/composer-model-picker.stories.tsx) | `tasks/create`, `runs-adapters/availability` | mixed / mixed / fixtures | 57 / 30 | Most examples use a local picker implementation; live picker examples use ComposerRunSettingsLiveStory. Do not count the whole suite as production parity. |
| [Product/Control Plane Surfaces](../../ui/storybook/stories/control-plane-surfaces.stories.tsx) | `tasks/organize`, `questions-and-approvals/governance`, `budgets-costs/budgets`, `activity/activity` | unreviewed / production / fixtures | 1 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Product/Dialogs & Modals](../../ui/storybook/stories/dialogs-modals.stories.tsx) | `tasks/create`, `agents/hire`, `projects/lifecycle`, `goals/hierarchy` | unreviewed / production / fixtures | 17 / 2 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Foundations/External Objects](../../ui/storybook/stories/external-objects.stories.tsx) | `tasks/properties` | unreviewed / production / fixtures | 8 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Product/Issue Management](../../ui/storybook/stories/issue-management.stories.tsx) | `tasks/properties`, `tasks/organize` | unreviewed / production / fixtures | 8 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Components/Entity pickers/Mobile](../../ui/storybook/stories/mobile-entity-pickers.stories.tsx) | `tasks/create` | unreviewed / production / fixtures | 3 / 1 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Composer/New task](../../ui/storybook/stories/new-task-composer.stories.tsx) | `tasks/create` | current / production / fixtures | 40 / 25 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Tasks/Runner activity preview](../../ui/storybook/stories/runner-activity.stories.tsx) | `tasks/discussion`, `runs-adapters/runs` | current / production / fixtures | 14 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Paperclip/Successful Run Handoff](../../ui/storybook/stories/successful-run-handoff.stories.tsx) | `tasks/completion`, `recovery/diagnosis` | unreviewed / production / fixtures | 7 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Tasks/Task chat review fixes](../../ui/storybook/stories/task-chat-chain-of-thought.stories.tsx) | `tasks/discussion`, `runs-adapters/runs` | unreviewed / production / fixtures | 4 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Task chat/Mobile streaming follow](../../ui/storybook/stories/task-chat-mobile-follow.stories.tsx) | `tasks/discussion` | unreviewed / production / fixtures | 1 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Product/Task chat/System notice](../../ui/storybook/stories/task-chat-system-notice.stories.tsx) | `tasks/discussion` | unreviewed / production / fixtures | 2 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Tasks/Context notices](../../ui/storybook/stories/task-context-notices.stories.tsx) | `tasks/discussion` | unreviewed / production / fixtures | 1 / 1 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Chat & Comments/Human identity/00 Review guide](../../ui/storybook/stories/thread-human-identity/00-evidence.stories.tsx) | `tasks/discussion` | unreviewed / guide / static | 1 / 0 | Review guide retained; explanatory content does not establish runtime or production coverage. |
| [Chat & Comments/Human identity/01 Components](../../ui/storybook/stories/thread-human-identity/01-components.stories.tsx) | `tasks/discussion` | unreviewed / production / fixtures | 5 / 2 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Chat & Comments/Human identity/02 Mixed-author journey](../../ui/storybook/stories/thread-human-identity/02-task-journey.stories.tsx) | `tasks/discussion` | unreviewed / production / fixtures | 5 / 2 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Tasks and conversations/Task creation and lifecycle/Paperclip/Assigned Backlog Safeguards](../../ui/storybook/stories/tasks/assigned-backlog-safeguards.stories.tsx) | `tasks/completion`, `recovery/diagnosis` | unreviewed / production / fixtures | 5 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Tasks and conversations/Task creation and lifecycle/Product/Chat & Comments](../../ui/storybook/stories/tasks/chat-comments.stories.tsx) | `tasks/discussion`, `runs-adapters/runs` | unreviewed / production / fixtures | 6 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Tasks and conversations/Task creation and lifecycle/Tasks/Completed activity preview](../../ui/storybook/stories/tasks/completed-activity.stories.tsx) | `tasks/discussion`, `runs-adapters/runs` | current / production / fixtures | 8 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Tasks and conversations/Task creation and lifecycle/Composer/Add menu](../../ui/storybook/stories/tasks/composer-add-menu.stories.tsx) | `tasks/create` | unreviewed / production / fixtures | 14 / 14 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Tasks and conversations/Task creation and lifecycle/Composer/Mobile assignee picker](../../ui/storybook/stories/tasks/composer-mobile-assignee.stories.tsx) | `tasks/create`, `runs-adapters/availability` | unreviewed / production / fixtures | 3 / 1 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Tasks and conversations/Task creation and lifecycle/Composer/Model and effort picker](../../ui/storybook/stories/tasks/composer-model-picker.stories.tsx) | `tasks/create`, `runs-adapters/availability` | mixed / mixed / fixtures | 57 / 30 | Most examples use a local picker implementation; live picker examples use ComposerRunSettingsLiveStory. Do not count the whole suite as production parity. |
| [Tasks and conversations/Task creation and lifecycle/Product/Control Plane Surfaces](../../ui/storybook/stories/tasks/control-plane-surfaces.stories.tsx) | `tasks/organize`, `questions-and-approvals/governance`, `budgets-costs/budgets`, `activity/activity` | unreviewed / production / fixtures | 1 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Tasks and conversations/Task creation and lifecycle/Product/Dialogs & Modals](../../ui/storybook/stories/tasks/dialogs-modals.stories.tsx) | `tasks/create`, `agents/hire`, `projects/lifecycle`, `goals/hierarchy` | unreviewed / production / fixtures | 17 / 2 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Tasks and conversations/Task creation and lifecycle/External Objects](../../ui/storybook/stories/tasks/external-objects.stories.tsx) | `tasks/properties` | unreviewed / production / fixtures | 8 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Tasks and conversations/Task creation and lifecycle/Product/Issue Management](../../ui/storybook/stories/tasks/issue-management.stories.tsx) | `tasks/properties`, `tasks/organize` | unreviewed / production / fixtures | 8 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Tasks and conversations/Task creation and lifecycle/Components/Entity pickers/Mobile](../../ui/storybook/stories/tasks/mobile-entity-pickers.stories.tsx) | `tasks/create` | unreviewed / production / fixtures | 3 / 1 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Tasks and conversations/Task creation and lifecycle/Composer/New task](../../ui/storybook/stories/tasks/new-task-composer.stories.tsx) | `tasks/create` | current / production / fixtures | 40 / 25 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Tasks and conversations/Task creation and lifecycle/Tasks/Runner activity preview](../../ui/storybook/stories/tasks/runner-activity.stories.tsx) | `tasks/discussion`, `runs-adapters/runs` | current / production / fixtures | 14 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Tasks and conversations/Task creation and lifecycle/Paperclip/Successful Run Handoff](../../ui/storybook/stories/tasks/successful-run-handoff.stories.tsx) | `tasks/completion`, `recovery/diagnosis` | unreviewed / production / fixtures | 7 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Tasks and conversations/Task creation and lifecycle/Tasks/Task chat review fixes](../../ui/storybook/stories/tasks/task-chat-chain-of-thought.stories.tsx) | `tasks/discussion`, `runs-adapters/runs` | unreviewed / production / fixtures | 4 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Tasks and conversations/Task creation and lifecycle/Task chat/Mobile streaming follow](../../ui/storybook/stories/tasks/task-chat-mobile-follow.stories.tsx) | `tasks/discussion` | unreviewed / production / fixtures | 1 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Tasks and conversations/Task creation and lifecycle/Product/Task chat/System notice](../../ui/storybook/stories/tasks/task-chat-system-notice.stories.tsx) | `tasks/discussion` | unreviewed / production / fixtures | 2 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Tasks and conversations/Task creation and lifecycle/Tasks/Context notices](../../ui/storybook/stories/tasks/task-context-notices.stories.tsx) | `tasks/discussion` | unreviewed / production / fixtures | 1 / 1 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Tasks and conversations/Task creation and lifecycle/Chat & Comments/Human identity/00 Review guide](../../ui/storybook/stories/tasks/thread-human-identity/00-evidence.stories.tsx) | `tasks/discussion` | unreviewed / guide / static | 1 / 0 | Review guide retained; explanatory content does not establish runtime or production coverage. |
| [Tasks and conversations/Task creation and lifecycle/Chat & Comments/Human identity/01 Components](../../ui/storybook/stories/tasks/thread-human-identity/01-components.stories.tsx) | `tasks/discussion` | unreviewed / production / fixtures | 5 / 2 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Tasks and conversations/Task creation and lifecycle/Chat & Comments/Human identity/02 Mixed-author journey](../../ui/storybook/stories/tasks/thread-human-identity/02-task-journey.stories.tsx) | `tasks/discussion` | unreviewed / production / fixtures | 5 / 2 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
## teams
@@ -416,7 +416,7 @@ Status describes product alignment; implementation describes the rendered subjec
| Story suite | Capabilities | Product / implementation / data | Stories / play functions | Review note |
| --- | --- | --- | --- | --- |
| [Surfaces/Team Catalog](../../ui/storybook/stories/team-catalog.stories.tsx) | `teams/preview`, `teams/discovery` | unreviewed / production / fixtures | 12 / 0 | Renders shipped TeamCatalog source, but feature map documents current CLI/API access and no top-level catalog route. |
| [Agents and reusable capabilities/Team packages and installation/Surfaces/Team Catalog](../../ui/storybook/stories/teams/team-catalog.stories.tsx) | `teams/preview`, `teams/discovery` | unreviewed / production / fixtures | 12 / 0 | Renders shipped TeamCatalog source, but feature map documents current CLI/API access and no top-level catalog route. |
## workspaces
@@ -424,112 +424,112 @@ Status describes product alignment; implementation describes the rendered subjec
| Story suite | Capabilities | Product / implementation / data | Stories / play functions | Review note |
| --- | --- | --- | --- | --- |
| [Tasks/Browser Use/Task activity](../../ui/storybook/stories/browser-use-activity.stories.tsx) | `workspaces/services`, `tasks/discussion` | unreviewed / production / fixtures | 7 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Tasks/Browser Use/Footer](../../ui/storybook/stories/browser-use-footer.stories.tsx) | `workspaces/services`, `tasks/discussion` | unreviewed / production / fixtures | 21 / 2 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Tasks/Browser Use/Panel](../../ui/storybook/stories/browser-use.stories.tsx) | `workspaces/services`, `tasks/discussion` | unreviewed / production / fixtures | 28 / 3 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Components/SearchableSelect/Workspace picker](../../ui/storybook/stories/searchable-select.stories.tsx) | `workspaces/binding` | unreviewed / production / fixtures | 9 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Issue/Workspace File Browser](../../ui/storybook/stories/workspace-file-browser.stories.tsx) | `workspaces/files-git` | unreviewed / production / fixtures | 6 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Workspaces/Runtime provisioning status](../../ui/storybook/stories/workspace-runtime-provisioning.stories.tsx) | `workspaces/provisioning` | unreviewed / production / fixtures | 6 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Workspaces/Service control bar](../../ui/storybook/stories/workspace-service-control-bar.stories.tsx) | `workspaces/services` | unreviewed / production / fixtures | 16 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Projects and execution/Workspaces, services, and files/Tasks/Browser Use/Task activity](../../ui/storybook/stories/workspaces/browser-use-activity.stories.tsx) | `workspaces/services`, `tasks/discussion` | unreviewed / production / fixtures | 7 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Projects and execution/Workspaces, services, and files/Tasks/Browser Use/Footer](../../ui/storybook/stories/workspaces/browser-use-footer.stories.tsx) | `workspaces/services`, `tasks/discussion` | unreviewed / production / fixtures | 21 / 2 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Projects and execution/Workspaces, services, and files/Tasks/Browser Use/Panel](../../ui/storybook/stories/workspaces/browser-use.stories.tsx) | `workspaces/services`, `tasks/discussion` | unreviewed / production / fixtures | 28 / 3 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Projects and execution/Workspaces, services, and files/Components/SearchableSelect/Workspace picker](../../ui/storybook/stories/workspaces/searchable-select.stories.tsx) | `workspaces/binding` | unreviewed / production / fixtures | 9 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Projects and execution/Workspaces, services, and files/Issue/Workspace File Browser](../../ui/storybook/stories/workspaces/workspace-file-browser.stories.tsx) | `workspaces/files-git` | unreviewed / production / fixtures | 6 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Projects and execution/Workspaces, services, and files/Workspaces/Runtime provisioning status](../../ui/storybook/stories/workspaces/workspace-runtime-provisioning.stories.tsx) | `workspaces/provisioning` | unreviewed / production / fixtures | 6 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
| [Projects and execution/Workspaces, services, and files/Workspaces/Service control bar](../../ui/storybook/stories/workspaces/workspace-service-control-bar.stories.tsx) | `workspaces/services` | unreviewed / production / fixtures | 16 / 0 | Shipped subjects identified through imports and local wrappers; full state, fixture-contract and route parity remain unreviewed. |
## Capability lookup
References are navigation links, not proof of parity. An absent link means no cataloged story, not a missing product feature. CLI/operator capabilities may need no Storybook example.
- `access/login`: No cataloged story.
- `access/invitations`: [Onboarding/External agent invitation/Components](../../ui/storybook/stories/external-agent-invite/components.stories.tsx) (unreviewed), [Onboarding/External agent invitation/Journeys](../../ui/storybook/stories/external-agent-invite/journeys.stories.tsx) (unreviewed)
- `access/invitations`: [Agents and reusable capabilities/Hiring, configuration, and organization/Onboarding/External agent invitation/Components](../../ui/storybook/stories/agents/external-agent-invite/components.stories.tsx) (unreviewed), [Agents and reusable capabilities/Hiring, configuration, and organization/Onboarding/External agent invitation/Journeys](../../ui/storybook/stories/agents/external-agent-invite/journeys.stories.tsx) (unreviewed)
- `access/membership`: No cataloged story.
- `access/resources`: [Private tasks/00 Review guide](../../ui/storybook/stories/private-tasks/00-review-guide.stories.tsx) (unreviewed), [Private tasks/01 Creation](../../ui/storybook/stories/private-tasks/01-creation.stories.tsx) (unreviewed), [Private tasks/02 Sharing](../../ui/storybook/stories/private-tasks/02-sharing.stories.tsx) (unreviewed), [Private tasks/03 Task actions](../../ui/storybook/stories/private-tasks/03-task-actions.stories.tsx) (unreviewed), [Private tasks/04 References and blockers](../../ui/storybook/stories/private-tasks/04-references-and-blockers.stories.tsx) (unreviewed), [Private tasks/05 Projects](../../ui/storybook/stories/private-tasks/05-projects.stories.tsx) (unreviewed), [Private tasks/06 Full product pages](../../ui/storybook/stories/private-tasks/06-full-product-pages.stories.tsx) (unreviewed), [Private tasks/07 User stories](../../ui/storybook/stories/private-tasks/07-user-stories.stories.tsx) (unreviewed)
- `access/resources`: [Getting started and access/Login, invitations, and access/Private tasks/00 Review guide](../../ui/storybook/stories/access/private-tasks/00-review-guide.stories.tsx) (unreviewed), [Getting started and access/Login, invitations, and access/Private tasks/01 Creation](../../ui/storybook/stories/access/private-tasks/01-creation.stories.tsx) (unreviewed), [Getting started and access/Login, invitations, and access/Private tasks/02 Sharing](../../ui/storybook/stories/access/private-tasks/02-sharing.stories.tsx) (unreviewed), [Getting started and access/Login, invitations, and access/Private tasks/03 Task actions](../../ui/storybook/stories/access/private-tasks/03-task-actions.stories.tsx) (unreviewed), [Getting started and access/Login, invitations, and access/Private tasks/04 References and blockers](../../ui/storybook/stories/access/private-tasks/04-references-and-blockers.stories.tsx) (unreviewed), [Getting started and access/Login, invitations, and access/Private tasks/05 Projects](../../ui/storybook/stories/access/private-tasks/05-projects.stories.tsx) (unreviewed), [Getting started and access/Login, invitations, and access/Private tasks/06 Full product pages](../../ui/storybook/stories/access/private-tasks/06-full-product-pages.stories.tsx) (unreviewed), [Getting started and access/Login, invitations, and access/Private tasks/07 User stories](../../ui/storybook/stories/access/private-tasks/07-user-stories.stories.tsx) (unreviewed)
- `access/cli-auth`: No cataloged story.
- `activity/overview`: [Product/Data Visualization & Misc](../../ui/storybook/stories/data-viz-misc.stories.tsx) (unreviewed)
- `activity/activity`: [Tools/Activity (audit feed)](../../ui/storybook/stories/activity-feed.stories.tsx) (unreviewed), [Apps/App detail · Activity (lifecycle)](../../ui/storybook/stories/app-activity-lifecycle.stories.tsx) (unreviewed), [Product/Control Plane Surfaces](../../ui/storybook/stories/control-plane-surfaces.stories.tsx) (unreviewed)
- `activity/overview`: [Oversight and operation/Dashboards and audit trails/Product/Data Visualization & Misc](../../ui/storybook/stories/activity/data-viz-misc.stories.tsx) (unreviewed)
- `activity/activity`: [Oversight and operation/Dashboards and audit trails/Tools/Activity (audit feed)](../../ui/storybook/stories/activity/activity-feed.stories.tsx) (unreviewed), [Oversight and operation/Dashboards and audit trails/Apps/App detail · Activity (lifecycle)](../../ui/storybook/stories/activity/app-activity-lifecycle.stories.tsx) (unreviewed), [Tasks and conversations/Task creation and lifecycle/Product/Control Plane Surfaces](../../ui/storybook/stories/tasks/control-plane-surfaces.stories.tsx) (unreviewed)
- `activity/runs`: No cataloged story.
- `activity/routine-audit`: No cataloged story.
- `activity/timeline`: [Pages/Work Timeline](../../ui/storybook/stories/work-timeline.stories.tsx) (unreviewed)
- `agent-chat/discovery`: [Design explorations/Agent chat sidebar/Pages](../../ui/storybook/stories/agent-chat-sidebar.stories.tsx) (current), [Design explorations/Agent chat](../../ui/storybook/stories/agent-chat.stories.tsx) (mixed), [Design explorations/Agent chat sidebar/Components](../../ui/storybook/stories/agent-conversation-sidebar.stories.tsx) (current), [Design explorations/Chat entry](../../ui/storybook/stories/chat-entry.stories.tsx) (historical), [Primary Agent/00 Review guide](../../ui/storybook/stories/primary-agent/00-review-guide.stories.tsx) (unreviewed), [Primary Agent/01 Components](../../ui/storybook/stories/primary-agent/01-components.stories.tsx) (unreviewed), [Primary Agent/02 Sidebar](../../ui/storybook/stories/primary-agent/02-sidebar.stories.tsx) (unreviewed), [Primary Agent/03 Agents](../../ui/storybook/stories/primary-agent/03-agents.stories.tsx) (unreviewed), [Primary Agent/04 New task](../../ui/storybook/stories/primary-agent/04-new-task.stories.tsx) (unreviewed), [Primary Agent/05 Chat](../../ui/storybook/stories/primary-agent/05-chat.stories.tsx) (unreviewed), [Primary Agent/06 Journeys](../../ui/storybook/stories/primary-agent/06-journeys.stories.tsx) (unreviewed), [Primary Agent/07 Confirmation](../../ui/storybook/stories/primary-agent/07-confirmation.stories.tsx) (unreviewed)
- `agent-chat/history`: [Design explorations/Agent chat sidebar/Pages](../../ui/storybook/stories/agent-chat-sidebar.stories.tsx) (current), [Chat & Comments/Agent Chat Unanswered Questions](../../ui/storybook/stories/agent-chat-unanswered-questions.stories.tsx) (unreviewed), [Design explorations/Agent chat](../../ui/storybook/stories/agent-chat.stories.tsx) (mixed), [Design explorations/Agent chat sidebar/Components](../../ui/storybook/stories/agent-conversation-sidebar.stories.tsx) (current), [Design explorations/Chat entry](../../ui/storybook/stories/chat-entry.stories.tsx) (historical)
- `activity/timeline`: [Oversight and operation/Dashboards and audit trails/Pages/Work Timeline](../../ui/storybook/stories/activity/work-timeline.stories.tsx) (unreviewed)
- `agent-chat/discovery`: [Tasks and conversations/Agent conversations and project handoff/Design explorations/Agent chat sidebar/Pages](../../ui/storybook/stories/agent-chat/agent-chat-sidebar.stories.tsx) (current), [Tasks and conversations/Agent conversations and project handoff/Design explorations/Agent chat](../../ui/storybook/stories/agent-chat/agent-chat.stories.tsx) (mixed), [Tasks and conversations/Agent conversations and project handoff/Design explorations/Agent chat sidebar/Components](../../ui/storybook/stories/agent-chat/agent-conversation-sidebar.stories.tsx) (current), [Tasks and conversations/Agent conversations and project handoff/Design explorations/Chat entry](../../ui/storybook/stories/agent-chat/chat-entry.stories.tsx) (historical), [Agents and reusable capabilities/Hiring, configuration, and organization/Primary Agent/00 Review guide](../../ui/storybook/stories/agents/primary-agent/00-review-guide.stories.tsx) (unreviewed), [Agents and reusable capabilities/Hiring, configuration, and organization/Primary Agent/01 Components](../../ui/storybook/stories/agents/primary-agent/01-components.stories.tsx) (unreviewed), [Agents and reusable capabilities/Hiring, configuration, and organization/Primary Agent/02 Sidebar](../../ui/storybook/stories/agents/primary-agent/02-sidebar.stories.tsx) (unreviewed), [Agents and reusable capabilities/Hiring, configuration, and organization/Primary Agent/03 Agents](../../ui/storybook/stories/agents/primary-agent/03-agents.stories.tsx) (unreviewed), [Agents and reusable capabilities/Hiring, configuration, and organization/Primary Agent/04 New task](../../ui/storybook/stories/agents/primary-agent/04-new-task.stories.tsx) (unreviewed), [Agents and reusable capabilities/Hiring, configuration, and organization/Primary Agent/05 Chat](../../ui/storybook/stories/agents/primary-agent/05-chat.stories.tsx) (unreviewed), [Agents and reusable capabilities/Hiring, configuration, and organization/Primary Agent/06 Journeys](../../ui/storybook/stories/agents/primary-agent/06-journeys.stories.tsx) (unreviewed), [Agents and reusable capabilities/Hiring, configuration, and organization/Primary Agent/07 Confirmation](../../ui/storybook/stories/agents/primary-agent/07-confirmation.stories.tsx) (unreviewed)
- `agent-chat/history`: [Tasks and conversations/Agent conversations and project handoff/Design explorations/Agent chat sidebar/Pages](../../ui/storybook/stories/agent-chat/agent-chat-sidebar.stories.tsx) (current), [Tasks and conversations/Questions and approvals/Chat & Comments/Agent Chat Unanswered Questions](../../ui/storybook/stories/questions-and-approvals/agent-chat-unanswered-questions.stories.tsx) (unreviewed), [Tasks and conversations/Agent conversations and project handoff/Design explorations/Agent chat](../../ui/storybook/stories/agent-chat/agent-chat.stories.tsx) (mixed), [Tasks and conversations/Agent conversations and project handoff/Design explorations/Agent chat sidebar/Components](../../ui/storybook/stories/agent-chat/agent-conversation-sidebar.stories.tsx) (current), [Tasks and conversations/Agent conversations and project handoff/Design explorations/Chat entry](../../ui/storybook/stories/agent-chat/chat-entry.stories.tsx) (historical)
- `agent-chat/handoff`: No cataloged story.
- `agent-chat/conference-room`: No cataloged story.
- `agents/hire`: [Onboarding/Saved connections](../../ui/storybook/stories/agent-connection-reuse.stories.tsx) (current), [Product/Dialogs & Modals](../../ui/storybook/stories/dialogs-modals.stories.tsx) (unreviewed), [Onboarding/External agent invitation/Components](../../ui/storybook/stories/external-agent-invite/components.stories.tsx) (unreviewed), [Onboarding/External agent invitation/Journeys](../../ui/storybook/stories/external-agent-invite/journeys.stories.tsx) (unreviewed), [Onboarding/New agent](../../ui/storybook/stories/new-agent-onboarding.stories.tsx) (historical)
- `agents/instructions`: [Pages/Agent Detail](../../ui/storybook/stories/agent-detail.stories.tsx) (unreviewed), [Agents/Persistent files](../../ui/storybook/stories/agent-files.stories.tsx) (unreviewed), [Product/Agent Management](../../ui/storybook/stories/agent-management.stories.tsx) (unreviewed), [Agents/Configuration refresh](../../ui/storybook/stories/agent-settings-redesign.stories.tsx) (mixed), [Design explorations/Connections/Agent instructions](../../ui/storybook/stories/connection-instructions.stories.tsx) (unreviewed), [Apps/Connections/Memory](../../ui/storybook/stories/memory-connectors.stories.tsx) (unreviewed)
- `agents/organization`: [Agents/Personas/Full pages](../../ui/storybook/stories/agent-persona-pages.stories.tsx) (unreviewed), [Agents/Personas](../../ui/storybook/stories/agent-personas.stories.tsx) (unreviewed), [Primary Agent/00 Review guide](../../ui/storybook/stories/primary-agent/00-review-guide.stories.tsx) (unreviewed), [Primary Agent/01 Components](../../ui/storybook/stories/primary-agent/01-components.stories.tsx) (unreviewed), [Primary Agent/02 Sidebar](../../ui/storybook/stories/primary-agent/02-sidebar.stories.tsx) (unreviewed), [Primary Agent/03 Agents](../../ui/storybook/stories/primary-agent/03-agents.stories.tsx) (unreviewed), [Primary Agent/04 New task](../../ui/storybook/stories/primary-agent/04-new-task.stories.tsx) (unreviewed), [Primary Agent/05 Chat](../../ui/storybook/stories/primary-agent/05-chat.stories.tsx) (unreviewed), [Primary Agent/06 Journeys](../../ui/storybook/stories/primary-agent/06-journeys.stories.tsx) (unreviewed), [Primary Agent/07 Confirmation](../../ui/storybook/stories/primary-agent/07-confirmation.stories.tsx) (unreviewed)
- `agents/lifecycle`: [Pages/Agent Detail](../../ui/storybook/stories/agent-detail.stories.tsx) (unreviewed), [Product/Agent Management](../../ui/storybook/stories/agent-management.stories.tsx) (unreviewed), [Agents/Configuration refresh](../../ui/storybook/stories/agent-settings-redesign.stories.tsx) (mixed)
- `agents/built-in`: [Product/Built-in Agents](../../ui/storybook/stories/built-in-agents.stories.tsx) (unreviewed), [Summaries/SummarySlotCard](../../ui/storybook/stories/summary-slot-card.stories.tsx) (unreviewed)
- `app-permissions/agent-access`: [Tools/Permitted vs Installed](../../ui/storybook/stories/permitted-vs-installed.stories.tsx) (unreviewed)
- `app-permissions/action-policy`: [Tools & Access/ActionCard](../../ui/storybook/stories/action-card.stories.tsx) (unreviewed), [Apps/Action permissions test](../../ui/storybook/stories/action-permissions-test.stories.tsx) (unreviewed), [Tools/Permitted vs Installed](../../ui/storybook/stories/permitted-vs-installed.stories.tsx) (unreviewed)
- `agents/hire`: [Agents and reusable capabilities/Runs, harnesses, and model accounts/Onboarding/Saved connections](../../ui/storybook/stories/runs-adapters/agent-connection-reuse.stories.tsx) (current), [Tasks and conversations/Task creation and lifecycle/Product/Dialogs & Modals](../../ui/storybook/stories/tasks/dialogs-modals.stories.tsx) (unreviewed), [Agents and reusable capabilities/Hiring, configuration, and organization/Onboarding/External agent invitation/Components](../../ui/storybook/stories/agents/external-agent-invite/components.stories.tsx) (unreviewed), [Agents and reusable capabilities/Hiring, configuration, and organization/Onboarding/External agent invitation/Journeys](../../ui/storybook/stories/agents/external-agent-invite/journeys.stories.tsx) (unreviewed), [Agents and reusable capabilities/Hiring, configuration, and organization/Onboarding/New agent](../../ui/storybook/stories/agents/new-agent-onboarding.stories.tsx) (historical)
- `agents/instructions`: [Agents and reusable capabilities/Hiring, configuration, and organization/Pages/Agent Detail](../../ui/storybook/stories/agents/agent-detail.stories.tsx) (unreviewed), [Agents and reusable capabilities/Hiring, configuration, and organization/Agents/Persistent files](../../ui/storybook/stories/agents/agent-files.stories.tsx) (unreviewed), [Agents and reusable capabilities/Hiring, configuration, and organization/Product/Agent Management](../../ui/storybook/stories/agents/agent-management.stories.tsx) (unreviewed), [Agents and reusable capabilities/Hiring, configuration, and organization/Agents/Configuration refresh](../../ui/storybook/stories/agents/agent-settings-redesign.stories.tsx) (mixed), [Apps, channels, and extensions/Connection setup/Design explorations/Connections/Agent instructions](../../ui/storybook/stories/connection-setup/connection-instructions.stories.tsx) (unreviewed), [Apps, channels, and extensions/Connection setup/Apps/Connections/Memory](../../ui/storybook/stories/connection-setup/memory-connectors.stories.tsx) (unreviewed)
- `agents/organization`: [Agents and reusable capabilities/Hiring, configuration, and organization/Agents/Personas/Full pages](../../ui/storybook/stories/agents/agent-persona-pages.stories.tsx) (unreviewed), [Agents and reusable capabilities/Hiring, configuration, and organization/Agents/Personas](../../ui/storybook/stories/agents/agent-personas.stories.tsx) (unreviewed), [Agents and reusable capabilities/Hiring, configuration, and organization/Primary Agent/00 Review guide](../../ui/storybook/stories/agents/primary-agent/00-review-guide.stories.tsx) (unreviewed), [Agents and reusable capabilities/Hiring, configuration, and organization/Primary Agent/01 Components](../../ui/storybook/stories/agents/primary-agent/01-components.stories.tsx) (unreviewed), [Agents and reusable capabilities/Hiring, configuration, and organization/Primary Agent/02 Sidebar](../../ui/storybook/stories/agents/primary-agent/02-sidebar.stories.tsx) (unreviewed), [Agents and reusable capabilities/Hiring, configuration, and organization/Primary Agent/03 Agents](../../ui/storybook/stories/agents/primary-agent/03-agents.stories.tsx) (unreviewed), [Agents and reusable capabilities/Hiring, configuration, and organization/Primary Agent/04 New task](../../ui/storybook/stories/agents/primary-agent/04-new-task.stories.tsx) (unreviewed), [Agents and reusable capabilities/Hiring, configuration, and organization/Primary Agent/05 Chat](../../ui/storybook/stories/agents/primary-agent/05-chat.stories.tsx) (unreviewed), [Agents and reusable capabilities/Hiring, configuration, and organization/Primary Agent/06 Journeys](../../ui/storybook/stories/agents/primary-agent/06-journeys.stories.tsx) (unreviewed), [Agents and reusable capabilities/Hiring, configuration, and organization/Primary Agent/07 Confirmation](../../ui/storybook/stories/agents/primary-agent/07-confirmation.stories.tsx) (unreviewed)
- `agents/lifecycle`: [Agents and reusable capabilities/Hiring, configuration, and organization/Pages/Agent Detail](../../ui/storybook/stories/agents/agent-detail.stories.tsx) (unreviewed), [Agents and reusable capabilities/Hiring, configuration, and organization/Product/Agent Management](../../ui/storybook/stories/agents/agent-management.stories.tsx) (unreviewed), [Agents and reusable capabilities/Hiring, configuration, and organization/Agents/Configuration refresh](../../ui/storybook/stories/agents/agent-settings-redesign.stories.tsx) (mixed)
- `agents/built-in`: [Agents and reusable capabilities/Hiring, configuration, and organization/Product/Built-in Agents](../../ui/storybook/stories/agents/built-in-agents.stories.tsx) (unreviewed), [Agents and reusable capabilities/Hiring, configuration, and organization/Summaries/SummarySlotCard](../../ui/storybook/stories/agents/summary-slot-card.stories.tsx) (unreviewed)
- `app-permissions/agent-access`: [Apps, channels, and extensions/App access and action permissions/Tools/Permitted vs Installed](../../ui/storybook/stories/app-permissions/permitted-vs-installed.stories.tsx) (unreviewed)
- `app-permissions/action-policy`: [Apps, channels, and extensions/App access and action permissions/Tools & Access/ActionCard](../../ui/storybook/stories/app-permissions/action-card.stories.tsx) (unreviewed), [Apps, channels, and extensions/App access and action permissions/Apps/Action permissions test](../../ui/storybook/stories/app-permissions/action-permissions-test.stories.tsx) (unreviewed), [Apps, channels, and extensions/App access and action permissions/Tools/Permitted vs Installed](../../ui/storybook/stories/app-permissions/permitted-vs-installed.stories.tsx) (unreviewed)
- `app-permissions/catalog-change`: No cataloged story.
- `app-permissions/test-action`: [Tools & Access/ActionCard](../../ui/storybook/stories/action-card.stories.tsx) (unreviewed), [Apps/Action permissions test](../../ui/storybook/stories/action-permissions-test.stories.tsx) (unreviewed)
- `app-permissions/account-maintenance`: [Apps/Managed accounts](../../ui/storybook/stories/apps-managed-accounts.stories.tsx) (current)
- `budgets-costs/cost-reporting`: [Product/Budget & Finance](../../ui/storybook/stories/budget-finance.stories.tsx) (unreviewed), [Costs/Subscriptions](../../ui/storybook/stories/costs/subscriptions.stories.tsx) (unreviewed), [Decision models/01 Settings](../../ui/storybook/stories/decision-models/01-settings.stories.tsx) (unreviewed), [Decision models/02 History](../../ui/storybook/stories/decision-models/02-history.stories.tsx) (unreviewed), [Decision models/03 Journey](../../ui/storybook/stories/decision-models/03-journey.stories.tsx) (unreviewed), [Fast responses/01 Settings](../../ui/storybook/stories/fast-responses/01-settings.stories.tsx) (unreviewed), [Fast responses/02 History](../../ui/storybook/stories/fast-responses/02-history.stories.tsx) (current)
- `budgets-costs/budgets`: [Product/Budget & Finance](../../ui/storybook/stories/budget-finance.stories.tsx) (unreviewed), [Product/Control Plane Surfaces](../../ui/storybook/stories/control-plane-surfaces.stories.tsx) (unreviewed), [Costs/Subscriptions](../../ui/storybook/stories/costs/subscriptions.stories.tsx) (unreviewed)
- `app-permissions/test-action`: [Apps, channels, and extensions/App access and action permissions/Tools & Access/ActionCard](../../ui/storybook/stories/app-permissions/action-card.stories.tsx) (unreviewed), [Apps, channels, and extensions/App access and action permissions/Apps/Action permissions test](../../ui/storybook/stories/app-permissions/action-permissions-test.stories.tsx) (unreviewed)
- `app-permissions/account-maintenance`: [Apps, channels, and extensions/App access and action permissions/Apps/Managed accounts](../../ui/storybook/stories/app-permissions/apps-managed-accounts.stories.tsx) (current)
- `budgets-costs/cost-reporting`: [Oversight and operation/Costs and budgets/Product/Budget & Finance](../../ui/storybook/stories/budgets-costs/budget-finance.stories.tsx) (unreviewed), [Oversight and operation/Costs and budgets/Costs/Subscriptions](../../ui/storybook/stories/budgets-costs/costs/subscriptions.stories.tsx) (unreviewed), [Getting started and access/Companies and portability/Decision models/01 Settings](../../ui/storybook/stories/companies/decision-models/01-settings.stories.tsx) (unreviewed), [Getting started and access/Companies and portability/Decision models/02 History](../../ui/storybook/stories/companies/decision-models/02-history.stories.tsx) (unreviewed), [Getting started and access/Companies and portability/Decision models/03 Journey](../../ui/storybook/stories/companies/decision-models/03-journey.stories.tsx) (unreviewed), [Getting started and access/Companies and portability/Fast responses/01 Settings](../../ui/storybook/stories/companies/fast-responses/01-settings.stories.tsx) (unreviewed), [Getting started and access/Companies and portability/Fast responses/02 History](../../ui/storybook/stories/companies/fast-responses/02-history.stories.tsx) (current)
- `budgets-costs/budgets`: [Oversight and operation/Costs and budgets/Product/Budget & Finance](../../ui/storybook/stories/budgets-costs/budget-finance.stories.tsx) (unreviewed), [Tasks and conversations/Task creation and lifecycle/Product/Control Plane Surfaces](../../ui/storybook/stories/tasks/control-plane-surfaces.stories.tsx) (unreviewed), [Oversight and operation/Costs and budgets/Costs/Subscriptions](../../ui/storybook/stories/budgets-costs/costs/subscriptions.stories.tsx) (unreviewed)
- `budgets-costs/incidents`: No cataloged story.
- `budgets-costs/resolution`: No cataloged story.
- `cases/browse`: No cataloged story.
- `cases/structure`: No cataloged story.
- `cases/history`: No cataloged story.
- `cases/task-links`: No cataloged story.
- `chat-channels/providers`: [Connections/AgentMail setup](../../ui/storybook/stories/agentmail-onboarding.stories.tsx) (unreviewed), [Connections/Chat connection actions](../../ui/storybook/stories/chat-connection-actions.stories.tsx) (unreviewed), [Connectors/GitHub bot management](../../ui/storybook/stories/github-bot-management/management.stories.tsx) (unreviewed), [Historical/GitHub chat prototypes](../../ui/storybook/stories/github-chat.stories.tsx) (historical), [Connections/GitHub and Code Review Bot](../../ui/storybook/stories/github-connections.stories.tsx) (unreviewed), [Connections/Slack/Automatic setup](../../ui/storybook/stories/slack-automatic-setup.stories.tsx) (unreviewed), [Connections/Slack/Managed setup](../../ui/storybook/stories/slack-managed-setup.stories.tsx) (unreviewed)
- `chat-channels/identity`: [Connections/Slack/Avatar in Settings](../../ui/storybook/stories/slack-avatar-settings.stories.tsx) (current), [Connections/Slack/Communication in Settings](../../ui/storybook/stories/slack-communication-settings.stories.tsx) (current)
- `chat-channels/conversation`: [Connections/AgentMail tasks](../../ui/storybook/stories/agentmail.stories.tsx) (unreviewed), [Connectors/GitHub bot management](../../ui/storybook/stories/github-bot-management/management.stories.tsx) (unreviewed), [Historical/GitHub chat prototypes](../../ui/storybook/stories/github-chat.stories.tsx) (historical), [Connections/iMessage Photon](../../ui/storybook/stories/imessage-photon.stories.tsx) (unreviewed), [Connections/Slack/Task tools](../../ui/storybook/stories/slack-tools.stories.tsx) (unreviewed)
- `chat-channels/providers`: [Apps, channels, and extensions/External chat and email/Connections/AgentMail setup](../../ui/storybook/stories/chat-channels/agentmail-onboarding.stories.tsx) (unreviewed), [Apps, channels, and extensions/External chat and email/Connections/Chat connection actions](../../ui/storybook/stories/chat-channels/chat-connection-actions.stories.tsx) (unreviewed), [Apps, channels, and extensions/External chat and email/Connectors/GitHub bot management](../../ui/storybook/stories/chat-channels/github-bot-management/management.stories.tsx) (unreviewed), [Apps, channels, and extensions/External chat and email/Historical/GitHub chat prototypes](../../ui/storybook/stories/chat-channels/github-chat.stories.tsx) (historical), [Apps, channels, and extensions/External chat and email/Connections/GitHub and Code Review Bot](../../ui/storybook/stories/chat-channels/github-connections.stories.tsx) (unreviewed), [Apps, channels, and extensions/External chat and email/Connections/Slack/Automatic setup](../../ui/storybook/stories/chat-channels/slack-automatic-setup.stories.tsx) (unreviewed), [Apps, channels, and extensions/External chat and email/Connections/Slack/Managed setup](../../ui/storybook/stories/chat-channels/slack-managed-setup.stories.tsx) (unreviewed)
- `chat-channels/identity`: [Apps, channels, and extensions/External chat and email/Connections/Slack/Avatar in Settings](../../ui/storybook/stories/chat-channels/slack-avatar-settings.stories.tsx) (current), [Apps, channels, and extensions/External chat and email/Connections/Slack/Communication in Settings](../../ui/storybook/stories/chat-channels/slack-communication-settings.stories.tsx) (current)
- `chat-channels/conversation`: [Apps, channels, and extensions/External chat and email/Connections/AgentMail tasks](../../ui/storybook/stories/chat-channels/agentmail.stories.tsx) (unreviewed), [Apps, channels, and extensions/External chat and email/Connectors/GitHub bot management](../../ui/storybook/stories/chat-channels/github-bot-management/management.stories.tsx) (unreviewed), [Apps, channels, and extensions/External chat and email/Historical/GitHub chat prototypes](../../ui/storybook/stories/chat-channels/github-chat.stories.tsx) (historical), [Apps, channels, and extensions/External chat and email/Connections/iMessage Photon](../../ui/storybook/stories/chat-channels/imessage-photon.stories.tsx) (unreviewed), [Apps, channels, and extensions/External chat and email/Connections/Slack/Task tools](../../ui/storybook/stories/chat-channels/slack-tools.stories.tsx) (unreviewed)
- `chat-channels/attachments`: No cataloged story.
- `chat-channels/lifecycle`: [Connections/AgentMail settings](../../ui/storybook/stories/agentmail-settings.stories.tsx) (unreviewed), [Connections/Chat management](../../ui/storybook/stories/chat-management/chat-management.stories.tsx) (unreviewed)
- `chat-channels/lifecycle`: [Apps, channels, and extensions/External chat and email/Connections/AgentMail settings](../../ui/storybook/stories/chat-channels/agentmail-settings.stories.tsx) (unreviewed), [Apps, channels, and extensions/External chat and email/Connections/Chat management](../../ui/storybook/stories/chat-channels/chat-management/chat-management.stories.tsx) (unreviewed)
- `cli-operations/context`: No cataloged story.
- `cli-operations/domain-commands`: No cataloged story.
- `cli-operations/outputs`: No cataloged story.
- `cli-operations/run-controls`: No cataloged story.
- `cli-operations/worktree-instances`: No cataloged story.
- `companies/selection`: No cataloged story.
- `companies/identity`: [Decision models/01 Settings](../../ui/storybook/stories/decision-models/01-settings.stories.tsx) (unreviewed), [Decision models/02 History](../../ui/storybook/stories/decision-models/02-history.stories.tsx) (unreviewed), [Decision models/03 Journey](../../ui/storybook/stories/decision-models/03-journey.stories.tsx) (unreviewed), [Fast responses/01 Settings](../../ui/storybook/stories/fast-responses/01-settings.stories.tsx) (unreviewed), [Fast responses/02 History](../../ui/storybook/stories/fast-responses/02-history.stories.tsx) (current)
- `companies/identity`: [Getting started and access/Companies and portability/Decision models/01 Settings](../../ui/storybook/stories/companies/decision-models/01-settings.stories.tsx) (unreviewed), [Getting started and access/Companies and portability/Decision models/02 History](../../ui/storybook/stories/companies/decision-models/02-history.stories.tsx) (unreviewed), [Getting started and access/Companies and portability/Decision models/03 Journey](../../ui/storybook/stories/companies/decision-models/03-journey.stories.tsx) (unreviewed), [Getting started and access/Companies and portability/Fast responses/01 Settings](../../ui/storybook/stories/companies/fast-responses/01-settings.stories.tsx) (unreviewed), [Getting started and access/Companies and portability/Fast responses/02 History](../../ui/storybook/stories/companies/fast-responses/02-history.stories.tsx) (current)
- `companies/archive`: No cataloged story.
- `companies/portability`: No cataloged story.
- `connection-setup/catalog`: [Apps/Canonical icon registry](../../ui/storybook/stories/AppLogoRegistry.stories.tsx) (unreviewed), [Apps/Catalog source selection](../../ui/storybook/stories/apps-catalog-source-selection.stories.tsx) (proposed), [Apps/Connect discoverability (PAP-11091)](../../ui/storybook/stories/apps-connect-discoverability.stories.tsx) (unreviewed), [Connectors/Pool host](../../ui/storybook/stories/connection-pool-connector.stories.tsx) (unreviewed)
- `connection-setup/identity-and-access`: [Apps/Connections/Provider choice](../../ui/storybook/stories/ConnectionProviderChoice.stories.tsx) (unreviewed), [Apps/Connect name at create time (PAP-11283)](../../ui/storybook/stories/apps-connect-name.stories.tsx) (unreviewed), [Reviews/PAP-17835 Personal connection identity](../../ui/storybook/stories/personal-connection-identity.stories.tsx) (unreviewed)
- `connection-setup/credentials`: [Apps/Connections/Arcade](../../ui/storybook/stories/ArcadeConnection.stories.tsx) (unreviewed), [Apps/Connections/Composio](../../ui/storybook/stories/ComposioConnection.stories.tsx) (unreviewed), [Apps/Connections/Executor](../../ui/storybook/stories/ExecutorConnection.stories.tsx) (unreviewed), [Apps/Connections/Zapier](../../ui/storybook/stories/ZapierConnection.stories.tsx) (unreviewed), [Connections/Browser Use Cloud/Settings](../../ui/storybook/stories/browser-use-settings.stories.tsx) (current), [Design explorations/Connections/Agent instructions](../../ui/storybook/stories/connection-instructions.stories.tsx) (unreviewed), [Apps/Enterpret connector](../../ui/storybook/stories/enterpret-connect-flow.stories.tsx) (unreviewed), [PR reviews/Fireflies and app webhooks](../../ui/storybook/stories/fireflies-pr.stories.tsx) (unreviewed), [Apps/Connections/Memory](../../ui/storybook/stories/memory-connectors.stories.tsx) (unreviewed), [Apps/Notion MCP connect flow (PAP-16650)](../../ui/storybook/stories/notion-connect-flow.stories.tsx) (unreviewed)
- `connection-setup/handoff`: [Apps/Managed Cloud OAuth handoff](../../ui/storybook/stories/managed-cloud-oauth-handoff.stories.tsx) (unreviewed)
- `connection-setup/catalog`: [Apps, channels, and extensions/Connection setup/Apps/Canonical icon registry](../../ui/storybook/stories/connection-setup/AppLogoRegistry.stories.tsx) (unreviewed), [Apps, channels, and extensions/Connection setup/Apps/Catalog source selection](../../ui/storybook/stories/connection-setup/apps-catalog-source-selection.stories.tsx) (proposed), [Apps, channels, and extensions/Connection setup/Apps/Connect discoverability (PAP-11091)](../../ui/storybook/stories/connection-setup/apps-connect-discoverability.stories.tsx) (unreviewed), [Agents and reusable capabilities/Runs, harnesses, and model accounts/Connectors/Pool host](../../ui/storybook/stories/runs-adapters/connection-pool-connector.stories.tsx) (unreviewed)
- `connection-setup/identity-and-access`: [Apps, channels, and extensions/Connection setup/Apps/Connections/Provider choice](../../ui/storybook/stories/connection-setup/ConnectionProviderChoice.stories.tsx) (unreviewed), [Apps, channels, and extensions/Connection setup/Apps/Connect name at create time (PAP-11283)](../../ui/storybook/stories/connection-setup/apps-connect-name.stories.tsx) (unreviewed), [Apps, channels, and extensions/Connection setup/Reviews/PAP-17835 Personal connection identity](../../ui/storybook/stories/connection-setup/personal-connection-identity.stories.tsx) (unreviewed)
- `connection-setup/credentials`: [Apps, channels, and extensions/Connection setup/Apps/Connections/Arcade](../../ui/storybook/stories/connection-setup/ArcadeConnection.stories.tsx) (unreviewed), [Apps, channels, and extensions/Connection setup/Apps/Connections/Composio](../../ui/storybook/stories/connection-setup/ComposioConnection.stories.tsx) (unreviewed), [Apps, channels, and extensions/Connection setup/Apps/Connections/Executor](../../ui/storybook/stories/connection-setup/ExecutorConnection.stories.tsx) (unreviewed), [Apps, channels, and extensions/Connection setup/Apps/Connections/Zapier](../../ui/storybook/stories/connection-setup/ZapierConnection.stories.tsx) (unreviewed), [Apps, channels, and extensions/Connection setup/Connections/Browser Use Cloud/Settings](../../ui/storybook/stories/connection-setup/browser-use-settings.stories.tsx) (current), [Apps, channels, and extensions/Connection setup/Design explorations/Connections/Agent instructions](../../ui/storybook/stories/connection-setup/connection-instructions.stories.tsx) (unreviewed), [Apps, channels, and extensions/Connection setup/Apps/Enterpret connector](../../ui/storybook/stories/connection-setup/enterpret-connect-flow.stories.tsx) (unreviewed), [Apps, channels, and extensions/Connection setup/PR reviews/Fireflies and app webhooks](../../ui/storybook/stories/connection-setup/fireflies-pr.stories.tsx) (unreviewed), [Apps, channels, and extensions/Connection setup/Apps/Connections/Memory](../../ui/storybook/stories/connection-setup/memory-connectors.stories.tsx) (unreviewed), [Apps, channels, and extensions/Connection setup/Apps/Notion MCP connect flow (PAP-16650)](../../ui/storybook/stories/connection-setup/notion-connect-flow.stories.tsx) (unreviewed)
- `connection-setup/handoff`: [Apps, channels, and extensions/Connection setup/Apps/Managed Cloud OAuth handoff](../../ui/storybook/stories/connection-setup/managed-cloud-oauth-handoff.stories.tsx) (unreviewed)
- `connection-setup/draft-recovery`: No cataloged story.
- `connection-setup/task-request`: [Chat & Comments/Connection Reviews](../../ui/storybook/stories/connection-reviews.stories.tsx) (unreviewed), [Connections/In-task connections](../../ui/storybook/stories/in-feed-connections.stories.tsx) (unreviewed)
- `connection-setup/channel-setup`: [Components/Agent setup prompt](../../ui/storybook/stories/agent-setup-prompt.stories.tsx) (unreviewed), [Connections/AgentMail setup](../../ui/storybook/stories/agentmail-onboarding.stories.tsx) (unreviewed), [Connections/GitHub and Code Review Bot](../../ui/storybook/stories/github-connections.stories.tsx) (unreviewed), [Connections/Slack/Automatic setup](../../ui/storybook/stories/slack-automatic-setup.stories.tsx) (unreviewed), [Connections/Slack/Managed setup](../../ui/storybook/stories/slack-managed-setup.stories.tsx) (unreviewed)
- `connection-setup/failure`: [Apps/Connections/Arcade](../../ui/storybook/stories/ArcadeConnection.stories.tsx) (unreviewed), [Apps/Connections/Composio](../../ui/storybook/stories/ComposioConnection.stories.tsx) (unreviewed), [Apps/Connections/Executor](../../ui/storybook/stories/ExecutorConnection.stories.tsx) (unreviewed), [Apps/Connections/Zapier](../../ui/storybook/stories/ZapierConnection.stories.tsx) (unreviewed), [Apps/Enterpret connector](../../ui/storybook/stories/enterpret-connect-flow.stories.tsx) (unreviewed), [Apps/Notion MCP connect flow (PAP-16650)](../../ui/storybook/stories/notion-connect-flow.stories.tsx) (unreviewed)
- `connection-setup/task-request`: [Tasks and conversations/Questions and approvals/Chat & Comments/Connection Reviews](../../ui/storybook/stories/questions-and-approvals/connection-reviews.stories.tsx) (unreviewed), [Apps, channels, and extensions/Connection setup/Connections/In-task connections](../../ui/storybook/stories/connection-setup/in-feed-connections.stories.tsx) (unreviewed)
- `connection-setup/channel-setup`: [Apps, channels, and extensions/Connection setup/Components/Agent setup prompt](../../ui/storybook/stories/connection-setup/agent-setup-prompt.stories.tsx) (unreviewed), [Apps, channels, and extensions/External chat and email/Connections/AgentMail setup](../../ui/storybook/stories/chat-channels/agentmail-onboarding.stories.tsx) (unreviewed), [Apps, channels, and extensions/External chat and email/Connections/GitHub and Code Review Bot](../../ui/storybook/stories/chat-channels/github-connections.stories.tsx) (unreviewed), [Apps, channels, and extensions/External chat and email/Connections/Slack/Automatic setup](../../ui/storybook/stories/chat-channels/slack-automatic-setup.stories.tsx) (unreviewed), [Apps, channels, and extensions/External chat and email/Connections/Slack/Managed setup](../../ui/storybook/stories/chat-channels/slack-managed-setup.stories.tsx) (unreviewed)
- `connection-setup/failure`: [Apps, channels, and extensions/Connection setup/Apps/Connections/Arcade](../../ui/storybook/stories/connection-setup/ArcadeConnection.stories.tsx) (unreviewed), [Apps, channels, and extensions/Connection setup/Apps/Connections/Composio](../../ui/storybook/stories/connection-setup/ComposioConnection.stories.tsx) (unreviewed), [Apps, channels, and extensions/Connection setup/Apps/Connections/Executor](../../ui/storybook/stories/connection-setup/ExecutorConnection.stories.tsx) (unreviewed), [Apps, channels, and extensions/Connection setup/Apps/Connections/Zapier](../../ui/storybook/stories/connection-setup/ZapierConnection.stories.tsx) (unreviewed), [Apps, channels, and extensions/Connection setup/Apps/Enterpret connector](../../ui/storybook/stories/connection-setup/enterpret-connect-flow.stories.tsx) (unreviewed), [Apps, channels, and extensions/Connection setup/Apps/Notion MCP connect flow (PAP-16650)](../../ui/storybook/stories/connection-setup/notion-connect-flow.stories.tsx) (unreviewed)
- `developer-labs/design`: No cataloged story.
- `developer-labs/interaction-labs`: [UX Labs/Converted Test Pages](../../ui/storybook/stories/ux-labs.stories.tsx) (unreviewed)
- `developer-labs/interaction-labs`: [Contributor surfaces/Developer previews and diagnostic labs/UX Labs/Converted Test Pages](../../ui/storybook/stories/developer-labs/ux-labs.stories.tsx) (unreviewed)
- `developer-labs/performance`: No cataloged story.
- `developer-labs/route-gates`: No cataloged story.
- `documents-artifacts/documents`: No cataloged story.
- `documents-artifacts/annotations`: [Product/Documents/Annotations](../../ui/storybook/stories/document-annotations.stories.tsx) (unreviewed), [Product/Document Comments](../../ui/storybook/stories/document-comments.stories.tsx) (unreviewed)
- `documents-artifacts/attachments`: [Artifact upload/01 Artifacts pane](../../ui/storybook/stories/artifact-upload/01-components.stories.tsx) (unreviewed), [Artifact upload/02 Paused task journey](../../ui/storybook/stories/artifact-upload/02-task-journey.stories.tsx) (unreviewed), [Components/CSV File Tab](../../ui/storybook/stories/csv-preview.stories.tsx) (unreviewed), [Components/File Viewer Sheet](../../ui/storybook/stories/file-viewer.stories.tsx) (unreviewed), [HTML artifacts/01 Preview](../../ui/storybook/stories/html-artifacts/01-preview.stories.tsx) (unreviewed), [HTML artifacts/02 Workspace](../../ui/storybook/stories/html-artifacts/02-workspace.stories.tsx) (unreviewed), [HTML artifacts/03 Task journey](../../ui/storybook/stories/html-artifacts/03-task-journey.stories.tsx) (unreviewed), [Tasks/Text file tabs](../../ui/storybook/stories/task-text-files.stories.tsx) (unreviewed)
- `documents-artifacts/work-products`: [Explorations/Artifact cards/Commit](../../ui/storybook/stories/artifact-cards/commit.stories.tsx) (unreviewed), [Explorations/Artifact cards/Data](../../ui/storybook/stories/artifact-cards/data.stories.tsx) (unreviewed), [Explorations/Artifact cards/Document](../../ui/storybook/stories/artifact-cards/document.stories.tsx) (unreviewed), [Explorations/Artifact cards/File](../../ui/storybook/stories/artifact-cards/file.stories.tsx) (unreviewed), [Explorations/Artifact cards/Image](../../ui/storybook/stories/artifact-cards/image.stories.tsx) (unreviewed), [Explorations/Artifact cards/Link preview](../../ui/storybook/stories/artifact-cards/link-preview.stories.tsx) (unreviewed), [Explorations/Artifact cards/Pull request](../../ui/storybook/stories/artifact-cards/pull-request.stories.tsx) (unreviewed), [Explorations/Artifact cards/Video](../../ui/storybook/stories/artifact-cards/video.stories.tsx) (unreviewed), [Pages/Artifacts](../../ui/storybook/stories/artifacts.stories.tsx) (unreviewed), [Task Chat/Rich Work Product Cards](../../ui/storybook/stories/rich-work-product-cards.stories.tsx) (unreviewed), [Tasks/Artifact Gallery](../../ui/storybook/stories/task-artifact-gallery.stories.tsx) (unreviewed)
- `documents-artifacts/library`: [Pages/Artifacts](../../ui/storybook/stories/artifacts.stories.tsx) (unreviewed), [Tasks/Artifact Gallery](../../ui/storybook/stories/task-artifact-gallery.stories.tsx) (unreviewed)
- `documents-artifacts/annotations`: [Tasks and conversations/Documents, attachments, and work products/Product/Documents/Annotations](../../ui/storybook/stories/documents-artifacts/document-annotations.stories.tsx) (unreviewed), [Tasks and conversations/Documents, attachments, and work products/Product/Document Comments](../../ui/storybook/stories/documents-artifacts/document-comments.stories.tsx) (unreviewed)
- `documents-artifacts/attachments`: [Tasks and conversations/Documents, attachments, and work products/Artifact upload/01 Artifacts pane](../../ui/storybook/stories/documents-artifacts/artifact-upload/01-components.stories.tsx) (unreviewed), [Tasks and conversations/Documents, attachments, and work products/Artifact upload/02 Paused task journey](../../ui/storybook/stories/documents-artifacts/artifact-upload/02-task-journey.stories.tsx) (unreviewed), [Tasks and conversations/Documents, attachments, and work products/Components/CSV File Tab](../../ui/storybook/stories/documents-artifacts/csv-preview.stories.tsx) (unreviewed), [Tasks and conversations/Documents, attachments, and work products/Components/File Viewer Sheet](../../ui/storybook/stories/documents-artifacts/file-viewer.stories.tsx) (unreviewed), [Tasks and conversations/Documents, attachments, and work products/HTML artifacts/01 Preview](../../ui/storybook/stories/documents-artifacts/html-artifacts/01-preview.stories.tsx) (unreviewed), [Tasks and conversations/Documents, attachments, and work products/HTML artifacts/02 Workspace](../../ui/storybook/stories/documents-artifacts/html-artifacts/02-workspace.stories.tsx) (unreviewed), [Tasks and conversations/Documents, attachments, and work products/HTML artifacts/03 Task journey](../../ui/storybook/stories/documents-artifacts/html-artifacts/03-task-journey.stories.tsx) (unreviewed), [Tasks and conversations/Documents, attachments, and work products/Tasks/Text file tabs](../../ui/storybook/stories/documents-artifacts/task-text-files.stories.tsx) (unreviewed)
- `documents-artifacts/work-products`: [Tasks and conversations/Documents, attachments, and work products/Explorations/Artifact cards/Commit](../../ui/storybook/stories/documents-artifacts/artifact-cards/commit.stories.tsx) (unreviewed), [Tasks and conversations/Documents, attachments, and work products/Explorations/Artifact cards/Data](../../ui/storybook/stories/documents-artifacts/artifact-cards/data.stories.tsx) (unreviewed), [Tasks and conversations/Documents, attachments, and work products/Explorations/Artifact cards/Document](../../ui/storybook/stories/documents-artifacts/artifact-cards/document.stories.tsx) (unreviewed), [Tasks and conversations/Documents, attachments, and work products/Explorations/Artifact cards/File](../../ui/storybook/stories/documents-artifacts/artifact-cards/file.stories.tsx) (unreviewed), [Tasks and conversations/Documents, attachments, and work products/Explorations/Artifact cards/Image](../../ui/storybook/stories/documents-artifacts/artifact-cards/image.stories.tsx) (unreviewed), [Tasks and conversations/Documents, attachments, and work products/Explorations/Artifact cards/Link preview](../../ui/storybook/stories/documents-artifacts/artifact-cards/link-preview.stories.tsx) (unreviewed), [Tasks and conversations/Documents, attachments, and work products/Explorations/Artifact cards/Pull request](../../ui/storybook/stories/documents-artifacts/artifact-cards/pull-request.stories.tsx) (unreviewed), [Tasks and conversations/Documents, attachments, and work products/Explorations/Artifact cards/Video](../../ui/storybook/stories/documents-artifacts/artifact-cards/video.stories.tsx) (unreviewed), [Tasks and conversations/Documents, attachments, and work products/Pages/Artifacts](../../ui/storybook/stories/documents-artifacts/artifacts.stories.tsx) (unreviewed), [Tasks and conversations/Documents, attachments, and work products/Task Chat/Rich Work Product Cards](../../ui/storybook/stories/documents-artifacts/rich-work-product-cards.stories.tsx) (unreviewed), [Tasks and conversations/Documents, attachments, and work products/Tasks/Artifact Gallery](../../ui/storybook/stories/documents-artifacts/task-artifact-gallery.stories.tsx) (unreviewed)
- `documents-artifacts/library`: [Tasks and conversations/Documents, attachments, and work products/Pages/Artifacts](../../ui/storybook/stories/documents-artifacts/artifacts.stories.tsx) (unreviewed), [Tasks and conversations/Documents, attachments, and work products/Tasks/Artifact Gallery](../../ui/storybook/stories/documents-artifacts/task-artifact-gallery.stories.tsx) (unreviewed)
- `execution-environments/configuration`: No cataloged story.
- `execution-environments/capabilities`: No cataloged story.
- `execution-environments/probe`: No cataloged story.
- `execution-environments/assignment`: No cataloged story.
- `execution-environments/images`: No cataloged story.
- `gateways-profiles/gateway`: [Tools/Gateways (PAP-11182)](../../ui/storybook/stories/gateways-tab.stories.tsx) (unreviewed)
- `gateways-profiles/profiles`: [Tools/Access profiles](../../ui/storybook/stories/access-profiles.stories.tsx) (unreviewed)
- `gateways-profiles/client-connect`: [Components/Agent setup prompt](../../ui/storybook/stories/agent-setup-prompt.stories.tsx) (unreviewed), [Assistant connections/Dot Runner](../../ui/storybook/stories/dot-runner-connection.stories.tsx) (unreviewed), [Assistant connections/Manage connections](../../ui/storybook/stories/public-mcp-connections.stories.tsx) (current), [Assistant connections/Consent](../../ui/storybook/stories/public-mcp-consent.stories.tsx) (current), [Assistant connections/Device authorization](../../ui/storybook/stories/public-mcp-device.stories.tsx) (current), [Assistant connections/Start here](../../ui/storybook/stories/public-mcp-journey.stories.tsx) (unreviewed), [Assistant connections/Experimental setting](../../ui/storybook/stories/public-mcp-setting.stories.tsx) (unreviewed)
- `gateways-profiles/gateway`: [Apps, channels, and extensions/Tool gateways and access profiles/Tools/Gateways (PAP-11182)](../../ui/storybook/stories/gateways-profiles/gateways-tab.stories.tsx) (unreviewed)
- `gateways-profiles/profiles`: [Apps, channels, and extensions/Tool gateways and access profiles/Tools/Access profiles](../../ui/storybook/stories/gateways-profiles/access-profiles.stories.tsx) (unreviewed)
- `gateways-profiles/client-connect`: [Apps, channels, and extensions/Connection setup/Components/Agent setup prompt](../../ui/storybook/stories/connection-setup/agent-setup-prompt.stories.tsx) (unreviewed), [Agents and reusable capabilities/Runs, harnesses, and model accounts/Assistant connections/Dot Runner](../../ui/storybook/stories/runs-adapters/dot-runner-connection.stories.tsx) (unreviewed), [Apps, channels, and extensions/Tool gateways and access profiles/Assistant connections/Manage connections](../../ui/storybook/stories/gateways-profiles/public-mcp-connections.stories.tsx) (current), [Apps, channels, and extensions/Tool gateways and access profiles/Assistant connections/Consent](../../ui/storybook/stories/gateways-profiles/public-mcp-consent.stories.tsx) (current), [Apps, channels, and extensions/Tool gateways and access profiles/Assistant connections/Device authorization](../../ui/storybook/stories/gateways-profiles/public-mcp-device.stories.tsx) (current), [Apps, channels, and extensions/Tool gateways and access profiles/Assistant connections/Start here](../../ui/storybook/stories/gateways-profiles/public-mcp-journey.stories.tsx) (unreviewed), [Apps, channels, and extensions/Tool gateways and access profiles/Assistant connections/Experimental setting](../../ui/storybook/stories/gateways-profiles/public-mcp-setting.stories.tsx) (unreviewed)
- `gateways-profiles/tokens`: No cataloged story.
- `gateways-profiles/activity`: [Tools/Activity (audit feed)](../../ui/storybook/stories/activity-feed.stories.tsx) (unreviewed), [Apps/App detail · Activity (lifecycle)](../../ui/storybook/stories/app-activity-lifecycle.stories.tsx) (unreviewed)
- `goals/hierarchy`: [Product/Dialogs & Modals](../../ui/storybook/stories/dialogs-modals.stories.tsx) (unreviewed), [Product/Projects Goals Workspaces](../../ui/storybook/stories/projects-goals-workspaces.stories.tsx) (unreviewed)
- `gateways-profiles/activity`: [Oversight and operation/Dashboards and audit trails/Tools/Activity (audit feed)](../../ui/storybook/stories/activity/activity-feed.stories.tsx) (unreviewed), [Oversight and operation/Dashboards and audit trails/Apps/App detail · Activity (lifecycle)](../../ui/storybook/stories/activity/app-activity-lifecycle.stories.tsx) (unreviewed)
- `goals/hierarchy`: [Tasks and conversations/Task creation and lifecycle/Product/Dialogs & Modals](../../ui/storybook/stories/tasks/dialogs-modals.stories.tsx) (unreviewed), [Projects and execution/Projects and repositories/Product/Projects Goals Workspaces](../../ui/storybook/stories/projects/projects-goals-workspaces.stories.tsx) (unreviewed)
- `goals/alignment`: No cataloged story.
- `goals/navigation`: No cataloged story.
- `inbox-search/views`: No cataloged story.
- `inbox-search/triage`: [Product/Inbox/Blocked tab](../../ui/storybook/stories/blocked-inbox.stories.tsx) (unreviewed)
- `inbox-search/decisions`: [Decisions/DecisionCard](../../ui/storybook/stories/decision-card.stories.tsx) (unreviewed), [Pages/Decisions Desk](../../ui/storybook/stories/decisions-desk.stories.tsx) (unreviewed), [Pages/Decisions](../../ui/storybook/stories/what-needs-me.stories.tsx) (unreviewed)
- `inbox-search/search`: [Product/Search & Command K](../../ui/storybook/stories/search.stories.tsx) (unreviewed)
- `inbox-search/triage`: [Tasks and conversations/Inbox, decisions, and search/Product/Inbox/Blocked tab](../../ui/storybook/stories/inbox-search/blocked-inbox.stories.tsx) (unreviewed)
- `inbox-search/decisions`: [Tasks and conversations/Inbox, decisions, and search/Decisions/DecisionCard](../../ui/storybook/stories/inbox-search/decision-card.stories.tsx) (unreviewed), [Tasks and conversations/Inbox, decisions, and search/Pages/Decisions Desk](../../ui/storybook/stories/inbox-search/decisions-desk.stories.tsx) (unreviewed), [Tasks and conversations/Inbox, decisions, and search/Pages/Decisions](../../ui/storybook/stories/inbox-search/what-needs-me.stories.tsx) (unreviewed)
- `inbox-search/search`: [Tasks and conversations/Inbox, decisions, and search/Product/Search & Command K](../../ui/storybook/stories/inbox-search/search.stories.tsx) (unreviewed)
- `instance-operations/install-update`: No cataloged story.
- `instance-operations/server-service`: [Product/Dev Ops Surfaces](../../ui/storybook/stories/dev-ops-surfaces.stories.tsx) (unreviewed)
- `instance-operations/server-service`: [Oversight and operation/Instance operations/Product/Dev Ops Surfaces](../../ui/storybook/stories/instance-operations/dev-ops-surfaces.stories.tsx) (unreviewed)
- `instance-operations/configuration`: No cataloged story.
- `instance-operations/diagnostics`: No cataloged story.
- `instance-operations/backup`: No cataloged story.
- `navigation-preferences/navigation`: [Prototypes/Task detail/Mobile tabs](../../ui/storybook/stories/mobile-task-tabs.stories.tsx) (proposed), [Product/Navigation & Layout](../../ui/storybook/stories/navigation-layout.stories.tsx) (unreviewed)
- `navigation-preferences/navigation`: [Oversight and operation/Navigation, profile, and announcements/Prototypes/Task detail/Mobile tabs](../../ui/storybook/stories/navigation-preferences/mobile-task-tabs.stories.tsx) (proposed), [Oversight and operation/Navigation, profile, and announcements/Product/Navigation & Layout](../../ui/storybook/stories/navigation-preferences/navigation-layout.stories.tsx) (unreviewed)
- `navigation-preferences/preferences`: No cataloged story.
- `navigation-preferences/profile`: [Agents/Personas/Full pages](../../ui/storybook/stories/agent-persona-pages.stories.tsx) (unreviewed), [Agents/Personas](../../ui/storybook/stories/agent-personas.stories.tsx) (unreviewed)
- `navigation-preferences/announcements`: [Announcements/AnnouncementCard](../../ui/storybook/stories/announcement-card.stories.tsx) (unreviewed)
- `navigation-preferences/profile`: [Agents and reusable capabilities/Hiring, configuration, and organization/Agents/Personas/Full pages](../../ui/storybook/stories/agents/agent-persona-pages.stories.tsx) (unreviewed), [Agents and reusable capabilities/Hiring, configuration, and organization/Agents/Personas](../../ui/storybook/stories/agents/agent-personas.stories.tsx) (unreviewed)
- `navigation-preferences/announcements`: [Oversight and operation/Navigation, profile, and announcements/Announcements/AnnouncementCard](../../ui/storybook/stories/navigation-preferences/announcement-card.stories.tsx) (unreviewed)
- `navigation-preferences/fallbacks`: No cataloged story.
- `onboarding/instance`: No cataloged story.
- `onboarding/company`: [Onboarding/Character](../../ui/storybook/stories/onboarding-character.stories.tsx) (unreviewed)
- `onboarding/adapter`: [Onboarding/Agent arc](../../ui/storybook/stories/onboarding-agent-arc.stories.tsx) (unreviewed), [Onboarding/Connect a model](../../ui/storybook/stories/onboarding-connect-model.stories.tsx) (historical)
- `onboarding/first-task`: [Onboarding/Agent arc](../../ui/storybook/stories/onboarding-agent-arc.stories.tsx) (unreviewed), [Onboarding/Connect a model](../../ui/storybook/stories/onboarding-connect-model.stories.tsx) (historical)
- `onboarding/company`: [Getting started and access/Onboarding and first work/Onboarding/Character](../../ui/storybook/stories/onboarding/onboarding-character.stories.tsx) (unreviewed)
- `onboarding/adapter`: [Getting started and access/Onboarding and first work/Onboarding/Agent arc](../../ui/storybook/stories/onboarding/onboarding-agent-arc.stories.tsx) (unreviewed), [Getting started and access/Onboarding and first work/Onboarding/Connect a model](../../ui/storybook/stories/onboarding/onboarding-connect-model.stories.tsx) (historical)
- `onboarding/first-task`: [Getting started and access/Onboarding and first work/Onboarding/Agent arc](../../ui/storybook/stories/onboarding/onboarding-agent-arc.stories.tsx) (unreviewed), [Getting started and access/Onboarding and first work/Onboarding/Connect a model](../../ui/storybook/stories/onboarding/onboarding-connect-model.stories.tsx) (historical)
- `onboarding/resume`: No cataloged story.
- `pipelines/stages`: No cataloged story.
- `pipelines/items`: No cataloged story.
@@ -539,71 +539,71 @@ References are navigation links, not proof of parity. An absent link means no ca
- `plugins/configuration`: No cataloged story.
- `plugins/contributions`: No cataloged story.
- `plugins/lifecycle`: No cataloged story.
- `projects/lifecycle`: [Product/Dialogs & Modals](../../ui/storybook/stories/dialogs-modals.stories.tsx) (unreviewed), [Private tasks/05 Projects](../../ui/storybook/stories/private-tasks/05-projects.stories.tsx) (unreviewed), [Private tasks/06 Full product pages](../../ui/storybook/stories/private-tasks/06-full-product-pages.stories.tsx) (unreviewed), [Product/Projects Goals Workspaces](../../ui/storybook/stories/projects-goals-workspaces.stories.tsx) (unreviewed)
- `projects/task-context`: [UX Labs/Tasks Created From a Task](../../ui/storybook/stories/originating-tasks.stories.tsx) (unreviewed)
- `projects/repositories`: [Proposals/Project repos/New project](../../ui/storybook/stories/new-project-repos.stories.tsx) (proposed), [Proposals/Project repos/Configuration](../../ui/storybook/stories/project-repos-configuration.stories.tsx) (proposed)
- `projects/defaults`: [Workspaces/Project runtime provision command](../../ui/storybook/stories/project-execution-workspace-strategy.stories.tsx) (unreviewed)
- `questions-and-approvals/questions`: [Composer/Question flow](../../ui/storybook/stories/composer-question-flow.stories.tsx) (unreviewed), [Chat & Comments/Issue Thread Interactions](../../ui/storybook/stories/issue-thread-interactions.stories.tsx) (unreviewed), [Chat & Comments/Rich ACP interactions](../../ui/storybook/stories/rich-acp-interactions.stories.tsx) (unreviewed), [Composer/Interaction above composer](../../ui/storybook/stories/task-chat-interaction-above-composer.stories.tsx) (current)
- `questions-and-approvals/dismiss-and-reopen`: [Chat & Comments/Agent Chat Unanswered Questions](../../ui/storybook/stories/agent-chat-unanswered-questions.stories.tsx) (unreviewed), [Chat & Comments/Task Chat Unanswered Questions](../../ui/storybook/stories/task-chat-unanswered-questions.stories.tsx) (unreviewed)
- `questions-and-approvals/confirmations`: [Chat & Comments/Issue Thread Interactions](../../ui/storybook/stories/issue-thread-interactions.stories.tsx) (unreviewed), [Chat & Comments/Rich ACP interactions](../../ui/storybook/stories/rich-acp-interactions.stories.tsx) (unreviewed), [Composer/Interaction above composer](../../ui/storybook/stories/task-chat-interaction-above-composer.stories.tsx) (current)
- `questions-and-approvals/plan-review`: [Issue Detail/Plan Decompositions](../../ui/storybook/stories/issue-plan-decompositions.stories.tsx) (unreviewed)
- `questions-and-approvals/audience`: [Chat & Comments/Issue Thread Interactions](../../ui/storybook/stories/issue-thread-interactions.stories.tsx) (unreviewed), [Chat & Comments/Rich ACP interactions](../../ui/storybook/stories/rich-acp-interactions.stories.tsx) (unreviewed), [Composer/Interaction above composer](../../ui/storybook/stories/task-chat-interaction-above-composer.stories.tsx) (current)
- `questions-and-approvals/governance`: [Product/Control Plane Surfaces](../../ui/storybook/stories/control-plane-surfaces.stories.tsx) (unreviewed)
- `questions-and-approvals/tool-review`: [Chat & Comments/Connection Reviews](../../ui/storybook/stories/connection-reviews.stories.tsx) (unreviewed)
- `projects/lifecycle`: [Tasks and conversations/Task creation and lifecycle/Product/Dialogs & Modals](../../ui/storybook/stories/tasks/dialogs-modals.stories.tsx) (unreviewed), [Getting started and access/Login, invitations, and access/Private tasks/05 Projects](../../ui/storybook/stories/access/private-tasks/05-projects.stories.tsx) (unreviewed), [Getting started and access/Login, invitations, and access/Private tasks/06 Full product pages](../../ui/storybook/stories/access/private-tasks/06-full-product-pages.stories.tsx) (unreviewed), [Projects and execution/Projects and repositories/Product/Projects Goals Workspaces](../../ui/storybook/stories/projects/projects-goals-workspaces.stories.tsx) (unreviewed)
- `projects/task-context`: [Tasks and conversations/Delegation, dependencies, and signoff/UX Labs/Tasks Created From a Task](../../ui/storybook/stories/task-coordination/originating-tasks.stories.tsx) (unreviewed)
- `projects/repositories`: [Projects and execution/Projects and repositories/Proposals/Project repos/New project](../../ui/storybook/stories/projects/new-project-repos.stories.tsx) (proposed), [Projects and execution/Projects and repositories/Proposals/Project repos/Configuration](../../ui/storybook/stories/projects/project-repos-configuration.stories.tsx) (proposed)
- `projects/defaults`: [Projects and execution/Projects and repositories/Workspaces/Project runtime provision command](../../ui/storybook/stories/projects/project-execution-workspace-strategy.stories.tsx) (unreviewed)
- `questions-and-approvals/questions`: [Tasks and conversations/Questions and approvals/Composer/Question flow](../../ui/storybook/stories/questions-and-approvals/composer-question-flow.stories.tsx) (unreviewed), [Tasks and conversations/Questions and approvals/Chat & Comments/Issue Thread Interactions](../../ui/storybook/stories/questions-and-approvals/issue-thread-interactions.stories.tsx) (unreviewed), [Tasks and conversations/Questions and approvals/Chat & Comments/Rich ACP interactions](../../ui/storybook/stories/questions-and-approvals/rich-acp-interactions.stories.tsx) (unreviewed), [Tasks and conversations/Questions and approvals/Composer/Interaction above composer](../../ui/storybook/stories/questions-and-approvals/task-chat-interaction-above-composer.stories.tsx) (current)
- `questions-and-approvals/dismiss-and-reopen`: [Tasks and conversations/Questions and approvals/Chat & Comments/Agent Chat Unanswered Questions](../../ui/storybook/stories/questions-and-approvals/agent-chat-unanswered-questions.stories.tsx) (unreviewed), [Tasks and conversations/Questions and approvals/Chat & Comments/Task Chat Unanswered Questions](../../ui/storybook/stories/questions-and-approvals/task-chat-unanswered-questions.stories.tsx) (unreviewed)
- `questions-and-approvals/confirmations`: [Tasks and conversations/Questions and approvals/Chat & Comments/Issue Thread Interactions](../../ui/storybook/stories/questions-and-approvals/issue-thread-interactions.stories.tsx) (unreviewed), [Tasks and conversations/Questions and approvals/Chat & Comments/Rich ACP interactions](../../ui/storybook/stories/questions-and-approvals/rich-acp-interactions.stories.tsx) (unreviewed), [Tasks and conversations/Questions and approvals/Composer/Interaction above composer](../../ui/storybook/stories/questions-and-approvals/task-chat-interaction-above-composer.stories.tsx) (current)
- `questions-and-approvals/plan-review`: [Tasks and conversations/Questions and approvals/Issue Detail/Plan Decompositions](../../ui/storybook/stories/questions-and-approvals/issue-plan-decompositions.stories.tsx) (unreviewed)
- `questions-and-approvals/audience`: [Tasks and conversations/Questions and approvals/Chat & Comments/Issue Thread Interactions](../../ui/storybook/stories/questions-and-approvals/issue-thread-interactions.stories.tsx) (unreviewed), [Tasks and conversations/Questions and approvals/Chat & Comments/Rich ACP interactions](../../ui/storybook/stories/questions-and-approvals/rich-acp-interactions.stories.tsx) (unreviewed), [Tasks and conversations/Questions and approvals/Composer/Interaction above composer](../../ui/storybook/stories/questions-and-approvals/task-chat-interaction-above-composer.stories.tsx) (current)
- `questions-and-approvals/governance`: [Tasks and conversations/Task creation and lifecycle/Product/Control Plane Surfaces](../../ui/storybook/stories/tasks/control-plane-surfaces.stories.tsx) (unreviewed)
- `questions-and-approvals/tool-review`: [Tasks and conversations/Questions and approvals/Chat & Comments/Connection Reviews](../../ui/storybook/stories/questions-and-approvals/connection-reviews.stories.tsx) (unreviewed)
- `questions-and-approvals/continuation`: No cataloged story.
- `recovery/diagnosis`: [Paperclip/Assigned Backlog Safeguards](../../ui/storybook/stories/assigned-backlog-safeguards.stories.tsx) (unreviewed), [Product/Inbox/Blocked tab](../../ui/storybook/stories/blocked-inbox.stories.tsx) (unreviewed), [Task credential access/01 Notice](../../ui/storybook/stories/credential-access/01-notice.stories.tsx) (unreviewed), [Task credential access/02 Task page](../../ui/storybook/stories/credential-access/02-task-page.stories.tsx) (unreviewed), [Task chat/Recovery notice](../../ui/storybook/stories/execution-blocker-notice.stories.tsx) (unreviewed), [Tasks/Execution recovery](../../ui/storybook/stories/execution-recovery.stories.tsx) (unreviewed), [Product/Issue/Blocked notice](../../ui/storybook/stories/issue-blocked-notice.stories.tsx) (unreviewed), [Design previews/Recovery notice](../../ui/storybook/stories/recovery-notice-preview.stories.tsx) (current), [Paperclip/Source Issue Recovery](../../ui/storybook/stories/source-issue-recovery.stories.tsx) (unreviewed), [Paperclip/Source-resolved Fold](../../ui/storybook/stories/source-resolved-fold.stories.tsx) (unreviewed), [Paperclip/Successful Run Handoff](../../ui/storybook/stories/successful-run-handoff.stories.tsx) (unreviewed)
- `recovery/bounded-continuation`: [Tasks/Model capacity retry](../../ui/storybook/stories/model-capacity-retry.stories.tsx) (unreviewed), [Product/Issue Scheduled retry surfaces](../../ui/storybook/stories/scheduled-retry.stories.tsx) (unreviewed)
- `recovery/source-action`: [Design previews/Recovery notice](../../ui/storybook/stories/recovery-notice-preview.stories.tsx) (current), [Paperclip/Source Issue Recovery](../../ui/storybook/stories/source-issue-recovery.stories.tsx) (unreviewed), [Paperclip/Source-resolved Fold](../../ui/storybook/stories/source-resolved-fold.stories.tsx) (unreviewed)
- `recovery/diagnosis`: [Tasks and conversations/Task creation and lifecycle/Paperclip/Assigned Backlog Safeguards](../../ui/storybook/stories/tasks/assigned-backlog-safeguards.stories.tsx) (unreviewed), [Tasks and conversations/Inbox, decisions, and search/Product/Inbox/Blocked tab](../../ui/storybook/stories/inbox-search/blocked-inbox.stories.tsx) (unreviewed), [Apps, channels, and extensions/Secrets and proposals/Task credential access/01 Notice](../../ui/storybook/stories/secrets/credential-access/01-notice.stories.tsx) (unreviewed), [Apps, channels, and extensions/Secrets and proposals/Task credential access/02 Task page](../../ui/storybook/stories/secrets/credential-access/02-task-page.stories.tsx) (unreviewed), [Projects and execution/Recovery/Task chat/Recovery notice](../../ui/storybook/stories/recovery/execution-blocker-notice.stories.tsx) (unreviewed), [Projects and execution/Recovery/Tasks/Execution recovery](../../ui/storybook/stories/recovery/execution-recovery.stories.tsx) (unreviewed), [Projects and execution/Recovery/Product/Issue/Blocked notice](../../ui/storybook/stories/recovery/issue-blocked-notice.stories.tsx) (unreviewed), [Projects and execution/Recovery/Design previews/Recovery notice](../../ui/storybook/stories/recovery/recovery-notice-preview.stories.tsx) (current), [Projects and execution/Recovery/Paperclip/Source Issue Recovery](../../ui/storybook/stories/recovery/source-issue-recovery.stories.tsx) (unreviewed), [Projects and execution/Recovery/Paperclip/Source-resolved Fold](../../ui/storybook/stories/recovery/source-resolved-fold.stories.tsx) (unreviewed), [Tasks and conversations/Task creation and lifecycle/Paperclip/Successful Run Handoff](../../ui/storybook/stories/tasks/successful-run-handoff.stories.tsx) (unreviewed)
- `recovery/bounded-continuation`: [Projects and execution/Recovery/Tasks/Model capacity retry](../../ui/storybook/stories/recovery/model-capacity-retry.stories.tsx) (unreviewed), [Projects and execution/Recovery/Product/Issue Scheduled retry surfaces](../../ui/storybook/stories/recovery/scheduled-retry.stories.tsx) (unreviewed)
- `recovery/source-action`: [Projects and execution/Recovery/Design previews/Recovery notice](../../ui/storybook/stories/recovery/recovery-notice-preview.stories.tsx) (current), [Projects and execution/Recovery/Paperclip/Source Issue Recovery](../../ui/storybook/stories/recovery/source-issue-recovery.stories.tsx) (unreviewed), [Projects and execution/Recovery/Paperclip/Source-resolved Fold](../../ui/storybook/stories/recovery/source-resolved-fold.stories.tsx) (unreviewed)
- `recovery/exhaustion`: No cataloged story.
- `recovery/workspace`: [Workspace branch recovery/01 Repair card](../../ui/storybook/stories/workspace-branch-recovery/01-component.stories.tsx) (unreviewed), [Workspace branch recovery/02 Task journey](../../ui/storybook/stories/workspace-branch-recovery/02-task-journey.stories.tsx) (unreviewed)
- `recovery/workspace`: [Projects and execution/Recovery/Workspace branch recovery/01 Repair card](../../ui/storybook/stories/recovery/workspace-branch-recovery/01-component.stories.tsx) (unreviewed), [Projects and execution/Recovery/Workspace branch recovery/02 Task journey](../../ui/storybook/stories/recovery/workspace-branch-recovery/02-task-journey.stories.tsx) (unreviewed)
- `recovery/unknown-outcome`: No cataloged story.
- `recovery/user-continuation`: No cataloged story.
- `recovery/reconnect`: [App/Connection recovery](../../ui/storybook/stories/cloud-access-recovery.stories.tsx) (unreviewed)
- `routines/definition`: [Product/Routines · Detail (variation C)](../../ui/storybook/stories/routine-detail-c.stories.tsx) (unreviewed), [Product/Routines · Secrets tab](../../ui/storybook/stories/routine-secrets.stories.tsx) (unreviewed), [Product/Routines · List (grouped cards)](../../ui/storybook/stories/routines-list-groups.stories.tsx) (unreviewed)
- `routines/triggers`: [PR reviews/Fireflies and app webhooks](../../ui/storybook/stories/fireflies-pr.stories.tsx) (unreviewed), [Product/Routines/Webhooks UX preview](../../ui/storybook/stories/routine-webhooks-ux.stories.tsx) (unreviewed), [Product/Routines/Webhooks](../../ui/storybook/stories/routine-webhooks.stories.tsx) (unreviewed)
- `recovery/reconnect`: [Projects and execution/Recovery/App/Connection recovery](../../ui/storybook/stories/recovery/cloud-access-recovery.stories.tsx) (unreviewed)
- `routines/definition`: [Automation and structured work/Routines, schedules, and triggers/Product/Routines · Detail (variation C)](../../ui/storybook/stories/routines/routine-detail-c.stories.tsx) (unreviewed), [Automation and structured work/Routines, schedules, and triggers/Product/Routines · Secrets tab](../../ui/storybook/stories/routines/routine-secrets.stories.tsx) (unreviewed), [Automation and structured work/Routines, schedules, and triggers/Product/Routines · List (grouped cards)](../../ui/storybook/stories/routines/routines-list-groups.stories.tsx) (unreviewed)
- `routines/triggers`: [Apps, channels, and extensions/Connection setup/PR reviews/Fireflies and app webhooks](../../ui/storybook/stories/connection-setup/fireflies-pr.stories.tsx) (unreviewed), [Automation and structured work/Routines, schedules, and triggers/Product/Routines/Webhooks UX preview](../../ui/storybook/stories/routines/routine-webhooks-ux.stories.tsx) (unreviewed), [Automation and structured work/Routines, schedules, and triggers/Product/Routines/Webhooks](../../ui/storybook/stories/routines/routine-webhooks.stories.tsx) (unreviewed)
- `routines/run-now`: No cataloged story.
- `routines/history`: No cataloged story.
- `routines/management`: [Product/Routines · Detail (variation C)](../../ui/storybook/stories/routine-detail-c.stories.tsx) (unreviewed), [Product/Routines · List (grouped cards)](../../ui/storybook/stories/routines-list-groups.stories.tsx) (unreviewed)
- `runs-adapters/availability`: [Composer/Mobile assignee picker](../../ui/storybook/stories/composer-mobile-assignee.stories.tsx) (unreviewed), [Composer/Model and effort picker](../../ui/storybook/stories/composer-model-picker.stories.tsx) (mixed)
- `runs-adapters/validation`: [Onboarding/Saved connections](../../ui/storybook/stories/agent-connection-reuse.stories.tsx) (current), [AI Connections/Usage limits](../../ui/storybook/stories/ai-connection-usage.stories.tsx) (unreviewed), [AI Connections/Review](../../ui/storybook/stories/ai-connections.stories.tsx) (unreviewed), [Connectors/Pool host](../../ui/storybook/stories/connection-pool-connector.stories.tsx) (unreviewed), [AI Connections/Connection pools](../../ui/storybook/stories/connection-pools.stories.tsx) (unreviewed), [Assistant connections/Dot Runner](../../ui/storybook/stories/dot-runner-connection.stories.tsx) (unreviewed), [AI Connections/Provider routing/07 Subscription sign-in](../../ui/storybook/stories/local-ai-subscription.stories.tsx) (unreviewed), [AI Connections/Provider routing/00 Overview](../../ui/storybook/stories/provider-routing-00-overview.stories.tsx) (unreviewed), [AI Connections/Provider routing/01 Onboarding](../../ui/storybook/stories/provider-routing-01-onboarding.stories.tsx) (mixed), [AI Connections/Provider routing/02 Connect](../../ui/storybook/stories/provider-routing-02-connect.stories.tsx) (mixed), [AI Connections/Provider routing/03 Agent](../../ui/storybook/stories/provider-routing-03-agent.stories.tsx) (mixed), [AI Connections/Provider routing/04 Manage](../../ui/storybook/stories/provider-routing-04-manage.stories.tsx) (mixed), [AI Connections/Provider routing/05 Recovery](../../ui/storybook/stories/provider-routing-05-recovery.stories.tsx) (mixed), [AI Connections/Provider routing/06 Production components](../../ui/storybook/stories/provider-routing-06-production.stories.tsx) (unreviewed)
- `runs-adapters/runs`: [Product/Chat & Comments](../../ui/storybook/stories/chat-comments.stories.tsx) (unreviewed), [Tasks/Completed activity preview](../../ui/storybook/stories/completed-activity.stories.tsx) (current), [Tasks/Runner activity preview](../../ui/storybook/stories/runner-activity.stories.tsx) (current), [Tasks/Task chat review fixes](../../ui/storybook/stories/task-chat-chain-of-thought.stories.tsx) (unreviewed)
- `runs-adapters/session`: [Composer/Session goals](../../ui/storybook/stories/session-goals.stories.tsx) (unreviewed)
- `secrets/company-secrets`: [Product/Secrets](../../ui/storybook/stories/secrets.stories.tsx) (unreviewed)
- `secrets/user-secrets`: [Product/User secrets](../../ui/storybook/stories/user-secrets.stories.tsx) (unreviewed)
- `routines/management`: [Automation and structured work/Routines, schedules, and triggers/Product/Routines · Detail (variation C)](../../ui/storybook/stories/routines/routine-detail-c.stories.tsx) (unreviewed), [Automation and structured work/Routines, schedules, and triggers/Product/Routines · List (grouped cards)](../../ui/storybook/stories/routines/routines-list-groups.stories.tsx) (unreviewed)
- `runs-adapters/availability`: [Tasks and conversations/Task creation and lifecycle/Composer/Mobile assignee picker](../../ui/storybook/stories/tasks/composer-mobile-assignee.stories.tsx) (unreviewed), [Tasks and conversations/Task creation and lifecycle/Composer/Model and effort picker](../../ui/storybook/stories/tasks/composer-model-picker.stories.tsx) (mixed)
- `runs-adapters/validation`: [Agents and reusable capabilities/Runs, harnesses, and model accounts/Onboarding/Saved connections](../../ui/storybook/stories/runs-adapters/agent-connection-reuse.stories.tsx) (current), [Agents and reusable capabilities/Runs, harnesses, and model accounts/AI Connections/Usage limits](../../ui/storybook/stories/runs-adapters/ai-connection-usage.stories.tsx) (unreviewed), [Agents and reusable capabilities/Runs, harnesses, and model accounts/AI Connections/Review](../../ui/storybook/stories/runs-adapters/ai-connections.stories.tsx) (unreviewed), [Agents and reusable capabilities/Runs, harnesses, and model accounts/Connectors/Pool host](../../ui/storybook/stories/runs-adapters/connection-pool-connector.stories.tsx) (unreviewed), [Agents and reusable capabilities/Runs, harnesses, and model accounts/AI Connections/Connection pools](../../ui/storybook/stories/runs-adapters/connection-pools.stories.tsx) (unreviewed), [Agents and reusable capabilities/Runs, harnesses, and model accounts/Assistant connections/Dot Runner](../../ui/storybook/stories/runs-adapters/dot-runner-connection.stories.tsx) (unreviewed), [Agents and reusable capabilities/Runs, harnesses, and model accounts/AI Connections/Provider routing/07 Subscription sign-in](../../ui/storybook/stories/runs-adapters/local-ai-subscription.stories.tsx) (unreviewed), [Agents and reusable capabilities/Runs, harnesses, and model accounts/AI Connections/Provider routing/00 Overview](../../ui/storybook/stories/runs-adapters/provider-routing-00-overview.stories.tsx) (unreviewed), [Agents and reusable capabilities/Runs, harnesses, and model accounts/AI Connections/Provider routing/01 Onboarding](../../ui/storybook/stories/runs-adapters/provider-routing-01-onboarding.stories.tsx) (mixed), [Agents and reusable capabilities/Runs, harnesses, and model accounts/AI Connections/Provider routing/02 Connect](../../ui/storybook/stories/runs-adapters/provider-routing-02-connect.stories.tsx) (mixed), [Agents and reusable capabilities/Runs, harnesses, and model accounts/AI Connections/Provider routing/03 Agent](../../ui/storybook/stories/runs-adapters/provider-routing-03-agent.stories.tsx) (mixed), [Agents and reusable capabilities/Runs, harnesses, and model accounts/AI Connections/Provider routing/04 Manage](../../ui/storybook/stories/runs-adapters/provider-routing-04-manage.stories.tsx) (mixed), [Agents and reusable capabilities/Runs, harnesses, and model accounts/AI Connections/Provider routing/05 Recovery](../../ui/storybook/stories/runs-adapters/provider-routing-05-recovery.stories.tsx) (mixed), [Agents and reusable capabilities/Runs, harnesses, and model accounts/AI Connections/Provider routing/06 Production components](../../ui/storybook/stories/runs-adapters/provider-routing-06-production.stories.tsx) (unreviewed)
- `runs-adapters/runs`: [Tasks and conversations/Task creation and lifecycle/Product/Chat & Comments](../../ui/storybook/stories/tasks/chat-comments.stories.tsx) (unreviewed), [Tasks and conversations/Task creation and lifecycle/Tasks/Completed activity preview](../../ui/storybook/stories/tasks/completed-activity.stories.tsx) (current), [Tasks and conversations/Task creation and lifecycle/Tasks/Runner activity preview](../../ui/storybook/stories/tasks/runner-activity.stories.tsx) (current), [Tasks and conversations/Task creation and lifecycle/Tasks/Task chat review fixes](../../ui/storybook/stories/tasks/task-chat-chain-of-thought.stories.tsx) (unreviewed)
- `runs-adapters/session`: [Agents and reusable capabilities/Runs, harnesses, and model accounts/Composer/Session goals](../../ui/storybook/stories/runs-adapters/session-goals.stories.tsx) (unreviewed)
- `secrets/company-secrets`: [Apps, channels, and extensions/Secrets and proposals/Product/Secrets](../../ui/storybook/stories/secrets/secrets.stories.tsx) (unreviewed)
- `secrets/user-secrets`: [Apps, channels, and extensions/Secrets and proposals/Product/User secrets](../../ui/storybook/stories/secrets/user-secrets.stories.tsx) (unreviewed)
- `secrets/proposals`: No cataloged story.
- `secrets/vault-import`: [Product/Secrets](../../ui/storybook/stories/secrets.stories.tsx) (unreviewed)
- `secrets/runtime-delivery`: [Task credential access/01 Notice](../../ui/storybook/stories/credential-access/01-notice.stories.tsx) (unreviewed), [Task credential access/02 Task page](../../ui/storybook/stories/credential-access/02-task-page.stories.tsx) (unreviewed), [Product/Environment Variables Editor](../../ui/storybook/stories/environment-variables-editor.stories.tsx) (unreviewed), [Product/Routines · Secrets tab](../../ui/storybook/stories/routine-secrets.stories.tsx) (unreviewed)
- `skills/discovery`: [Skills/GitHub sync journey](../../ui/storybook/stories/github-skills-journey.stories.tsx) (unreviewed), [Skills/GitHub synced skills](../../ui/storybook/stories/github-synced-skills.stories.tsx) (unreviewed), [Skills/Repository packages](../../ui/storybook/stories/repository-skill-packages/repository-skill-packages.stories.tsx) (unreviewed), [Skills/Import progress](../../ui/storybook/stories/skill-import-progress.stories.tsx) (unreviewed), [Skills Store/Skill detail](../../ui/storybook/stories/skills-store-detail.stories.tsx) (unreviewed), [Skills Store/Discovery grid](../../ui/storybook/stories/skills-store-discovery.stories.tsx) (unreviewed)
- `skills/authoring`: [Skill Studio/EditACopy](../../ui/storybook/stories/fork-skill-flow.stories.tsx) (unreviewed), [Product/Skill Studio · FrontmatterPanel](../../ui/storybook/stories/frontmatter-panel.stories.tsx) (unreviewed)
- `skills/versions`: [Skills/GitHub sync journey](../../ui/storybook/stories/github-skills-journey.stories.tsx) (unreviewed), [Skills/GitHub synced skills](../../ui/storybook/stories/github-synced-skills.stories.tsx) (unreviewed), [Skills/Repository packages](../../ui/storybook/stories/repository-skill-packages/repository-skill-packages.stories.tsx) (unreviewed), [Skills/Import progress](../../ui/storybook/stories/skill-import-progress.stories.tsx) (unreviewed)
- `skills/policy`: [Agent Skills/AgentSkillRow](../../ui/storybook/stories/agent-skill-row.stories.tsx) (unreviewed), [QA / Agent skills edge states](../../ui/storybook/stories/agent-skills-edge.stories.tsx) (unreviewed), [Skill Studio/AgentsUsingSkill](../../ui/storybook/stories/agents-using-skill.stories.tsx) (unreviewed), [Product/Skills/Policy surfaces](../../ui/storybook/stories/skill-policy-surfaces.stories.tsx) (unreviewed)
- `secrets/vault-import`: [Apps, channels, and extensions/Secrets and proposals/Product/Secrets](../../ui/storybook/stories/secrets/secrets.stories.tsx) (unreviewed)
- `secrets/runtime-delivery`: [Apps, channels, and extensions/Secrets and proposals/Task credential access/01 Notice](../../ui/storybook/stories/secrets/credential-access/01-notice.stories.tsx) (unreviewed), [Apps, channels, and extensions/Secrets and proposals/Task credential access/02 Task page](../../ui/storybook/stories/secrets/credential-access/02-task-page.stories.tsx) (unreviewed), [Apps, channels, and extensions/Secrets and proposals/Product/Environment Variables Editor](../../ui/storybook/stories/secrets/environment-variables-editor.stories.tsx) (unreviewed), [Automation and structured work/Routines, schedules, and triggers/Product/Routines · Secrets tab](../../ui/storybook/stories/routines/routine-secrets.stories.tsx) (unreviewed)
- `skills/discovery`: [Agents and reusable capabilities/Skills and Skill Studio/Skills/GitHub sync journey](../../ui/storybook/stories/skills/github-skills-journey.stories.tsx) (unreviewed), [Agents and reusable capabilities/Skills and Skill Studio/Skills/GitHub synced skills](../../ui/storybook/stories/skills/github-synced-skills.stories.tsx) (unreviewed), [Agents and reusable capabilities/Skills and Skill Studio/Skills/Repository packages](../../ui/storybook/stories/skills/repository-skill-packages/repository-skill-packages.stories.tsx) (unreviewed), [Agents and reusable capabilities/Skills and Skill Studio/Skills/Import progress](../../ui/storybook/stories/skills/skill-import-progress.stories.tsx) (unreviewed), [Agents and reusable capabilities/Skills and Skill Studio/Skills Store/Skill detail](../../ui/storybook/stories/skills/skills-store-detail.stories.tsx) (unreviewed), [Agents and reusable capabilities/Skills and Skill Studio/Skills Store/Discovery grid](../../ui/storybook/stories/skills/skills-store-discovery.stories.tsx) (unreviewed)
- `skills/authoring`: [Agents and reusable capabilities/Skills and Skill Studio/Skill Studio/EditACopy](../../ui/storybook/stories/skills/fork-skill-flow.stories.tsx) (unreviewed), [Agents and reusable capabilities/Skills and Skill Studio/Product/Skill Studio · FrontmatterPanel](../../ui/storybook/stories/skills/frontmatter-panel.stories.tsx) (unreviewed)
- `skills/versions`: [Agents and reusable capabilities/Skills and Skill Studio/Skills/GitHub sync journey](../../ui/storybook/stories/skills/github-skills-journey.stories.tsx) (unreviewed), [Agents and reusable capabilities/Skills and Skill Studio/Skills/GitHub synced skills](../../ui/storybook/stories/skills/github-synced-skills.stories.tsx) (unreviewed), [Agents and reusable capabilities/Skills and Skill Studio/Skills/Repository packages](../../ui/storybook/stories/skills/repository-skill-packages/repository-skill-packages.stories.tsx) (unreviewed), [Agents and reusable capabilities/Skills and Skill Studio/Skills/Import progress](../../ui/storybook/stories/skills/skill-import-progress.stories.tsx) (unreviewed)
- `skills/policy`: [Agents and reusable capabilities/Skills and Skill Studio/Agent Skills/AgentSkillRow](../../ui/storybook/stories/skills/agent-skill-row.stories.tsx) (unreviewed), [Agents and reusable capabilities/Skills and Skill Studio/QA / Agent skills edge states](../../ui/storybook/stories/skills/agent-skills-edge.stories.tsx) (unreviewed), [Agents and reusable capabilities/Skills and Skill Studio/Skill Studio/AgentsUsingSkill](../../ui/storybook/stories/skills/agents-using-skill.stories.tsx) (unreviewed), [Agents and reusable capabilities/Skills and Skill Studio/Product/Skills/Policy surfaces](../../ui/storybook/stories/skills/skill-policy-surfaces.stories.tsx) (unreviewed)
- `skills/testing`: No cataloged story.
- `status-cards/authoring`: No cataloged story.
- `status-cards/generation`: No cataloged story.
- `status-cards/inspection`: No cataloged story.
- `status-cards/archive`: No cataloged story.
- `steering/queue`: [Composer/Steering and queued messages](../../ui/storybook/stories/composer-queued-messages.stories.tsx) (current)
- `steering/edit-order-discard`: [Composer/Steering and queued messages](../../ui/storybook/stories/composer-queued-messages.stories.tsx) (current)
- `steering/steer`: [Composer/Steering and queued messages](../../ui/storybook/stories/composer-queued-messages.stories.tsx) (current)
- `steering/interrupt`: [Composer/Steering and queued messages](../../ui/storybook/stories/composer-queued-messages.stories.tsx) (current), [Surfaces/Interrupt Handoff](../../ui/storybook/stories/interrupt-handoff.stories.tsx) (unreviewed)
- `steering/stop-and-pause`: [Composer/Paused task takeover](../../ui/storybook/stories/paused-composer.stories.tsx) (historical), [Composer/Execution controls](../../ui/storybook/stories/task-execution-controls.stories.tsx) (current)
- `steering/queue`: [Tasks and conversations/Steering and queued messages/Composer/Steering and queued messages](../../ui/storybook/stories/steering/composer-queued-messages.stories.tsx) (current)
- `steering/edit-order-discard`: [Tasks and conversations/Steering and queued messages/Composer/Steering and queued messages](../../ui/storybook/stories/steering/composer-queued-messages.stories.tsx) (current)
- `steering/steer`: [Tasks and conversations/Steering and queued messages/Composer/Steering and queued messages](../../ui/storybook/stories/steering/composer-queued-messages.stories.tsx) (current)
- `steering/interrupt`: [Tasks and conversations/Steering and queued messages/Composer/Steering and queued messages](../../ui/storybook/stories/steering/composer-queued-messages.stories.tsx) (current), [Tasks and conversations/Steering and queued messages/Surfaces/Interrupt Handoff](../../ui/storybook/stories/steering/interrupt-handoff.stories.tsx) (unreviewed)
- `steering/stop-and-pause`: [Tasks and conversations/Steering and queued messages/Composer/Paused task takeover](../../ui/storybook/stories/steering/paused-composer.stories.tsx) (historical), [Tasks and conversations/Steering and queued messages/Composer/Execution controls](../../ui/storybook/stories/steering/task-execution-controls.stories.tsx) (current)
- `steering/drafts`: No cataloged story.
- `steering/approval-queue`: No cataloged story.
- `task-coordination/delegation`: [Issue Detail/Plan Decompositions](../../ui/storybook/stories/issue-plan-decompositions.stories.tsx) (unreviewed), [UX Labs/Tasks Created From a Task](../../ui/storybook/stories/originating-tasks.stories.tsx) (unreviewed), [UX Labs/Sub-issues Workflow Checklist](../../ui/storybook/stories/sub-issues-workflow.stories.tsx) (unreviewed)
- `task-coordination/dependencies`: [Product/Issue/Blocked notice](../../ui/storybook/stories/issue-blocked-notice.stories.tsx) (unreviewed), [UX Labs/Sub-issues Workflow Checklist](../../ui/storybook/stories/sub-issues-workflow.stories.tsx) (unreviewed)
- `task-coordination/signoff`: [Product/Decisions/Stalled review actions](../../ui/storybook/stories/issue-review-panel.stories.tsx) (unreviewed)
- `task-coordination/tree-control`: [Product/Issue Monitor surfaces](../../ui/storybook/stories/monitor-surfaces.stories.tsx) (unreviewed), [Product/Task Watchdog surfaces](../../ui/storybook/stories/task-watchdog-surfaces.stories.tsx) (unreviewed)
- `tasks/create`: [Composer/Add menu](../../ui/storybook/stories/composer-add-menu.stories.tsx) (unreviewed), [Composer/Mobile assignee picker](../../ui/storybook/stories/composer-mobile-assignee.stories.tsx) (unreviewed), [Composer/Model and effort picker](../../ui/storybook/stories/composer-model-picker.stories.tsx) (mixed), [Product/Dialogs & Modals](../../ui/storybook/stories/dialogs-modals.stories.tsx) (unreviewed), [Components/Entity pickers/Mobile](../../ui/storybook/stories/mobile-entity-pickers.stories.tsx) (unreviewed), [Composer/New task](../../ui/storybook/stories/new-task-composer.stories.tsx) (current), [Primary Agent/00 Review guide](../../ui/storybook/stories/primary-agent/00-review-guide.stories.tsx) (unreviewed), [Primary Agent/01 Components](../../ui/storybook/stories/primary-agent/01-components.stories.tsx) (unreviewed), [Primary Agent/02 Sidebar](../../ui/storybook/stories/primary-agent/02-sidebar.stories.tsx) (unreviewed), [Primary Agent/03 Agents](../../ui/storybook/stories/primary-agent/03-agents.stories.tsx) (unreviewed), [Primary Agent/04 New task](../../ui/storybook/stories/primary-agent/04-new-task.stories.tsx) (unreviewed), [Primary Agent/05 Chat](../../ui/storybook/stories/primary-agent/05-chat.stories.tsx) (unreviewed), [Primary Agent/06 Journeys](../../ui/storybook/stories/primary-agent/06-journeys.stories.tsx) (unreviewed), [Primary Agent/07 Confirmation](../../ui/storybook/stories/primary-agent/07-confirmation.stories.tsx) (unreviewed)
- `tasks/organize`: [Product/Control Plane Surfaces](../../ui/storybook/stories/control-plane-surfaces.stories.tsx) (unreviewed), [Product/Issue Management](../../ui/storybook/stories/issue-management.stories.tsx) (unreviewed)
- `tasks/properties`: [Foundations/External Objects](../../ui/storybook/stories/external-objects.stories.tsx) (unreviewed), [Product/Issue Management](../../ui/storybook/stories/issue-management.stories.tsx) (unreviewed), [Private tasks/00 Review guide](../../ui/storybook/stories/private-tasks/00-review-guide.stories.tsx) (unreviewed), [Private tasks/01 Creation](../../ui/storybook/stories/private-tasks/01-creation.stories.tsx) (unreviewed), [Private tasks/02 Sharing](../../ui/storybook/stories/private-tasks/02-sharing.stories.tsx) (unreviewed), [Private tasks/03 Task actions](../../ui/storybook/stories/private-tasks/03-task-actions.stories.tsx) (unreviewed), [Private tasks/04 References and blockers](../../ui/storybook/stories/private-tasks/04-references-and-blockers.stories.tsx) (unreviewed), [Private tasks/05 Projects](../../ui/storybook/stories/private-tasks/05-projects.stories.tsx) (unreviewed), [Private tasks/06 Full product pages](../../ui/storybook/stories/private-tasks/06-full-product-pages.stories.tsx) (unreviewed), [Private tasks/07 User stories](../../ui/storybook/stories/private-tasks/07-user-stories.stories.tsx) (unreviewed)
- `tasks/discussion`: [Tasks/Browser Use/Task activity](../../ui/storybook/stories/browser-use-activity.stories.tsx) (unreviewed), [Tasks/Browser Use/Footer](../../ui/storybook/stories/browser-use-footer.stories.tsx) (unreviewed), [Tasks/Browser Use/Panel](../../ui/storybook/stories/browser-use.stories.tsx) (unreviewed), [Product/Chat & Comments](../../ui/storybook/stories/chat-comments.stories.tsx) (unreviewed), [Tasks/Completed activity preview](../../ui/storybook/stories/completed-activity.stories.tsx) (current), [Tasks/Runner activity preview](../../ui/storybook/stories/runner-activity.stories.tsx) (current), [Tasks/Task chat review fixes](../../ui/storybook/stories/task-chat-chain-of-thought.stories.tsx) (unreviewed), [Task chat/Mobile streaming follow](../../ui/storybook/stories/task-chat-mobile-follow.stories.tsx) (unreviewed), [Product/Task chat/System notice](../../ui/storybook/stories/task-chat-system-notice.stories.tsx) (unreviewed), [Chat & Comments/Task Chat Unanswered Questions](../../ui/storybook/stories/task-chat-unanswered-questions.stories.tsx) (unreviewed), [Tasks/Context notices](../../ui/storybook/stories/task-context-notices.stories.tsx) (unreviewed), [Chat & Comments/Human identity/00 Review guide](../../ui/storybook/stories/thread-human-identity/00-evidence.stories.tsx) (unreviewed), [Chat & Comments/Human identity/01 Components](../../ui/storybook/stories/thread-human-identity/01-components.stories.tsx) (unreviewed), [Chat & Comments/Human identity/02 Mixed-author journey](../../ui/storybook/stories/thread-human-identity/02-task-journey.stories.tsx) (unreviewed)
- `tasks/completion`: [Paperclip/Assigned Backlog Safeguards](../../ui/storybook/stories/assigned-backlog-safeguards.stories.tsx) (unreviewed), [Paperclip/Successful Run Handoff](../../ui/storybook/stories/successful-run-handoff.stories.tsx) (unreviewed)
- `teams/discovery`: [Surfaces/Team Catalog](../../ui/storybook/stories/team-catalog.stories.tsx) (unreviewed)
- `teams/preview`: [Surfaces/Team Catalog](../../ui/storybook/stories/team-catalog.stories.tsx) (unreviewed)
- `task-coordination/delegation`: [Tasks and conversations/Questions and approvals/Issue Detail/Plan Decompositions](../../ui/storybook/stories/questions-and-approvals/issue-plan-decompositions.stories.tsx) (unreviewed), [Tasks and conversations/Delegation, dependencies, and signoff/UX Labs/Tasks Created From a Task](../../ui/storybook/stories/task-coordination/originating-tasks.stories.tsx) (unreviewed), [Tasks and conversations/Delegation, dependencies, and signoff/UX Labs/Sub-issues Workflow Checklist](../../ui/storybook/stories/task-coordination/sub-issues-workflow.stories.tsx) (unreviewed)
- `task-coordination/dependencies`: [Projects and execution/Recovery/Product/Issue/Blocked notice](../../ui/storybook/stories/recovery/issue-blocked-notice.stories.tsx) (unreviewed), [Tasks and conversations/Delegation, dependencies, and signoff/UX Labs/Sub-issues Workflow Checklist](../../ui/storybook/stories/task-coordination/sub-issues-workflow.stories.tsx) (unreviewed)
- `task-coordination/signoff`: [Tasks and conversations/Delegation, dependencies, and signoff/Product/Decisions/Stalled review actions](../../ui/storybook/stories/task-coordination/issue-review-panel.stories.tsx) (unreviewed)
- `task-coordination/tree-control`: [Tasks and conversations/Delegation, dependencies, and signoff/Product/Issue Monitor surfaces](../../ui/storybook/stories/task-coordination/monitor-surfaces.stories.tsx) (unreviewed), [Tasks and conversations/Delegation, dependencies, and signoff/Product/Task Watchdog surfaces](../../ui/storybook/stories/task-coordination/task-watchdog-surfaces.stories.tsx) (unreviewed)
- `tasks/create`: [Tasks and conversations/Task creation and lifecycle/Composer/Add menu](../../ui/storybook/stories/tasks/composer-add-menu.stories.tsx) (unreviewed), [Tasks and conversations/Task creation and lifecycle/Composer/Mobile assignee picker](../../ui/storybook/stories/tasks/composer-mobile-assignee.stories.tsx) (unreviewed), [Tasks and conversations/Task creation and lifecycle/Composer/Model and effort picker](../../ui/storybook/stories/tasks/composer-model-picker.stories.tsx) (mixed), [Tasks and conversations/Task creation and lifecycle/Product/Dialogs & Modals](../../ui/storybook/stories/tasks/dialogs-modals.stories.tsx) (unreviewed), [Tasks and conversations/Task creation and lifecycle/Components/Entity pickers/Mobile](../../ui/storybook/stories/tasks/mobile-entity-pickers.stories.tsx) (unreviewed), [Tasks and conversations/Task creation and lifecycle/Composer/New task](../../ui/storybook/stories/tasks/new-task-composer.stories.tsx) (current), [Agents and reusable capabilities/Hiring, configuration, and organization/Primary Agent/00 Review guide](../../ui/storybook/stories/agents/primary-agent/00-review-guide.stories.tsx) (unreviewed), [Agents and reusable capabilities/Hiring, configuration, and organization/Primary Agent/01 Components](../../ui/storybook/stories/agents/primary-agent/01-components.stories.tsx) (unreviewed), [Agents and reusable capabilities/Hiring, configuration, and organization/Primary Agent/02 Sidebar](../../ui/storybook/stories/agents/primary-agent/02-sidebar.stories.tsx) (unreviewed), [Agents and reusable capabilities/Hiring, configuration, and organization/Primary Agent/03 Agents](../../ui/storybook/stories/agents/primary-agent/03-agents.stories.tsx) (unreviewed), [Agents and reusable capabilities/Hiring, configuration, and organization/Primary Agent/04 New task](../../ui/storybook/stories/agents/primary-agent/04-new-task.stories.tsx) (unreviewed), [Agents and reusable capabilities/Hiring, configuration, and organization/Primary Agent/05 Chat](../../ui/storybook/stories/agents/primary-agent/05-chat.stories.tsx) (unreviewed), [Agents and reusable capabilities/Hiring, configuration, and organization/Primary Agent/06 Journeys](../../ui/storybook/stories/agents/primary-agent/06-journeys.stories.tsx) (unreviewed), [Agents and reusable capabilities/Hiring, configuration, and organization/Primary Agent/07 Confirmation](../../ui/storybook/stories/agents/primary-agent/07-confirmation.stories.tsx) (unreviewed)
- `tasks/organize`: [Tasks and conversations/Task creation and lifecycle/Product/Control Plane Surfaces](../../ui/storybook/stories/tasks/control-plane-surfaces.stories.tsx) (unreviewed), [Tasks and conversations/Task creation and lifecycle/Product/Issue Management](../../ui/storybook/stories/tasks/issue-management.stories.tsx) (unreviewed)
- `tasks/properties`: [Tasks and conversations/Task creation and lifecycle/External Objects](../../ui/storybook/stories/tasks/external-objects.stories.tsx) (unreviewed), [Tasks and conversations/Task creation and lifecycle/Product/Issue Management](../../ui/storybook/stories/tasks/issue-management.stories.tsx) (unreviewed), [Getting started and access/Login, invitations, and access/Private tasks/00 Review guide](../../ui/storybook/stories/access/private-tasks/00-review-guide.stories.tsx) (unreviewed), [Getting started and access/Login, invitations, and access/Private tasks/01 Creation](../../ui/storybook/stories/access/private-tasks/01-creation.stories.tsx) (unreviewed), [Getting started and access/Login, invitations, and access/Private tasks/02 Sharing](../../ui/storybook/stories/access/private-tasks/02-sharing.stories.tsx) (unreviewed), [Getting started and access/Login, invitations, and access/Private tasks/03 Task actions](../../ui/storybook/stories/access/private-tasks/03-task-actions.stories.tsx) (unreviewed), [Getting started and access/Login, invitations, and access/Private tasks/04 References and blockers](../../ui/storybook/stories/access/private-tasks/04-references-and-blockers.stories.tsx) (unreviewed), [Getting started and access/Login, invitations, and access/Private tasks/05 Projects](../../ui/storybook/stories/access/private-tasks/05-projects.stories.tsx) (unreviewed), [Getting started and access/Login, invitations, and access/Private tasks/06 Full product pages](../../ui/storybook/stories/access/private-tasks/06-full-product-pages.stories.tsx) (unreviewed), [Getting started and access/Login, invitations, and access/Private tasks/07 User stories](../../ui/storybook/stories/access/private-tasks/07-user-stories.stories.tsx) (unreviewed)
- `tasks/discussion`: [Projects and execution/Workspaces, services, and files/Tasks/Browser Use/Task activity](../../ui/storybook/stories/workspaces/browser-use-activity.stories.tsx) (unreviewed), [Projects and execution/Workspaces, services, and files/Tasks/Browser Use/Footer](../../ui/storybook/stories/workspaces/browser-use-footer.stories.tsx) (unreviewed), [Projects and execution/Workspaces, services, and files/Tasks/Browser Use/Panel](../../ui/storybook/stories/workspaces/browser-use.stories.tsx) (unreviewed), [Tasks and conversations/Task creation and lifecycle/Product/Chat & Comments](../../ui/storybook/stories/tasks/chat-comments.stories.tsx) (unreviewed), [Tasks and conversations/Task creation and lifecycle/Tasks/Completed activity preview](../../ui/storybook/stories/tasks/completed-activity.stories.tsx) (current), [Tasks and conversations/Task creation and lifecycle/Tasks/Runner activity preview](../../ui/storybook/stories/tasks/runner-activity.stories.tsx) (current), [Tasks and conversations/Task creation and lifecycle/Tasks/Task chat review fixes](../../ui/storybook/stories/tasks/task-chat-chain-of-thought.stories.tsx) (unreviewed), [Tasks and conversations/Task creation and lifecycle/Task chat/Mobile streaming follow](../../ui/storybook/stories/tasks/task-chat-mobile-follow.stories.tsx) (unreviewed), [Tasks and conversations/Task creation and lifecycle/Product/Task chat/System notice](../../ui/storybook/stories/tasks/task-chat-system-notice.stories.tsx) (unreviewed), [Tasks and conversations/Questions and approvals/Chat & Comments/Task Chat Unanswered Questions](../../ui/storybook/stories/questions-and-approvals/task-chat-unanswered-questions.stories.tsx) (unreviewed), [Tasks and conversations/Task creation and lifecycle/Tasks/Context notices](../../ui/storybook/stories/tasks/task-context-notices.stories.tsx) (unreviewed), [Tasks and conversations/Task creation and lifecycle/Chat & Comments/Human identity/00 Review guide](../../ui/storybook/stories/tasks/thread-human-identity/00-evidence.stories.tsx) (unreviewed), [Tasks and conversations/Task creation and lifecycle/Chat & Comments/Human identity/01 Components](../../ui/storybook/stories/tasks/thread-human-identity/01-components.stories.tsx) (unreviewed), [Tasks and conversations/Task creation and lifecycle/Chat & Comments/Human identity/02 Mixed-author journey](../../ui/storybook/stories/tasks/thread-human-identity/02-task-journey.stories.tsx) (unreviewed)
- `tasks/completion`: [Tasks and conversations/Task creation and lifecycle/Paperclip/Assigned Backlog Safeguards](../../ui/storybook/stories/tasks/assigned-backlog-safeguards.stories.tsx) (unreviewed), [Tasks and conversations/Task creation and lifecycle/Paperclip/Successful Run Handoff](../../ui/storybook/stories/tasks/successful-run-handoff.stories.tsx) (unreviewed)
- `teams/discovery`: [Agents and reusable capabilities/Team packages and installation/Surfaces/Team Catalog](../../ui/storybook/stories/teams/team-catalog.stories.tsx) (unreviewed)
- `teams/preview`: [Agents and reusable capabilities/Team packages and installation/Surfaces/Team Catalog](../../ui/storybook/stories/teams/team-catalog.stories.tsx) (unreviewed)
- `teams/install`: No cataloged story.
- `teams/configuration`: No cataloged story.
- `workspaces/binding`: [Product/Projects Goals Workspaces](../../ui/storybook/stories/projects-goals-workspaces.stories.tsx) (unreviewed), [Components/SearchableSelect/Workspace picker](../../ui/storybook/stories/searchable-select.stories.tsx) (unreviewed)
- `workspaces/provisioning`: [Workspaces/Project runtime provision command](../../ui/storybook/stories/project-execution-workspace-strategy.stories.tsx) (unreviewed), [Workspaces/Runtime provisioning status](../../ui/storybook/stories/workspace-runtime-provisioning.stories.tsx) (unreviewed)
- `workspaces/services`: [Tasks/Browser Use/Task activity](../../ui/storybook/stories/browser-use-activity.stories.tsx) (unreviewed), [Tasks/Browser Use/Footer](../../ui/storybook/stories/browser-use-footer.stories.tsx) (unreviewed), [Tasks/Browser Use/Panel](../../ui/storybook/stories/browser-use.stories.tsx) (unreviewed), [Workspaces/Service control bar](../../ui/storybook/stories/workspace-service-control-bar.stories.tsx) (unreviewed)
- `workspaces/files-git`: [HTML artifacts/01 Preview](../../ui/storybook/stories/html-artifacts/01-preview.stories.tsx) (unreviewed), [HTML artifacts/02 Workspace](../../ui/storybook/stories/html-artifacts/02-workspace.stories.tsx) (unreviewed), [HTML artifacts/03 Task journey](../../ui/storybook/stories/html-artifacts/03-task-journey.stories.tsx) (unreviewed), [Issue/Workspace File Browser](../../ui/storybook/stories/workspace-file-browser.stories.tsx) (unreviewed)
- `workspaces/binding`: [Projects and execution/Projects and repositories/Product/Projects Goals Workspaces](../../ui/storybook/stories/projects/projects-goals-workspaces.stories.tsx) (unreviewed), [Projects and execution/Workspaces, services, and files/Components/SearchableSelect/Workspace picker](../../ui/storybook/stories/workspaces/searchable-select.stories.tsx) (unreviewed)
- `workspaces/provisioning`: [Projects and execution/Projects and repositories/Workspaces/Project runtime provision command](../../ui/storybook/stories/projects/project-execution-workspace-strategy.stories.tsx) (unreviewed), [Projects and execution/Workspaces, services, and files/Workspaces/Runtime provisioning status](../../ui/storybook/stories/workspaces/workspace-runtime-provisioning.stories.tsx) (unreviewed)
- `workspaces/services`: [Projects and execution/Workspaces, services, and files/Tasks/Browser Use/Task activity](../../ui/storybook/stories/workspaces/browser-use-activity.stories.tsx) (unreviewed), [Projects and execution/Workspaces, services, and files/Tasks/Browser Use/Footer](../../ui/storybook/stories/workspaces/browser-use-footer.stories.tsx) (unreviewed), [Projects and execution/Workspaces, services, and files/Tasks/Browser Use/Panel](../../ui/storybook/stories/workspaces/browser-use.stories.tsx) (unreviewed), [Projects and execution/Workspaces, services, and files/Workspaces/Service control bar](../../ui/storybook/stories/workspaces/workspace-service-control-bar.stories.tsx) (unreviewed)
- `workspaces/files-git`: [Tasks and conversations/Documents, attachments, and work products/HTML artifacts/01 Preview](../../ui/storybook/stories/documents-artifacts/html-artifacts/01-preview.stories.tsx) (unreviewed), [Tasks and conversations/Documents, attachments, and work products/HTML artifacts/02 Workspace](../../ui/storybook/stories/documents-artifacts/html-artifacts/02-workspace.stories.tsx) (unreviewed), [Tasks and conversations/Documents, attachments, and work products/HTML artifacts/03 Task journey](../../ui/storybook/stories/documents-artifacts/html-artifacts/03-task-journey.stories.tsx) (unreviewed), [Projects and execution/Workspaces, services, and files/Issue/Workspace File Browser](../../ui/storybook/stories/workspaces/workspace-file-browser.stories.tsx) (unreviewed)
- `workspaces/closure`: No cataloged story.
+18
View File
@@ -25,6 +25,24 @@ is its primary home; remaining capabilities are lookup references, not copies.
Foundations/guides and proposals without a mapped capability need an exception
reason. An absent story is not automatically a feature gap.
## Folders and sidebar
Story files live in `ui/storybook/stories/<primary-feature-area>/`, using the first
capability's area slug. Related capabilities still point to the same story. Shared
fixture modules and assets live in `ui/storybook/support/`; production wrappers in
`ui/storybook/prototypes/` retain their existing ownership.
The sidebar follows the section and feature names in the feature-map README, then
retains each suite's useful scenario grouping. Foundations contains shared component
examples with no primary product capability. Overview contains the catalog guide.
Areas with no stories do not get empty sidebar folders.
Each suite declares an explicit CSF `id`, recorded as `stableId` in the catalog.
The `sidebarTitle` can change without changing that identity. Existing story and
autodocs URLs and screenshot names remain valid. Do not derive a replacement ID
from a newly organized title. The checker rejects missing or changed explicit IDs,
incorrect feature folders, and sidebar titles outside their primary feature home.
Each entry records purpose, capability references, review sources/date/fingerprint,
notes, and three independent dimensions:
+42 -7
View File
@@ -7,17 +7,17 @@ coverage, or production acceptance for all stories.
## Inventory and organization
There is one Storybook, already centralized under `ui/storybook/`. Its 223 story
files are split between 176 files at the stories root and 47 nested files. The
existing sidebar has 51 top-level groups. A bulk file move would add churn without
fixing the main problem: product meaning, provenance, and review status were not
recorded consistently.
There is one Storybook, already centralized under `ui/storybook/`. At the initial
baseline, its 223 story files were split between 176 files at the stories root and
47 nested files, with 51 top-level sidebar groups. The initial pass recorded
product meaning, provenance, and review status before changing that organization.
The follow-up organization pass below moves the files and sidebar together.
The downstream catalog gives each file a primary feature home and related stable
capability IDs. The generated index includes all 171 upstream capabilities across
35 feature areas. The existing Overview story now provides searchable feature
navigation into the actual built story index. Existing sidebar titles remain
stable to preserve links and snapshot identity.
navigation into the actual built story index. The initial pass kept sidebar titles
stable; the follow-up uses explicit IDs to preserve links while changing titles.
| Dimension | Initial classification |
| --- | --- |
@@ -101,6 +101,41 @@ guide classification. This records change detection, not new parity
acceptance. Added a real CSF parser regression for nested discovery, include/exclude
rules, stable explicit IDs, and play counts.
## Feature organization follow-up — 2026-10-12
Source baseline: `75bd3c977cd828d5222823850339e8204f40eb47` (parent PR #16046).
The 223 story files now live under their primary feature area in
`ui/storybook/stories/`. The sidebar uses the feature map's section and feature
labels in map order. Existing scenario groups remain below those labels.
Overview and shared Foundations have dedicated homes. Areas without stories do
not get empty sidebar groups; their gaps remain visible in the catalog.
Nineteen supporting files moved to `ui/storybook/support/`, including fixtures,
shared wrappers, guide READMEs, an HTML fixture, and a fixture test. Relative imports,
active documentation, catalog sources, and replacement references follow the
moves. Classification and review scope did not change. The upstream feature map
and its skill are unchanged.
Every suite now has an explicit meta ID, recorded as `stableId` in the catalog.
The built index comparison preserved all 2,210 story IDs, the single docs ID, and
all entry names. No story was removed or added. Catalog validation checks primary
feature folders, sidebar prefixes, and stable meta IDs; its nine tests passed.
The Storybook build, UI typecheck, all 8,176 UI tests in 728 files, token gates,
map checks, and the maintenance-skill validator passed. A source comparison found
only changed meta titles/IDs, rebased relative references, and updated fixture
path text in story files. The full repository suite was not repeated for these
file moves; the prior full-suite limitation above still applies.
Local Chromium verified the sidebar's section/feature order, rendered the guide,
searched `steering/queue`, and followed its link to the unchanged
`composer-steering-and-queued-messages--queued-while-running` ID. The nine play
cases listed above and `fast-responses-01-settings--empty` all reached
`storyFinished: success` without page exceptions after relocation. This is a
sample of interactions and rendering, not execution of all 2,210 stories.
The fixture-server story and visual-baseline comparisons remain untested for the
reasons below. The owned static preview was left running for the requested test-drive.
## Remaining review work
1. Review the 188 unreviewed suites by capability and production subject. Compare
File diff suppressed because it is too large. Load diff
+19 -1
View File
@@ -40,18 +40,30 @@ export function capabilities(root) {
return result;
}
export function featureNavigation(root) {
const navigation = new Map();
let section;
for (const line of readFileSync(path.join(root, "maps/feature-map/README.md"), "utf8").split("\n")) {
if (line.startsWith("### ")) section = line.slice(4);
const match = line.match(/^\| \[([^\]]+)\]\(\.\/([^.)]+)\.md\)/);
if (match && section) navigation.set(match[2], `${section}/${match[1]}`);
}
return navigation;
}
export function scanStories(root = defaultRoot) {
const require = createRequire(path.join(root, "ui/package.json"));
const { loadCsf } = require("storybook/internal/csf-tools");
return files(root, storyRoot).filter(file => /\.stories\.(ts|tsx|mdx)$/.test(file)).map(file => {
const csf = loadCsf(readFileSync(path.join(root, file), "utf8"), { fileName: file, makeTitle: title => title }).parse();
return { file, title: csf.meta.title, ids: csf.stories.map(story => story.id), plays: csf.stories.filter(story => story.__stats?.play).length };
return { file, title: csf.meta.title, metaId: csf.meta.id, ids: csf.stories.map(story => story.id), plays: csf.stories.filter(story => story.__stats?.play).length };
});
}
export function validateCatalog(root, catalog, stories) {
const errors = [];
const refs = capabilities(root);
const navigation = featureNavigation(root);
const byFile = new Map(stories.map(story => [story.file, story]));
const seen = new Set();
const local = file => typeof file === "string" && !path.isAbsolute(file) && !file.split("/").includes("..") && existsSync(path.join(root, file));
@@ -76,6 +88,12 @@ export function validateCatalog(root, catalog, stories) {
for (const ref of entry.capabilities) if (!refs.has(ref)) errors.push(`${label}: unknown feature capability ${ref}`);
if (!entry.capabilities.length && !entry.exception?.trim()) errors.push(`${label}: unmapped story needs an explicit reason`);
if (entry.capabilities.length !== new Set(entry.capabilities).size) errors.push(`${label}: duplicate capability references`);
const area = entry.capabilities[0]?.split("/")[0] ?? (entry.implementation === "guide" ? "overview" : "foundations");
const prefix = navigation.get(area) ?? ({ overview: "Overview", foundations: "Foundations" })[area];
const story = byFile.get(label);
if (!label.startsWith(`${storyRoot}/${area}/`)) errors.push(`${label}: story must live in its primary feature folder ${area}`);
if (!prefix || !entry.sidebarTitle?.startsWith(`${prefix}/`) || story?.title !== entry.sidebarTitle) errors.push(`${label}: sidebar title must match its feature-map home`);
if (!entry.stableId || story?.metaId !== entry.stableId) errors.push(`${label}: explicit meta ID must preserve the catalog stableId`);
if (entry.replacement && !byFile.has(entry.replacement)) errors.push(`${label}: replacement story is missing`);
if (!entry.sources?.includes(label)) errors.push(`${label}: review must include its story source`);
review(label, entry.sources, entry.fingerprint);
+33 -5
View File
@@ -13,20 +13,21 @@ function fixture(t) {
mkdirSync(path.dirname(path.join(root, file)), { recursive: true });
writeFileSync(path.join(root, file), text);
}
write("maps/feature-map/README.md", "# Features\n\n### Tasks and conversations\n\n| [Tasks](./tasks.md) | Tasks |\n");
write("maps/feature-map/tasks.md", "# Tasks\n\n## Sub-features\n\n- `create`: create\n- `discussion`: discuss\n\n## How to get to it\n");
write("ui/storybook/.storybook/preview.tsx", "// shared fixtures\n");
const file = "ui/storybook/stories/task.stories.tsx";
const file = "ui/storybook/stories/tasks/task.stories.tsx";
write(file, "// a story\n");
write("ui/src/Task.tsx", "// production subject\n");
const sharedSources = ["ui/storybook/.storybook/preview.tsx"];
const sources = [file, "ui/src/Task.tsx"];
const catalog = {
version: 1, sharedReview: { sources: sharedSources, fingerprint: fingerprint(root, sharedSources) },
entries: [{ file, capabilities: ["tasks/create", "tasks/discussion"], purpose: "Create a task", status: "current",
entries: [{ file, stableId: "tasks-create", sidebarTitle: "Tasks and conversations/Tasks/Create", capabilities: ["tasks/create", "tasks/discussion"], purpose: "Create a task", status: "current",
implementation: "production", boundary: "fixtures", notes: "Production subject; callbacks simulated.",
reviewedAt: "2026-10-12", sources, fingerprint: fingerprint(root, sources) }],
};
const stories = [{ file, title: "Tasks/Create", ids: ["tasks-create--empty"], plays: 0 }];
const stories = [{ file, title: "Tasks and conversations/Tasks/Create", metaId: "tasks-create", ids: ["tasks-create--empty"], plays: 0 }];
return { root, write, file, catalog, stories };
}
@@ -50,9 +51,36 @@ test("capability renames and unjustified unmapped stories fail", t => {
f.catalog.entries[0].capabilities = [];
assert.match(validateCatalog(f.root, f.catalog, f.stories).join("\n"), /explicit reason/);
f.catalog.entries[0].exception = "Shared foundation";
const file = "ui/storybook/stories/foundations/task.stories.tsx";
f.write(file, "export default {};");
const entry = f.catalog.entries[0];
entry.file = file;
entry.sources = [file, "ui/src/Task.tsx"];
entry.fingerprint = fingerprint(f.root, entry.sources);
entry.sidebarTitle = "Foundations/Task";
f.stories[0].file = file;
f.stories[0].title = entry.sidebarTitle;
assert.deepEqual(validateCatalog(f.root, f.catalog, f.stories), []);
});
test("feature organization rejects wrong folders, sidebar homes and unstable meta IDs", t => {
const f = fixture(t);
f.catalog.entries[0].capabilities = ["tasks/discussion"];
assert.deepEqual(validateCatalog(f.root, f.catalog, f.stories), []);
f.stories[0].metaId = "renamed-task";
assert.match(validateCatalog(f.root, f.catalog, f.stories).join("\n"), /explicit meta ID/);
f.stories[0].metaId = "tasks-create";
f.stories[0].title = "Unrelated/Task";
assert.match(validateCatalog(f.root, f.catalog, f.stories).join("\n"), /sidebar title/);
f.stories[0].title = f.catalog.entries[0].sidebarTitle;
const originalFile = f.catalog.entries[0].file;
f.catalog.entries[0].file = "ui/storybook/stories/foundations/task.stories.tsx";
assert.match(validateCatalog(f.root, f.catalog, f.stories).join("\n"), /primary feature folder tasks/);
f.catalog.entries[0].file = originalFile;
f.write("maps/feature-map/README.md", "### Conversations\n| [Tasks](./tasks.md) | Tasks |\n");
assert.match(validateCatalog(f.root, f.catalog, f.stories).join("\n"), /sidebar title/);
});
test("production and shared fixture drift invalidate review fingerprints", t => {
const f = fixture(t);
f.write("ui/src/Task.tsx", "// changed contract\n");
@@ -106,9 +134,9 @@ test("Storybook parser discovers nested files, filters helpers, preserves explic
const stories = scanStories(f.root);
assert.equal(stories.length, 2);
assert.deepEqual(stories.find(story => story.file === f.file), {
file: f.file, title: "Tasks/Create", ids: ["stable-task--empty", "stable-task--filled"], plays: 1,
file: f.file, title: "Tasks/Create", metaId: "stable-task", ids: ["stable-task--empty", "stable-task--filled"], plays: 1,
});
assert.deepEqual(stories.find(story => story.file.endsWith("other.stories.ts")), {
file: "ui/storybook/stories/nested/other.stories.ts", title: "Other/Subject", ids: ["other-subject--included"], plays: 0,
file: "ui/storybook/stories/nested/other.stories.ts", title: "Other/Subject", metaId: undefined, ids: ["other-subject--included"], plays: 0,
});
});
@@ -6,7 +6,7 @@ import { expect, it, vi } from "vitest";
import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
import { decisionModelsApi } from "@/api/decision-models";
import { DecisionModelSettingsSection, DecisionModelSettingsView } from "./DecisionModelSettings";
import { choices, configured, result } from "../../../storybook/stories/decision-models/fixtures";
import { choices, configured, result } from "../../../storybook/support/decision-models/fixtures";
vi.mock("@/context/CompanyContext", () => ({ useCompany: () => ({ selectedCompanyId: "company-storybook" }) }));
(globalThis as { IS_REACT_ACT_ENVIRONMENT?: boolean }).IS_REACT_ACT_ENVIRONMENT = true;
@@ -5,7 +5,7 @@ import { MemoryRouter } from "react-router-dom";
import { expect, it, vi } from "vitest";
import { updateFastResponseSchema } from "@paperclipai/shared";
import { FastResponseSettingsView } from "./FastResponseSettings";
import { choices } from "../../../storybook/stories/decision-models/fixtures";
import { choices } from "../../../storybook/support/decision-models/fixtures";
vi.mock("@/context/CompanyContext", () => ({
useCompany: () => ({ selectedCompanyId: "company-storybook" }),
}));
+1 -1
View File
@@ -7,7 +7,7 @@ import type {
// ---------------------------------------------------------------------------
// Shared Team Catalog fixtures.
//
// Used by both the Storybook stories (ui/storybook/stories/team-catalog.stories.tsx)
// Used by both the Storybook stories (ui/storybook/stories/teams/team-catalog.stories.tsx)
// and the in-app /design-guide showcase so the two surfaces stay in sync.
// ---------------------------------------------------------------------------
+67
View File
@@ -850,6 +850,73 @@ const preview: Preview = {
},
},
parameters: {
options: {
storySort: {
order: [
"Overview",
"Getting started and access",
[
"Onboarding and first work",
"Login, invitations, and access",
"Companies and portability"
],
"Tasks and conversations",
[
"Task creation and lifecycle",
"Delegation, dependencies, and signoff",
"Inbox, decisions, and search",
"Agent conversations and project handoff",
"Questions and approvals",
"Steering and queued messages",
"Documents, attachments, and work products"
],
"Agents and reusable capabilities",
[
"Hiring, configuration, and organization",
"Runs, harnesses, and model accounts",
"Skills and Skill Studio",
"Team packages and installation"
],
"Projects and execution",
[
"Projects and repositories",
"Goals and work alignment",
"Workspaces, services, and files",
"Execution environments",
"Recovery"
],
"Apps, channels, and extensions",
[
"Connection setup",
"App access and action permissions",
"External chat and email",
"Tool gateways and access profiles",
"Secrets and proposals",
"Plugins"
],
"Automation and structured work",
[
"Routines, schedules, and triggers",
"Pipelines, review queues, and learnings",
"Cases",
"Status cards"
],
"Oversight and operation",
[
"Costs and budgets",
"Dashboards and audit trails",
"Navigation, profile, and announcements",
"Instance operations",
"CLI/API and local worktrees"
],
"Contributor surfaces",
[
"Developer previews and diagnostic labs"
],
"Foundations"
],
},
},
actions: { argTypesRegex: "^on[A-Z].*" },
a11y: {
test: "error",
+1 -1
View File
@@ -1010,7 +1010,7 @@ export const storybookContinuationHandoff: IssueDocument = {
"",
"Next action: run the Storybook build, inspect the issue management story, then request QA visual review if the build passes.",
"",
"Important files: `ui/storybook/stories/issue-management.stories.tsx` and `ui/storybook/fixtures/paperclipData.ts`.",
"Important files: `ui/storybook/stories/tasks/issue-management.stories.tsx` and `ui/storybook/fixtures/paperclipData.ts`.",
].join("\n"),
latestRevisionId: "revision-continuation-1",
latestRevisionNumber: 1,
@@ -265,7 +265,8 @@ function Overview() {
);
}
export default {
title: "Private tasks/00 Review guide",
id: "private-tasks-00-review-guide",
title: "Getting started and access/Login, invitations, and access/Private tasks/00 Review guide",
parameters: { layout: "fullscreen", docs: { story: { inline: false } } },
render: () => <Overview />,
} satisfies Meta;
@@ -10,7 +10,7 @@ import {
privacyDecorator,
privacyParameters,
StoryFrame,
} from "./PrivacyStory";
} from "../../../support/private-tasks/PrivacyStory";
function Creation({
parent = false,
@@ -49,7 +49,8 @@ function Creation({
return <PrivacyPage tasks />;
}
const meta = {
title: "Private tasks/01 Creation",
id: "private-tasks-01-creation",
title: "Getting started and access/Login, invitations, and access/Private tasks/01 Creation",
decorators: [privacyDecorator],
parameters: { ...privacyParameters, waitForViewport: true, docs: { description: { component: "Route /PAP/issues with the new-task composer. Choose Private task from +; the lock chip keeps the selection visible. Hover, focus, or tap an inherited chip to see the parent task or private project that requires privacy. Mobile stories use the real shell and check that menu actions and composer controls stay inside the viewport." } } },
args: { taskTitle: "Prepare my board briefing" },
@@ -3,14 +3,14 @@ import type { Meta, StoryObj } from "@storybook/react-vite";
import { expect, userEvent, within, waitFor } from "storybook/test";
import { IssueShareSheet } from "@/components/IssueShareSheet";
import { Button } from "@/components/ui/button";
import { privacyCompanyId } from "../../fixtures/privateTasks";
import { privacyCompanyId } from "../../../fixtures/privateTasks";
import {
mobile,
privacyDecorator,
privacyParameters,
StoryFrame,
usePrivacyStory,
} from "./PrivacyStory";
} from "../../../support/private-tasks/PrivacyStory";
function Sharing({
add = "",
@@ -69,7 +69,8 @@ function Sharing({
);
}
const meta = {
title: "Private tasks/02 Sharing",
id: "private-tasks-02-sharing",
title: "Getting started and access/Login, invitations, and access/Private tasks/02 Sharing",
decorators: [privacyDecorator],
parameters: { ...privacyParameters, docs: { description: { component: "Task menu → Share → Add someone. Inspect avatars in search and selected values, inherited grants, reader access, confirmations, empty/loading/error states and mobile. The sticky-access paragraph is removed." } } },
render: () => <Sharing />,
@@ -4,14 +4,14 @@ import { expect, userEvent, within, waitFor } from "storybook/test";
import { IssuePrivacyActions } from "@/components/IssuePrivacyActions";
import { issuesApi } from "@/api/issues";
import { queryKeys } from "@/lib/queryKeys";
import { privacyCompanyId } from "../../fixtures/privateTasks";
import { privacyCompanyId } from "../../../fixtures/privateTasks";
import {
mobile,
privacyDecorator,
privacyParameters,
StoryFrame,
usePrivacyStory,
} from "./PrivacyStory";
} from "../../../support/private-tasks/PrivacyStory";
function PrivacyActionsStory({ child = false }: { child?: boolean }) {
const state = usePrivacyStory();
@@ -56,7 +56,8 @@ function PrivacyActionsStory({ child = false }: { child?: boolean }) {
);
}
const meta = {
title: "Private tasks/03 Task actions",
id: "private-tasks-03-task-actions",
title: "Getting started and access/Login, invitations, and access/Private tasks/03 Task actions",
decorators: [privacyDecorator],
parameters: { ...privacyParameters, docs: { description: { component: "Task menu privacy actions, permission gates and disclosure confirmation." } } },
render: () => <PrivacyActionsStory />,
@@ -13,7 +13,7 @@ import {
privacyDecorator,
privacyParameters,
StoryFrame,
} from "./PrivacyStory";
} from "../../../support/private-tasks/PrivacyStory";
const locked = {
id: "privacy-root",
@@ -110,7 +110,8 @@ function References({
);
}
const meta = {
title: "Private tasks/04 References and blockers",
id: "private-tasks-04-references-and-blockers",
title: "Getting started and access/Login, invitations, and access/Private tasks/04 References and blockers",
decorators: [privacyDecorator],
parameters: { ...privacyParameters, docs: { description: { component: "Task references, parent navigation and blockers redact unreadable task content. Inspect all existing reference variants and mobile." } } },
render: () => <References />,
@@ -14,7 +14,7 @@ import {
privacyParameters,
StoryFrame,
usePrivacyStory,
} from "./PrivacyStory";
} from "../../../support/private-tasks/PrivacyStory";
function ProjectStory({
settings = false,
@@ -76,7 +76,8 @@ const openMembers = async (canvasElement: HTMLElement) => {
return page;
};
const meta = {
title: "Private tasks/05 Projects",
id: "private-tasks-05-projects",
title: "Getting started and access/Login, invitations, and access/Private tasks/05 Projects",
decorators: [privacyDecorator],
parameters: { ...privacyParameters, docs: { description: { component: "Project settings → Manage access. Human and agent identities appear in the search dropdown and selected value. Owner, reader, error, loading and mobile states use production components." } } },
args: { projectName: "Executive planning" },
@@ -9,7 +9,7 @@ import { ProjectDetail } from "@/pages/ProjectDetail";
import { Projects } from "@/pages/Projects";
import { DesignGuide } from "@/pages/DesignGuide";
import { PluginLauncherProvider } from "@/plugins/launchers";
import { mobile, privacyDecorator, privacyParameters } from "./PrivacyStory";
import { mobile, privacyDecorator, privacyParameters } from "../../../support/private-tasks/PrivacyStory";
export function PrivacyPage({
child = false,
@@ -51,7 +51,8 @@ export function PrivacyPage({
);
}
const meta = {
title: "Private tasks/06 Full product pages",
id: "private-tasks-06-full-product-pages",
title: "Getting started and access/Login, invitations, and access/Private tasks/06 Full product pages",
excludeStories: ["PrivacyPage"],
decorators: [privacyDecorator],
parameters: { ...privacyParameters, waitForViewport: true },
@@ -16,12 +16,13 @@ import {
privacyDecorator,
privacyParameters,
mobile,
} from "./PrivacyStory";
} from "../../../support/private-tasks/PrivacyStory";
// Reuse the same real-component canvases. Each play is a complete user journey,
// while the component stories deliberately stop at individual review states.
const meta = {
title: "Private tasks/07 User stories",
id: "private-tasks-07-user-stories",
title: "Getting started and access/Login, invitations, and access/Private tasks/07 User stories",
decorators: [privacyDecorator],
parameters: { ...privacyParameters, waitForViewport: true },
} satisfies Meta;
@@ -154,7 +154,8 @@ function Seeded({ events }: { events: ToolGatewayActivityEvent[] }) {
}
const meta: Meta = {
title: "Tools/Activity (audit feed)",
id: "tools-activity-audit-feed",
title: "Oversight and operation/Dashboards and audit trails/Tools/Activity (audit feed)",
parameters: { layout: "fullscreen" },
};
export default meta;
@@ -122,7 +122,8 @@ function Panel(props: ActivityPanelProps) {
}
const meta: Meta = {
title: "Apps/App detail · Activity (lifecycle)",
id: "apps-app-detail-·-activity-lifecycle",
title: "Oversight and operation/Dashboards and audit trails/Apps/App detail · Activity (lifecycle)",
parameters: { layout: "fullscreen" },
};
export default meta;
@@ -50,7 +50,7 @@ import {
storybookAgents,
storybookIssues,
storybookLiveRuns,
} from "../fixtures/paperclipData";
} from "../../fixtures/paperclipData";
const companyId = "company-storybook";
const primaryIssueId = "issue-storybook-1";
@@ -642,7 +642,8 @@ function PageSkeletonMatrix() {
}
const meta = {
title: "Product/Data Visualization & Misc",
id: "product-data-visualization-misc",
title: "Oversight and operation/Dashboards and audit trails/Product/Data Visualization & Misc",
parameters: {
docs: {
description: {
@@ -12,8 +12,8 @@ import {
} from "@/components/timeline/WorkTimelineChart";
import { Button } from "@/components/ui/button";
import { useCompany } from "@/context/CompanyContext";
import sampleJson from "../fixtures/workTimeline.sample.json";
import humanSampleJson from "../fixtures/workTimeline.human.sample.json";
import sampleJson from "../../fixtures/workTimeline.sample.json";
import humanSampleJson from "../../fixtures/workTimeline.human.sample.json";
const COMPANY_ID = "company-storybook";
const STORYBOOK_USER_AVATAR =
@@ -159,7 +159,8 @@ function TimelineHarness({
}
const meta: Meta<typeof TimelineHarness> = {
title: "Pages/Work Timeline",
id: "pages-work-timeline",
title: "Oversight and operation/Dashboards and audit trails/Pages/Work Timeline",
component: TimelineHarness,
parameters: { layout: "fullscreen" },
};
@@ -1,9 +1,10 @@
import { userEvent, within } from "storybook/test";
import type { Meta, StoryObj } from "@storybook/react-vite";
import { AgentChatPrototype } from "../prototypes/agent-chat/AgentChatPrototype";
import { AgentChatPrototype } from "../../prototypes/agent-chat/AgentChatPrototype";
const meta = {
title: "Design explorations/Agent chat sidebar/Pages",
id: "design-explorations-agent-chat-sidebar-pages",
title: "Tasks and conversations/Agent conversations and project handoff/Design explorations/Agent chat sidebar/Pages",
component: AgentChatPrototype,
parameters: { layout: "fullscreen", docs: { description: { component:
"The production chat sidebar and pages inside the real Paperclip Layout, including the existing transcript, composer, and context panel. Click Chat to see the landing page, search by name or role, or use + to start or reopen an agent conversation. Each agent has one conversation; sends stay in this Storybook's in-memory fixtures."
@@ -1,8 +1,9 @@
import type { Meta, StoryObj } from "@storybook/react-vite";
import { AgentChatPrototype } from "../prototypes/agent-chat/AgentChatPrototype";
import { AgentChatPrototype } from "../../prototypes/agent-chat/AgentChatPrototype";
const meta = {
title: "Design explorations/Agent chat",
id: "design-explorations-agent-chat",
title: "Tasks and conversations/Agent conversations and project handoff/Design explorations/Agent chat",
component: AgentChatPrototype,
parameters: {
layout: "fullscreen",
@@ -1,8 +1,8 @@
import { userEvent, within, expect } from "storybook/test";
import { useState } from "react";
import type { Meta, StoryObj } from "@storybook/react-vite";
import { AgentConversationSidebar } from "../prototypes/agent-chat-sidebar/AgentConversationSidebar";
import { sidebarAgents, sidebarPreviews, sidebarRoster } from "../prototypes/agent-chat-sidebar/fixtures";
import { AgentConversationSidebar } from "../../prototypes/agent-chat-sidebar/AgentConversationSidebar";
import { sidebarAgents, sidebarPreviews, sidebarRoster } from "../../prototypes/agent-chat-sidebar/fixtures";
function InteractiveSidebar(args: React.ComponentProps<typeof AgentConversationSidebar>) {
const [activeId, setActiveId] = useState(args.activeId);
@@ -14,7 +14,8 @@ function InteractiveSidebar(args: React.ComponentProps<typeof AgentConversationS
return <div className="h-dvh w-60 bg-background text-foreground"><AgentConversationSidebar {...args} agents={agents} activeId={activeId} onSelect={selectAgent} onAddChat={selectAgent} onBrowse={undefined} /></div>;
}
const meta = {
title: "Design explorations/Agent chat sidebar/Components",
id: "design-explorations-agent-chat-sidebar-components",
title: "Tasks and conversations/Agent conversations and project handoff/Design explorations/Agent chat sidebar/Components",
component: AgentConversationSidebar,
parameters: { layout: "fullscreen", docs: { description: { component:
"Secondary agent navigation at the same width as the app's other contextual sidebars. Uses production AgentAvatar, Input, and Button. The entire row is a link; selection and search are interactive. Search matches agent name, title, and role. Escape clears the query. Browse all agents links to the existing agent directory in the page stories."
@@ -1,9 +1,10 @@
import { userEvent, within } from "storybook/test";
import type { Meta, StoryObj } from "@storybook/react-vite";
import { AgentChatPrototype } from "../prototypes/agent-chat/AgentChatPrototype";
import { AgentChatPrototype } from "../../prototypes/agent-chat/AgentChatPrototype";
const meta = {
title: "Design explorations/Chat entry",
id: "design-explorations-chat-entry",
title: "Tasks and conversations/Agent conversations and project handoff/Design explorations/Chat entry",
component: AgentChatPrototype,
parameters: { layout: "fullscreen", docs: { description: { component:
"Historical chat-entry exploration: the local sidebar and landing composition keeps a first-created-agent default. The current product uses the personal primary-agent preference and recent-conversation rules. Shared layout, picker and conversation components remain useful here, but these entry/default rules are retained design history. Selecting and sending use in-memory fixtures; no real agents run. Use Primary Agent journeys for current default-selection examples."
@@ -11,7 +11,7 @@ import type {
import { AgentDetail } from "@/pages/AgentDetail";
import { useCompany } from "@/context/CompanyContext";
import { queryKeys } from "@/lib/queryKeys";
import { storybookAgentMap, storybookAgents, storybookIssues } from "../fixtures/paperclipData";
import { storybookAgentMap, storybookAgents, storybookIssues } from "../../fixtures/paperclipData";
const COMPANY_ID = "company-storybook";
const AGENT_ID = "agent-codex";
@@ -190,7 +190,8 @@ function AgentDetailScenario() {
}
const meta: Meta = {
title: "Pages/Agent Detail",
id: "pages-agent-detail",
title: "Agents and reusable capabilities/Hiring, configuration, and organization/Pages/Agent Detail",
parameters: { layout: "fullscreen", a11y: { test: "off" } },
};
export default meta;
@@ -6,7 +6,7 @@ import type { AgentInstructionsFileDetail } from "@paperclipai/shared";
import { AgentFileRunNotice, PromptsTab } from "@/pages/AgentDetail";
import { Button } from "@/components/ui/button";
import { queryKeys } from "@/lib/queryKeys";
import { storybookAgents } from "../fixtures/paperclipData";
import { storybookAgents } from "../../fixtures/paperclipData";
const agent = { ...storybookAgents[0]!, id: "agent-files-story", adapterType: "codex_local" as const };
const root = "/instance/agents/agent-files-story/instructions";
@@ -106,7 +106,8 @@ function AgentFilesStory({ failedSync = false, fullStorageRun = false, historica
</div>
</QueryClientProvider>;
}
const meta = { title: "Agents/Persistent files", component: AgentFilesStory, parameters: { layout: "fullscreen" } } satisfies Meta<typeof AgentFilesStory>;
const meta = { id: "agents-persistent-files",
title: "Agents and reusable capabilities/Hiring, configuration, and organization/Agents/Persistent files", component: AgentFilesStory, parameters: { layout: "fullscreen" } } satisfies Meta<typeof AgentFilesStory>;
export default meta;
type Story = StoryObj<typeof meta>;
export const InstructionsAndFiles: Story = {};
@@ -38,7 +38,7 @@ import {
SelectValue,
} from "@/components/ui/select";
import { Separator } from "@/components/ui/separator";
import { storybookAgents, storybookIssues } from "../fixtures/paperclipData";
import { storybookAgents, storybookIssues } from "../../fixtures/paperclipData";
const COMPANY_ID = "company-storybook";
const now = new Date("2026-04-20T12:00:00.000Z");
@@ -819,7 +819,8 @@ function AgentManagementStories() {
}
const meta = {
title: "Product/Agent Management",
id: "product-agent-management",
title: "Agents and reusable capabilities/Hiring, configuration, and organization/Product/Agent Management",
component: AgentManagementStories,
parameters: {
docs: {
@@ -14,7 +14,7 @@ import { NewAgent } from "@/pages/NewAgent";
import { AgentBasicsDialog } from "@/components/new-agent/AgentBasicsDialog";
import { queryKeys } from "@/lib/queryKeys";
import { resolveAgentAppearance } from "@paperclipai/shared";
import { storybookAgents, storybookIssues, storybookActivityEvents, storybookLiveRuns, storybookDashboardSummary } from "../fixtures/paperclipData";
import { storybookAgents, storybookIssues, storybookActivityEvents, storybookLiveRuns, storybookDashboardSummary } from "../../fixtures/paperclipData";
const companyId = "company-storybook";
const agents = storybookAgents.map(agent => {
@@ -109,7 +109,8 @@ function PersonaPage({ path, meet = false }: { path: string; meet?: boolean }) {
{meet && <AgentBasicsDialog open={dialogOpen} onClose={() => setDialogOpen(false)} onContinue={basics => { setDialogOpen(false); navigate(`/PAP/agents/new?name=${encodeURIComponent(basics.name)}&adapterType=${basics.adapterType}`); }} />}
</PluginLauncherProvider>;
}
const meta = { title: "Agents/Personas/Full pages", parameters: { layout: "fullscreen", a11y: { test: "off" } } } satisfies Meta;
const meta = { id: "agents-personas-full-pages",
title: "Agents and reusable capabilities/Hiring, configuration, and organization/Agents/Personas/Full pages", parameters: { layout: "fullscreen", a11y: { test: "off" } } } satisfies Meta;
export default meta;
type Story = StoryObj;
export const AllAgents: Story = { render: () => <PersonaPage path="/PAP/agents/all" /> };
@@ -3,15 +3,16 @@ import { expect, waitFor } from "storybook/test";
import { useEffect, useRef, useState } from "react";
import type { Meta, StoryObj } from "@storybook/react-vite";
import { AGENT_PALETTE_IDS, AGENT_AVATAR_SIZES, CHARACTER_STATES, appearanceForPalette, type CharacterState } from "@paperclipai/shared";
import { AgentAvatar, avatarSizeClasses } from "../../src/components/AgentAvatar";
import { AgentCharacter } from "../../src/components/AgentCharacter";
import { AgentIdentity } from "../../src/components/AgentIdentity";
import { Button } from "../../src/components/ui/button";
import { AgentAvatar, avatarSizeClasses } from "../../../src/components/AgentAvatar";
import { AgentCharacter } from "../../../src/components/AgentCharacter";
import { AgentIdentity } from "../../../src/components/AgentIdentity";
import { Button } from "../../../src/components/ui/button";
const appearance = appearanceForPalette("bubblegum-sky");
const agent = { id: "storybook-agent", name: "Chief of Staff", appearance };
const meta = {
title: "Agents/Personas",
id: "agents-personas",
title: "Agents and reusable capabilities/Hiring, configuration, and organization/Agents/Personas",
component: AgentCharacter,
args: { appearance, size: 256, state: "listening", label: "Chief of Staff" },
parameters: { docs: { description: { component: "Persistent cap-v1 identities. The hero alone loads ClipLab. Development Storybook renders capsule PNGs locally on demand; published Storybook packages the same PNGs during its build, including every preset and both densities. Neither needs a running API." } } },
@@ -1,7 +1,8 @@
import type { Meta, StoryObj } from "@storybook/react-vite";
import { AgentSettingsPreview } from "../prototypes/agent-settings/AgentSettingsPreview";
import { AgentSettingsPreview } from "../../prototypes/agent-settings/AgentSettingsPreview";
const meta = {
title: "Agents/Configuration refresh",
id: "agents-configuration-refresh",
title: "Agents and reusable capabilities/Hiring, configuration, and organization/Agents/Configuration refresh",
component: AgentSettingsPreview,
parameters: {
layout: "fullscreen",
@@ -111,7 +111,8 @@ function SectionLabel({ children }: { children: React.ReactNode }) {
}
const meta: Meta = {
title: "Product/Built-in Agents",
id: "product-built-in-agents",
title: "Agents and reusable capabilities/Hiring, configuration, and organization/Product/Built-in Agents",
parameters: { layout: "fullscreen" },
};
export default meta;
@@ -3,7 +3,8 @@ import { fn } from "storybook/test";
import { DotConnectionChecks, ExternalAgentPresetPicker } from "@/components/new-agent/ExternalAgentInviteContent";
const meta = {
title: "Onboarding/External agent invitation/Components",
id: "onboarding-external-agent-invitation-components",
title: "Agents and reusable capabilities/Hiring, configuration, and organization/Onboarding/External agent invitation/Components",
component: DotConnectionChecks,
parameters: { layout: "centered", docs: { description: { component: "Controlled presentation states. Connection checks must be driven by server evidence. Subscription verification alone must never mark the connection ready." } } },
decorators: [Story => <div className="w-full max-w-md p-6"><Story /></div>],
@@ -1,9 +1,10 @@
import type { Meta, StoryObj } from "@storybook/react-vite";
import { expect, userEvent, within, waitFor } from "storybook/test";
import { ExternalAgentInvitePreview } from "./ExternalAgentInvitePreview";
import { ExternalAgentInvitePreview } from "../../../support/external-agent-invite/ExternalAgentInvitePreview";
const meta = {
title: "Onboarding/External agent invitation/Journeys",
id: "onboarding-external-agent-invitation-journeys",
title: "Agents and reusable capabilities/Hiring, configuration, and organization/Onboarding/External agent invitation/Journeys",
component: ExternalAgentInvitePreview,
parameters: {
layout: "fullscreen",
@@ -1,9 +1,10 @@
import type { Meta, StoryObj } from "@storybook/react-vite";
import { userEvent, within } from "storybook/test";
import { NewAgentWizard } from "../prototypes/NewAgentWizard";
import { NewAgentWizard } from "../../prototypes/NewAgentWizard";
const meta = {
title: "Onboarding/New agent",
id: "onboarding-new-agent",
title: "Agents and reusable capabilities/Hiring, configuration, and organization/Onboarding/New agent",
component: NewAgentWizard,
parameters: {
layout: "fullscreen",
@@ -50,5 +50,6 @@ function ReviewGuide() {
</div>
</main>;
}
export default { title: "Primary Agent/00 Review guide", parameters: { layout: "fullscreen" }, render: () => <ReviewGuide /> } satisfies Meta;
export default { id: "primary-agent-00-review-guide",
title: "Agents and reusable capabilities/Hiring, configuration, and organization/Primary Agent/00 Review guide", parameters: { layout: "fullscreen" }, render: () => <ReviewGuide /> } satisfies Meta;
export const StartHere: StoryObj = {};
@@ -1,7 +1,7 @@
import type { Meta, StoryObj } from "@storybook/react-vite";
import { AgentIdentity } from "@/components/AgentIdentity";
import { PrimaryAgentIndicator } from "@/components/primary-agent/PrimaryAgentPresentation";
import { primaryDecorator, primaryParameters, usePrimaryStory, type PrimaryScenario } from "./PrimaryAgentStory";
import { primaryDecorator, primaryParameters, usePrimaryStory, type PrimaryScenario } from "../../../support/primary-agent/PrimaryAgentStory";
function Components(_args: PrimaryScenario) {
const { agents } = usePrimaryStory();
@@ -11,7 +11,8 @@ function Components(_args: PrimaryScenario) {
</section>)}
</div></main>;
}
export default { title: "Primary Agent/01 Components", component: Components, decorators: [primaryDecorator], parameters: primaryParameters, args: { primaryName: "Maia" }, render: args => <Components {...args} /> } satisfies Meta<typeof Components>;
export default { id: "primary-agent-01-components",
title: "Agents and reusable capabilities/Hiring, configuration, and organization/Primary Agent/01 Components", component: Components, decorators: [primaryDecorator], parameters: primaryParameters, args: { primaryName: "Maia" }, render: args => <Components {...args} /> } satisfies Meta<typeof Components>;
type Story = StoryObj<typeof Components>;
export const CrownIndicator: Story = {};
export const NoPrimary: Story = { args: { primaryId: null } };
@@ -1,8 +1,9 @@
import type { Meta, StoryObj } from "@storybook/react-vite";
import { userEvent, within } from "storybook/test";
import { PrimaryPage, mobile, primaryDecorator, primaryParameters } from "./PrimaryAgentStory";
import { PrimaryPage, mobile, primaryDecorator, primaryParameters } from "../../../support/primary-agent/PrimaryAgentStory";
export default { title: "Primary Agent/02 Sidebar", decorators: [primaryDecorator], parameters: primaryParameters, args: { primaryName: "Maia" }, argTypes: { primaryName: { control: "text" } }, render: () => <PrimaryPage /> } satisfies Meta;
export default { id: "primary-agent-02-sidebar",
title: "Agents and reusable capabilities/Hiring, configuration, and organization/Primary Agent/02 Sidebar", decorators: [primaryDecorator], parameters: primaryParameters, args: { primaryName: "Maia" }, argTypes: { primaryName: { control: "text" } }, render: () => <PrimaryPage /> } satisfies Meta;
type Story = StoryObj;
export const IdlePrimary: Story = {};
export const ActiveColleague: Story = { parameters: { primaryAgent: { active: true } } };
@@ -1,7 +1,8 @@
import type { Meta, StoryObj } from "@storybook/react-vite";
import { PrimaryPage, mobile, primaryDecorator, primaryParameters } from "./PrimaryAgentStory";
import { PrimaryPage, mobile, primaryDecorator, primaryParameters } from "../../../support/primary-agent/PrimaryAgentStory";
export default { title: "Primary Agent/03 Agents", decorators: [primaryDecorator], parameters: primaryParameters, args: { primaryName: "Maia" }, argTypes: { primaryName: { control: "text" } }, render: () => <PrimaryPage /> } satisfies Meta;
export default { id: "primary-agent-03-agents",
title: "Agents and reusable capabilities/Hiring, configuration, and organization/Primary Agent/03 Agents", decorators: [primaryDecorator], parameters: primaryParameters, args: { primaryName: "Maia" }, argTypes: { primaryName: { control: "text" } }, render: () => <PrimaryPage /> } satisfies Meta;
type Story = StoryObj;
export const Roster: Story = {};
export const Profile: Story = { parameters: { initialEntries: ["/PAP/agents/maia"] } };
@@ -1,7 +1,8 @@
import type { Meta, StoryObj } from "@storybook/react-vite";
import { PrimaryPage, mobile, primaryDecorator, primaryParameters } from "./PrimaryAgentStory";
import { PrimaryPage, mobile, primaryDecorator, primaryParameters } from "../../../support/primary-agent/PrimaryAgentStory";
export default { title: "Primary Agent/04 New task", decorators: [primaryDecorator], parameters: primaryParameters, render: () => <PrimaryPage task="primary" /> } satisfies Meta;
export default { id: "primary-agent-04-new-task",
title: "Agents and reusable capabilities/Hiring, configuration, and organization/Primary Agent/04 New task", decorators: [primaryDecorator], parameters: primaryParameters, render: () => <PrimaryPage task="primary" /> } satisfies Meta;
type Story = StoryObj;
export const PrimaryFallback: Story = {};
export const RecentSpecialistWins: Story = { parameters: { primaryAgent: { recentAssignee: true } }, render: () => <PrimaryPage task="recent" /> };
@@ -1,7 +1,8 @@
import type { Meta, StoryObj } from "@storybook/react-vite";
import { PrimaryPage, mobile, primaryDecorator, primaryParameters } from "./PrimaryAgentStory";
import { PrimaryPage, mobile, primaryDecorator, primaryParameters } from "../../../support/primary-agent/PrimaryAgentStory";
export default { title: "Primary Agent/05 Chat", decorators: [primaryDecorator], parameters: { ...primaryParameters, initialEntries: ["/PAP/chats"] }, render: () => <PrimaryPage /> } satisfies Meta;
export default { id: "primary-agent-05-chat",
title: "Agents and reusable capabilities/Hiring, configuration, and organization/Primary Agent/05 Chat", decorators: [primaryDecorator], parameters: { ...primaryParameters, initialEntries: ["/PAP/chats"] }, render: () => <PrimaryPage /> } satisfies Meta;
type Story = StoryObj;
export const PrimaryFallback: Story = {};
export const RecentConversationWins: Story = { parameters: { primaryAgent: { recentChat: true } } };
@@ -1,6 +1,6 @@
import type { Meta, StoryObj } from "@storybook/react-vite";
import { expect, userEvent, within, waitFor } from "storybook/test";
import { PrimaryPage, primaryDecorator, primaryParameters } from "./PrimaryAgentStory";
import { PrimaryPage, primaryDecorator, primaryParameters } from "../../../support/primary-agent/PrimaryAgentStory";
async function openActions(canvasElement: HTMLElement, name: string, profile = false) {
const page = within(canvasElement.ownerDocument.body);
@@ -11,7 +11,8 @@ async function openActions(canvasElement: HTMLElement, name: string, profile = f
return page;
}
const maiaProfile = { initialEntries: ["/PAP/agents/maia"] };
export default { title: "Primary Agent/06 Journeys", decorators: [primaryDecorator], parameters: { ...primaryParameters, initialEntries: ["/PAP/agents/alex"] }, render: () => <PrimaryPage /> } satisfies Meta;
export default { id: "primary-agent-06-journeys",
title: "Agents and reusable capabilities/Hiring, configuration, and organization/Primary Agent/06 Journeys", decorators: [primaryDecorator], parameters: { ...primaryParameters, initialEntries: ["/PAP/agents/alex"] }, render: () => <PrimaryPage /> } satisfies Meta;
type Story = StoryObj;
async function confirmPrimaryChange(canvasElement: HTMLElement) {
const page = within(canvasElement.ownerDocument.body);
@@ -1,9 +1,10 @@
import type { Meta, StoryObj } from "@storybook/react-vite";
import { expect, userEvent, within } from "storybook/test";
import { PrimaryPage, mobile, primaryDecorator, primaryParameters } from "./PrimaryAgentStory";
import { PrimaryPage, mobile, primaryDecorator, primaryParameters } from "../../../support/primary-agent/PrimaryAgentStory";
export default {
title: "Primary Agent/07 Confirmation",
id: "primary-agent-07-confirmation",
title: "Agents and reusable capabilities/Hiring, configuration, and organization/Primary Agent/07 Confirmation",
decorators: [primaryDecorator],
parameters: { ...primaryParameters, initialEntries: ["/PAP/agents/alex"] },
render: () => <PrimaryPage />,
@@ -325,7 +325,8 @@ const DESKTOP = 640;
const MOBILE = 375;
const meta: Meta<typeof CardHarness> = {
title: "Summaries/SummarySlotCard",
id: "summaries-summaryslotcard",
title: "Agents and reusable capabilities/Hiring, configuration, and organization/Summaries/SummarySlotCard",
component: CardHarness,
parameters: { layout: "padded" },
};
@@ -21,7 +21,8 @@ const baseProps = {
};
const meta: Meta<typeof ActionCard> = {
title: "Tools & Access/ActionCard",
id: "tools-access-actioncard",
title: "Apps, channels, and extensions/App access and action permissions/Tools & Access/ActionCard",
component: ActionCard,
};
export default meta;
@@ -177,7 +177,8 @@ function PermissionsTestStory({ result, tool = TOOL, appName = "Asana", query }:
}
const meta = {
title: "Apps/Action permissions test",
id: "apps-action-permissions-test",
title: "Apps, channels, and extensions/App access and action permissions/Apps/Action permissions test",
parameters: { layout: "fullscreen" },
} satisfies Meta;
export default meta;
@@ -0,0 +1,7 @@
import type { Meta, StoryObj } from "@storybook/react-vite";
import { ManagedAggregatorAccounts } from "../../prototypes/ManagedAggregatorAccounts";
const meta = { id: "apps-managed-accounts",
title: "Apps, channels, and extensions/App access and action permissions/Apps/Managed accounts", component: ManagedAggregatorAccounts, parameters: { layout: "fullscreen", docs: { description: { component: "Production Apps page using production API routes and a disposable PostgreSQL database. Upstream Arcade, Composio and Executor responses are fixtures. Start tests/aggregator-accounts/test-drive.ts, then use the upstream controls and each gateway’s Refresh action." } } } } satisfies Meta<typeof ManagedAggregatorAccounts>;
export default meta;
type Story = StoryObj<typeof meta>;
export const FullStackTestDrive: Story = {};
@@ -122,7 +122,8 @@ function connection(id: string, name: string, installs: InstallState): ToolConne
}
const meta: Meta = {
title: "Tools/Permitted vs Installed",
id: "tools-permitted-vs-installed",
title: "Apps, channels, and extensions/App access and action permissions/Tools/Permitted vs Installed",
parameters: { layout: "fullscreen" },
};
export default meta;
@@ -1,6 +0,0 @@
import type { Meta, StoryObj } from "@storybook/react-vite";
import { ManagedAggregatorAccounts } from "../prototypes/ManagedAggregatorAccounts";
const meta = { title: "Apps/Managed accounts", component: ManagedAggregatorAccounts, parameters: { layout: "fullscreen", docs: { description: { component: "Production Apps page using production API routes and a disposable PostgreSQL database. Upstream Arcade, Composio and Executor responses are fixtures. Start tests/aggregator-accounts/test-drive.ts, then use the upstream controls and each gateway’s Refresh action." } } } } satisfies Meta<typeof ManagedAggregatorAccounts>;
export default meta;
type Story = StoryObj<typeof meta>;
export const FullStackTestDrive: Story = {};
@@ -765,7 +765,8 @@ function BudgetFinanceMatrix() {
}
const meta = {
title: "Product/Budget & Finance",
id: "product-budget-finance",
title: "Oversight and operation/Costs and budgets/Product/Budget & Finance",
component: BudgetFinanceMatrix,
parameters: {
docs: {
@@ -100,7 +100,8 @@ function SubscriptionCostsStory({ unknownPrice = false, stale = false, costGaps
return ready ? <><Costs embedded hideBudgetsTab /><ToastViewport /></> : null;
}
const meta = { title: "Costs/Subscriptions", component: SubscriptionCostsStory, parameters: {
const meta = { id: "costs-subscriptions",
title: "Oversight and operation/Costs and budgets/Costs/Subscriptions", component: SubscriptionCostsStory, parameters: {
layout: "padded", docs: { description: { component: "Production Costs page with API spend, monthly subscription estimates, user and project costs. View details to edit monthly or annual prices. Provider calls are fixtures." } },
} } satisfies Meta<typeof SubscriptionCostsStory>;
export default meta;
@@ -6,7 +6,7 @@ import { ChatSetupSidebar } from "@/components/chat/ChatSetupNavigation";
import { ChatSetupSidebarProvider } from "@/context/ChatSetupSidebarContext";
import { useCompany } from "@/context/CompanyContext";
import { useLocation, useNavigate } from "@/lib/router";
import { storybookAgents } from "../fixtures/paperclipData";
import { storybookAgents } from "../../fixtures/paperclipData";
const COMPANY = "company-storybook";
const CONNECTION = "agentmail-storybook-account";
@@ -40,7 +40,8 @@ function AgentMailJourney({ savedConnection = true }: { savedConnection?: boolea
type Scenario = { noSavedKeys?: boolean; scopedKey?: boolean; missingBoundary?: boolean; denySetup?: boolean; initialTaken?: boolean; noCustomDomain?: boolean; checkFailed?: boolean };
const meta = {
title: "Connections/AgentMail setup",
id: "connections-agentmail-setup",
title: "Apps, channels, and extensions/External chat and email/Connections/AgentMail setup",
component: AgentMailJourney,
parameters: { layout: "fullscreen" },
args: { savedConnection: true },
@@ -6,7 +6,8 @@ import type { EmailEndpointSummary } from "@paperclipai/shared";
const COMPANY = "company-storybook";
const ENDPOINT = "agentmail-settings-preview";
const meta = {
title: "Connections/AgentMail settings",
id: "connections-agentmail-settings",
title: "Apps, channels, and extensions/External chat and email/Connections/AgentMail settings",
component: EmailEndpointSettings,
parameters: { layout: "padded" },
args: { endpointId: ENDPOINT, companyId: COMPANY, assignedAgentName: "Ralph" },
@@ -545,7 +545,8 @@ function EmailTaskExperience({
);
}
const meta = {
title: "Connections/AgentMail tasks",
id: "connections-agentmail-tasks",
title: "Apps, channels, and extensions/External chat and email/Connections/AgentMail tasks",
component: EmailTaskExperience,
parameters: { layout: "fullscreen" },
} satisfies Meta<typeof EmailTaskExperience>;
@@ -10,7 +10,8 @@ const endpoint: ChatEndpoint = {
};
const meta = {
title: "Connections/Chat connection actions",
id: "connections-chat-connection-actions",
title: "Apps, channels, and extensions/External chat and email/Connections/Chat connection actions",
component: ConnectorCard,
parameters: { layout: "padded" },
args: {
@@ -9,7 +9,7 @@ import { PluginLauncherProvider } from "@/plugins/launchers";
import { ChatEndpointDetail } from "@/pages/apps/chat/ChatEndpointDetail";
import { useCompany } from "@/context/CompanyContext";
import type { ChatEndpoint, ChatEndpointResource, ChatIdentityLink } from "@/api/chatEndpoints";
import { storybookAgents } from "../../fixtures/paperclipData";
import { storybookAgents } from "../../../fixtures/paperclipData";
type Scenario = "populated" | "empty" | "error" | "channel-added" | "unlinked" | "invitation-expired";
function ChatManagementPage({ tab = "settings", scenario = "populated" }: { tab?: string; scenario?: Scenario }) {
@@ -105,7 +105,8 @@ function ChatManagementPage({ tab = "settings", scenario = "populated" }: { tab?
}
const meta = {
title: "Connections/Chat management",
id: "connections-chat-management",
title: "Apps, channels, and extensions/External chat and email/Connections/Chat management",
component: ChatManagementPage,
parameters: { layout: "fullscreen", a11y: { test: "off" } },
args: { tab: "settings", scenario: "populated" },
@@ -32,11 +32,12 @@ import {
configuration,
reviews,
conversations,
} from "./fixtures";
import { FixtureApi, type FixtureState } from "./fixture-api";
} from "../../../support/github-bot-management/fixtures";
import { FixtureApi, type FixtureState } from "../../../support/github-bot-management/fixture-api";
const meta = {
title: "Connectors/GitHub bot management",
id: "connectors-github-bot-management",
title: "Apps, channels, and extensions/External chat and email/Connectors/GitHub bot management",
parameters: {
layout: "fullscreen",
initialEntries: [`/PAP/apps/chat/${endpoint.id}/settings`],
@@ -1,9 +1,10 @@
import type { Meta, StoryObj } from "@storybook/react-vite";
import { expect, userEvent, within } from "storybook/test";
import { GitHubChatPreview } from "../prototypes/github-chat/GitHubChatPreview";
import { GitHubChatPreview } from "../../prototypes/github-chat/GitHubChatPreview";
const meta = {
title: "Historical/GitHub chat prototypes",
id: "historical-github-chat-prototypes",
title: "Apps, channels, and extensions/External chat and email/Historical/GitHub chat prototypes",
component: GitHubChatPreview,
parameters: {
layout: "fullscreen",
@@ -10,7 +10,7 @@ import { queryKeys } from "@/lib/queryKeys";
import { Browse } from "@/pages/apps/Browse";
import { AppsConnect } from "@/pages/apps/AppsConnect";
import { ChatEndpointSetup } from "@/pages/apps/chat/ChatEndpointSetup";
import { storybookAgents } from "../fixtures/paperclipData";
import { storybookAgents } from "../../fixtures/paperclipData";
const companyId = "company-storybook";
// Hosted Storybooks live below a branch path; reuse their bundled GitHub marks.
@@ -78,7 +78,8 @@ function GitHubConnections({ saved = false, chatEnabled = true }) {
}
const meta = {
title: "Connections/GitHub and Code Review Bot",
id: "connections-github-and-code-review-bot",
title: "Apps, channels, and extensions/External chat and email/Connections/GitHub and Code Review Bot",
component: GitHubConnections,
play: async ({ canvasElement }) => {
await userEvent.type(await within(canvasElement).findByRole("searchbox", { name: "Search connectors" }), "GitHub");
@@ -11,7 +11,7 @@ import { TaskChatBubble } from "@/components/task-chat/TaskChatBubble";
import { Button } from "@/components/ui/button";
import type { ChatEndpoint, ChatIdentityLink } from "@/api/chatEndpoints";
import type { TaskChatMessageItem } from "@/components/task-chat/task-chat-model";
import { storybookAgents } from "../fixtures/paperclipData";
import { storybookAgents } from "../../fixtures/paperclipData";
type Screen = "catalog" | "agent" | "credentials" | "access" | "task" | "reconnect";
type Scenario = { screen?: Screen; dedicated?: boolean; outage?: boolean; noLine?: boolean; loading?: boolean; connecting?: boolean };
@@ -96,7 +96,8 @@ function Host(props: { screen?: Screen }) {
}
const meta = {
title: "Connections/iMessage Photon", component: Host,
id: "connections-imessage-photon",
title: "Apps, channels, and extensions/External chat and email/Connections/iMessage Photon", component: Host,
parameters: { layout: "fullscreen" },
beforeEach: ({ parameters }) => {
const scenario = (parameters.photonScenario ?? {}) as Scenario;
@@ -1,10 +1,11 @@
import type { Meta, StoryObj } from "@storybook/react-vite";
import { expect, userEvent, within } from "storybook/test";
import { SlackSetupFixture } from "../fixtures/SlackSetupFixture";
import { SlackSetupFixture } from "../../fixtures/SlackSetupFixture";
const start = "/PAP/apps/chat/connect?provider=slack&purpose=chat";
const meta = {
title: "Connections/Slack/Automatic setup",
id: "connections-slack-automatic-setup",
title: "Apps, channels, and extensions/External chat and email/Connections/Slack/Automatic setup",
component: SlackSetupFixture,
parameters: { layout: "fullscreen", initialEntries: [`${start}&resume=slack-story`],
docs: { description: { component: "Production Slack setup pages in journey order. Automatic stories use the same four-step wizard; manual setup retains account linking. Slack creation, consent, verification, and identity discovery are simulated; use synthetic tokens only." } } },
@@ -1,7 +1,8 @@
import type { Meta, StoryObj } from "@storybook/react-vite";
import { SlackAvatarSettingsPreview } from "../prototypes/slack-avatar/SlackAvatarSettingsPreview";
import { SlackAvatarSettingsPreview } from "../../prototypes/slack-avatar/SlackAvatarSettingsPreview";
const meta = {
title: "Connections/Slack/Avatar in Settings",
id: "connections-slack-avatar-in-settings",
title: "Apps, channels, and extensions/External chat and email/Connections/Slack/Avatar in Settings",
component: SlackAvatarSettingsPreview,
parameters: {
layout: "fullscreen",
@@ -1,9 +1,10 @@
import type { Meta, StoryObj } from "@storybook/react-vite";
import { expect, userEvent, within } from "storybook/test";
import { SlackAvatarSettingsPreview } from "../prototypes/slack-avatar/SlackAvatarSettingsPreview";
import { SlackAvatarSettingsPreview } from "../../prototypes/slack-avatar/SlackAvatarSettingsPreview";
const meta = {
title: "Connections/Slack/Communication in Settings",
id: "connections-slack-communication-in-settings",
title: "Apps, channels, and extensions/External chat and email/Connections/Slack/Communication in Settings",
component: SlackAvatarSettingsPreview,
parameters: { layout: "fullscreen", docs: { description: { component: "Production communication field in a Settings fixture. Saves use local story state; instructions apply to new tasks. Reply detail and progress are built-in behavior." } } },
} satisfies Meta<typeof SlackAvatarSettingsPreview>;
@@ -1,10 +1,11 @@
import type { Meta, StoryObj } from "@storybook/react-vite";
import { expect, userEvent, within, waitFor } from "storybook/test";
import { SlackSetupFixture } from "../fixtures/SlackSetupFixture";
import { SlackSetupFixture } from "../../fixtures/SlackSetupFixture";
const start = "/PAP/apps/chat/connect?provider=slack&purpose=chat";
const meta = {
title: "Connections/Slack/Managed setup", component: SlackSetupFixture,
id: "connections-slack-managed-setup",
title: "Apps, channels, and extensions/External chat and email/Connections/Slack/Managed setup", component: SlackSetupFixture,
args: { managed: true },
parameters: { layout: "fullscreen", initialEntries: [`${start}&resume=slack-story`] },
render: args => <SlackSetupFixture key={`${args.scenario}-${args.workspaceCount}-${args.managedAvailable}-${args.optionsDelayMs}-${args.optionsError}`} {...args} />,
@@ -3,7 +3,7 @@ import { SLACK_TOOLS, type SlackSearchStatus } from "@paperclipai/shared";
import {
SlackCapabilitiesView,
SlackSearchView,
} from "../../src/pages/apps/chat/SlackToolSettings";
} from "../../../src/pages/apps/chat/SlackToolSettings";
const base: SlackSearchStatus = {
canConfigure: true,
configured: false,
@@ -52,7 +52,8 @@ function Preview({
);
}
export default {
title: "Connections/Slack/Task tools",
id: "connections-slack-task-tools",
title: "Apps, channels, and extensions/External chat and email/Connections/Slack/Task tools",
component: Preview,
parameters: { layout: "fullscreen" },
} satisfies Meta<typeof Preview>;
@@ -1,9 +1,10 @@
import type { Meta, StoryObj } from "@storybook/react-vite";
import { fn } from "storybook/test";
import { DecisionModelSettingsView } from "@/components/decision-models/DecisionModelSettings";
import { choices, configured, result, unconfigured } from "./fixtures";
import { choices, configured, result, unconfigured } from "../../../support/decision-models/fixtures";
const meta = { title: "Decision models/01 Settings", component: DecisionModelSettingsView,
const meta = { id: "decision-models-01-settings",
title: "Getting started and access/Companies and portability/Decision models/01 Settings", component: DecisionModelSettingsView,
decorators: [Story => <main className="p-6"><Story /></main>],
args: { settings: configured, choices, onSave: fn(), onTest: fn(), onAdd: fn() },
} satisfies Meta<typeof DecisionModelSettingsView>;
@@ -1,8 +1,9 @@
import type { Meta, StoryObj } from "@storybook/react-vite";
import { DecisionHistoryTable } from "@/components/decision-models/DecisionHistory";
import { entry } from "./fixtures";
import { entry } from "../../../support/decision-models/fixtures";
const meta = { title: "Decision models/02 History", component: DecisionHistoryTable,
const meta = { id: "decision-models-02-history",
title: "Getting started and access/Companies and portability/Decision models/02 History", component: DecisionHistoryTable,
decorators: [Story => <main className="p-6"><Story /></main>], args: { entries: [entry] },
} satisfies Meta<typeof DecisionHistoryTable>;
export default meta;
@@ -7,7 +7,7 @@ import { Layout } from "@/components/Layout";
import { CompanySettings } from "@/pages/CompanySettings";
import { Costs } from "@/pages/Costs";
import { PluginLauncherProvider } from "@/plugins/launchers";
import { choices, companyId, configured, entry, result, unconfigured } from "./fixtures";
import { choices, companyId, configured, entry, result, unconfigured } from "../../../support/decision-models/fixtures";
import type { DecisionHistoryEntry } from "@paperclipai/shared";
/** Production pages and shell; only API responses and paid provider execution are simulated. */
@@ -68,7 +68,8 @@ function Journey({ alreadyConfigured = false }: { alreadyConfigured?: boolean })
<Route path="activity/costs" element={<Costs />} />
</Route></Routes></PluginLauncherProvider> : null;
}
const meta = { title: "Decision models/03 Journey", component: Journey, parameters: {
const meta = { id: "decision-models-03-journey",
title: "Getting started and access/Companies and portability/Decision models/03 Journey", component: Journey, parameters: {
layout: "fullscreen", initialEntries: ["/PAP/company/settings"], docs: { story: { inline: false }, description: { component: "Select an existing shared connection, preserve the background setting, save, run the sample, and follow View usage. Paid calls are fixtures." } },
} } satisfies Meta<typeof Journey>;
export default meta;
@@ -1,7 +1,7 @@
import type { Meta, StoryObj } from "@storybook/react-vite";
import { fn } from "storybook/test";
import { FastResponseSettingsView } from "@/components/fast-responses/FastResponseSettings";
import { choices } from "../decision-models/fixtures";
import { choices } from "../../../support/decision-models/fixtures";
import type {
FastResponseSettings,
FastResponseTestResult,
@@ -36,7 +36,8 @@ export const result: FastResponseTestResult = {
},
};
const meta = {
title: "Fast responses/01 Settings",
id: "fast-responses-01-settings",
title: "Getting started and access/Companies and portability/Fast responses/01 Settings",
excludeStories: ["empty", "configured", "result"],
component: FastResponseSettingsView,
decorators: [
@@ -1,7 +1,7 @@
import type { Meta, StoryObj } from "@storybook/react-vite";
import type { FastResponseHistoryEntry } from "@paperclipai/shared";
import { DecisionHistoryTable } from "@/components/decision-models/DecisionHistory";
import { entry } from "../decision-models/fixtures";
import { entry } from "../../../support/decision-models/fixtures";
const receipt: FastResponseHistoryEntry = {
...entry,
feature: "message",
@@ -16,7 +16,8 @@ const receipt: FastResponseHistoryEntry = {
costStatus: "reported",
};
const meta = {
title: "Fast responses/02 History",
id: "fast-responses-02-history",
title: "Getting started and access/Companies and portability/Fast responses/02 History",
component: DecisionHistoryTable,
decorators: [
(Story) => (
@@ -1,6 +1,6 @@
import type { Meta, StoryObj } from "@storybook/react-vite";
import { AppLogo } from "@/pages/apps/AppLogo";
import manifest from "../../public/brands/apps/manifest.json";
import manifest from "../../../public/brands/apps/manifest.json";
const sizes = [24, 28, 32, 36, 44, 48];
const launchOrder = ["gmail", "google-calendar", "slack", "stripe"];
@@ -31,7 +31,8 @@ function Registry() {
);
}
const meta = { title: "Apps/Canonical icon registry", component: Registry, parameters: { layout: "fullscreen" } } satisfies Meta<typeof Registry>;
const meta = { id: "apps-canonical-icon-registry",
title: "Apps, channels, and extensions/Connection setup/Apps/Canonical icon registry", component: Registry, parameters: { layout: "fullscreen" } } satisfies Meta<typeof Registry>;
export default meta;
type Story = StoryObj<typeof meta>;
export const Light: Story = { globals: { theme: "light" } };
@@ -1,9 +1,10 @@
import { userEvent, within } from "storybook/test";
import type { Meta, StoryObj } from "@storybook/react-vite";
import { RemoteMcpConnectionReview } from "../prototypes/RemoteMcpConnectionReview";
import { RemoteMcpConnectionReview } from "../../prototypes/RemoteMcpConnectionReview";
const meta = {
title: "Apps/Connections/Arcade",
id: "apps-connections-arcade",
title: "Apps, channels, and extensions/Connection setup/Apps/Connections/Arcade",
component: RemoteMcpConnectionReview,
args: { provider: "arcade", scenario: "journey" },
parameters: { layout: "fullscreen", docs: { description: { component: "Interactive design review using application views with in-memory provider responses. No real authentication, tool calls, or credential persistence. Representative catalogs are examples; production discovery supplies the actual tools." } } },
@@ -1,9 +1,10 @@
import { userEvent, within } from "storybook/test";
import type { Meta, StoryObj } from "@storybook/react-vite";
import { RemoteMcpConnectionReview } from "../prototypes/RemoteMcpConnectionReview";
import { RemoteMcpConnectionReview } from "../../prototypes/RemoteMcpConnectionReview";
const meta = {
title: "Apps/Connections/Composio",
id: "apps-connections-composio",
title: "Apps, channels, and extensions/Connection setup/Apps/Connections/Composio",
component: RemoteMcpConnectionReview,
args: { provider: "composio", scenario: "journey" },
parameters: { layout: "fullscreen", docs: { description: { component: "Interactive design review using application views with in-memory provider responses. No real authentication, tool calls, or credential persistence. Representative catalogs are examples; production discovery supplies the actual tools." } } },
@@ -9,7 +9,7 @@ import {
} from "@paperclipai/shared";
import { RemoteMcpAccountChoice } from "@/features/connections/remote-mcp/RemoteMcpAccountChoice";
import { QuestionForm } from "@/components/task-chat/QuestionForm";
import { RemoteMcpConnectionReview } from "../prototypes/RemoteMcpConnectionReview";
import { RemoteMcpConnectionReview } from "../../prototypes/RemoteMcpConnectionReview";
function ProviderChoice({
existing = false,
@@ -109,7 +109,8 @@ function ProviderChoice({
);
}
const meta = {
title: "Apps/Connections/Provider choice",
id: "apps-connections-provider-choice",
title: "Apps, channels, and extensions/Connection setup/Apps/Connections/Provider choice",
component: ProviderChoice,
parameters: { layout: "fullscreen" },
} satisfies Meta<typeof ProviderChoice>;
@@ -1,9 +1,10 @@
import { userEvent, within } from "storybook/test";
import type { Meta, StoryObj } from "@storybook/react-vite";
import { RemoteMcpConnectionReview } from "../prototypes/RemoteMcpConnectionReview";
import { RemoteMcpConnectionReview } from "../../prototypes/RemoteMcpConnectionReview";
const meta = {
title: "Apps/Connections/Executor",
id: "apps-connections-executor",
title: "Apps, channels, and extensions/Connection setup/Apps/Connections/Executor",
component: RemoteMcpConnectionReview,
args: { provider: "executor", scenario: "journey" },
parameters: { layout: "fullscreen", docs: { description: { component: "Interactive design review using application views with in-memory provider responses. No real authentication, tool calls, or credential persistence. Representative catalogs are examples; production discovery supplies the actual tools." } } },
@@ -1,8 +1,9 @@
import type { Meta, StoryObj } from "@storybook/react-vite";
import { RemoteMcpConnectionReview } from "../prototypes/RemoteMcpConnectionReview";
import { RemoteMcpConnectionReview } from "../../prototypes/RemoteMcpConnectionReview";
const meta = {
title: "Apps/Connections/Zapier",
id: "apps-connections-zapier",
title: "Apps, channels, and extensions/Connection setup/Apps/Connections/Zapier",
component: RemoteMcpConnectionReview,
args: { provider: "zapier", scenario: "journey" },
parameters: { layout: "fullscreen", docs: { description: { component: "Interactive design review using application views with in-memory provider responses. No real authentication, tool calls, or credential persistence. Representative catalogs are examples; production discovery supplies the actual tools." } } },
@@ -10,8 +10,8 @@ import { GitHubSetupPrompt } from "@/pages/apps/chat/GitHubSetupPrompt";
import { McpConfigHelpDialog } from "@/pages/tools/McpConfigHelpDialog";
import { AgentInstructions } from "@/components/routine-triggers/WebhookFields";
import { IssueContinuationHandoff } from "@/components/IssueContinuationHandoff";
import { webhookAgentInstructions } from "../fixtures/routineTriggerWizard";
import { storybookContinuationHandoff } from "../fixtures/paperclipData";
import { webhookAgentInstructions } from "../../fixtures/routineTriggerWizard";
import { storybookContinuationHandoff } from "../../fixtures/paperclipData";
const slackPrompt = buildSlackSetupPrompt(import.meta.env.VITE_PAPERCLIP_INSTANCE_URL ?? "");
const apiPrompt = `Help me connect my agent to the Paperclip API.
@@ -23,7 +23,8 @@ Guide me through creating a dedicated agent API key. Store it securely in my age
Configure the base URL and authentication, then verify the connection with a read-only request. Show me what worked and ask before making any changes to my company.`;
const meta = {
title: "Components/Agent setup prompt",
id: "components-agent-setup-prompt",
title: "Apps, channels, and extensions/Connection setup/Components/Agent setup prompt",
component: AgentSetupPrompt,
parameters: {
layout: "fullscreen",
@@ -1,9 +1,10 @@
import type { Meta, StoryObj } from "@storybook/react-vite";
import { expect, userEvent, within } from "storybook/test";
import { ConnectorCatalogNavigation } from "../prototypes/ConnectorCatalogNavigation";
import { ConnectorCatalogNavigation } from "../../prototypes/ConnectorCatalogNavigation";
const meta = {
title: "Apps/Catalog source selection",
id: "apps-catalog-source-selection",
title: "Apps, channels, and extensions/Connection setup/Apps/Catalog source selection",
component: ConnectorCatalogNavigation,
parameters: {
layout: "fullscreen",
@@ -58,7 +58,8 @@ function PasteConfigHost() {
}
const meta: Meta = {
title: "Apps/Connect discoverability (PAP-11091)",
id: "apps-connect-discoverability-pap-11091",
title: "Apps, channels, and extensions/Connection setup/Apps/Connect discoverability (PAP-11091)",
parameters: { layout: "fullscreen" },
};
export default meta;
@@ -82,7 +82,8 @@ function KeyStepHost({ customName }: { customName?: string }) {
}
const meta: Meta = {
title: "Apps/Connect name at create time (PAP-11283)",
id: "apps-connect-name-at-create-time-pap-11283",
title: "Apps, channels, and extensions/Connection setup/Apps/Connect name at create time (PAP-11283)",
parameters: { layout: "fullscreen" },
};
export default meta;
@@ -6,7 +6,7 @@ import type {
ToolConnection,
} from "@paperclipai/shared";
import { BrowserUseSettingsPanel } from "@/pages/apps/app-detail/BrowserUseSettingsPanel";
import { BrowserStoryProviders, mockBrowserUse } from "../fixtures/browser-use";
import { BrowserStoryProviders, mockBrowserUse } from "../../fixtures/browser-use";
const connection = {
id: "browser-use-cloud-connection",
companyId: "storybook-company",
@@ -27,7 +27,8 @@ const grants = {
grants: [grant("shared", "organization")],
} as ConnectionGrantsResponse;
const meta = {
title: "Connections/Browser Use Cloud/Settings",
id: "connections-browser-use-cloud-settings",
title: "Apps, channels, and extensions/Connection setup/Connections/Browser Use Cloud/Settings",
component: BrowserUseSettingsPanel,
parameters: {
layout: "centered",
@@ -13,7 +13,7 @@ import { ConnectionSetupFlow } from "@/features/connections/ConnectionSetupFlow"
import { AgentConnectionInstructions } from "@/features/connections/ConnectionInstructions";
import { Button } from "@/components/ui/button";
import { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle } from "@/components/ui/dialog";
import { GUIDANCE_COMPANY, GUIDANCE_CONNECTION, guidanceAgents, installConnectionGuidanceFixtures } from "../fixtures/connectionInstructions";
import { GUIDANCE_COMPANY, GUIDANCE_CONNECTION, guidanceAgents, installConnectionGuidanceFixtures } from "../../fixtures/connectionInstructions";
const HONCHO = getConnectableAppDefinition("honcho")!.agentInstructions!.text;
const NOTION = "Use Notion as the source for our published product decisions. Look up the relevant decision before proposing a change, and link to the page you used. Ask before changing a published decision. If a page is unavailable, say which context is missing and continue with the information you have.";
@@ -62,7 +62,8 @@ function ConnectionInstructionsPrototype({ initialView = "connection", provider
}
const meta = {
title: "Design explorations/Connections/Agent instructions",
id: "design-explorations-connections-agent-instructions",
title: "Apps, channels, and extensions/Connection setup/Design explorations/Connections/Agent instructions",
component: ConnectionInstructionsPrototype,
args: { providedInstructions: HONCHO },
parameters: { layout: "fullscreen", docs: { description: { component: "Production Layout, ConnectionSetupFlow, AppDetail, identity/access controls, and searchable Actions list with local API fixtures. The production instructions editor saves and reloads through mocked APIs. Baseline stories omit template metadata. No provider calls." } } },
@@ -225,7 +225,8 @@ function MethodCopyHost() {
}
const meta: Meta = {
title: "Apps/Enterpret connector",
id: "apps-enterpret-connector",
title: "Apps, channels, and extensions/Connection setup/Apps/Enterpret connector",
parameters: {
layout: "fullscreen",
docs: {
@@ -13,7 +13,7 @@ import { TriggersSection } from "@/components/routine-sections/editable-sections
import { RoutineDetailContext, type RoutineDetailContextValue } from "@/components/routine-sections/context";
import { Button } from "@/components/ui/button";
import { useNavigate } from "@/lib/router";
import { WebhookReview, webhook, baseRoutine } from "../fixtures/routineWebhooks";
import { WebhookReview, webhook, baseRoutine } from "../../fixtures/routineWebhooks";
const fireflies = CONNECTABLE_APP_DEFINITIONS.find((app) => app.slug === "fireflies")!;
const demoSecret = "storybook-only-signing-secret";
@@ -23,7 +23,8 @@ function Frame({ children }: { children: ReactNode }) {
return <div className="mx-auto max-w-5xl space-y-6 p-6 text-foreground"><p className="text-xs text-muted-foreground">PR #13890 · Production components with simulated data. No provider requests or real credentials.</p>{children}</div>;
}
const meta = {
title: "PR reviews/Fireflies and app webhooks",
id: "pr-reviews-fireflies-and-app-webhooks",
title: "Apps, channels, and extensions/Connection setup/PR reviews/Fireflies and app webhooks",
parameters: { layout: "fullscreen", docs: { description: { component: "Coverage of PR #13890: Fireflies catalog/artwork and shared connection flow, preserved action permissions, generic webhook wizard and saved settings, and both advanced trigger editors. All network mutations are simulated. Use the toolbar to switch theme or viewport. Legacy stories only demonstrate resuming existing configurations; new webhooks use Another app or script." } } },
afterEach: ({ id }) => { document.body.dataset.firefliesStoryReady = id; },
beforeEach: () => {
@@ -9,7 +9,7 @@ import { ConnectionSetupFlow, ConnectionSetupCompletionScreen, AccessStep, OAuth
import { Dialog, DialogContent, DialogTitle } from "@/components/ui/dialog";
import { TaskChatComposer } from "@/components/task-chat/TaskChatComposer";
import { TaskChatInteractionCard } from "@/components/task-chat/TaskChatInteractionCard";
import { storybookAgentMap, storybookAgents } from "../fixtures/paperclipData";
import { storybookAgentMap, storybookAgents } from "../../fixtures/paperclipData";
import { useNavigate } from "@/lib/router";
import {
pendingConnectionIntentInteraction as pending,
@@ -37,7 +37,8 @@ const connection = {
type Scenario = { email?: boolean; access?: boolean; ai?: boolean; missingAiAccount?: "anthropic" | "openai"; ownerOnly?: boolean; checking?: boolean; count?: number; loading?: boolean; loadError?: boolean; completeError?: boolean; submitting?: boolean; denied?: boolean };
const meta: Meta = {
title: "Connections/In-task connections",
id: "connections-in-task-connections",
title: "Apps, channels, and extensions/Connection setup/Connections/In-task connections",
parameters: { layout: "padded" },
afterEach: ({ id }) => { document.body.dataset.inFeedStoryReady = id; },
beforeEach: ({ parameters }) => {
@@ -2,7 +2,8 @@ import type { Meta, StoryObj } from "@storybook/react-vite";
import { ManagedOAuthHandoffState } from "@/pages/apps/PaperclipCloudOAuthHandoff";
const meta: Meta<typeof ManagedOAuthHandoffState> = {
title: "Apps/Managed Cloud OAuth handoff",
id: "apps-managed-cloud-oauth-handoff",
title: "Apps, channels, and extensions/Connection setup/Apps/Managed Cloud OAuth handoff",
component: ManagedOAuthHandoffState,
parameters: { layout: "fullscreen" },
args: {
@@ -91,7 +91,8 @@ function MemoryReview({ provider = "mem0", scenario = "catalog" }: { provider?:
</div>
</QueryClientProvider>;
}
const meta = { title: "Apps/Connections/Memory", component: MemoryReview, parameters: { layout: "fullscreen" } } satisfies Meta<typeof MemoryReview>;
const meta = { id: "apps-connections-memory",
title: "Apps, channels, and extensions/Connection setup/Apps/Connections/Memory", component: MemoryReview, parameters: { layout: "fullscreen" } } satisfies Meta<typeof MemoryReview>;
export default meta;
type Story = StoryObj<typeof meta>;
export const CatalogAndSetup: Story = { args: { scenario: "catalog" } };
@@ -339,7 +339,8 @@ function VercelConnectProvenanceHost() {
}
const meta: Meta = {
title: "Apps/Notion MCP connect flow (PAP-16650)",
id: "apps-notion-mcp-connect-flow-pap-16650",
title: "Apps, channels, and extensions/Connection setup/Apps/Notion MCP connect flow (PAP-16650)",
parameters: { layout: "fullscreen" },
};
export default meta;
@@ -152,7 +152,8 @@ function IdentitiesHarness({
}
const meta: Meta = {
title: "Reviews/PAP-17835 Personal connection identity",
id: "reviews-pap-17835-personal-connection-identity",
title: "Apps, channels, and extensions/Connection setup/Reviews/PAP-17835 Personal connection identity",
parameters: { layout: "fullscreen" },
};
export default meta;
@@ -13,7 +13,8 @@ function StoryFrame({ children }: { children: React.ReactNode }) {
}
const meta = {
title: "UX Labs/Converted Test Pages",
id: "ux-labs-converted-test-pages",
title: "Contributor surfaces/Developer previews and diagnostic labs/UX Labs/Converted Test Pages",
parameters: {
docs: {
description: {
@@ -6,10 +6,11 @@ import {
identityControls,
textData,
diffControls,
} from "./storyConfig";
} from "../../../support/artifact-cards/storyConfig";
const meta = {
title: "Explorations/Artifact cards/Commit",
id: "explorations-artifact-cards-commit",
title: "Tasks and conversations/Documents, attachments, and work products/Explorations/Artifact cards/Commit",
component: CommitCard,
decorators,
parameters,
@@ -6,10 +6,11 @@ import {
identityControls,
textData,
objectData,
} from "./storyConfig";
} from "../../../support/artifact-cards/storyConfig";
const meta = {
title: "Explorations/Artifact cards/Data",
id: "explorations-artifact-cards-data",
title: "Tasks and conversations/Documents, attachments, and work products/Explorations/Artifact cards/Data",
component: DataCard,
decorators,
parameters,
@@ -6,10 +6,11 @@ import {
identityControls,
textData,
numberData,
} from "./storyConfig";
} from "../../../support/artifact-cards/storyConfig";
const meta = {
title: "Explorations/Artifact cards/Document",
id: "explorations-artifact-cards-document",
title: "Tasks and conversations/Documents, attachments, and work products/Explorations/Artifact cards/Document",
component: DocumentCard,
decorators,
parameters,
@@ -6,10 +6,11 @@ import {
identityControls,
textData,
objectData,
} from "./storyConfig";
} from "../../../support/artifact-cards/storyConfig";
const meta = {
title: "Explorations/Artifact cards/File",
id: "explorations-artifact-cards-file",
title: "Tasks and conversations/Documents, attachments, and work products/Explorations/Artifact cards/File",
component: FileCard,
decorators,
parameters,
Loaded 100 of 258 files, more files were not shown because too many files have changed in this diff. Show more