Orchestrata Ultimate / Specs / 013-ux-volk

013-ux-volk: UX Volk (User Experience Designer)

U:Ux is the UX volk — responsible for designing user interfaces when the project requires a UI (web app, dashboard, mobile, desktop). It produces wireframes, interaction flows, component hierarchies, and design tokens that the Architect and Junior use to build the frontend.

At a glance

Item Value
Spec directory specs/013-ux-volk/
Status line in the spec Draft
Requirement IDs defined 33
With a @traces citation in src/ 30 (90.9%)
With a @traces citation in tests/ 0 (0.0%)
Tracked files 6
RTM page 013-ux-volk

Reading this spec

U:Ux is the User Experience Designer Volk. It designs user interfaces when a project needs one (web app, dashboard, mobile or desktop) and produces wireframes, interaction flows, component hierarchies and design tokens that the Architect and the Junior use to build the frontend. The spec states that U:Ux is only activated when the project has a UI requirement; for libraries, CLI tools and backend services it is skipped entirely.

The problems it addresses are generated UI projects with no design system, frontend code written without regard to user workflows, no component hierarchy, no responsive design or accessibility requirements, and ad-hoc visual decisions by the code generator.

The scope is six user stories: user workflow design and component hierarchy (critical), wireframes, design tokens and accessibility requirements (high), and interaction design (medium). Requirement IDs use the REQ-013- prefix.

The flow is stated in the overview. The Concierge detects a UI requirement and flags has_ui: true. U:Ux receives the requirements and produces design artifacts. Those artifacts feed the Architect's API spec and file tree. The Junior implements the frontend from the design as a blueprint, and QA validates the UI against the UX design specs.

In the code, the Volk is orchestrata_ultimate/agents/volks/ux/volk, which cites 30 of the requirements. The per-requirement view is on the RTM page.

The spec's status line reads Draft. It tracks 6 files and defines 33 requirement IDs. The full text follows below.

Measured coverage is 30 of 33 requirements cited by at least one @traces in src/ (90.9%), spread over 1 module; the module citing the most of them is orchestrata_ultimate/agents/volks/ux/volk (30 requirements). In tests/, 0 requirements are cited by a test-side @traces.

Coverage gaps: 3 requirements have no citing symbol. The largest untraced groups are REQ-013-NFR (3). Untraced means no @traces names the ID; the behaviour may still exist in code that was never annotated. Test-side citations are thinner than code-side ones (0 against 30).

Requirements

Checkbox is the state recorded in the requirements checklist; Traced by is the count of src/ symbols whose @traces names the ID.

