# MAS Product Suite Cohesion Pass

Date: 2026-06-14

## Scope

This pass stabilizes the relationship between the two current deliverables:

- `MASPlatForm` as the framework/SDK.
- `MASPlatformShowcase` as the external public-consumer demo.

The goal is not to add another visual feature. The goal is to make the two projects move as one commercial product surface without weakening architecture boundaries.

## Decisions

1. MASPlatform remains the owner of internals: rendering, layout, virtualization, diagnostics, render verification, product dashboards, and readiness gates.
2. MASPlatformShowcase remains an external consumer: it must prove value through public controls and public product gateways only.
3. Suite-level verification belongs outside both projects so neither project needs to become responsible for the other's internals.
4. The Showcase must reference MASPlatform by project reference, not by copied DLL, stale package, or duplicated source.
5. The Virtualization proof must keep the `MASListView public API` proof path visible in source and user-facing text.

## Added assets

- `README.md` at suite root.
- `eng/Invoke-MASProductSuiteGate.ps1` at suite root.

## What the suite gate protects

- Both projects exist in the expected sibling layout.
- Both `.vbproj` files have no missing, extra, or duplicate Compile Include entries.
- Showcase references MASPlatform through `..\MASPlatForm\MASPlatForm.vbproj`.
- Showcase does not reference a copied `MASPlatform.dll`.
- MASPlatform records the active Virtualization Professional Hardening baseline.
- Showcase records the Professional Stabilization rule.
- Showcase source does not consume forbidden internal/weak tokens such as Virtualization internals, Render Verification snapshots, `OverlayManager`, native file dialogs, `MessageBox.Show`, manual `SetBounds`, or `BoundsLogical`.
- Showcase keeps user-facing Virtualization proof tokens such as `MASListView public API`, `Benchmark scenarios`, `Heavy consumers`, `Live proof surface`, and `Expected result:`.

## How to run

Static suite gate:

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

Full local verification:

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

The full mode delegates to the existing project-owned gates instead of duplicating their logic.

## Non-goals

- No new MASPlatform feature was opened.
- No Showcase page was converted into a framework-internal diagnostic tool.
- No wrappers, adapters, bridges, copied DLLs, or parallel verification systems were introduced.
- No public API was expanded.
