sizer-scaling-release-validation
Skill20 starsChanged 31 days agoMITView on GitHub
Stress-test ODIN Sizer scaling through the real localhost UI in the integrated browser. Use when validating a release, changing Sizer workload sizing, machine or rack auto-scaling, deployment topology transitions, GPU capacity, future growth, reset behavior, or Multi-Instance Scale-Out.
We split this skill into the rules it gives an agent
21 rules. About 0 are common, 16 are distinctive, and 5 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈16
Distinctive · estimate
This author's own choices. Worth a look.
5
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 16
Use browser clicks, selections, typing, Add/Update/Delete actions, and the visible Reset confirmation dialog.
- Distinctive: line 18
Use DOM evaluation only to read results or diagnostics.
- Very specific: line 22
Treat any browser pageError, recursive overflow, stuck modal, mismatched recommendation/dropdown, or disabled control after Reset as a …
- Very specific: line 28
Read applicable files in docs/module-planning/.
- Distinctive: line 29
Start a static server from the repository root if one is not already running:
- Distinctive: line 40
If port 5511 is occupied, use another localhost port.
- Distinctive: line 66
Add a default VM and assert one disabled machine option.
- Distinctive: line 69
Add a Total VM workload at 4,000 vCPUs, 16,000 GB memory, and 100 GB storage.
- Distinctive: line 91
Add all seven default workload types sequentially through their dialogs.
- Distinctive: line 92
After every Add, record workload count, topology, machines, and bottleneck.
- Distinctive: line 94
Delete the only GPU workload.
- Distinctive: line 99
Use VM Total Requirements, DDA, and a four-GPU-per-machine model.
- Distinctive: line 130
No calculation may alternate recursively between topologies or rack counts.
- Distinctive: line 137
Add focused regression coverage with the smallest root-cause fix.
- Distinctive: line 139
Run the inverse path, such as scale-up followed by scale-down.
- Distinctive: line 141
Do not weaken validation to make an invalid default pass.
- Very specific: line 146
Follow ../release-readiness/SKILL.md for release-note coverage, automated gates, evidence, and publication.
- Distinctive: line 152
Test first-use Help, Next/Back, completion, Skip/Escape, reload, and reopening.
- Distinctive: line 158
Check all guide pages at 375 x 667, 768 x 1024, and desktop, in both themes.
- Very specific: line 162
Test the actual page's stylesheet loading.
- Distinctive: line 175
After browser scenarios pass, run:
≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Sizer Scaling Release Validation
Validate Sizer as a user experiences it. Drive rendered controls and dialogs in the integrated browser; do not seed workloads or invoke sizing functions from page JavaScript.
Browser Contract
- Serve the repository over localhost. Reuse a running server when available.
- Open
/sizer/with a unique query string so the browser loads current assets. - Use browser clicks, selections, typing, Add/Update/Delete actions, and the visible Reset confirmation dialog.
- Use DOM evaluation only to read results or diagnostics. Do not mutate state, call Sizer functions, or write local storage from evaluation code.
- Record the visible deployment, machine option text, rack count, recommendation, capacity values, and notices after each meaningful action.
- Treat any browser
pageError, recursive overflow, stuck modal, mismatched recommendation/dropdown, or disabled control after Reset as a failure.
Preparation
- Confirm the branch is
Releaseand inspectgit status. - Read applicable files in
docs/module-planning/. Start a static server from the repository root if one is not already running:
python -m http.server 5511- Open
http://localhost:5511/sizer/?release-scaling=<unique-value>in the integrated browser. - Click Reset, then confirm Reset Sizer. Assert Hyperconverged, two machines, no workloads, and enabled workload cards.
If port 5511 is occupied, use another localhost port. Do not test the deployed site or any authenticated page.
Workload Matrix
On Hyperconverged, add each default workload through its visible card and dialog. Record the recommendation, then delete it before the next scenario.
| Workload | Required observation |
| Azure Local VMs | Add and delete return a coherent machine recommendation |
| AKS Arc Clusters | Included cluster nodes appear in the workload summary |
| Azure Virtual Desktop | User, profile, and concurrency summary is visible |
| Foundry Local | Included AKS Arc infrastructure is visible |
| Agentic Retrieval | Default production GPU satisfies its VRAM floor and matches Hardware Configuration |
| AI Video Indexer | Recommended worker and cluster-wide capacity appear |
| GitHub Enterprise Local | Appliance VM tier and base resources appear |
The default dialog must be addable without first correcting a self-invalid selection. If validation blocks a default, capture the alert and selected values.
Deployment Matrix
Exercise every deployment type through the visible Deployment Type selector.
- Single Node
- Add a default VM and assert one disabled machine option.
- Confirm the first Sizing Note is the workload high-availability Advisory.
- Hyperconverged
- Add a Total VM workload at 4,000 vCPUs, 16,000 GB memory, and 100 GB storage.
- Confirm automatic sizing remains within the 16-machine HCI limit.
- Rack-Aware Cluster
- Add a Total VM workload at 1,000 vCPUs, 4,000 GB memory, and 10,000 GB storage.
- Assert machine options are only
2, 4, 6, 8and the result is even. - Edit to 100 vCPUs, 400 GB memory, and 1,000 GB storage; assert scale-down remains in the valid even set.
- Disaggregated Storage
- From AUTO Hyperconverged, edit a Total VM workload to 10,000 vCPUs and 40,000 GB memory.
- Assert automatic conversion to Disaggregated, enough racks for N+1, matching dropdown/recommendation totals, and no page error.
- Edit back to 100 vCPUs and 400 GB memory. Assert automatic return to Hyperconverged without rack/topology oscillation.
- ALDO Management Cluster
- Select ALDO and assert three fixed machines plus the IRVM1 workload.
- Reset and confirm Hyperconverged/two machines, no IRVM1, and all workload cards enabled.
Aggregate And Scale-Down
- Reset to defaults.
- Add all seven default workload types sequentially through their dialogs.
- After every Add, record workload count, topology, machines, and bottleneck.
- Assert the final Agentic GPU model matches Hardware Configuration.
- Delete the only GPU workload. If GPU count was AUTO, assert it returns to zero; if the user manually selected inventory, assert it is preserved.
GPU And Growth Boundary
Use VM Total Requirements, DDA, and a four-GPU-per-machine model.
- Enter the N-1 ceiling of 252 GPUs with automatic 10% growth.
- Assert growth resets to 0% with an explanatory notice and sizing reaches 64 physical machines / 63 effective machines.
- Repeat after manually selecting 10% growth. Assert growth is preserved and an actionable over-capacity warning appears.
- Confirm machine/rack reduction never violates GPU capacity.
Multi-Instance Scale-Out
- Reset and add a default VM workload.
- Select four instances.
- Assert total machines equal per-instance machines multiplied by four and the summary labels the estimate as four independent instances.
- Return to one instance and assert the summary hides without changing the per-instance machine recommendation.
Invariants
- Single Node: exactly one machine.
- Hyperconverged: 2-16 machines.
- Rack-aware: one of 2, 4, 6, or 8 machines.
- Disaggregated: selected total is a valid rack multiple and no more than 64.
- ALDO: exactly three machines and fixed IRVM1 only.
- The recommendation total must be selectable in the current machine dropdown.
- AUTO controls may change; MANUAL controls must not be silently overwritten.
- N+1 compute, memory, and GPU capacity must cover displayed demand.
- Adding demand must not reduce capacity unless another visible setting changes; removing demand must not leave auto-managed capacity stranded.
- A single user action must settle without requiring a second no-change edit.
- No calculation may alternate recursively between topologies or rack counts.
Failure Workflow
- Preserve the failing browser state and capture visible values or a screenshot.
- Repeat the smallest Add/Edit/Delete sequence that reproduces it.
- Identify the controlling calculation path and one falsifiable hypothesis.
- Add focused regression coverage with the smallest root-cause fix.
- Reload localhost with a new query string and repeat the exact UI path.
- Run the inverse path, such as scale-up followed by scale-down.
Do not weaken validation to make an invalid default pass. Correct the default or synchronize related controls while preserving explicit user choices.
Release Validation
Follow ../release-readiness/SKILL.md for release-note coverage, automated gates,
evidence, and publication. Same-version work still requires reviewing README
and in-app What's New.
Help, Layout, And Supported Sizing
- Test first-use Help, Next/Back, completion, Skip/Escape, reload, and reopening. Preferences must be independent. Editing/importing must not unexpectedly launch first-use guides, and Reset must preserve remembered Help preferences.
- Reopen Help after editing inputs; closing it must preserve the inputs. Escape closes only the top dialog. Tab includes source links and returns focus to the correct trigger on dismissal.
- Check all guide pages at 375 x 667, 768 x 1024, and desktop, in both themes. Measure dialog-center coordinates within 2 CSS pixels of viewport center after animations finish. Check scrollability, title alignment, visible focus, and every action's bounds and clickability; DOM presence alone is insufficient.
- Test the actual page's stylesheet loading. A shared component can behave differently in Sizer than in Designer/ARM/Report.
- For GPU sizing changes, select representative supported VM SKUs and compare CPU, memory, GPU count, and VRAM against their documented values and all resulting totals. Exercise CPU/GPU transitions and unsupported combinations. Successful Add or a matching hardware GPU name is not sufficient.
- For documentation audits, record the source and review date. Distinguish requirements, ODIN planning assumptions, and benchmark measurements. Flag conflicting guidance rather than silently resizing. Do not infer throughput or users per GPU from VM capacity alone.
Automated Gates
After browser scenarios pass, run:
npm run lint:js
npm run lint:html
npm run lint:css
node scripts/run-tests.js
npm run test:runner
npm run test:http
git diff --checkFor modified public planning notes, run the privacy scan documented in
.github/copilot-instructions.md before staging.
Report scenario coverage, defects found, fixes, browser outcomes, automated test total, lint status, residual risk, and the localhost URL used for visual review.
In this repository4 other files it gives its agents.
- .github/copilot-instructions.mdCopilot instructions
- designer-release-validationSkill
- pptx-exportSkill
- release-readinessSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
Reviews can't be read right now.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