ID Done Requirement Traced by
REQ-013-001 no UXVolk alias is "U:Ux" 1
REQ-013-002 no UXVolk role is "UX Designer" 1
REQ-013-003 no routes CXP packets with subject "ux_design" to 1
REQ-013-004 no returns None for any subject other than "ux_design" 1
REQ-013-005 no calls when payload field is False or absent 1
REQ-013-006 no constructs a CXP addressed to U:Ar with subject "implement" 1
REQ-013-007 no sets WorkStatus.PENDING on the outbound CXP packet 1
REQ-013-008 no forwards from the inbound payload unchanged 1
REQ-013-009 no forwards from the inbound payload unchanged 1
REQ-013-010 no forwards from the inbound payload unchanged 1
REQ-013-011 no forwards from the inbound payload unchanged 1
REQ-013-012 no forwards from the inbound payload unchanged 1
REQ-013-013 no forwards from the inbound payload unchanged 1
REQ-013-014 no does not inject any UX-specific keys when has_ui is False 1
REQ-013-015 no calls when payload field is True 1
REQ-013-016 no calls with UX_SYSTEM_PROMPT and a prompt derived from the packet payload 1
REQ-013-017 no calls with 1
REQ-013-018 no UX_SYSTEM_PROMPT contains step 1: MAP USER WORKFLOWS (screen flows, data annotations) 1
REQ-013-019 no UX_SYSTEM_PROMPT contains step 2: BUILD COMPONENT HIERARCHY (page→layout→section→widget) 1
REQ-013-020 no UX_SYSTEM_PROMPT contains step 3: DRAW WIREFRAMES (ASCII layouts, data source annotations, responsive breakpoints) 1
REQ-013-021 no UX_SYSTEM_PROMPT contains step 4: DEFINE DESIGN TOKENS (colors, typography, spacing scale) 1
REQ-013-022 no UX_SYSTEM_PROMPT contains step 5: SPECIFY ACCESSIBILITY (WCAG 2.1 AA, keyboard nav, ARIA, contrast 4.5:1) 1
REQ-013-023 no stores the LLM output in a field on the outbound payload 1
REQ-013-024 no LLM output begins with the literal prefix "UX_DESIGN:" 1
REQ-013-025 no LLM output contains a "WORKFLOWS:" section covering screen flows and data annotations 1
REQ-013-026 no LLM output contains a "COMPONENTS:" section covering the component hierarchy 1
REQ-013-027 no LLM output contains a "WIREFRAMES:" section with ASCII layouts and breakpoints 1
REQ-013-028 no LLM output contains a "DESIGN_TOKENS:" section covering colors, typography, and spacing 1
REQ-013-029 no LLM output contains an "ACCESSIBILITY:" section covering WCAG 2.1 AA requirements 1
REQ-013-030 no constructs a CXP addressed to U:Ar with subject "ux_complete" containing the field plus all preserved payload context fields 2
REQ-013-NFR-001 - U:Ux review adds < 60s latency (single LLM call) none
REQ-013-NFR-002 - U:Ux skipped entirely for non-UI projects none
REQ-013-NFR-003 - U:Ux output is framework-agnostic (works with React, Vue, HTMX) none

Code that traces this spec

Module Symbols Requirements
orchestrata_ultimate/agents/volks/ux/volk 6 30

Checklists

checklists/constitutional.md

UX Volk (U:Ux) — Constitutional Compliance Checklist

Component: UXVolk Spec: 013-ux-volk Status: Compliance Review Total Compliance Items: 12


Overview

This document tracks compliance of the UX Volk (U:Ux) with the Orchestrata Constitution. U:Ux is the design intake for user-facing work. Its constitutional obligations focus on: owning only the ux_design artifact it produces (Article I), deferring governance to Prolog (Article II), maintaining per-packet isolation (Article III), logging all routing decisions (Article IV), not claiming design completion before LLM output is stored (Article V), passing complete payload context to U:Ar (Article VI), and testing with real implementations rather than mocks (Article VII).


Article I: Agent Autonomy and Ownership Boundaries

Principle: U:Ux owns only the ux_design artifact. It does not modify files, rewrite requirements, or produce architecture artifacts that belong to U:Ar.

Compliance Requirements

Priority: Critical Verification: Code review of volk.py; assert no file I/O calls; assert no subject other than ux_design handled


Article II: Prolog as Single Source of Truth

Principle: U:Ux does not implement governance logic. The has_ui flag is a task classification input, not a policy decision evaluated by U:Ux.

Compliance Requirements

Priority: High Verification: grep for pyswip imports in orchestrata-ux package; assert none found


Article III: Session Isolation

Principle: Each UX request is stateless. U:Ux carries no mutable state between process() calls — all context is read from and written into CXP packets.

Compliance Requirements

Priority: Critical Verification: Inspect init(); assert no mutable accumulator fields; run two packets in sequence and assert independence


Article IV: Transparency and Logging

Principle: All routing decisions are logged. No silent drops or silent passthroughs.

Compliance Requirements

Priority: Critical Verification: Capture print output in tests; assert [U:Ux] tag present for both passthrough and design paths


Article V: Non-Deception

Principle: U:Ux does not claim ux_design is complete until the LLM response is stored in the outbound payload.

Compliance Requirements

Priority: Critical Verification: Integration test: assert ux_design key is non-empty in the returned CXP payload


Article VI: Quality Gates

