Skip to main content

powerforge-library-builder

Build, version, pack, sign, and publish multi-project .NET libraries using Invoke-ProjectBuild and project.build.json. Use for ExpectedVersionMap/X-pattern resolution, NuGet publishing, GitHub release mode/tag strategy, and release troubleshooting.

来源信息

仓库
EvotecIT/PSPublishModule
最近来源活动
2026年7月11日 06:33
检测到的 SKILL.md 语言
英语
星标
48
Forks
16

安装方式

默认使用会先检查来源的 Prompt;你也可以切换为直接命令,或下载本地副本。

检查来源文件

决定是否安装前,请先阅读 SKILL.md,以及 SkillsMP 当前展示的配套文件。

文件资源管理器
3 个文件

正在显示 SKILL.md

SKILL.md
来源说明 · 只读预览
name
powerforge-library-builder
description
Build, version, pack, sign, and publish multi-project .NET libraries using Invoke-ProjectBuild and project.build.json. Use for ExpectedVersionMap/X-pattern resolution, NuGet publishing, GitHub release mode/tag strategy, and release troubleshooting.
# PowerForge Library Builder Use this skill for repository/package pipelines (`Invoke-ProjectBuild`), including NuGet + GitHub release workflows. Prefer one entrypoint script: `Build/Build-Project.ps1`. ## Golden Path (Do This In Order) 1. Confirm repository scope and branch hygiene. - Prefer feature branch/worktree. 2. Validate `project.build.json`. - Discovery filters (`IncludeProjects`, `ExcludeProjects`, expected map include mode). - Version expectations and version sources. 3. Generate plan before publishing. - Use `PlanOnly` or cmdlet `-Plan` first. 4. Execute build/pack/sign path. - Ensure staging/output paths are deterministic. - Treat `CleanStaging` as artifact cleanup only; release compilation freshness is enforced by PowerForge. - Require primary managed package assemblies to match the fresh release build before signing or publishing; do not treat native runtime assets or metadata-only packages as managed assembly payloads. - Keep `Build-Project.ps1` minimal (param pass-through + `Invoke-ProjectBuild` call). - Do not keep legacy wrapper scripts (`Build-AllPackages.ps1`, `Publish-*.ps1`, `Update-Version.ps1`) unless explicitly required. 5. Publish NuGet with explicit fail-fast and duplicate policy. 6. Publish GitHub release with explicit tag policy. - Choose `Single` or `PerProject` intentionally. - Set `GitHubPrimaryProject` for single-mode version source. 7. Handle tag conflicts intentionally. - Prefer configurable conflict policy instead of ad-hoc retries. 8. Verify final release state. - Confirm release/tag and attached asset set match plan. - Inspect the published package content when the release adds or changes public APIs; version visibility and a valid signature alone do not prove the payload is current. - If an immutable feed already contains a stale package, publish a corrected higher version and keep consumers off the bad version. 9. Update docs/schema/help for any new config fields. 10. Keep engine boundaries explicit. - Use `Invoke-ProjectBuild` for package/release pipelines. - Use DotNet publish engine (`Invoke-DotNetPublish`, `New-ConfigurationDotNet*`) for service/app publish packaging. ## High-Value Commands ```powershell # Plan-only Invoke-ProjectBuild -ConfigFilePath .\Build\project.build.json -Plan # Full run Invoke-ProjectBuild -ConfigFilePath .\Build\project.build.json # Validate core tests after engine changes dotnet test .\PowerForge.Tests\PowerForge.Tests.csproj -c Release ``` ## Decision Rules - Standard script surface for repos: - Keep `Build/Build-Project.ps1` and `Build/project.build.json`. - Remove obsolete wrapper scripts once migration is complete. - Keep `Build-Project.ps1` simple: - avoid custom coercion/helper blocks when normal nullable bool parameters and splatting are enough. - If projects have mixed versions in `Single` release mode: - set `GitHubPrimaryProject` or use date/timestamp tags by template. - Prefer template-based tags over hardcoded tags: - tokens include `{Project}`, `{Version}`, `{PrimaryProject}`, `{PrimaryVersion}`, `{Repo}`, `{Date}`, `{UtcDate}`, `{DateTime}`, `{UtcDateTime}`, `{Timestamp}`, `{UtcTimestamp}`. - Use explicit conflict policy for existing tags: - `Reuse`, `Fail`, or `AppendUtcTimestamp`. - In plan/what-if mode, avoid hard failures that require produced artefacts on disk. - Never use `CleanStaging` as evidence that project `bin`/`obj` outputs were rebuilt. - Do not publish when PowerForge reports a package payload provenance mismatch. ## Reference Files (Read As Needed) - `references/checklist.md` for quick release-mode and tag-policy decisions. - `Docs/PSPublishModule.ProjectBuild.md` for JSON behavior. - `Docs/PSPublishModule.DotNetPublish.Quickstart.md` when release work also needs app/service publish flows. - `schemas/project.build.schema.json` for allowed fields and enums. - `Module/Docs/Invoke-ProjectBuild.md` for cmdlet behavior.
在 GitHub 查看