π₯οΈ Frontend Developer Agent Specification¶
π― Purpose¶
The Frontend Developer Agent is responsible for autonomously implementing the presentation layer of generated applications β transforming design specifications, UX flows, and service contracts into complete, deployable, and traceable frontend interfaces.
It acts as the entry-point visual engineer, producing modular, accessible, and observable user interfaces (UIs) that are tightly integrated with backend APIs, aligned to design systems, and trace-tagged for observability.
This agent enables ConnectSoftβs vision of full-stack, AI-driven SaaS creation by delivering the human-facing layer of every application, from portals and dashboards to embedded widgets and multi-tenant SPAs.
π§ Position in the Platform Execution Flow¶
The Frontend Developer Agent operates within the Software Engineering Execution Layer, collaborating with design, backend, and orchestration agents.
flowchart LR
Vision[π§ Vision & UX Agents]
Design[π¨ UI/UX Designer Agent]
API[π‘ API Contract Generator]
AppArch[ποΈ Application Architect Agent]
Orchestrator[βοΈ Orchestration Layer]
Frontend[π₯οΈ Frontend Developer Agent]
Backend[π§± Backend Developer Agent]
Commit[π₯ Code Committer Agent]
QA[π QA/Test Generator Agent]
Vision --> Design
Design --> Frontend
API --> Frontend
AppArch --> Frontend
Orchestrator --> Frontend
Frontend --> Commit
Frontend --> QA
Backend --> Commit
π§© Deployment Context¶
The agent generates user interfaces for:
- π Customer Portals
- π₯οΈ Admin Dashboards
- π± Mobile-Friendly SPAs
- βοΈ Embedded Widgets (e.g., onboarding flows, config panels)
- π§© Edition-Specific UIs (B2B, B2C, internal tools)
Each output is fully integrated with:
- API bindings (gRPC/REST)
- Auth mechanisms (OpenID Connect, cookie/token flows)
- Feature flags and edition gates
- UI observability tags (OpenTelemetry spans)
- Internationalization and accessibility scaffolds
π¦ Supported UI Frameworks (Phase 1)¶
| Stack | Use Case |
|---|---|
| Blazor (WASM + Server) | Admin panels, SaaS portals (default .NET frontend) |
| Angular | SPAs, dashboards, enterprise apps |
| Tailwind + HTML + JS | Static sites, custom UI, embedded forms |
| React (planned) | External SDKs, integrations, widget-based flows |
All are generated in a Clean Architecture-aligned layout, separating:
- Presentation Layer (UI)
- Application Port Interfaces
- Domain Events
- API Client Gateways
π Scope Boundaries¶
The agent does not:
- Define visual layout strategy (done by UI Designer Agent)
- Design UX flows (UX Designer Agent)
- Implement backend logic (Backend Developer Agent)
- Manage deployment (handled by DevOps agents)
It focuses purely on rendering, binding, validating, and packaging the frontend delivery artifacts.
π§ Summary¶
| Role | Detail |
|---|---|
| π― Goal | Convert frontend blueprints into live, integrated UIs |
| π§± Input Sources | UI specs, API contracts, orchestrator triggers |
| π§ͺ Downstream Outputs | Pages, components, services, tests, telemetry |
| π€ Key Collaborators | UI/UX Designer, Application Architect, Backend Developer, Committer Agent |
| π¦ Result | A testable, deployable, observable frontend app per environment and edition |
π― Responsibilities¶
The Frontend Developer Agent is responsible for translating visual and behavioral specifications into complete frontend applications. It implements UI logic, binds views to API gateways, and ensures outputs are compliant with design, architectural, and observability standards.
The agent is expected to:
- π Render reusable components and full page templates
- π Bind service calls and state to UI elements
- π Enforce access control, token handling, and feature toggles
- π§ͺ Generate testable, observable, localized outputs
- π¦ Package outputs into versioned, commit-ready frontend deliverables
π§± Core Responsibilities¶
| Category | Description |
|---|---|
| π₯οΈ UI Component Generation | Produces functional, accessible, and reusable components (e.g., inputs, tables, modals, cards) from ui-spec.yaml, layout-config.md, or design JSON. |
| π Page & View Assembly | Composes pages from UI fragments using pre-defined shell layouts (navigation, sidebar, content slots, etc.). |
| π API Client Integration | Binds auto-generated API clients (OpenAPI or gRPC) to view logic and user interaction flows. |
| π Authentication Integration | Injects access control, route guards, token refresh handling, and role-based rendering. |
| π Routing & Navigation | Generates structured route maps, lazy-loaded view modules, and authenticated route wrappers. |
| π§ͺ Frontend Testing Artifacts | Emits unit and E2E test stubs (e.g., Playwright, Cypress, MSTest for Blazor) with coverage targets. |
| π§Ύ State Management | Implements app-scoped state layers (Blazor: cascading values, Angular: service-based state, etc.) for input forms, auth flows, and shared config. |
| π Theming & CSS Tokens | Applies consistent visual identity via Tailwind classes, design tokens, or scoped CSS modules. |
| π§© Plugin/Extension Injection | Supports pluggable widgets/components for edition-specific customization (multi-tenant aware). |
| π‘ Telemetry Hook Injection | Emits OpenTelemetry spans for ui.rendered, click.submit, form.error, and custom spans tied to user flows. |
π Temporal Responsibilities by Phase¶
| Phase | Responsibility |
|---|---|
| π’ Project Bootstrap | Create app.module.ts, Program.cs, main layout, router, and core folder structure. |
| βοΈ Component Rendering | Translate layout and widget specs into .razor, .ts, .vue, or .html components. |
| π‘ Service Binding | Use API client stubs to bind form actions, list refresh, search, etc. |
| π Access Control Injection | Insert auth guards and AuthorizedView wrappers based on roles and editions. |
| π§ͺ Pre-QA Output | Emit tests, run validation hooks, and commit to Git via Code Committer Agent. |
π§ Secondary Responsibilities¶
- π Generate multi-edition variants of views (e.g.,
BillingView_EU,BillingView_B2C) - π Create trace-labeled metadata files for every page/component (
component.metadata.json) - π§ Support framework switching or fallback rendering based on orchestrator config
- π Reference component usage in
frontend-architecture.mdand inject into frontend manifest
π¦ Example Output Responsibility¶
/frontend/
βββ pages/
β βββ DashboardPage.razor
βββ components/
β βββ ChartCard.razor
βββ api/
β βββ dashboardService.ts
βββ layout/
β βββ MainShell.razor
βββ styles/
β βββ tokens.module.css
βββ telemetry/
β βββ traceEvents.ts
βββ __tests__/
βββ DashboardPage.test.ts
β Summary¶
| Responsibility Area | Deliverables |
|---|---|
| UI Layer | Pages, Components, Layouts |
| Integration Layer | API-bound logic, state handlers |
| Auth Layer | Token, user session, route guards |
| Telemetry Layer | OTEL spans + UI trace |
| Output Layer | Structured folders, Git commits, testable code |
The Frontend Developer Agent ensures that every user-facing part of the ConnectSoft platform is declarative, testable, secure, and production-ready.
π₯ Inputs¶
The Frontend Developer Agent consumes a structured set of traceable inputs that guide:
- What to render
- Which design system to follow
- How to bind frontend elements to backend services
- Which framework, layout structure, and access rules to apply
Inputs are gathered from the UI Designer Agent, UX Designer Agent, Application Architect, and the Orchestration Layer.
π Required Input Files & Artifacts¶
| Input | Provided By | Description |
|---|---|---|
ui-spec.yaml |
UI Designer Agent | Declarative structure of UI widgets, component types, input/output bindings |
layout-definition.md |
UI Designer Agent | Describes layout slots, shell types, header/footer/sidebar strategy |
user-flows.json |
UX Designer Agent | End-to-end paths that users take across pages, tied to component responsibilities |
frontend-framework.yaml |
Application Architect Agent | Declares the framework to use (Blazor, Angular, etc.) and edition-specific UI requirements |
api-client-lib.ts/.csproj |
API Generator Agent | Auto-generated SDKs or client wrappers for backend endpoints |
component-bindings.yaml |
Orchestration Layer | Maps frontend widgets to service calls and data contracts (e.g., Dashboard β /api/summary) |
feature-flags.json |
Platform Orchestrator | Toggles for edition/tenant-based UI rendering |
auth-context.json |
Security Architect Agent | Roles, route guards, user info binding, token handling strategy |
i18n-strings.json |
UI Designer Agent (optional) | Key-value pairs for text rendering and language toggling |
tracing-context.yaml |
Observability Agent | Span templates and tracing event bindings (e.g., on click, render, error) |
π§ͺ Optional Inputs¶
| Input | Use Case |
|---|---|
test-matrix.yaml |
Required if automated frontend test scaffolding is needed |
custom-theme.tokens.json |
Optional override for Tailwind or design tokens |
ui-injection-config.yaml |
Inject or override widget behavior at runtime (tenant portals, dynamic flows) |
fallback-routes.yaml |
Used for feature toggling or progressive rendering |
π§ Semantic Kernel Context Injection¶
The agent also receives runtime context via planner or coordinator call:
{
"trace_id": "trace-ui-789",
"execution_id": "exec-ui-789",
"component": "Dashboard",
"framework": "blazor",
"render_mode": "webassembly",
"auth_guard": "user, admin",
"edition": "b2b",
"language": "en"
}
This context is merged into prompt execution and guides skill resolution.
π Traceability Tags Applied to Inputs¶
All inputs must include or be mapped to:
trace_idblueprint_idexecution_idagent_origin: frontend-developer-agent
This ensures every rendered component and generated file is trace-bound and reproducible.
π¦ Example Input Folder¶
/inputs/frontend/
βββ ui-spec.yaml
βββ layout-definition.md
βββ component-bindings.yaml
βββ api-client-lib.ts
βββ frontend-framework.yaml
βββ i18n-strings.json
βββ tracing-context.yaml
β Summary¶
The Frontend Developer Agent consumes:
- π§© UI structure, layout, and component specs
- π Typed API bindings and service maps
- π Auth, role, and edition overlays
- π§ͺ Testing and observability trace templates
- π§ Semantic Kernel context for reasoning scope
These inputs enable it to generate coherent, valid, traceable frontend codebases across any framework and edition.
π€ Outputs¶
The Frontend Developer Agent produces a complete, testable, and trace-labeled frontend application or modular UI package. These outputs are structured, compliant with Clean Architecture, and ready to be committed by the Code Committer Agent and validated by testing agents.
Outputs include code, metadata, telemetry hooks, and test coverage for:
- Pages
- UI Components
- Layouts
- State and services
- Auth and routing
- Localization and accessibility
- Tests and tracing
π Output Structure (Folder-Oriented)¶
/frontend/
βββ components/
β βββ Button.razor
β βββ Alert.vue
βββ pages/
β βββ Dashboard.razor
β βββ Login.razor
βββ layout/
β βββ ShellLayout.razor
βββ api/
β βββ dashboardService.ts
βββ services/
β βββ authService.ts
βββ state/
β βββ userStore.ts
βββ telemetry/
β βββ traceEvents.ts
βββ i18n/
β βββ en.json
βββ __tests__/
β βββ Dashboard.test.ts
βββ styles/
β βββ theme.tokens.css
βββ metadata/
βββ DashboardPage.metadata.json
π¦ Output Artifacts¶
| Category | Description |
|---|---|
| π§© UI Components | Reusable widgets such as buttons, modals, cards, tabs |
| π Pages | Full views rendered in response to navigation events or layout slots |
| π§± Layouts | Shells, sidebars, responsive grids |
| π API Integration | Bound service wrappers and calls to backend-generated API clients |
| π§ State Management | Local/shared state store modules or Blazor cascading state |
| π Access Guards | Authenticated/unauthenticated routes, role restrictions |
| π Routing Module | Lazy-loaded route map, dynamic layout loading, fallback handling |
| π§ͺ Tests | Component tests (Jest/MSTest), E2E specs (Cypress/Playwright) |
| π‘ Telemetry Hooks | Span emission on load, click, form submission, failure |
| π Metadata | JSON documents describing rendered outputs, file-level trace IDs, and schema references |
| π Localization | Default en.json and optionally others if i18n-strings.json is present |
π GitOps-Compatible Commit¶
All outputs are Git-staged, trace-labeled, and ready for commit by the Code Committer Agent, using:
trace_id: trace-ui-789
execution_id: exec-ui-789
component: Dashboard
framework: blazor
origin: frontend-developer-agent
This ensures traceability across all layers and supports observability pipelines.
π Telemetry Output Example¶
trace("ui.rendered", {
component: "DashboardPage",
trace_id: "trace-ui-789",
region: "westeurope",
user_role: "admin"
});
π§ͺ Test Output Example¶
describe('DashboardPage', () => {
it('renders key metrics block', () => {
render(<DashboardPage />);
expect(screen.getByText(/Active Users/)).toBeVisible();
});
});
π Metadata Output Example¶
{
"component": "DashboardPage",
"route": "/dashboard",
"auth_required": true,
"roles": ["user", "admin"],
"trace_id": "trace-ui-789",
"generated_by": "frontend-developer-agent"
}
β Summary¶
The Frontend Developer Agent produces:
- β Complete frontend applications in a structured, testable, and traceable format
- π§ Componentized output aligned to Clean Architecture
- π‘ Telemetry-aware views ready for observability ingestion
- π Secure, edition-aware pages for multi-tenant deployments
- π¦ Commit-ready assets with metadata and trace labels
These outputs serve as the visual surface layer of every SaaS solution produced by ConnectSoft.
π Knowledge Base¶
The Frontend Developer Agent is equipped with an evolving multi-framework knowledge base of:
- UI framework conventions (e.g., Angular modules, Blazor routing, Tailwind spacing)
- Design system tokens, layout patterns, and interaction primitives
- State management and telemetry scaffolding
- Accessibility, responsiveness, and localization best practices
- Clean Architecture port/adapters alignment for frontend layers
This knowledge base enables the agent to autonomously translate abstract UI specs into idiomatic, traceable codebases.
π§ Core Knowledge Categories¶
1οΈβ£ UI Framework Blueprints¶
| Framework | Includes |
|---|---|
| Blazor (.NET 8) | Razor syntax, @code blocks, partials, route registration, cascading auth |
| Angular (v16+) | Component, module, and service generation with route guards and lazy modules |
| Tailwind + HTML/JS | Static layout rendering with semantic markup, minimal interactivity |
| (Planned) React | JSX rendering, hooks, client router, context-based state |
2οΈβ£ Component Grammar & Naming¶
- PascalCase for component names (
ChartCard,DashboardPage) - Flat folder hierarchy unless layout-dependent (
layout/MainShell,pages/Profile) - Standard slots:
header,sidebar,content,footer
3οΈβ£ State Management Patterns¶
| Framework | Pattern |
|---|---|
| Blazor | Cascading values, injected scoped services |
| Angular | Service-based shared state with RxJS or signals |
| React (future) | Context and reducer wrappers per module |
4οΈβ£ Auth & Access Control Conventions¶
- Route guards (
[Authorize],canActivate) - Conditional rendering (
AuthorizedView,ngIf role) - Token acquisition and refresh flow via injected AuthService
- Claims-based feature toggle injection
5οΈβ£ Tailwind / Design System Mapping¶
| Token | Mapped Rule |
|---|---|
padding-md |
p-4 |
text-body |
text-base leading-relaxed |
btn-primary |
bg-blue-600 text-white rounded-lg hover:bg-blue-700 |
grid-2col |
grid grid-cols-2 gap-4 |
Supports:
- Dark/light mode variants
- Responsive breakpoints (
sm:,md:,lg:) - Prefab layout macros (shell, card, dialog, drawer)
6οΈβ£ Interaction Patterns¶
| Use Case | Pattern |
|---|---|
| Form submission | API-bound handler with spinner, toast, and error fallback |
| Dashboard tiles | Componentized data widgets (ChartCard, MetricBlock) |
| Tabbed layout | TabGroup with conditional rendering and hash routing |
| Page rendering | OTEL span (ui.rendered) and user role context included |
7οΈβ£ Localization, Accessibility, and Responsiveness¶
- Follows WCAG 2.1 AA contrast and focus rules
- Uses
aria-*roles where required - Binds
i18n-strings.jsonvia framework-native methods:@inject IStringLocalizer<>(Blazor)ngx-translate(Angular)
- Responsive-first rendering using Tailwind breakpoints or CSS media queries
8οΈβ£ Clean Architecture UI Mapping¶
flowchart TD
UI[UI Layer: Blazor Page]
Port[Application Port Interface]
Service[API Client Wrapper]
Domain[Domain Result DTO]
UI --> Port
Port --> Service
Service --> Domain
The agent separates view logic from interaction ports, using consistent patterns like:
IUserProfileServicePortIBillingDashboardViewModel
π§© Knowledge Base Location (Internal)¶
| Type | Path |
|---|---|
| Templates | /blueprints/frontend/templates/ |
| Tokens | /design-system/tokens.json |
| Auth Strategies | /security/frontend-access.yaml |
| Layouts | /ui/layout-macros/*.html/.razor/.ts |
| Skill Snippets | Semantic Kernel skills in frontend-skills package |
β Summary¶
The Frontend Developer Agent leverages a rich, versioned knowledge base of:
- π§ UI grammar, layout patterns, and state models
- π¨ Tailwind, design tokens, and accessibility scaffolds
- π Auth guards and OpenID/OAuth2 flows
- π§© Clean Architecture port/adapter mappings
- π§ͺ Test-aware, telemetry-rich UI rendering strategies
This allows the agent to consistently generate high-quality, idiomatic frontend applications across tech stacks.
π Process Flow¶
The Frontend Developer Agent transforms structured design, API, and orchestration inputs into fully rendered, bound, and validated frontend applications.
Its process is deterministic, traceable, and aligned with Clean Architecture principles, proceeding through a sequence of input gathering β reasoning β rendering β validation β output emission.
π§ Execution Flow Diagram¶
flowchart TD
A[Receive Input Bundle]
B[Load Design Spec & Layout]
C[Resolve Framework & Edition Scope]
D[Select Templates & Tokens]
E[Render Components + Pages]
F[Bind API Services & Auth Context]
G[Inject Routing, Tracing, i18n]
H[Generate Tests + Metadata]
I[Run Lint/Validation Hooks]
J[Emit Output Files + Commit Staging]
A --> B --> C --> D --> E --> F --> G --> H --> I --> J
πͺ Step-by-Step Flow Description¶
1οΈβ£ Input Resolution¶
- Load:
ui-spec.yaml,layout-definition.mdapi-client-lib.ts,component-bindings.yamlfrontend-framework.yaml,auth-context.json
- Extract:
trace_id,execution_id,component,edition,language
2οΈβ£ Framework Selection & Strategy Loading¶
- Choose rendering engine:
- Blazor β Razor syntax + CascadingAuth + Program.cs injection
- Angular β
app.module.ts, services, route guards - HTML/JS β static views + Tailwind tokens
- Load applicable:
- Layout shell
- CSS/tailwind tokens
- Language files
- Access guards
3οΈβ£ UI Component & Page Rendering¶
- Render all reusable widgets first:
- Buttons, cards, inputs, alerts
- Compose application pages using layout slots
- Generate semantic HTML structure, event bindings, accessibility roles
4οΈβ£ API + Auth Binding¶
- Inject API service wrappers:
dashboardService.getSummary(),authService.login()
- Wire form handlers to actions
- Apply role guards,
AuthorizedView,canActivate, orngIf
5οΈβ£ Routing, Theming, Telemetry Injection¶
- Build route tree
- Add span injection for:
ui.rendered,click.button,submit.form,auth.failed
- Apply:
- Design tokens
- Responsive classes
- i18n bindings from
i18n-strings.json
6οΈβ£ Test and Metadata Generation¶
- Generate:
- Component unit tests (Jest, MSTest)
- E2E test scaffolds (Cypress, Playwright)
- Produce metadata:
DashboardPage.metadata.jsoncomponent-manifest.json(for Orchestrator)
7οΈβ£ Validation & Lint Phase¶
- Run:
- Syntax and accessibility lints
- Binding completeness checks
- Auth and API reference resolution
8οΈβ£ Emit Output Files¶
- Write structured outputs under
/frontend/{component}/ - Attach trace metadata
- Stage for commit:
- Code Committer Agent triggers PR creation
- Testing Agents optionally activated
π§ Execution Flags (Orchestration-Aware)¶
| Flag | Effect |
|---|---|
render_mode: static |
Skip dynamic binding, use static HTML |
framework: blazor |
Use Razor components and .csproj scaffolding |
auth_required: true |
Inject guards and role wrappers |
edition: multi-tenant |
Generate per-edition variants using feature flags |
π Execution is Re-Entrant and Trace-Safe¶
- Uses
trace_idandexecution_idin all generated files and logs - Can be restarted with no side effects
- Partial generation supported (per page/component)
β Summary¶
The Frontend Developer Agentβs process flow ensures:
- π¨ Designs are accurately rendered using idiomatic syntax
- π Security and access rules are respected
- π§© Outputs are testable, observable, and edition-aware
- π§ Clean Architecture alignment is preserved
- π§Ύ All artifacts are fully traceable and Git-committable
This makes the frontend delivery process reproducible, automated, and production-ready across frameworks.
π― Skills and Kernel Functions¶
The Frontend Developer Agent leverages a collection of Semantic Kernel skills to modularize its behavior into predictable, reusable, prompt-bound functions. These skills allow the agent to:
- Reason about UI structure and layout
- Bind components to APIs and state
- Apply framework- and edition-specific rendering conventions
- Trace and tag outputs consistently
- Validate and lint generated outputs before commit
Skills can be reused across multiple rendering cycles and are orchestrated based on input metadata, rendering mode, or downstream dependency requirements.
π§© Core Skill Set¶
| Skill Name | Description |
|---|---|
ComponentRendererSkill |
Converts ui-spec.yaml fragments into rendered UI components for Blazor, Angular, or HTML/JS |
PageAssemblerSkill |
Composes components into full-page layouts based on slots from layout-definition.md |
ApiBindingSkill |
Binds components to API service wrappers and resolves async loading states |
AuthGuardInjectionSkill |
Injects role-based access wrappers, login flow guards, and protected routes |
RoutingGeneratorSkill |
Generates route declarations, lazy-loaded modules, and default/fallback routes |
StateHandlerSkill |
Adds stateful service wrappers or local state blocks using framework conventions |
TailwindApplierSkill |
Applies classes using token-to-Tailwind mapping with spacing, sizing, and theme logic |
TelemetrySpanSkill |
Injects OpenTelemetry spans (ui.rendered, click.*, error.form) into rendered code |
TestScaffoldSkill |
Generates test stubs for each page/component using Playwright/Cypress or MSTest/Jest |
MetadataWriterSkill |
Emits .metadata.json files with component/page trace info and schema linkage |
I18nBindingSkill |
Replaces static text with localized keys and inserts string dictionary lookups |
π§ AI Reasoning Sub-Skills (LLM-Enhanced)¶
| Sub-Skill | Purpose |
|---|---|
ComponentSlotResolver |
Determines where a widget should be placed in the layout (e.g., sidebar vs. header) |
InteractionFlowComposer |
Derives button β action β API β state update flows using user-flows.json |
FormValidatorSynthesizer |
Generates inline form validation logic based on field spec and context (e.g., email, required, maxLength) |
FallbackUIModeAdvisor |
Suggests static rendering mode if full binding fails or API incomplete |
RoleGuardDeriver |
Computes access rules per component/page based on auth-context.json and edition info |
π§± Skill Execution Plan Example (Blazor Dashboard)¶
plan:
- ComponentRendererSkill:
component: MetricCard
- PageAssemblerSkill:
page: DashboardPage
- ApiBindingSkill:
source: dashboardService.getSummary
- AuthGuardInjectionSkill:
roles: ["user", "admin"]
- RoutingGeneratorSkill
- TailwindApplierSkill
- TestScaffoldSkill
- MetadataWriterSkill
π¦ Skill Source & Format¶
- Format: Each skill is a Semantic Kernel plugin (
.skprompt.txt) with a YAML function manifest - Location:
/skills/frontend-developer-agent/
βββ ComponentRenderer/
βββ ApiBinding/
βββ TestScaffold/
βββ TelemetrySpan/
All skills support dynamic prompt injection using contextual values such as
trace_id,component_name,language, andframework.
π‘ Skills Are Trace-Aware¶
Each skill pass appends or propagates:
trace_id: trace-ui-789
execution_id: exec-ui-789
agent_origin: frontend-developer-agent
component: DashboardPage
framework: blazor
π§ Summary¶
The Frontend Developer Agent is driven by a modular set of skills that allow it to:
- π¨ Render idiomatic UI components with layout and style logic
- π Bind to real APIs with telemetry and role security
- π Generate localized, accessible, and observable UIs
- π§ͺ Emit tests and metadata in line with platform-wide conventions
- π Allow orchestrated, context-driven execution per framework and edition
This skill framework enables the agent to be framework-adaptive, traceable, and fully composable.
π§° Technology Stack and Tooling¶
The Frontend Developer Agent uses a multi-framework, production-grade technology stack to support:
- Cross-framework UI generation (Blazor, Angular, HTML/JS)
- Clean Architecture adherence (port-adapter separation)
- Traceability and observability
- Full CI/CD compatibility for commit-ready outputs
π§± Core Platforms and Languages¶
| Layer | Technology | Purpose |
|---|---|---|
| π§ Agent Host | .NET 8 + Semantic Kernel | Runs the agentβs planner and execution loop |
| π Prompt Runtime | Azure OpenAI (GPT-4 Turbo) | Used via Semantic Kernel to reason and generate code |
| π UI Frameworks | Blazor (WASM/Server), Angular, Tailwind + HTML/JS | Used based on input configuration |
| π¬ Language Support | TypeScript, HTML, CSS, Razor, C# | Component and service generation |
| π¦ Packaging | Vite (JS), MSBuild (.NET), Angular CLI | Used for local build validation before commit |
| π§ Testing | MSTest, Playwright, Cypress, Jest | Used to generate and validate test artifacts |
π Framework-Specific Tooling¶
Blazor (WASM + Server)¶
- Razor syntax (
.razor) Program.csfor root startup logic@inject,AuthorizedView, cascading state- Uses
Microsoft.Extensions.DependencyInjectionfor services - Telemetry via
ActivitySource
Angular¶
- Angular CLI (v16+) scaffolding
app.module.ts,router.module.ts- Typed services, role guards, interceptors
- RxJS for state and API stream binding
- Supports signals (v17+) when enabled
HTML + Tailwind + Native JS¶
- Rendered with clean, static markup
- Class tokens mapped from
/tokens/tailwind.tokens.json - Vanilla JS behavior for basic interactivity
- Used for embedded widgets, onboarding screens, landing pages
π Identity, Auth, and Security Libraries¶
| Feature | Stack |
|---|---|
| OpenID Connect integration | Microsoft.AspNetCore.Components.WebAssembly.Authentication or @azure/msal-browser |
| Role-based access | AuthorizedView, canActivate, or ngIf user.hasRole(...) |
| Token acquisition | IAccessTokenProvider (Blazor), Angular interceptors, or Fetch/Storage pattern |
| Claims/edition injection | Bound using auth-context.json |
π‘ Observability Tooling¶
| Layer | Tool |
|---|---|
| OpenTelemetry spans | Emitted using ActivitySource (Blazor) or trace() wrapper (JS/TS) |
| UI events | click, form.submit, render.page |
| Output metadata | .metadata.json per component/page with trace_id, component, and roles |
| Logging | ILogger<> for Blazor, or console.trace + JSON payload in JS/TS apps |
π§ͺ Testing Stack¶
| Type | Tool |
|---|---|
| Component/unit tests | MSTest (Blazor), Jest (Angular/JS) |
| E2E tests | Playwright, Cypress (headless) |
| Snapshot and regression support | Markdown-based snapshot + golden file comparison (planned) |
𧬠Trace Metadata in Generated Artifacts¶
Every generated output includes:
trace_id: trace-ui-789
execution_id: exec-ui-789
agent_origin: frontend-developer-agent
framework: blazor
component: DashboardPage
generated_on: 2025-05-09T15:41Z
π¦ Project Templates¶
Framework-specific starter structures are pulled from the ConnectSoft.Templates.Frontend package family:
| Template | Framework |
|---|---|
csft-blazor-spa |
Full .NET Blazor frontend |
csft-angular-dashboard |
Angular + Material admin UI |
csft-static-tailwind |
Static HTML + Tailwind starter shell |
These templates are trace-aware, OpenTelemetry-integrated, and CI/CD-compatible by design.
π§ Summary¶
The Frontend Developer Agent uses:
- β .NET + Semantic Kernel for execution
- π¨ Blazor, Angular, Tailwind, and HTML for rendering
- π‘ OpenTelemetry and metadata traces for observability
- π Auth-aware rendering with role and edition support
- π§ͺ Playwright, MSTest, and Cypress for test coverage
This tooling enables the agent to generate modular, secure, and observable frontend systems, aligned with ConnectSoftβs software factory vision.
π System Prompt¶
The System Prompt is the foundational instruction injected at agent initialization. It defines the agentβs core identity, enforcement scope, behavioral tone, and architectural alignment β ensuring the agent operates consistently, securely, and in traceable coordination with other agents.
π§ System Prompt (Canonical Version)¶
You are the Frontend Developer Agent for the ConnectSoft AI Software Factory.
Your responsibility is to render, bind, and package fully functional frontend applications from structured UI specifications, layout definitions, and API bindings. You operate within a Clean Architecture-aligned framework and must ensure separation between presentation, application port, and adapter layers.
You must:
- Render components and pages using the specified UI framework (e.g., Blazor, Angular, HTML/JS).
- Apply slot-based layouts and design tokens as defined in `layout-definition.md` and `ui-spec.yaml`.
- Integrate backend APIs through port interfaces and adapter wrappers β do not call services directly from the UI.
- Inject role-based access control, route guards, and conditional views as defined in `auth-context.json`.
- Enforce multi-edition UI behavior using `feature_flags` and `edition` context.
- Localize all static strings if `i18n.enabled` is true.
- Emit OpenTelemetry-compatible spans for all key UI events: `ui.rendered`, `click.*`, `form.submit`, `auth.*`.
- Validate output for syntax correctness, traceability (`trace_id`, `execution_id`, `agent_origin`), and test coverage.
You must NEVER emit output without trace metadata, test scaffolding (unless explicitly disabled), or observability hooks. All outputs should be production-grade, commit-ready, and aligned with Clean Architecture.
If any ambiguity exists in layout, bindings, or roles, you should emit an `InterventionRequest` and wait for human review.
You act as a full-stack visual engineer β precise, compliant, trace-aware, and orchestrator-driven.
Use structured, semantic, idiomatic code in the target framework and respect edition-specific rules when generating per-tenant UI variants.
Your outputs will be consumed by:
- Code Committer Agent (for Git staging and PR creation)
- Test Generator Agent (for UI testing)
- Observability Agent (for telemetry analysis)
Use a professional tone. Produce auditable metadata and emit all outputs to `/frontend/{component}/`.
Ensure everything is linked to the active `trace_id` and `execution_id`.
You are not a designer. You are the implementer of approved specifications and architecture.
π§ Prompt Characteristics¶
| Aspect | Behavior |
|---|---|
| π― Enforcement Scope | Architecture, auth, edition logic |
| ποΈ Output Discipline | Clean folder structure, metadata output |
| π Security Sensitivity | Enforces auth guards, role injection |
| π‘ Observability-First | Spans injected in all rendered outputs |
| π§ͺ Test-Required | Tests emitted unless disabled explicitly |
| π§Ύ Metadata Embedded | All files must include trace metadata |
| π€ Orchestration-Compliant | Follows execution plan and input prompt |
π When and Where It's Used¶
- Injected by the Orchestration Layer when the agent is instantiated
- Reinforced before running Semantic Kernel skills (component rendering, layout composition, telemetry injection)
- Informs LLM-based reasoning skills (e.g., form binding, role guard placement, fallback UI inference)
β Summary¶
The System Prompt defines the behavioral contract for the Frontend Developer Agent:
- π Ensures consistent rendering logic across editions and frameworks
- π§ Sets expectations for architecture and traceability
- π¦ Enforces output structure, validation, and downstream integration
- π§Ύ Aligns the agent with Clean Architecture, test-first, and observability-driven design
It is the governing principle that transforms inputs into reliable, production-grade, and factory-compliant UI deliverables.
π₯ Input Prompt Template¶
The Input Prompt Template defines the agentβs activation context, including:
- What to render (component, page, layout)
- Which framework to use
- Edition-specific and role-based customization
- Connected services and state
- Feature flags and trace information
It is structured as a YAML or JSON object passed from the Orchestration Layer or triggering coordinator.
π YAML Prompt Template (Example)¶
trace_id: trace-ui-789
execution_id: exec-ui-789
component: DashboardPage
framework: blazor
render_mode: webassembly
language: en
environment: staging
edition: B2B
auth_required: true
layout:
type: shell
slots:
header: HeaderBar
sidebar: SidebarMenu
content: [ChartCard, SummaryTable]
footer: FooterNotice
api_bindings:
getSummary: dashboardService.getSummary
getUsers: userService.getAll
roles:
- user
- admin
feature_flags:
showInsightsTab: true
useReactiveCharts: false
i18n:
enabled: true
keys_file: i18n-strings.json
test_generation: true
telemetry:
span_on_render: true
emit_click_events: true
β Required Fields¶
| Field | Description |
|---|---|
trace_id |
Globally unique trace tag for audit and event correlation |
execution_id |
Tied to orchestrator execution flow |
component |
The component or page being rendered |
framework |
blazor, angular, or html |
layout.slots |
Slot-based layout map β header, content, etc. |
api_bindings |
Data-source/service mappings for interactive elements |
π§ͺ Optional Fields (Enhancers)¶
| Field | Effect |
|---|---|
feature_flags |
Allows per-edition conditional rendering logic |
language |
Determines string key injection for i18n |
test_generation |
Enables auto-creation of unit + E2E test files |
telemetry.span_on_render |
Triggers OTEL span injection at view level |
roles |
Used to inject access control wrappers (AuthorizedView, ngIf) |
π§ Prompt Token Injection¶
All prompts are processed using templated token expansion. Example:
Render the component {{component}} using {{framework}}.
Apply layout with header: {{layout.slots.header}}, sidebar: {{layout.slots.sidebar}}.
Include API binding for getSummary: {{api_bindings.getSummary}}.
Use edition {{edition}}, auth required: {{auth_required}}.
These templates are stored in frontend-skills/prompts/ and used across kernel functions.
π JSON Equivalent Prompt (API-Compatible)¶
{
"trace_id": "trace-ui-789",
"execution_id": "exec-ui-789",
"component": "LoginPage",
"framework": "angular",
"edition": "internal",
"auth_required": true,
"api_bindings": {
"login": "authService.login"
},
"layout": {
"type": "fullscreen",
"slots": {
"content": ["LoginForm"]
}
},
"telemetry": {
"span_on_render": true
}
}
π§Ύ Prompt Validation¶
Before execution begins, the Orchestrator ensures:
component,framework, andtrace_idare presentapi_bindingsmatch available SDK/service methodslayout.slotsare mapped to defined UI fragments or defaults- Optional fields have fallback defaults (e.g.,
language: en,render_mode: static)
Invalid or missing prompt fields result in PromptValidationFailed.
β Summary¶
The Input Prompt Template provides:
- π§ Declarative UI rendering instructions
- π API + layout wiring context
- π Security, edition, and telemetry metadata
- π¦ A reproducible, trace-bound input contract for frontend delivery
It ensures repeatable, orchestrated UI generation across any project, edition, or component.
π¦ Output Expectations¶
The Frontend Developer Agent emits production-grade frontend source code that is:
- Structured and testable
- Trace-labeled for observability
- Compliant with Clean Architecture
- Compatible with GitOps and CI/CD pipelines
Outputs vary by framework but follow a consistent folder and metadata schema.
π Folder Structure¶
/frontend/
βββ components/ # Reusable UI widgets
βββ pages/ # Application views
βββ layout/ # Layout shell wrappers
βββ api/ # API client wrappers
βββ state/ # Shared state handlers
βββ services/ # Auth, config, telemetry services
βββ routing/ # App route declarations
βββ i18n/ # Localization string sets
βββ telemetry/ # OTEL integration files
βββ __tests__/ # Unit and E2E test files
βββ styles/ # Tokens, Tailwind, scoped CSS
βββ metadata/ # Component/page descriptors
π File Output Types¶
| Type | Example File | Purpose |
|---|---|---|
| π§© Component | ChartCard.razor / CardComponent.tsx |
Reusable widget implementing UI block |
| π Page | DashboardPage.razor / dashboard.page.ts |
Full view layout with bound slots |
| π API Binding | dashboardService.ts |
Connects to backend API client |
| π Layout | ShellLayout.razor |
Header/sidebar/content shell |
| π Routing | AppRouter.razor, app.routes.ts |
Defines app routes and guards |
| π§ State | useUserStore.ts, UserSession.cs |
Reactive/shared view state |
| π Auth | AuthService.ts, LoginGuard.cs |
Authenticated route and token handling |
| π§ͺ Tests | DashboardPage.test.ts, LoginForm.e2e.ts |
Test artifacts for QA and regression |
| π‘ Telemetry | traceEvents.ts, ui-span.ts |
Emits OpenTelemetry spans |
| π Metadata | DashboardPage.metadata.json |
Defines route, roles, component properties |
| π i18n | en.json, fr.json |
Key-value pair translations |
π Sample Metadata File¶
{
"component": "DashboardPage",
"path": "/dashboard",
"roles": ["admin", "user"],
"layout": "ShellLayout",
"generated_by": "frontend-developer-agent",
"trace_id": "trace-ui-789",
"edition": "B2B"
}
Used by the Orchestration Layer, DevOps Agent, and Testing Agent.
π Telemetry Example (Angular or JS)¶
trace("ui.rendered", {
component: "DashboardPage",
trace_id: "trace-ui-789",
user_role: "admin",
region: "westeurope"
});
π§ͺ Test Artifact Example (Jest or MSTest)¶
describe('DashboardPage', () => {
it('should render summary cards', () => {
render(<DashboardPage />);
expect(screen.getByText(/Active Users/)).toBeInTheDocument();
});
});
𧬠GitOps-Compliant Output Requirements¶
All output folders include:
trace_id,execution_idembedded in file comments or metadata- Framework-specific
project.json,.csproj, orpackage.jsonfor build tooling - Optional
README.mdwith edition-specific usage or bootstrapping instructions
Output is committed via the Code Committer Agent as a Git branch and merged via PR workflows.
π― Output Is Edition-Aware¶
If edition: B2B, the agent may emit:
/frontend/
βββ pages/
β βββ DashboardPage_B2B.razor
β βββ DashboardPage_B2C.razor
Feature flags or edition overlays influence conditional output logic.
β Summary¶
The Frontend Developer Agent produces:
- π¨ Component-based UI source code
- π Service-bound logic and routing scaffolds
- π Role-based auth and edition overlays
- π§ͺ Validatable, testable test files
- π‘ Telemetry and metadata for observability and coordination
These outputs ensure a fully automated, traceable, deployable frontend that fits seamlessly into the AI Software Factory lifecycle.
π Memory (short-term and long-term)¶
Memory allows the Frontend Developer Agent to maintain context, traceability, and semantic consistency during UI generation β especially when rendering:
- Multi-part pages or dynamic components
- Role-specific and edition-specific UI variants
- Outputs tied to a prior blueprint or agent sequence
- Repeated layouts, patterns, or traceable span structures
π§ Short-Term Memory (Context Window)¶
Used within a single rendering session, this memory is injected into the Semantic Kernel planner to:
- Load
trace_id,execution_id,component, andagent_origin - Preserve
layout-definition.md,ui-spec.yaml,auth-context.json - Track active
feature_flags,edition, and routing metadata - Bind to current API client (
api-bindings.json) - Map known roles, route paths, and page-level state bindings
Example Injection (Semantic Kernel):¶
{
"trace_id": "trace-ui-782",
"component": "DashboardPage",
"edition": "b2b",
"framework": "blazor",
"slots": ["header", "content", "footer"],
"auth_roles": ["user", "admin"],
"api_bindings": {
"getSummary": "dashboardService.getSummary"
},
"layout": "ShellLayout"
}
This short-term context is used to guide skill execution, such as ComponentRendererSkill, RoutingGeneratorSkill, and TelemetrySpanSkill.
π Long-Term Memory (Traceable Vector Memory)¶
Used across execution runs and orchestrated projects, this memory supports:
- Recognition of past rendering patterns or known layout strategies
- Detection of previously used telemetry span schemas
- Continuity of trace lineage between blueprint β PR β UI β tests
- Reuse of translation keys, test selectors, or error-handling wrappers
- Edition-specific UI overlays and localization preferences
Stored via:¶
- πΉ Vector DB for reusable examples (e.g., βHow was
UserFormrendered forinternaledition?β) - πΉ Metadata logs for file emission history (
trace-index.yaml) - πΉ Memory-backed skill prompts for refinement in regenerations
π¦ Examples of Memory Use¶
| Scenario | Memory Used |
|---|---|
Re-rendering ProfilePage after blueprint update |
Reuses component order, span tags, and routing logic |
| Rendering a form with existing localization | Injects prior translation keys from i18n-mapping.vector |
| Matching layout strategy for sibling pages | Loads preferred slot distributions from trace memory |
| Generating test stubs for reused UI | Recalls prior selector structure and asserts |
π§ Memory Lifecycle Management¶
| Type | Scope | Retention | Triggered By |
|---|---|---|---|
| Short-Term | Current execution_id |
Discarded post-run | Orchestration trigger |
| Long-Term | Cross-project | Immutable log or retrievable vector index | Trace commit or metadata capture |
The
execution_idensures traceability between memory and code commits.
π Governance & Traceability¶
-
All long-term memory records include:
-
trace_id,component,agent_origin,framework, and timestamp - Memory writes are append-only, versioned, and inspectable
- Sensitive tokens (e.g., secrets) are never stored
π Skill Behaviors Enhanced by Memory¶
| Skill | Memory Use |
|---|---|
TailwindApplierSkill |
Inherits token mappings from similar components |
RoutingGeneratorSkill |
Aligns with prior route naming and fallback paths |
I18nBindingSkill |
Uses previously mapped keys for new UIs |
TelemetrySpanSkill |
Reuses consistent span naming (e.g., user.created, ui.rendered) across pages |
β Summary¶
The Frontend Developer Agent uses:
- π§ Short-term memory to load prompt context, API bindings, and trace metadata
- π Long-term vector memory to enforce consistency, traceability, and design reuse
- π§© Agent-specific memory snapshots to enable downstream reproducibility and human audit
This ensures smart, contextually aligned UI rendering, with full continuity across projects, editions, and executions.
π§± Port/Adapter Mapping (Clean Architecture Alignment)¶
ConnectSoft enforces Clean Architecture across all layers, including frontend. The Frontend Developer Agent must ensure:
- UI logic remains framework-bound and presentation-only
- Domain logic is delegated through interface ports
- Infrastructure communication (e.g., API calls) is routed through adapters
This pattern ensures frontend systems are modular, testable, extensible, and framework-portable.
π§© Clean Architecture Frontend Layers¶
flowchart TD
UI[π¨ UI Layer (Component/Page)]
Port[π§© Application Port Interface]
Adapter[π API Adapter / Service Wrapper]
Domain[ποΈ Domain DTOs / Models]
UI --> Port
Port --> Adapter
Adapter --> Domain
π§© Mapping in Practice¶
Example: Displaying Dashboard Summary¶
| Layer | Implementation |
|---|---|
| UI | DashboardPage.razor |
| Port | IDashboardServicePort.cs (interface in shared library) |
| Adapter | DashboardApiAdapter.ts or DashboardService.cs |
| Domain | DashboardSummaryDTO |
This mapping ensures the UI component doesn't call the API directly β it delegates to a port interface which is later fulfilled by an adapter.
π Folder Structure Alignment¶
/frontend/
βββ pages/
β βββ DashboardPage.razor
βββ ports/
β βββ IDashboardServicePort.cs
βββ adapters/
β βββ DashboardApiAdapter.cs
βββ api/
β βββ dashboardClient.ts # Auto-generated
Generated adapters conform to port contracts and wrap
dashboardClient.ts.
π Adapter Injection (by Framework)¶
| Framework | Pattern |
|---|---|
| Blazor | @inject IDashboardServicePort DashboardService |
| Angular | Provided via useClass: DashboardApiAdapter using DI |
| HTML/JS | Exposed via factory or imported module pattern (const summary = port.getSummary()) |
π― Advantages of Port Mapping¶
- β Improves testability by mocking ports
- β
Enables multiple implementations (e.g.,
StubAdapter,LiveAdapter) - β Supports local-first apps and progressive enhancement
- β Compliant with DDD and Clean Architecture without leaking transport logic into the UI
π§ Agent Behavior Summary (Port Binding)¶
- Resolve required UI β API flow from
component-bindings.yaml - Generate
IPortinterface per page/component scope - Generate
Adapterwrapping API client - Inject adapter into UI using DI pattern
- Bind user action β port method
π§Ύ Example Generated Port¶
Corresponding Adapter¶
public class DashboardApiAdapter : IDashboardServicePort
{
private readonly IDashboardApiClient _client;
public DashboardApiAdapter(IDashboardApiClient client) => _client = client;
public async Task<DashboardSummaryDTO> GetSummaryAsync()
=> await _client.GetSummaryAsync();
}
β Summary¶
The Frontend Developer Agent ensures:
- π Clear separation of concerns between UI and service logic
- π§© Port-based delegation using application interfaces
- π Adapter-based integration with generated API clients
- π§ͺ Testability via interface mocking and adapter swapping
- π§ Consistency across Blazor, Angular, and other frameworks
This makes ConnectSoft frontend layers modular, framework-safe, and compliant with enterprise architecture standards.
π Cross-Cutting Concerns¶
The Frontend Developer Agent must embed critical non-functional aspects such as:
- βΏ Accessibility (A11Y)
- π Internationalization (i18n)
- π± Responsiveness
- π‘οΈ Security
- π§ Customizability (e.g., edition overlays, feature flags)
These concerns are non-optional and apply to every component, page, and UI artifact produced.
βΏ Accessibility (A11Y)¶
β Enforced Patterns¶
| Area | Implementation |
|---|---|
| Focus Order | Use tabindex and natural DOM flow |
| Landmarks | role="main", role="navigation", role="banner" |
| Form Labels | <label for=...> or aria-labelledby |
| Contrast Ratios | Tailwind tokens mapped to AA-compliant values |
| Keyboard Support | Keypress events for all interactive elements |
| Visual Cues | Use :focus-visible, skip links, and error outlines |
π§ Agent Validation Skill¶
AccessibilityLintSkillchecks rendered HTML foraria-*coverage, label pairing, and proper semantic tags.
π Internationalization (i18n)¶
β i18n Support Model¶
| Mechanism | Framework |
|---|---|
| Blazor | @inject IStringLocalizer<DashboardPage> with .resx |
| Angular | ngx-translate or built-in Angular i18n pipes |
| HTML/JS | Token replacement from i18n-strings.json via i18n.get(key) helper |
π§© Prompt-Driven Binding Example¶
Yields:
The agent wraps all static text nodes with framework-specific localization methods.
π± Responsiveness¶
β Implementation via Tailwind + Layout Strategy¶
- Mobile-first layout defaults
- Grids use
sm:,md:,lg:, andxl:Tailwind breakpoints - Sidebar collapsible on
max-width <= 768px - Cards, modals, and containers use
w-full max-w-lg mx-autofor fluid layout
π§ Layout-Aware Prompt Guidance¶
The agent uses layout structure to decide:
grid-cols-1on mobilegrid-cols-2orgap-x-4on larger screens- Responsive behavior for components with toggles, menus, tables, etc.
π§© Edition/Feature Flags¶
When feature flags or editions are defined in the prompt:
The agent injects conditionals:
Or in Angular:
π‘οΈ Security Hooks (Frontend)¶
- Role-based conditional rendering:
- Blazor:
AuthorizedView Roles="admin" - Angular:
*ngIf="user.hasRole('admin')"
- Blazor:
- XSS protection:
- Avoids direct
innerHTMLbindings unless sanitized
- Avoids direct
- Route guards:
- Defined in
AppRouterusing role/claims fromauth-context.json
- Defined in
π§ Other Cross-Cutting Hooks¶
| Concern | Technique |
|---|---|
| Loading Indicators | Built-in isLoading observables or cascading IsBusy flag |
| Form Validation | required, pattern, minLength bindings + live feedback |
| Error Boundaries | Try/catch, fallback render slots (<ErrorBox />) |
| Theming | Tailwind tokens scoped by class (.theme-dark, .theme-light) |
β Summary¶
The Frontend Developer Agent ensures all UIs are:
- βΏ Accessible by default (WCAG AA compliant)
- π Localizable and multilingual-ready
- π± Mobile-friendly and responsive
- π Security-aware and role-bound
- π§© Edition-aware and feature-toggle driven
These cross-cutting qualities are automatically injected and validated, forming the baseline quality guarantee for every UI artifact emitted.
β Validation Process¶
Before the Frontend Developer Agent outputs its work, it performs a rigorous, multi-layered validation process to ensure:
- π§± Generated code is syntactically valid and idiomatic
- π All API bindings and auth guards are resolved correctly
- βΏ Accessibility, responsiveness, and i18n are present
- π¦ Output is testable, buildable, and trace-complete
Validation occurs before output commit and ensures that no broken UI reaches downstream agents.
π Validation Layers¶
1οΈβ£ Syntactic & Structural Validation¶
| Tool | Target |
|---|---|
eslint / tsc |
Angular and TypeScript outputs |
razor compiler |
.NET Blazor components |
htmlhint |
Tailwind + HTML files |
yaml validator |
Input files like ui-spec.yaml, layout-definition.md |
Agent uses embedded linters or CLI checks to validate generated code blocks.
2οΈβ£ Binding & API Resolution¶
- Ensure all components have
@injectorimportfor API ports - Match API bindings to client library contracts:
- E.g.,
dashboardService.getSummaryexists and has expected signature
- E.g.,
- Ensure no dangling data bindings (
[value]or@bind-Valuewithout a model)
3οΈβ£ Access Guard Validation¶
- Each protected route or view is checked for role/claim guard presence
- Auth injection logic validated:
AuthorizedView,canActivate,ngIf="auth.isAuthorized()"
If any binding is missing or malformed:
{
"event": "ValidationFailed",
"trace_id": "trace-ui-789",
"reason": "Missing route guard for /admin route",
"component": "AdminPage"
}
4οΈβ£ Layout & Slot Integrity¶
- Layout slots (
header,content,footer) must match available components - Shell layouts (
ShellLayout,FullScreenLayout) must compile and support the defined pages
Agent emits:
5οΈβ£ Cross-Cutting Compliance Checks¶
| Concern | Rule |
|---|---|
| Accessibility | Must include ARIA roles and keyboard handlers |
| Responsiveness | Tailwind breakpoints or media queries must exist for .page views |
| i18n | No hardcoded strings allowed if i18n.enabled = true |
| Telemetry | At least one ui.rendered span per page is required |
These are verified using agent-side analyzers (
i18nScanSkill,TelemetryLintSkill, etc.)
6οΈβ£ Test Stub Validation¶
- Check that each page has a matching test file in
/__tests__/ - Run Playwright or MSTest test generation dry-run
- Validate selectors used in test are present in component
If missing, a
MissingTestCoveragewarning is emitted (non-blocking in dev env).
7οΈβ£ Trace Metadata Completeness¶
Each file must embed:
trace_id: trace-ui-789
execution_id: exec-ui-789
agent_origin: frontend-developer-agent
framework: blazor
component: DashboardPage
Missing metadata results in validation failure.
π§ͺ Example: Validation Pipeline per Page¶
- ValidateSyntax
- ValidateLayoutSlots
- ResolveApiBindings
- CheckAccessGuards
- InjectTelemetrySpan
- ScanForHardcodedStrings
- EmitValidationReport
π Final Output: validation-report.json¶
If errors:
{
"status": "failed",
"issues": [
{ "type": "missing-guard", "location": "pages/AdminPage.razor" },
{ "type": "missing-i18n", "text": "Welcome, user!" }
]
}
β Summary¶
The Frontend Developer Agent enforces frontend integrity through:
- β Syntax & structure checks
- π Binding and guard resolution
- π i18n, a11y, and responsive layout scans
- π§ͺ Test presence and selector validation
- π‘ Telemetry injection verification
- π§Ύ Trace metadata completeness
This ensures the agent only emits secure, valid, observable, and production-grade frontend output.
π‘ Observability and UX Telemetry Hooks¶
The Frontend Developer Agent is responsible not only for visual rendering but also for making UIs observable and trace-linked.
It injects OpenTelemetry-compatible spans, structured logging hooks, and user event traces into every page, ensuring all frontend applications are:
- π Traceable in dashboards
- π§Ύ Auditable for user interaction flows
- π§ Debuggable with diagnostics events
- π‘ Connected to the Software Factoryβs event stream
π§ Core Telemetry Injection Points¶
| Location | Hook |
|---|---|
| Page render | ui.rendered span on every route/page |
| Click events | click.button, click.link, click.tab |
| Form submission | submit.form with form name or selector |
| API failure | ui.error.api emitted on failed API responses |
| Auth flows | auth.success, auth.failed based on result |
| Feature toggles | feature.enabled/disabled events when conditional UI is rendered |
π Span Emission Example (Blazor)¶
@inject ActivitySource Source
@code {
protected override void OnAfterRender(bool firstRender)
{
if (firstRender)
{
using var span = Source.StartActivity("ui.rendered", ActivityKind.Internal);
span?.SetTag("component", "DashboardPage");
span?.SetTag("trace_id", "trace-ui-789");
span?.SetTag("edition", "b2b");
}
}
}
π Span Emission Example (Angular/JS)¶
trace("ui.rendered", {
component: "DashboardPage",
trace_id: "trace-ui-789",
environment: "staging",
edition: "b2b"
});
button.addEventListener("click", () =>
trace("click.button", { id: "refreshBtn", label: "Refresh", trace_id: "trace-ui-789" })
);
JS/TS telemetry logic uses a standard
trace()helper injected by the agent.
ποΈ Folder Structure¶
These files are included by default in every frontend app unless disabled via telemetry.enabled = false.
π§ͺ Test Coverage of Telemetry¶
Each generated test case includes basic coverage to ensure spans are emitted:
expect(trace).toHaveBeenCalledWith("ui.rendered", expect.objectContaining({
component: "DashboardPage"
}));
π§© Metadata-Linked Spans¶
Every telemetry span includes the following tags:
| Tag | Description |
|---|---|
trace_id |
From orchestrator |
execution_id |
Unique to this agentβs run |
component |
The current view/component |
edition |
Multi-tenant or edition-specific identifier |
user_role |
If available, injected via session context |
event_type |
e.g., click.button, ui.rendered |
π Dashboard Integration¶
Telemetry emitted by this agent enables:
- Real-time heatmaps of user interaction
- Dashboard tiles showing render latency by region or user role
- Monitoring broken flows, failed submissions, or auth issues
- Audit trails for
feature.enabledevents linked to rollout strategies
π Privacy & Security Notes¶
- No PII is included by default
- Events can be disabled globally or per-component with
telemetry.enabled: false - All telemetry is edition- and tenant-aware
π§ Summary¶
The Frontend Developer Agent makes every UI traceable and observable by injecting:
- π°οΈ OpenTelemetry spans for key user and system events
- π Structured events for buttons, forms, auth, and routing
- π Trace metadata tags linking back to blueprint, edition, and agent ID
- π Configurable telemetry logic per framework and edition
- π§ͺ Test coverage for all spans in rendered views
These observability hooks are essential for runtime diagnostics, analytics, and cross-agent insight across the ConnectSoft platform.
π€ Collaboration Interfaces¶
The Frontend Developer Agent operates in coordination with multiple upstream and downstream agents in the software factory pipeline. It neither initiates design nor deploys output alone β instead, it integrates, transforms, and hands off.
It is a mid-pipeline transformation agent, converting UI/UX + API + edition context into UI artifacts, ready for commit and testing.
π§© Primary Collaborating Agents¶
| Agent | Relationship |
|---|---|
| π¨ UI Designer Agent | Supplies ui-spec.yaml, layout definitions, component design rules |
| π§ UX Designer Agent | Provides interaction flows (user-flows.json), component behavior |
| ποΈ Application Architect Agent | Defines framework strategy, layering, frontend layout patterns |
| π‘ API Contract Generator Agent | Supplies typed client libraries and binding contracts |
| π‘οΈ Security Engineer Agent | Injects role-based access control, auth context |
| βοΈ IaCCoordinator / Orchestration Layer | Triggers the agent, provides execution_id, trace_id, config |
| π₯ Code Committer Agent | Receives emitted files and metadata, creates PRs for frontend code |
| π§ͺ QA/Test Generator Agent | Consumes tests, metadata, selectors, telemetry for UI validation |
| π Observability Agent | Ingests telemetry data + component traces for frontend instrumentation |
| π€ HumanOps Agent | Receives preview diffs and validation errors (manual review when needed) |
π Data Flow: Upstream β Frontend β Downstream¶
flowchart TD
UI[UI Designer Agent]
UX[UX Designer Agent]
API[API Generator Agent]
ARCH[Application Architect Agent]
SEC[Security Engineer Agent]
COORD[Orchestration Layer]
FRONT[Frontend Developer Agent]
COMMIT[Code Committer Agent]
QA[QA/Test Generator Agent]
OBS[Observability Agent]
UI --> FRONT
UX --> FRONT
API --> FRONT
ARCH --> FRONT
SEC --> FRONT
COORD --> FRONT
FRONT --> COMMIT
FRONT --> QA
FRONT --> OBS
π§ Collaboration Inputs¶
| Source Agent | Artifact |
|---|---|
| UI Designer | ui-spec.yaml, layout-definition.md, Tailwind tokens |
| UX Designer | user-flows.json, interaction rules |
| API Generator | api-client-lib.ts / apiClient.cs |
| Security Engineer | auth-context.json, claims, edition roles |
| Orchestrator | trace_id, execution_id, config flags |
π€ Output Consumers¶
| Target Agent | Receives |
|---|---|
| Code Committer | File structure, .metadata.json, diffs |
| QA/Test Generator | Tests, selectors, telemetry assertions |
| Observability Agent | UI telemetry spans, component logs |
| HumanOps Agent | Reviewable changes, validation errors |
| DevOps Agent (indirect) | Receives PR to build + deploy frontend bundle |
ποΈ Shared Metadata for Coordination¶
All files include:
trace_id: trace-ui-789
execution_id: exec-ui-789
agent_origin: frontend-developer-agent
component: DashboardPage
edition: B2B
framework: blazor
This metadata enables cross-agent traceability, audit logs, and PR lineage tracking.
π« Interface Types¶
| Interface Type | Usage |
|---|---|
| Filesystem | Shared folder /frontend/ with versioned structure |
| Event Bus | Emits events like FrontendRendered, ValidationFailed, PreviewGenerated |
| Planner-to-Agent | Prompt-based execution via frontend-developer.plan.yaml |
| GitOps | Changes staged for commit by Code Committer Agent |
π§ Summary¶
The Frontend Developer Agent collaborates with:
- πΌ Design and architecture agents to receive layout, structure, and tech stack
- βοΈ Orchestration layer to bind execution context
- π½ Code commit, QA, and observability agents to deliver testable, monitored UIs
These interfaces ensure every frontend delivery is context-aware, composable, and seamlessly integrated into the full ConnectSoft pipeline.
π Retry and Correction Flow¶
Despite structured inputs and skill-based generation, frontend rendering can fail due to:
- β Incomplete or malformed
ui-spec.yaml - π Missing bindings or unresolved API client functions
- π§± Broken layout slots or guard mismatches
- π§ͺ Test stubs or selectors failing lint/test validation
- π€ i18n or a11y violations
The agent must detect, correct, and retry autonomously where possible, or emit actionable diagnostics when human feedback is needed.
π§ͺ Retry Triggers¶
| Condition | Trigger Type |
|---|---|
| Missing layout slot component | Auto-correction |
| Unresolved API method | Retry with inferred stub |
| Lint failure (CSS, Razor, TS) | Retry with syntax correction |
| Missing i18n key | Retry using fallback localization helper |
| Auth wrapper mismatch | Rebuild guard or fallback to default roles |
Retry logic is trace-aware and never overwrites a previously valid artifact unless explicitly replaced.
βοΈ Correction Strategies¶
1οΈβ£ Missing Slot Components¶
β‘ Agent renders MissingWidget as a fallback stub:
<div class="bg-yellow-100 text-yellow-800 p-4 rounded">
β MissingWidget placeholder rendered by Frontend Developer Agent
</div>
2οΈβ£ API Binding Failure¶
If:
β¦is missing in the client, the agent will:
- Emit
ApiStubAdapterwith TODO comment - Retry the render with stub injection
3οΈβ£ Lint/Test Validation Failure¶
If Razor or TS lint fails:
- Agent re-indents, corrects structural tags, or rewraps
@codeblocks - Retry using clean template-based render
- If retry still fails: emit
ValidationFailedevent with line info
4οΈβ£ Missing i18n Key¶
If string "Welcome, {{username}}" is hardcoded and i18n.enabled: true:
- Injects fallback key:
"welcome.username" - Adds entry to
i18n-missing.jsonand links it in metadata
5οΈβ£ Role Guard Errors¶
If required roles are missing from auth-context.json, the agent:
- Assumes
userrole by default - Emits warning in metadata:
π Retry Loop Architecture¶
flowchart TD
A[Initial Render Attempt] --> B[Run Validation Checks]
B --> C{Validation Passed?}
C -- Yes --> D[Emit Final Output]
C -- No --> E{Retryable Issue?}
E -- Yes --> F[Apply Auto-Correction]
F --> A
E -- No --> G[Emit ValidationFailed Event]
π Retry Events¶
RetryAttempted¶
{
"event": "RetryAttempted",
"trace_id": "trace-ui-789",
"reason": "API binding missing",
"attempt": 1
}
ValidationFailed¶
{
"event": "ValidationFailed",
"trace_id": "trace-ui-789",
"component": "ProfilePage",
"reason": "Slot 'Sidebar' missing from layout definition"
}
β Retry Limits¶
| Type | Max Attempts |
|---|---|
| Minor syntax fix | 2 |
| Component stub retry | 1 |
| API fallback | 1 |
| Lint reflow | 2 |
Beyond max, emits final diagnostics and halts output.
β Summary¶
The Frontend Developer Agent performs:
- π Self-healing retries on common render, binding, and layout issues
- π§ Context-aware corrections using fallback stubs, default roles, or placeholder tokens
- π‘ Diagnostics emission when unresolvable issues occur
- π§Ύ Event logging for every retry attempt and resolution decision
This retry and correction flow makes the agent resilient, developer-friendly, and safe to automate at scale.
π€ Human Intervention Hooks¶
Although the Frontend Developer Agent operates autonomously, certain situations benefit from manual intervention, such as:
- Design ambiguity
- Visual correctness disputes
- Feature flag conflict resolution
- Accessibility or localization review
- Approval before promoting to production editions
The agent exposes well-defined intervention hooks that allow UI designers, architects, or QA leads to interact without breaking the automation flow.
π Intervention Scenarios¶
| Scenario | Hook Trigger |
|---|---|
| β οΈ Unmapped Component in Layout | Pause and request confirmation or override |
| β Ambiguous Input/Output Binding | Present multiple interpretations with prompt to select |
| π§ͺ Missing Test Definition | Warn and request human-written test if generated stub insufficient |
| π Undefined Language Key | Flag and allow i18n editor to input missing translations |
| π Role-Based UI Mismatch | Raise conflict if required role not defined in auth-context.json |
| π¨ Visual Validation Mode Enabled | Offer visual diff review before committing output (UI reviewer step) |
π§ Intervention Flow Diagram¶
flowchart TD
A[Start Agent Execution]
B[Detect Conflict or Missing Binding]
C{Manual Review Enabled?}
D[Emit InterventionRequest]
E[Await Approval or Response]
F[Resume Agent Execution]
A --> B --> C
C -- Yes --> D --> E --> F
C -- No --> F
π¬ InterventionRequest Event¶
{
"event": "InterventionRequest",
"trace_id": "trace-ui-789",
"component": "SettingsPage",
"reason": "Unmapped component 'SecurityPanel'",
"recommended_actions": ["Skip", "Render Empty", "Replace with Fallback"]
}
Delivered to:
- HumanOps Agent
- Orchestrator dashboard
- Slack/Teams bot (if configured)
- GitHub/GitLab PR comment (if in preview mode)
β Supported Human Actions¶
| Action | Result |
|---|---|
| Approve As-Is | Agent proceeds with current plan |
| Modify Inputs | Agent restarts with updated inputs (e.g., layout override) |
| Inject Custom Snippet | Accept user-submitted Razor/HTML/TS for that section |
| Defer Page | Agent skips emitting output for this component (marks as blocked) |
| Mark as Non-Blocking | Continue with warnings instead of halting |
π Preview Mode Support¶
When manual_review: true is set in the prompt or agent is running in preview mode:
- All pages are rendered to an HTML sandbox
PreviewGeneratedevent is emitted- UI reviewer receives a visual diff dashboard (side-by-side actual vs. expected)
Great for collaborative design validation before CI pipeline continues.
π§Ύ Feedback Loop Integration¶
Human feedback is persisted:
{
"component": "ProfileEditor",
"reviewed_by": "alice.ui-designer",
"action": "Modified layout.slot.footer",
"timestamp": "2025-05-10T12:10:45Z"
}
Stored in:
feedback-log.json- Trace history metadata
- (Optionally) Git commit annotation
π§ Summary¶
The Frontend Developer Agent supports safe, traceable, and configurable human intervention via:
- ποΈ Preview diffs and component review dashboards
- β οΈ Conflict resolution prompts on binding and layout issues
- π¬ Intervention events with actionable options
- π§Ύ Persisted audit trail of feedback and manual decisions
These hooks make the platform auditable, UX-inclusive, and visually verifiable β without sacrificing automation.
π― Component and Interaction Diagrams¶
To ensure clarity and traceability across the ConnectSoft agentic ecosystem, the Frontend Developer Agent emits and aligns to:
- π§± Component tree diagrams: UI layout structure
- π Interaction flow maps: UI β API β state β telemetry
- π§ Agent positioning diagrams: lifecycle phase in software factory
- π§© Clean Architecture maps: separation of concerns in frontend
π§© UI Component Tree Diagram (Mermaid)¶
Example: DashboardPage Render Tree (Blazor / Angular / HTML)¶
graph TD
DashboardPage --> HeaderBar
DashboardPage --> SidebarMenu
DashboardPage --> MainContent
MainContent --> ChartCard
MainContent --> SummaryTable
DashboardPage --> FooterNotice
This diagram reflects the agentβs slot-to-component rendering logic, based on
layout-definition.md.
π Interaction Flow Diagram¶
flowchart LR
User[π§ User Clicks "Refresh"]
UIComponent[βͺοΈ UI Component]
Port[π© Service Port Interface]
Adapter[π API Adapter]
API[π Backend API]
Result[π€ Result DTO]
State[π§ Local State]
UIUpdate[π UI Rerender]
User --> UIComponent --> Port --> Adapter --> API --> Result --> State --> UIUpdate
UIUpdate --> UIComponent
Every action initiated in the UI passes through the agent-generated port-interface-adapter abstraction.
π§ Agent System Context Diagram¶
flowchart TD
Vision[π― Vision Agent]
UIUX[π¨ UI/UX Designer Agents]
API[π‘ API Generator Agent]
AppArch[ποΈ App Architect Agent]
Frontend[π₯οΈ Frontend Developer Agent]
Commit[π₯ Code Committer Agent]
QA[π QA Generator]
Orchestration[βοΈ Orchestrator]
Vision --> UIUX
UIUX --> Frontend
API --> Frontend
AppArch --> Frontend
Orchestration --> Frontend
Frontend --> Commit
Frontend --> QA
π Clean Architecture Mapping¶
flowchart LR
View[π¨ UI Page/Component]
Port[π§© Port Interface]
Adapter[π Adapter (Service/HTTP)]
APIClient[π API Client]
View --> Port
Port --> Adapter
Adapter --> APIClient
This diagram is enforced structurally by folder layout and Semantic Kernel skill execution order.
π Metadata Trace Flow¶
flowchart TD
Prompt[π Input Prompt Template]
Skills[βοΈ Rendering Skills]
Output[π¦ Component Output]
Metadata[π metadata.json]
Event[π‘ Telemetry Span + Event]
Prompt --> Skills --> Output --> Metadata --> Event
Each file rendered by the agent flows through this structured, trace-linked generation path.
π Telemetry Injection Model¶
graph LR
Component --> ClickHook[trace("click.button")]
Component --> RenderSpan[trace("ui.rendered")]
Component --> SubmitSpan[trace("submit.form")]
RenderSpan --> TraceBus[π‘ OpenTelemetry Pipeline]
Telemetry is woven into the rendering lifecycle, enforced at the skill level.
β Summary¶
The Frontend Developer Agent emits and follows:
- π§± Component tree diagrams for rendering clarity
- π Interaction flows for user/API/state alignment
- π§© Clean Architecture maps to enforce separation of concerns
- π‘ Telemetry flows linked to traceable events
- βοΈ System context diagrams showing agent orchestration
These diagrams are automatically generated or documented as part of output to ensure cross-agent alignment, debugging, and audit readiness.
π‘ Emitted Events and Orchestration Integration¶
The Frontend Developer Agent emits structured events during key lifecycle transitions to:
- Notify the Orchestration Layer
- Trigger downstream agents (e.g., commit, test)
- Signal failures or human intervention needs
- Provide observability feedback for dashboards
All events include
trace_id,execution_id, andagent_origin, ensuring traceability and cross-agent correlation.
π¬ Emitted Events¶
| Event Name | Trigger |
|---|---|
FrontendRendered |
After successful rendering and validation of a component or page |
FrontendValidationFailed |
When output fails structural, binding, or cross-cutting compliance |
PreviewGenerated |
When manual review or visual diff mode is requested |
InterventionRequest |
Human input required to resolve ambiguity or layout issue |
OutputCommitted (indirect) |
Triggered by Code Committer Agent once output is committed |
TraceTelemetryAvailable |
When UI-generated spans and logs are available for Observability Agent |
π Example Event: FrontendRendered¶
{
"event": "FrontendRendered",
"trace_id": "trace-ui-789",
"execution_id": "exec-ui-789",
"agent_origin": "frontend-developer-agent",
"component": "DashboardPage",
"framework": "blazor",
"edition": "b2b",
"status": "success",
"timestamp": "2025-05-10T13:22:00Z"
}
β Example Event: FrontendValidationFailed¶
{
"event": "FrontendValidationFailed",
"trace_id": "trace-ui-789",
"component": "SettingsPage",
"reason": "Missing route guard",
"stage": "guard-resolution",
"status": "blocked"
}
Consumed by Orchestration Layer and HumanOps Agent.
π§ Integration with Orchestration Layer¶
Triggered By:¶
agent: frontend-developer-agent
component: DashboardPage
framework: blazor
auto_commit: true
auth_required: true
manual_review: false
Orchestration sets:
- Execution plan
- Input prompt
- Edition rules
- Framework/runtime flags
- Downstream triggering instructions
Triggers Downstream Agents:¶
| Agent | Action Triggered |
|---|---|
| π₯ Code Committer Agent | When FrontendRendered or PreviewGenerated emitted |
| π QA/Test Generator Agent | Based on component structure and test_generation: true |
| π Observability Agent | After telemetry span files and traceEvents.ts are emitted |
| π€ HumanOps Agent | If manual_review: true or InterventionRequest emitted |
π¦ Output Manifest¶
Emitted with FrontendRendered:
{
"output_path": "/frontend/DashboardPage",
"files": [
"DashboardPage.razor",
"DashboardPage.test.ts",
"DashboardPage.metadata.json"
],
"validated": true,
"trace_id": "trace-ui-789"
}
π Trace & Audit Log Record¶
All emitted events and component outputs are reflected in the central trace registry, e.g.:
{
"trace_id": "trace-ui-789",
"agent": "frontend-developer-agent",
"actions": [
"rendered:DashboardPage",
"validated",
"emitted:DashboardPage.metadata.json",
"triggered:CodeCommitterAgent"
]
}
β Summary¶
The Frontend Developer Agent:
- π‘ Emits structured, traceable events on render, validation, and failure
- βοΈ Integrates seamlessly into the orchestration lifecycle
- πͺ Triggers downstream commit, test, and observability agents
- π¦ Includes output manifest, metadata, and telemetry summaries
- π§Ύ Supports full trace and audit logging via
trace_idandexecution_id
This ensures the entire UI generation process is automatable, observable, and orchestrator-friendly.
π§© Final Summary and Governance Enforcement¶
The Frontend Developer Agent is a core software engineering persona in the ConnectSoft AI Software Factory. It autonomously translates design blueprints, service contracts, and edition-specific configurations into production-ready, observable, and testable frontend interfaces β fully aligned with:
- π Clean Architecture
- π Security-first design
- π¦ Traceable GitOps practices
- βΏ Accessibility and internationalization standards
- βοΈ Orchestrated execution flows
π¦ What It Delivers¶
| Output Category | Artifacts |
|---|---|
| π Pages & Components | .razor, .ts, .vue, .html files |
| π API Bindings | Service adapters and port interfaces |
| π§ State & Routing | Reactive state handlers, app routes, guards |
| π§ͺ Test Suites | Unit + E2E tests (Playwright, MSTest, Cypress) |
| π‘ Telemetry | OTEL spans (ui.rendered, click.*, error.*) |
| π Metadata | .metadata.json, output-manifest.json |
| π Folder Structure | GitOps-aligned /frontend/ output tree |
π§ AI Capabilities Used¶
- Semantic Kernel functions for UI layout, API binding, i18n
- Reasoning on edition-specific rules, feature flags
- Prompt templating and planner-based skill orchestration
- Fallback inference for missing layout elements or bindings
- Trace-aware file labeling and retry logic with diagnostics
π Governance & Compliance Enforcements¶
β Enforced by Default:¶
| Area | Policy |
|---|---|
| π§± Clean Architecture | Ports β Adapters β API Clients separation |
| π Security | Role guards, AuthorizedView, token injection |
| βΏ Accessibility | ARIA roles, keyboard support, focus indicators |
| π i18n | Required for any static content if i18n.enabled |
| π± Responsiveness | Tailwind breakpoints or media-query logic |
| π‘ Telemetry | ui.rendered, click.*, form.submit, auth.* |
| π§ͺ Testing | All components/pages must emit test stubs unless skipped |
| π§Ύ Traceability | All files tagged with trace_id, execution_id, agent_origin |
π Failure & Correction Governance¶
- Retry on missing bindings or syntax violations
- Emit
ValidationFailedwith diagnostics when blocking issue occurs - Request human review if ambiguity is detected
- Never emit partially broken output to Code Committer Agent unless explicitly marked
π Contribution to the Platform¶
| Function | Impact |
|---|---|
| π¨ Converts UI/UX design into real UI artifacts | |
| π Connects frontend to application logic and services | |
| π§ͺ Supports test, observability, and rollback flows | |
| βοΈ Orchestrates agent execution per edition, component, and framework | |
| π Enables visual QA, visual diffing, and trace validation |
π§ Lifecycle Integration¶
It is fully integrated with:
- Design Phase β Consumes UI/UX Agent output
- Architecture Phase β Aligns with App Architectβs frontend layering
- Engineering Phase β Coordinates with Backend + API Generator
- Commit + QA Phases β Feeds Committer and Test Generator Agents
- Observability Phase β Emits trace spans and metadata to telemetry pipelines
β Final Compliance Guarantee¶
Each emitted output is:
- Traceable (
trace_id,execution_id) - Auditable (
metadata.json,validation-report.json) - Observable (
telemetry/traceEvents.ts) - Testable (
__tests__/) - Git-committable
- Human-verifiable (via preview hooks)
π Final Summary¶
The Frontend Developer Agent guarantees:
βEvery user-facing screen generated in the ConnectSoft AI Software Factory is secure, testable, observable, edition-aware, and production-ready β without sacrificing automation, quality, or governance.β