Principle: Passthrough preserves all context fields. No field is silently dropped.

Compliance Requirements

Priority: High Verification: Unit test with payload containing all six fields; assert all six appear unchanged in outbound CXP


Summary
Article Compliance Items Completed Status
I: Agent Autonomy 4 0 Pending
II: Prolog as Source of Truth 2 0 Pending
III: Session Isolation 2 0 Pending
IV: Transparency and Logging 2 0 Pending
V: Non-Deception 1 0 Pending
VI: Quality Gates 1 0 Pending
TOTAL 12 0 Pending

Last Updated: 2026-04-04 Version: 1.0.0 Maintained By: Mohamed

checklists/requirements.md

The requirement list above comes from this file; 0 of 30 checkbox items are ticked.

checklists/testing.md

UX Volk (U:Ux) — Testing Plan

Component: UXVolk Spec: 013-ux-volk Status: Test Planning Phase Total Test Cases: 30


Overview

This document defines the comprehensive testing strategy for the UX Volk (U:Ux). All tests follow the strict no-mocking policy: real Python object instantiation, real CXP packet construction, real string parsing. Synthetic LLM responses are constructed as literal strings — the LLM is not invoked in unit tests (it is an external I/O boundary; its output is faked as a string fixture passed directly to _design_ui() via dependency injection, not patched via unittest.mock).


Test Categories Summary
Category Test Count Purpose Priority
Unit Tests 22 Individual method testing Critical
Integration Tests 5 End-to-end routing through process() High
Compliance Tests 3 Constitutional enforcement High
TOTAL 30

Test Infrastructure
Test File Structure
tests/
├── test_ux_volk.py           # Unit: process(), _handle_ux_design(), routing
├── test_ux_passthrough.py    # Unit: _passthrough() payload preservation
├── test_ux_design.py         # Unit: _design_ui(), prompt construction, output storage
└── test_ux_compliance.py     # Compliance: no mocks, ownership, transparency
Synthetic LLM Response Fixture

Tests that exercise design parsing use a synthetic response string — not a mock:

SYNTHETIC_UX_RESPONSE = (
    "UX_DESIGN:\n"
    "WORKFLOWS:\nUser opens dashboard → views metrics → clicks export.\n\n"
    "COMPONENTS:\nPage: Dashboard\n  Layout: TwoColumn\n    Section: MetricsPanel\n"
    "      Widget: KPICard\n\n"
    "WIREFRAMES:\n+-------------------+\n| Header            |\n| [Logo]  [Nav]     |\n"
    "+-------------------+\n| Sidebar | Content |\n+-------------------+\n"
    "Breakpoints: mobile 375px, tablet 768px, desktop 1280px\n\n"
    "DESIGN_TOKENS:\nColors: primary=#2563EB, surface=#F9FAFB\n"
    "Typography: body=Inter 16px/1.5, heading=Inter 600 24px\n"
    "Spacing: base=4px, scale=[4,8,12,16,24,32,48,64]\n\n"
    "ACCESSIBILITY:\nWCAG 2.1 AA compliant. Contrast ratio 4.5:1 minimum.\n"
    "Keyboard nav: Tab order follows DOM order. ARIA labels on all interactive elements.\n"
)

Unit Tests (22)
Process Routing (4 tests)
Passthrough Payload Preservation (10 tests)
UI Design Output (8 tests)
Accessibility Prompt Coverage (3 tests)

Integration Tests (5)

Compliance Tests (3)

Last Updated: 2026-04-04 Version: 1.0.0 Maintained By: Mohamed

Other tracked files

Full spec text

Verbatim from specs/013-ux-volk/spec.md; headings are pushed down two levels.

SPEC-013: UX Volk (User Experience Designer)

Metadata


Overview

What

U:Ux is the UX volk — responsible for designing user interfaces when the project requires a UI (web app, dashboard, mobile, desktop). It produces wireframes, interaction flows, component hierarchies, and design tokens that the Architect and Junior use to build the frontend.

