Install any skill in seconds. Free to start, no credit card required.
Get Started Free →**WORKFLOW SKILL** - Execute the end-to-end WingtipToys migration benchmark: clear samples\AfterWingtipToys, run the migration-toolkit against samples\WingtipToys, repair the generated app until Playwright acceptance tests pass, and write a numbered run report with embedded screenshots under dev-docs\migration-tests\wingtiptoys. WHEN: "run Wingtip migration", "test WingtipToys migration", "Wingtip benchmark", "migrate WingtipToys", "rerun Wingtip migration". INVOKES: migration-toolkit (scripts +
.claude/skills/fritzandfriends-wingtip-migration-test/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-04 | ✗→✓ | ▲ Improved | 101% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 95% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 48% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 92% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 66% | 0% |
End-to-end migration benchmark for the canonical WingtipToys Web Forms sample. This workflow uses the repository's migration toolkit as the public entry point, preserves the migrated application shape in samples\AfterWingtipToys\, and considers the run successful only when the existing Playwright acceptance tests pass.
This workflow is a benchmark, so every run must start from scratch.
samples\WingtipToys\.samples\AfterWingtipToys\ before each run.migration-toolkit\scripts\bwfc-migrate.ps1 to produce the output for this run.samples\AfterWingtipToys\.git restoregit checkoutgit show to pull old file contents into the runsamples\AfterWingtipToys\dev-docs\migration-tests\wingtiptoys\run*If a run uses prior migrated content or git-sourced repairs, the benchmark is invalid and must be restarted from a freshly cleared output folder.
| Item | Path | |------|------| | Web Forms wrapper | samples/WingtipToys/ | | Effective Web Forms app | samples/WingtipToys/WingtipToys/ | | Blazor output | samples/AfterWingtipToys/ | | Toolkit entry point | migration-toolkit/scripts/bwfc-migrate.ps1 | | Toolkit skills | migration-toolkit/skills/ | | Acceptance tests | src/WingtipToys.AcceptanceTests/ | | Run reports | dev-docs/migration-tests/wingtiptoys/ | | Report template | ./REPORT-TEMPLATE.md |
A Wingtip run is only a success when all of the following are true:
samples\AfterWingtipToys\ was cleared before the run.migration-toolkit\scripts\bwfc-migrate.ps1.dotnet test src\WingtipToys.AcceptanceTests\ passes against the migrated app.dev-docs\migration-tests\wingtiptoys\runNN\.src\WingtipToys.AcceptanceTests\https://localhost:5001samples\AfterWingtipToys implementationIf Playwright browsers have not been installed yet for this machine:
powershelldotnet build src\WingtipToys.AcceptanceTests\WingtipToys.AcceptanceTests.csproj pwsh src\WingtipToys.AcceptanceTests\bin\Debug\net10.0\playwright.ps1 install
Scan dev-docs\migration-tests\wingtiptoys\run* folders and use the next numeric value after the current maximum. Preserve zero padding: run26, run27, etc.
Start total wall-clock timing before clearing the output folder.
Delete everything under samples\AfterWingtipToys\ while keeping the folder itself.
Create dev-docs\migration-tests\wingtiptoys\runNN\ and an images\ subfolder so logs and screenshots have a known destination from the start.
Run the toolkit wrapper, not the CLI directly:
powershellpwsh -File migration-toolkit\scripts\bwfc-migrate.ps1 ` -Path samples\WingtipToys ` -Output samples\AfterWingtipToys ` -Verbose
Record:
samples\WingtipToys\WingtipToys\ app root automatically.razor output, scaffold files, and static assets were produced in the expected placesLoad and apply the migration toolkit from migration-toolkit\:
migration-toolkit/README.md for the overall approach and key principlesmigration-toolkit/skills/ — the toolkit contains all the skills needed for the repair phase; apply whichever skills are relevant to the errors and patterns encountered in the generated outputRepair the generated app in place. Do not replace it with a simplified rewrite or a fresh unrelated sample.
Important benchmark constraint:
Focus on:
samples\AfterWingtipToys\ListView, FormView, GridView, DataList, Repeater) with manual HTML. Fix the generated markup to work with the BWFC component instead.Run:
powershelldotnet build samples\AfterWingtipToys\WingtipToys.csproj
Record:
Start the migrated app and wait until it is responsive.
Recommended default:
powershelldotnet run --project samples\AfterWingtipToys\WingtipToys.csproj
Use the app's configured launch settings when possible. If you must override the base URL, keep it consistent with the acceptance tests and report it explicitly.
Run the existing Playwright suite against the migrated app:
powershell$env:WINGTIPTOYS_BASE_URL = "https://localhost:5001" dotnet test src\WingtipToys.AcceptanceTests\WingtipToys.AcceptanceTests.csproj --verbosity normal
Record:
If the suite does not pass, the run is not successful. Continue repair work or write a failed run report that clearly explains the blocker.
Capture proof screenshots from the working migrated app and save them under runNN\images\.
Recommended minimum set:
01-home.png02-products.png03-product-details.png04-shopping-cart.png05-login.png06-about.pngUse additional screenshots when they clarify a major success or known defect.
Create dev-docs\migration-tests\wingtiptoys\runNN\report.md from REPORT-TEMPLATE.md.
The report must include:
Optional supporting artifacts:
summary.mdraw-data.md| Rule | Detail | |------|--------| | Always clear output first | samples/AfterWingtipToys/ must be emptied before each run so results are reproducible | | Use the toolkit wrapper | Start Layer 1 with migration-toolkit/scripts/bwfc-migrate.ps1, not an ad hoc direct CLI call | | Work from scratch | Every run must begin from the raw source plus fresh toolkit output only; no prior migrated content may be reused | | No git/history restores | Never use git restore, git checkout, git show, or copied historical file contents to repair the benchmark run | | Repair in place | Do not swap in a smaller clean app or rewrite the site from scratch | | Acceptance tests are the gate | The run is only successful when src/WingtipToys.AcceptanceTests/ passes | | Report every run | Successful or failed runs both get a numbered report folder | | Embed screenshots | The main report must show images inline with Markdown links | | Measure total runtime | Start timing before output cleanup and stop after the report is written | | Document gaps honestly | Every manual fix that was necessary is evidence for improving the toolkit |
textdev-docs/ migration-tests/ wingtiptoys/ runNN/ report.md summary.md # optional raw-data.md # optional images/ 01-home.png 02-products.png 03-product-details.png 04-shopping-cart.png 05-login.png 06-about.png
migration-toolkit/ — the full toolkit (README, METHODOLOGY, skills, scripts)src/WingtipToys.AcceptanceTests/TestConfiguration.csdev-docs/migration-tests/wingtiptoys/run25/report.mdOther measured skills in the registry, with their headline benchmark lift.