PowerForge Module Builder
Use this skill for module build pipeline work, not website work.
Golden Path (Do This In Order)
- Confirm repo/branch hygiene before changes.
- Prefer a feature branch or git worktree.
- Keep unrelated paths clean.
- Preflight configuration.
- Locate
Build/Build-Module.ps1and module root (Module/). - Check
New-ConfigurationBuildand install settings first.
- Locate
- Produce JSON plan/config before invasive changes.
- Use
Invoke-ModuleBuild -JsonOnly -JsonPath ...when possible.
- Use
- Run the real module build.
- Prefer repo script
Build/Build-Module.ps1.
- Prefer repo script
- Validate outcomes from summary + logs.
- Check merge summary, missing commands, required modules, and import step.
- Apply install compatibility policy intentionally.
- Default is warn-only for legacy flat installs.
- Use explicit behavior when migrating old flat installs.
- Keep fail-fast ordering.
- Validate/import before signing when changing pipeline order.
- Verify both engines.
- Validate PowerShell 5.1 path (
WindowsPowerShell) and PowerShell 7+ path.
- Validate PowerShell 5.1 path (
- Validate tests/build.
- Run focused tests first, then broader tests.
- Document config and migration behavior.
- Update docs/schema/help when adding parameters.
- Respect generated docs boundaries.
Module/DocsandModule/en-US/*-help.xmlare generated.- Author source docs in code comments and about-topic sources (
Help/About/about_*), not directly in generated files.
High-Value Commands
# Generate pipeline JSON only (no execution)
Invoke-ModuleBuild -ModuleName 'MyModule' -Path . -JsonOnly -JsonPath .\powerforge.json -Settings { ... }
# Run standard module build entrypoint
.\Build\Build-Module.ps1
# Focused tests for pipeline changes
dotnet test .\PowerForge.Tests\PowerForge.Tests.csproj -c Release
# Scaffold about-topic source file
New-ModuleAboutTopic -TopicName 'Troubleshooting' -OutputPath '.\Help\About'
Decision Rules
- For mixed legacy flat + versioned installs, prefer explicit config:
VersionedInstallLegacyFlatHandling:Warn,Delete, orConvert.VersionedInstallPreserveVersions: versions that must not be removed.
- Do not silently change install policy defaults in behavior-changing PRs.
- If missing commands are environment-specific (for example RSAT), classify clearly and avoid noisy false positives.
Reference Files (Read As Needed)
references/checklist.mdfor fast preflight + troubleshooting sequence.Module/Docs/Invoke-ModuleBuild.mdfor command surface.Module/Docs/New-ConfigurationBuild.mdfor build/install parameters.Docs/PSPublishModule.ProjectBuild.mdwhen module build and repo release flow intersect.Docs/PSPublishModule.ModuleDocumentation.mdfor generated-doc workflow and about topics.Docs/PSPublishModule.DotNetPublish.Quickstart.mdwhen module work intersects DotNet publish engine usage.