| name | plugin-build-smoke-regression |
| description | Catch packaging-script regressions by asserting the real script exit path and current overlay surface. |
| domain | build-tests |
| confidence | high |
| source | observed |
Context
Use this when a packaging or publish script has a real smoke-path failure that synthetic file assertions missed.
Patterns
- Add at least one test that runs the real script entry point and asserts exit code 0 plus the final human summary/output block.
- Keep synthetic template fixtures aligned with the current shipped overlay names, not historical file names.
- Assert current assets are present and legacy bootstrap files are absent, so stale template content cannot make tests pass accidentally.
- Prefer ASCII summary assertions for PowerShell smoke tests when prior failures involved parser/host issues around fancy status output.
Examples
tests/ExcelMcp.SkillGeneration.Tests/PluginBootstrapBuildTests.cs: BuildPlugins_SmokeRun_ExitsZeroAndPrintsAsciiSummary
tests/ExcelMcp.SkillGeneration.Tests/PluginBootstrapBuildTests.cs: current bootstrap assets use bin\download.ps1 and reject legacy download-mcp.ps1 / download-cli.ps1 / packaged bootstrap-state.json
Anti-Patterns
- Do not validate only copied files when the real failure happened in script shutdown/status output.
- Do not let synthetic fixtures carry obsolete helper names that the shipped overlay no longer uses.