U:Ux is ONLY activated when the project has a UI requirement. For libraries, CLI tools, and backend services, U:Ux is skipped entirely.

Why
How

User Scenarios & Stories

US-001: User Workflow Design (Critical)

As a product owner I want user workflows designed before implementation So that the UI matches how users actually think

Acceptance Criteria:


US-002: Component Hierarchy (Critical)

As a frontend developer I want a component tree before implementation So that I build reusable, composable components

Acceptance Criteria:


US-003: Wireframes (High)

As a developer implementing a UI I want wireframes showing layout and content placement So that I know what goes where without guessing

Acceptance Criteria:


US-004: Design Tokens (High)

As a frontend developer I want a consistent design system So that the UI looks cohesive without a designer

Acceptance Criteria:


US-005: Accessibility Requirements (High)

As a user with disabilities I want accessible interfaces So that I can use the application with assistive technology

Acceptance Criteria:


US-006: Interaction Design (Medium)

As a user I want intuitive interactions So that I can accomplish tasks without training

Acceptance Criteria:


Requirements

Functional Requirements
ID Requirement
REQ-013-001 U:Ux activated ONLY when has_ui is true in requirements
REQ-013-002 U:Ux produces user workflow diagrams
REQ-013-003 U:Ux produces component hierarchy tree
REQ-013-004 U:Ux produces ASCII/Mermaid wireframes per screen
REQ-013-005 U:Ux produces design tokens (colors, typography, spacing)
REQ-013-006 U:Ux specifies accessibility requirements
REQ-013-007 U:Ux specifies interaction patterns (validation, feedback)
REQ-013-008 U:Ux design artifacts feed into Architect API spec
REQ-013-009 Component tree maps to Architect file tree
REQ-013-010 QA validates UI against UX wireframes
Non-Functional Requirements
ID Requirement
REQ-013-NFR-001 U:Ux review adds < 60s latency (single LLM call)
REQ-013-NFR-002 U:Ux skipped entirely for non-UI projects
REQ-013-NFR-003 U:Ux output is framework-agnostic (works with React, Vue, HTMX)

Architecture

Pipeline Position (UI Projects Only)
U:Cx → U:PM → U:Ux (if has_ui) → U:Ar (design with UX artifacts) → U:Vz → J:Junior → U:Qa

For non-UI projects:

U:Cx → U:PM → U:Ar → U:Vz → J:Junior → U:Qa
Activation Gate
# In Concierge _finalize():
has_ui = any(
    keyword in requirements_text.lower()
    for keyword in ["web app", "dashboard", "frontend", "ui",
                     "user interface", "react", "vue", "htmx",
                     "html", "css", "browser", "responsive"]
)
payload["has_ui"] = has_ui
CXP Subjects
Subject From To Payload
ux_design U:PM U:Ux requirements, task_summary
ux_complete U:Ux U:Ar workflows, components, wireframes, tokens
ux_not_needed U:PM U:Ar requirements (passthrough, no UI)
Design Artifacts Output Format
UX_DESIGN:

WORKFLOWS:
- name: <workflow name>
  screens: [<screen1>, <screen2>, ...]
  transitions: [{from: <screen>, to: <screen>, trigger: <action>}]

COMPONENTS:
- name: <ComponentName>
  type: page | layout | widget
  props: [{name: str, type: str, required: bool}]
  children: [<child components>]

WIREFRAMES:
### <ScreenName>
┌─────────────────────────────────┐
│  Header / Navigation             │
├─────────────────────────────────┤
│                                  │
│  Main Content Area               │
│  [data source: GET /api/tasks]   │
│                                  │
├─────────────────────────────────┤
│  Footer                          │
└─────────────────────────────────┘

DESIGN_TOKENS:
- colors: {primary: "#...", secondary: "#...", ...}
- typography: {font: "...", sizes: {h1: "...", body: "..."}}
- spacing: [4, 8, 16, 24, 32]

ACCESSIBILITY:
- WCAG level: AA
- keyboard_nav: required
- aria_labels: required
- contrast_ratio: 4.5:1 minimum