# Nexamas Product Suite

This workspace contains the current Nexamas product surfaces that must move together during stabilization and release preparation:

- `Nexamas.UI` — the SDK/framework project and NuGet package source.
- `NexamasUIShowcase` — the external consumer/demo project that proves Nexamas UI through public APIs.
- `IconStudio.Desktop` — an independent real application that consumes `Nexamas.UI`.
- `IconStudioCore` — IconStudio domain/core project.

The suite rule is simple: `Nexamas.UI` owns internal systems, diagnostics, rendering, virtualization, layout, and product dashboards, while consumer projects must use only official public gateways and must remain polished product surfaces.

## Current accepted suite baseline

- Nexamas.UI baseline: release-quality build, package, quality, and packed-consumer proof.
- Showcase baseline: renamed and rebranded external consumer demo using `Nexamas.UI` project references.
- IconStudio.Desktop baseline: independent application identity preserved while its UI-library references point to `Nexamas.UI`.

## Recommended local verification order

From the suite root, run the cross-project static gate first:

```powershell
.\eng\Invoke-NexamasSuiteGate.ps1
```

Then run the inner project gates when you are ready to spend the full build/test time:

```powershell
.\eng\Invoke-NexamasSuiteGate.ps1 -RunInnerGates
```

Equivalent manual order:

```powershell
cd .\Nexamas.UI
.\tools\quality\Run-NexamasUIQuality.ps1

cd ..\NexamasUIShowcase
.\eng\tests\Run-NexamasUIShowcaseConsumerAudit.ps1
.\eng\tests\Invoke-NexamasUIShowcaseCoverageGate.ps1
.\eng\tests\Invoke-NexamasUIShowcaseProductHubGate.ps1
.\eng\tests\Invoke-NexamasUIShowcaseOutputConsumptionGate.ps1
```

## Cross-project ownership rules

- Showcase must reference `..\Nexamas.UI\Nexamas.UI.vbproj`; it must not copy `Nexamas.UI.dll` or use a stale package.
- IconStudio.Desktop may keep its own product identity, but its UI-library project reference must point to `..\Nexamas.UI\Nexamas.UI.vbproj`.
- Consumer projects must not import Nexamas.UI internal/Friend systems such as Virtualization internals, Render Verification snapshots, layout slots, overlay managers, or native WinForms dialogs.
- Showcase pages must explain what the viewer should see and must use the unified Showcase presentation contract.
- Nexamas.UI must keep framework readiness in its own gates; Showcase must prove product value without becoming a framework-internal test harness.
- New demo pages should be beautiful public-consumer surfaces first, not raw diagnostic panels.

## Source-root hygiene

Generated build artifacts and legacy validation evidence do not belong in the clean source root. Regenerate `.artifacts` from the current Nexamas.UI quality/packaging pipeline when needed.
