microsoft / microsoft/win-dev-skills
winui-packaging: ship a tested GitHub Actions workflow file instead of an inline YAML snippet
Nobody has claimed this yet.
- Dominant language
- C#
- Stars
- 442
- Forks
- 33
- Avg merge
- 2h 59m
- Merged PRs (30d)
- 11
Description
97: #97
Problem
From Joe's blog post:
CI was next. The workflow the agent generated didn't work out of the box, so I just removed it.
The current winui-packaging skill embeds an example GitHub Actions YAML snippet as inline markdown (lines 67–90). The snippet has at least these problems:
- Hard-codes
./bin/x64/Release/— actual output path varies byTargetFramework,Configuration, and RID, and is usuallybin/x64/Release/<tfm>/win-x64/or similar afterRuntimeIdentifiersis set. - Doesn't set up the .NET SDK before
dotnet build(relies on whatever ships on the runner). - Single-platform only — fails on Arm64.
- Never exercised by our own CI, so we have no signal when it drifts.
The result: the agent emits a workflow that looks right and doesn't run. Pattern is the deeper issue — every prose-embedded snippet we tell the agent to copy is unverified.
Proposed fix
- Move the YAML to a real file:
plugins/winui/skills/winui-packaging/references/github-actions/build-and-package.yml. - Make it a proper matrix workflow (
x64,arm64), withactions/setup-dotnet, correct artifact globs, signing from a repo secret (and a graceful fallback to ephemeral dev cert for non-secret-bearing forks / first-time setup). - Exercise it against a sample WinUI app inside this repo's CI so any breakage is caught here, not by users.
- Skill body instructs the agent to copy the file in (
Copy-Itemfrom the installed skill path, orgh repo cloneof just that path) rather than emit YAML from scratch.
Acceptance criteria
- Workflow lives as a real file under
references/github-actions/. - CI in this repo runs it against a sample WinUI 3 app on every PR.
- Skill instructs the agent to copy the file rather than regenerate it.
- Both
x64andarm64produce uploaded.msixartifacts on each run. - Inline YAML in
SKILL.mdis removed (or reduced to a 5-line "what it does" excerpt with a pointer to the real file).
Acknowledgments
Identified by Joe Finney in Building Fluent Icon Finder with the WinUI Copilot skill.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with plugins/winui/skills/winui-packaging/SKILL.md and the proposed references/github-actions/build-and-package.yml path; inspect the existing inline snippet and repository CI configuration. Define the sample WinUI app exercise from the acceptance criteria, then verify that x64 and arm64 produce uploaded .msix artifacts and that the skill points users to the real workflow file.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp, github-actions, yaml
- Domain
- build-system, ci-cd, release
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100