designer-release-validation
Skill20 starsChanged 31 days agoMITView on GitHub
Validate ODIN Designer through the real localhost UI. Use for PRs or releases that change the Designer wizard, scenario or architecture transitions, networking, imports, Sizer handoff, reports, ARM outputs, reset behavior, responsive layout, or accessibility.
We split this skill into the rules it gives an agent
22 rules. About 0 are common, 20 are distinctive, and 2 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈20
Distinctive · estimate
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 21
After every major transition, compare selected cards, visible sections, summary values, progress, and enabled output actions.
- Distinctive: line 36
Use Start Over and its visible confirmation.
- Distinctive: line 39
Use synthetic names, domains, IP ranges, and credentials.
- Distinctive: line 44
Run the smallest relevant workflow plus its inverse transition for every Designer PR.
- Distinctive: line 47
Start from a reset state through visible controls.
- Distinctive: line 60
Run every branch below for a release candidate.
- Distinctive: line 93
Ensure forced switched storage, management/compute intent, and rack ToR choices stay visible and synchronized.
- Distinctive: line 102
Remove required RDMA or introduce a duplicate/invalid subnet.
- Distinctive: line 113
Check invalid CIDR, gateway, overlap, reserved range, and duplicate addresses through visible errors and output readiness.
- Distinctive: line 121
Import a supported older Designer payload and verify visible migration.
- Distinctive: line 127
Start Over after each complex path.
- Distinctive: line 132
Before completion, Report and ARM buttons must be disabled and missing sections must be visible and accurate.
- Distinctive: line 134
When complete, open the Cluster Design Document and assert title, scenario, architecture, machine count, networking, workloads, and …
- Distinctive: line 146
Check 375 x 667, 768 x 1024, and a desktop viewport in light and dark themes.
- Very specific: line 152
Verify progress aria-valuenow, selected aria-pressed state, labels, and validation messaging follow the visible workflow.
- Distinctive: line 165
No transition may throw, loop recursively, leave a modal stuck, or disable an unrelated workflow permanently.
- Distinctive: line 174
Add focused static regression coverage with the smallest root-cause fix.
- Distinctive: line 176
Run the full related scenario before declaring the defect fixed.
- Very specific: line 180
Follow ../release-readiness/SKILL.md for release-note coverage, automated gates, evidence, and publication, including additions to the same …
- Distinctive: line 194
Test invalid and valid ARM region choices, Custom transitions, cloud filtering, and the region/mode in actual downloaded scripts and …
- Distinctive: line 196
Verify new report guidance reaches each affected export, not just HTML.
- Distinctive: line 200
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
Designer Release Validation
Validate the Designer as a user experiences it. This complements ESLint,
HTML validation, and node scripts/run-tests.js; it does not replace them.
Browser Contract
- Serve the repository over localhost and open
/index.htmlwith a unique query string so current assets load. - Drive rendered cards, buttons, inputs, dialogs, and file pickers through the integrated browser. Do not call Designer functions or mutate state/localStorage from page evaluation.
- DOM evaluation may read visible state, ARIA state, browser errors, downloaded payloads, or navigation targets for assertions only.
- Capture
pageErrorand failed same-origin requests throughout each scenario. - After every major transition, compare selected cards, visible sections, summary values, progress, and enabled output actions. Treat disagreement as a failure even when the next screen appears usable.
Preparation
- Confirm the branch is
Release, inspectgit status, and read applicable plans indocs/module-planning/. Reuse a running local server or start one from the repository root:
python -m http.server 5511- Open
http://localhost:5511/index.html?designer-validation=<unique-value>. - Use Start Over and its visible confirmation. Assert the scenario cards are enabled, the summary is reset, and theme/font preferences remain unchanged.
Use synthetic names, domains, IP ranges, and credentials. Never test the deployed site, authenticated pages, or real customer data.
PR Smoke Matrix
Run the smallest relevant workflow plus its inverse transition for every Designer PR. At minimum:
- Start from a reset state through visible controls.
- Complete the changed scenario far enough to exercise its derived state.
- Change the controlling choice away and back.
- Assert stale dependent state is cleared and user-owned values are preserved.
- Confirm progress/readiness accurately identifies remaining sections.
- Exercise the changed export, handoff, report, or ARM action when applicable.
- Repeat the modified screen at 375 px width and in both themes for UI changes.
Cross-tool changes must also run the Sizer smoke path in
.github/skills/sizer-scaling-release-validation/SKILL.md.
Release Scenario Matrix
Run every branch below for a release candidate.
| Scenario | Architecture / role | Required outcome |
| Connected | Hyperconverged | Standard 2-16 machine workflow reaches valid report and ARM readiness |
| Connected | Disaggregated | SAN/Clos workflow keeps rack, machine, VLAN, subnet, NIC, and intent state aligned |
| Disconnected | Management | Fixed three-machine management role includes the required local services path |
| Disconnected | Workload | Valid 1-16 machine workload role remains distinct from management defaults |
| Connected | Rack-aware HCI | Even zone assignment and confirmation remain coherent after edit/swap/back navigation |
| Multi-Rack | Documentation stop-flow | Microsoft contact/documentation guidance appears and configuration outputs remain unavailable |
| Microsoft 365 Local | Documentation stop-flow | Minimum nine-machine guidance and Microsoft documentation appear; no unsupported configuration workflow is exposed |
For each path, use the visible summary and progress panel as independent checks against the selected controls. A summary that reports stale or impossible state is a failure.
High-Risk Transitions
Scenario And Architecture
- Select Connected/Hyperconverged and enter enough values to populate dependent region, machine, storage, intent, and outbound state.
- Change to Disaggregated. Assert incompatible HCI fields disappear or reset, storage is InfraOnly, and SAN fields become authoritative.
- Return to Hyperconverged. Assert SAN-only state cannot leak into summary or generated outputs.
- Repeat Connected to Disconnected and management to workload role changes.
Rack-Aware
- Confirm machine totals and zone assignments remain even and sum correctly.
- Swap or edit zone assignment, navigate away/back, and verify confirmation is invalidated only when the underlying assignment changes.
- Ensure forced switched storage, management/compute intent, and rack ToR choices stay visible and synchronized.
Port, RDMA, And Storage Networking
- Change port count after confirming intent and adapter mapping. Assert dependent confirmations clear instead of silently retaining incompatible mappings.
- Exercise switched and switchless storage. For three/four-machine switchless, assert Storage Auto IP is disabled and all required custom subnets are present.
- Remove required RDMA or introduce a duplicate/invalid subnet. Assert visible validation blocks readiness and identifies the controlling field.
- Restore valid values and confirm the workflow recovers in one action.
Names And IP Addressing
- Enter the first machine name and verify automatic sequential names.
- Manually edit a later name, then change the first name; the manual override must remain unchanged while auto-generated names follow the new base.
- Enter a valid Infrastructure Pool start and assert the minimum six-address end is filled. A manual end must survive later start changes.
- Check invalid CIDR, gateway, overlap, reserved range, and duplicate addresses through visible errors and output readiness.
Import, Handoff, And Reset
- Export a completed Designer JSON file, Start Over, and import it through the visible file picker. Assert scenario, architecture, derived state, progress, Sizer metadata, and output readiness round-trip.
- Import a supported older Designer payload and verify visible migration.
- Attempt a Sizer export through Designer Import and require clear reciprocal guidance without changing current state.
- Open Designer from Sizer Configure in Designer and verify topology, machine count, hardware, workloads, and Sizing Notes arrive once without clobbering later user edits.
- Start Over after each complex path. Assert every workflow field resets while theme and font-size preferences persist.
Outputs And Cross-Tool Handoffs
- Before completion, Report and ARM buttons must be disabled and missing sections must be visible and accurate.
- When complete, open the Cluster Design Document and assert title, scenario, architecture, machine count, networking, workloads, and diagrams match Designer.
- Generate ARM output and assert the selected branch is correct: default, rack-aware, disaggregated SAN, disconnected/AD-less, or government where applicable. Placeholder warnings must remain explicit.
- Exercise ToR Switch and Sizer handoffs. Assert topology and machine/network values transfer without stale values from a previous scenario.
Responsive And Accessibility Pass
For any changed UI and once per release candidate:
- Check 375 x 667, 768 x 1024, and a desktop viewport in light and dark themes.
- Confirm cards, forms, summary, dialogs, and output buttons do not overlap or overflow and the next relevant section remains reachable.
- Tab through the modified workflow. Cards, controls, dialogs, and actions must receive visible focus in a sensible order and activate with Enter/Space.
- Confirm dialogs trap focus while open and return it to their trigger on close.
- Verify progress
aria-valuenow, selectedaria-pressedstate, labels, and validation messaging follow the visible workflow.
Invariants
- A single user action must settle without a second no-change edit.
- Hidden or incompatible state must not appear in the summary or outputs.
- Scenario and architecture constraints must override stale imported state.
- Derived values may update automatically; explicit manual overrides must not be silently overwritten.
- Machine, rack, zone, NIC, VLAN, subnet, and intent totals must agree everywhere.
- Output readiness must never enable while required visible sections are invalid.
- Reset must clear the entire workflow state, including newly added fields.
- No transition may throw, loop recursively, leave a modal stuck, or disable an unrelated workflow permanently.
Failure Workflow
- Preserve the failing page and record selected controls, summary, progress, errors, and the smallest transition that exposed it.
- Repeat from Start Over using only visible UI actions.
- Identify the controlling mutation/readiness path and one falsifiable cause.
- Add focused static regression coverage with the smallest root-cause fix.
- Reload with a new query string and repeat the exact UI path plus its inverse.
- Run the full related scenario before declaring the defect fixed.
Release Validation
Follow ../release-readiness/SKILL.md for release-note coverage, automated gates,
evidence, and publication, including additions to the same unreleased version.
Help and output-page regressions
- Exercise first visit, Next/Back where offered, completion, Skip/Escape, remembered dismissal, and reopening. Check independent page preferences.
- Reopen Help over edited fields. Values must survive; Escape must close only the top dialog, and Tab must include links and restore focus on close.
- On ARM and Report, measure every header action's viewport bounds and click it. A button present in the DOM but off-screen is a failure.
- Measure native splash centers within 2 CSS pixels of viewport center after animations finish. Verify titles, scrolling, and actions at all three viewport sizes in both themes, and check Report Print Friendly mode separately.
- Test invalid and valid ARM region choices, Custom transitions, cloud filtering, and the region/mode in actual downloaded scripts and parameter files.
- Verify new report guidance reaches each affected export, not just HTML.
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 --checkReport scenarios exercised, transitions, viewports/themes, output/handoff checks, page errors, defects found, fixes, static test total, lint status, residual risk, and the localhost URL used for review.
In this repository4 other files it gives its agents.
- .github/copilot-instructions.mdCopilot instructions
- pptx-exportSkill
- release-readinessSkill
- sizer-scaling-release-validationSkill
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.

