Repository navigation
Description
Context and request
Callers need direct descriptions of reserved workflow, settings and release interfaces. The existing integration coordinator releases strictly natural-language description scalars and native-help prose that preserve the existing condition/effect. This is not permission to change source behavior, contracts, whole files or proposal decisions.
Exact source and region handback
The verified main source is 64ffb1d87f86bd5d487891fdb140b78385a00531. Released surfaces are existing natural-language descriptions and native-help prose in the reserved Cleanup/Get-PSModuleSettings/Publish/Release/Resolve actions, settings-schema description values and reusable-workflow description values. No README, sibling writing path, test or fixture is included.
Verified examples:
| Source | Released prose change |
|---|---|
.github/actions/Release-PSModule/action.yml, blob 33789546e161c48594230196d07f1c62d15c8721, lines 18/22 |
Direct grammar for the existing WhatIf description, with identical semantics; The working directory where the script will run from becomes Working directory for the script. |
.github/workflows/workflow.yml, blob db9a0999cc190d04794a8ff1ea6e85514e2d6093, line 47 |
Specifies the version ... to be installed becomes Version ... to install, retaining its exact-version constraint. |
docs/zensical.toml, blob e32fd2d9ad0a727f4a328555a5016237da4496b7, lines 159-164 |
Remove or neutralize only the final With your consent ... helping us ... better appeal inside the same description scalar. |
.github/zensical.toml, blob 650af9f7605770619b367d5c714ca5e15ca0529a, lines 66-69 |
The same final consent-appeal edit, inside the existing description scalar. |
The same strict grammar/directness allowance applies to existing descriptions/help within these released source areas. Use context anchors; incidental line movement is not a meaning conflict. Unmatched/new proposal-only files are not released and must not be imported.
Protected scope and acceptance criteria
- Preserve all non-comment program tokens, native help tags/association, exact examples and links, keys, non-description values, defaults, expressions, permissions, outputs, version constraints and existing conditions/effects.
- Consent keys/actions/defaults and site behavior stay exact. Do not change consent policy or introduce tracking claims. An unverified existing cookie/measurement statement remains a fact-check gap rather than an invented assertion.
- Do not repair runtime defects, alter test behavior, change the settings schema, amend/wake held proposal branches, merge, change release labels or enable automation/lifecycle settings.
- Read all candidate help/descriptions and relevant implementation evidence; record changed/no-change/no-prose/protected results and concrete before/after evidence.
- One fresh-main focused draft PR uses small commits and opens after the first coherent change. One-off token/scalar comparisons and existing parser/help/metadata/lint checks prove the boundary; no repository prose/inventory/implementation-shape snapshot tests, enforcement tool or dependency are added.
- Descriptions use direct, active en-US prose; procedures keep imperative actions. No supported/shipping/enforcement claim is added from a normative requirement.
The fixed Documentation, Natural Language and Writing Guide govern wording. Native PowerShell/YAML/JSON/TOML formats retain their own contracts.
Implementation plan
- Verify the coordinator's exact scalar/help handback and example source blobs; replace the blanket ownership hold with released regions.
- Inventory and read candidate source/help/descriptions; mark protected content and any fact-check gap before editing.
- Establish parser/non-comment-token/help/example/directive and non-description scalar/raw-text baselines, plus existing relevant checks.
- Make only released prose changes in small commits and open the focused draft PR early.
- Recheck source/ownership before each commit; stop only for changed meaning, not incidental line movement.
- Verify exact scalar/token preservation and wording; run existing checks, record complete acceptance/protected-gap evidence and leave the PR in draft.
Safe-action native help/descriptions remain the separate completed delivery #558. First-pass PRs and all their paths remain unchanged by this Task. Any substantive contract/consent question needs a precise separate follow-up, not a permanent hold on settled wording.
Delivery evidence
The focused draft PSModule/Process-PSModule#582 is finalized at 09d209ee07418174c6835cb64b6977c2740ad962 on interface-description-prose, from fresh main base 64ffb1d87f86bd5d487891fdb140b78385a00531. It opened after the first coherent commit. All seven small commits are pushed; the worktree is clean. The final diff modifies 18 files and no other surface.
Complete persistent audit, with each posted body read back from GitHub:
- Every candidate, no-change/protected/no-prose classification, existing command result, and precise factual follow-up: 38 source files, 163 description candidates, 22 native-help units, and 31 existing parameter descriptions.
- Exact description/consent changed regions and immutable before/after source citations.
- Exact native-help changed regions and immutable before/after source citations.
The two region tables cover all 109 exact replacements. YAML/JSON contains 56 revised description values; 102 description candidates have no change, three existing-contract values stay protected, and two TOML values lose only the final appeal. WhatIf retains the exact log-only scope through the action only logs, with the existing no-publish/create/upload clauses intact.
Final local evidence passes: exact raw-text/BOM/EOL and structured metadata boundaries for all 38 candidates; parser/non-comment tokens and flags/AST shape/directives/help tags and association for all eight PowerShell candidates; all 16 exact native examples; eight source-backed output formats and the release None entries; zero PSScriptAnalyzer findings; existing ConvertFrom-Yaml and Test-Json checks; both TOML parses; and git diff --check. The existing Zensical build exits 0 with No issues found on an exact session-local docs copy. All 66 rendered pages omit the appeal and retain the exact remaining consent statement and Accept/Reject labels. Default YAML lint has 152 baseline findings and 138 final findings, with no new rule/region finding; the existing formatting failures are not called a clean lint result.
No local controller, publishing, cleanup, installation, network example, fixture or benchmark is executed. No source behavior, test, fixture, README, Markdown source, plugin, dependency, repository enforcement tool, first-pass path, proposal branch, release label or lifecycle setting changes. Manual material stays local; no full STE-conformance claim is made.
The cookie/measurement statement remains unverified. Retained release-note fallback, settings-description, release-list/retry terminology and imprecise native-output questions are source-cited in the audit; no runtime, policy or owner decision is invented. #574-#576 and #578 remain separate, non-closing context.
Copilot review is explicitly requested at this final head. Its request command succeeds; the captured response contains no completed review. This delivery does not wait on hosted CI/review or certify final-head completion, and does not substitute earlier-head results. No CI/review watcher or waiting shell remains. The PR stays draft and this Task stays open until eventual review and merge. Only this Task is a closing reference.
Activity
MariusStorhaug commentedon Nov 4, 2026
Recorded the exact scalar/comment handback gate and the separate release, caller/artifact/dependency, and consent behavior decisions. The writing review does not certify unresolved contracts or authorize source/configuration/lifecycle changes.
MariusStorhaug commentedon Nov 4, 2026
The integration coordinator released strict existing description/native-help prose and the final consent appeal in two verified TOML description values. The current body records source identities and exact code/scalar/condition/behavior preservation. It does not release whole files, proposal-only content, tracking claims, runtime fixes, owner branches, merges or lifecycle settings.
MariusStorhaug commentedon Nov 4, 2026
Parent independent content acceptance is complete for
09d209ee07418174c6835cb64b6977c2740ad962, compared with main64ffb1d87f86bd5d487891fdb140b78385a00531.The full 18-file diff stays inside the recorded handback: five native-help source files, five action metadata files, five reusable-workflow description files, one settings schema, and two consent description scalars. No README, sibling writing path, test, fixture, proposal-only file, owner branch, release label or lifecycle setting changes.
Independent parent checks pass:
git diff --check.The current GitHub read-back shows this exact head as OPEN/DRAFT, with null auto-merge and no pending or failing hosted check. This content acceptance does not mark the PR ready, approve a merge, certify unverified contract/measurement claims, or assert full STE conformance. The author-side complete candidate inventory and final audit remain part of the current delivery record.
MariusStorhaug commentedon Nov 4, 2026
Final candidate inventory and acceptance evidence
Final source:
09d209ee07418174c6835cb64b6977c2740ad962oninterface-description-prose; base:64ffb1d87f86bd5d487891fdb140b78385a00531onmain.Draft: #582. The first coherent commit opened this fresh-main draft; seven small commits retain one focused delivery.
The inventory covers 38 source files, 163 existing description scalars and 22 native-help units. The final diff changes 18 files through 109 exact replacement regions. The descriptions contain 56 revised YAML/JSON values, 102 no-change values, three protected existing-contract values and two final-appeal-only TOML edits. No new help section, example, output contract, file, dependency or repository check is added.
Every description candidate
Each linked filename pins the complete base source. The Source column gives exact line spans in that file.
.github\actions\Cleanup-PSModulePrereleases\action.yml; base blobe9ebcecb916703909f341ce97a137a061cd12538.descriptioninputs.AutoCleanup.descriptioninputs.ReleaseTag.descriptioninputs.PullRequest.descriptioninputs.WhatIf.descriptioninputs.WorkingDirectory.description.github\actions\Get-PSModuleSettings\action.yml; base blob1a20970101d1fc3af839d0ff8ffdd452f2f5270d.descriptioninputs.Name.descriptioninputs.SettingsPath.descriptioninputs.Debug.descriptioninputs.Verbose.descriptioninputs.Version.descriptioninputs.Prerelease.descriptioninputs.WorkingDirectory.descriptioninputs.ImportantFilePatterns.descriptionoutputs.Settings.description.github\actions\Get-PSModuleSettings\src\Settings.schema.json; base bloba51b90ac7acfe2ab9d454e92b988b1d5d5a8e5c0.descriptionproperties/Name/descriptionproperties/ImportantFilePatterns/descriptionproperties/Test/descriptionproperties/Test/properties/Skip/descriptionproperties/Test/properties/Linux/descriptionproperties/Test/properties/MacOS/descriptionproperties/Test/properties/Windows/descriptionproperties/Test/properties/SourceCode/descriptionproperties/Test/properties/PSModule/descriptionproperties/Test/properties/Module/descriptionproperties/Test/properties/TestResults/properties/Skip/descriptionproperties/Test/properties/CodeCoverage/descriptionproperties/Test/properties/CodeCoverage/properties/Skip/descriptionproperties/Test/properties/CodeCoverage/properties/PercentTarget/descriptionproperties/Test/properties/CodeCoverage/properties/StepSummaryMode/descriptionproperties/Build/descriptionproperties/Build/properties/Skip/descriptionproperties/Build/properties/Module/properties/Skip/descriptionproperties/Build/properties/Docs/descriptionproperties/Build/properties/Docs/properties/Skip/descriptionproperties/Build/properties/Docs/properties/ShowSummaryOnSuccess/descriptionproperties/Build/properties/Site/properties/Skip/descriptionproperties/Publish/descriptionproperties/Publish/properties/Module/descriptionproperties/Publish/properties/Module/properties/Skip/descriptionproperties/Publish/properties/Module/properties/AutoCleanup/descriptionproperties/Publish/properties/Module/properties/AutoPatching/descriptionproperties/Publish/properties/Module/properties/IncrementalPrerelease/descriptionproperties/Publish/properties/Module/properties/DatePrereleaseFormat/descriptionproperties/Publish/properties/Module/properties/VersionPrefix/descriptionproperties/Publish/properties/Module/properties/MajorLabels/descriptionproperties/Publish/properties/Module/properties/MinorLabels/descriptionproperties/Publish/properties/Module/properties/PatchLabels/descriptionproperties/Publish/properties/Module/properties/IgnoreLabels/descriptionproperties/Publish/properties/Module/properties/PrereleaseLabels/descriptionproperties/Publish/properties/Module/properties/UsePRTitleAsReleaseName/descriptionproperties/Publish/properties/Module/properties/UsePRBodyAsReleaseNotes/descriptionproperties/Publish/properties/Module/properties/UsePRTitleAsNotesHeading/descriptionproperties/Publish/properties/Module/properties/ReleaseType/descriptionproperties/Publish/properties/Site/descriptionproperties/Publish/properties/Site/properties/Skip/descriptionproperties/Linter/descriptionproperties/Linter/properties/Skip/descriptionproperties/Linter/properties/ShowSummaryOnSuccess/descriptionproperties/Linter/properties/env/descriptionproperties/SettingsPath/descriptionproperties/Debug/descriptionproperties/Verbose/descriptionproperties/Version/descriptionproperties/Prerelease/descriptionproperties/WorkingDirectory/descriptionproperties/HasImportantChanges/descriptionproperties/Run/descriptiondefinitions/osConfig/properties/Skip/descriptiondefinitions/testCategory/properties/Skip/descriptiondefinitions/testCategory/properties/Linux/descriptiondefinitions/testCategory/properties/MacOS/descriptiondefinitions/testCategory/properties/Windows/descriptiondefinitions/testSuite/properties/RunsOn/descriptiondefinitions/testSuite/properties/OSName/descriptiondefinitions/moduleTestSuite/properties/RunsOn/descriptiondefinitions/moduleTestSuite/properties/OSName/descriptiondefinitions/moduleTestSuite/properties/TestPath/descriptiondefinitions/moduleTestSuite/properties/TestName/description.github\actions\Publish-PSModule\action.yml; base blobd21604d13cde1fa2bf94e6cb3fe3d3db4118c279.descriptioninputs.Name.descriptioninputs.ModulePath.descriptioninputs.PSGALLERY_API_KEY.descriptioninputs.PullRequest.descriptioninputs.WhatIf.descriptioninputs.WorkingDirectory.descriptioninputs.ArtifactName.description.github\actions\Release-PSModule\action.yml; base blob33789546e161c48594230196d07f1c62d15c8721.descriptioninputs.Name.descriptioninputs.ModulePath.descriptioninputs.ArtifactName.descriptioninputs.WhatIf.descriptioninputs.WorkingDirectory.descriptioninputs.UsePRTitleAsReleaseName.descriptioninputs.UsePRBodyAsReleaseNotes.descriptioninputs.UsePRTitleAsNotesHeading.descriptioninputs.ReleaseTag.descriptioninputs.PullRequest.descriptioninputs.CommitSha.descriptionoutputs.ReleaseTag.descriptionoutputs.ReleaseUrl.description.github\actions\Resolve-PSModuleVersion\action.yml; base blob5192f28fef7242d55fb24fead21570c0ee6e9ebe.descriptioninputs.Settings.descriptioninputs.Name.descriptioninputs.WorkingDirectory.descriptioninputs.Debug.descriptioninputs.Verbose.descriptioninputs.EventPath.descriptioninputs.EventJson.descriptionoutputs.Version.descriptionoutputs.Prerelease.descriptionoutputs.FullVersion.descriptionoutputs.ReleaseType.descriptionoutputs.CreateRelease.description.github\workflows\AfterAll-ModuleLocal.yml; base blob7671605ec8c0abb56271f9024b0b122cf9e334d2.on.workflow_call.secrets.TestData.descriptionon.workflow_call.inputs.Settings.description.github\workflows\BeforeAll-ModuleLocal.yml; base blobbd56f376c72042248b41e58d0f20c7643442911e.on.workflow_call.secrets.TestData.descriptionon.workflow_call.inputs.Settings.description.github\workflows\Build-Docs.yml; base bloba8d2fe6bc18386065825164d44040cb380d03024.on.workflow_call.inputs.Settings.description.github\workflows\Build-Module.yml; base blob655e2618c6dad4b91a9a453713b690280e475fba.on.workflow_call.secrets.GitHubAppClientId.descriptionon.workflow_call.secrets.GitHubAppPrivateKey.descriptionon.workflow_call.inputs.Settings.descriptionon.workflow_call.inputs.ArtifactName.description.github\workflows\Build-Site.yml; base blob3b334b3335e1cf835e7249cf32a0e73683226250.on.workflow_call.inputs.Settings.description.github\workflows\Get-CodeCoverage.yml; base blob1d7f7ccd04e10bf7b94609d37aedf60bd85b1700.on.workflow_call.inputs.Settings.description.github\workflows\Get-TestResults.yml; base blob8fb20d3def79676072b44f62bff6ae4a9ca8bc1f.on.workflow_call.inputs.Settings.descriptionon.workflow_call.inputs.BeforeAllModuleLocalResult.description.github\workflows\Lint-Repository.yml; base blob8ed41fe8b9136fa98dccf7257e578f4630752069.on.workflow_call.inputs.Settings.description.github\workflows\Lint-SourceCode.yml; base blob1b3db8115ad6382cec59948333d78fabce732969.on.workflow_call.inputs.Settings.description.github\workflows\Plan.yml; base blob0e0f1a7b852d92ad9a63d12edea56490b055e967.on.workflow_call.secrets.GitHubAppClientId.descriptionon.workflow_call.secrets.GitHubAppPrivateKey.descriptionon.workflow_call.inputs.SettingsPath.descriptionon.workflow_call.inputs.Debug.descriptionon.workflow_call.inputs.Verbose.descriptionon.workflow_call.inputs.Version.descriptionon.workflow_call.inputs.Prerelease.descriptionon.workflow_call.inputs.WorkingDirectory.descriptionon.workflow_call.inputs.ImportantFilePatterns.descriptionon.workflow_call.outputs.Settings.description.github\workflows\Publish-Module.yml; base blob4042920c704883f40d1cd1510d97b7d9533b580d.on.workflow_call.secrets.PSGALLERY_API_KEY.descriptionon.workflow_call.secrets.GitHubAppClientId.descriptionon.workflow_call.secrets.GitHubAppPrivateKey.descriptionon.workflow_call.inputs.Settings.description.github\workflows\Publish-Site.yml; base blobf0ff58bb3dd24a25aea92a6f6084b5faa5dd1ab4.on.workflow_call.inputs.Settings.description.github\workflows\Test-Module.yml; base blob1d48d2f642666de1f4f2c964490095bafaee3716.on.workflow_call.inputs.Settings.description.github\workflows\Test-ModuleLocal.yml; base bloba3945bad4059942e6b2b919985fa12e5f1a572b3.on.workflow_call.secrets.TestData.descriptionon.workflow_call.inputs.Settings.description.github\workflows\Test-SourceCode.yml; base blob89465a2a274d6301029837f8d69ac22ebd5fc7d2.on.workflow_call.inputs.Settings.description.github\workflows\workflow.yml; base blobdb9a0999cc190d04794a8ff1ea6e85514e2d6093.on.workflow_call.secrets.PSGALLERY_API_KEY.descriptionon.workflow_call.secrets.GitHubAppClientId.descriptionon.workflow_call.secrets.GitHubAppPrivateKey.descriptionon.workflow_call.secrets.TestData.descriptionon.workflow_call.inputs.SettingsPath.descriptionon.workflow_call.inputs.Debug.descriptionon.workflow_call.inputs.Verbose.descriptionon.workflow_call.inputs.Version.descriptionon.workflow_call.inputs.Prerelease.descriptionon.workflow_call.inputs.WorkingDirectory.descriptionon.workflow_call.inputs.ImportantFilePatterns.descriptiondocs\zensical.toml; base blobe32fd2d9ad0a727f4a328555a5016237da4496b7.project.extra.consent.description.github\zensical.toml; base blob650af9f7605770619b367d5c714ca5e15ca0529a.project.extra.consent.descriptionEvery native-help unit
The table classifies each existing section.
Protectedincludes exact examples and links.No prosemeans that no such section exists; this PR does not add scaffolding. Native parameter descriptions are listed separately below.Resolve-WorkflowEventRouting.github\actions\Get-PSModuleSettings\src\Get-PSModuleSettings.Helpers.psm1, L1Select-PullRequestForPush.github\actions\Get-PSModuleSettings\src\Get-PSModuleSettings.Helpers.psm1, L82Get-FilesFromGitTree.github\actions\Get-PSModuleSettings\src\Get-PSModuleSettings.Helpers.psm1, L112Get-FilesFromGitHubComparison.github\actions\Get-PSModuleSettings\src\Get-PSModuleSettings.Helpers.psm1, L133Get-TestItemsFromFolder.github\actions\Get-PSModuleSettings\src\main.ps1, L528Find-TestDirectory.github\actions\Get-PSModuleSettings\src\main.ps1, L563Get-ModuleVersionString.github\actions\Publish-PSModule\src\Publish-PSModule.Helpers.psm1, L1release.ps1.github\actions\Release-PSModule\src\release.ps1, L1Split-CommaSeparatedList.github\actions\Resolve-PSModuleVersion\src\Resolve-PSModuleVersion.Helpers.psm1, L1Read-ActionInput.github\actions\Resolve-PSModuleVersion\src\Resolve-PSModuleVersion.Helpers.psm1, L22Get-PublishConfiguration.github\actions\Resolve-PSModuleVersion\src\Resolve-PSModuleVersion.Helpers.psm1, L63Get-GitHubPullRequest.github\actions\Resolve-PSModuleVersion\src\Resolve-PSModuleVersion.Helpers.psm1, L123Resolve-ReleaseDecision.github\actions\Resolve-PSModuleVersion\src\Resolve-PSModuleVersion.Helpers.psm1, L207ConvertFrom-GitHubReleaseJson.github\actions\Resolve-PSModuleVersion\src\Resolve-PSModuleVersion.Helpers.psm1, L338Get-GitHubRelease.github\actions\Resolve-PSModuleVersion\src\Resolve-PSModuleVersion.Helpers.psm1, L370Get-LatestGitHubVersion.github\actions\Resolve-PSModuleVersion\src\Resolve-PSModuleVersion.Helpers.psm1, L407Get-LatestPSGalleryVersion.github\actions\Resolve-PSModuleVersion\src\Resolve-PSModuleVersion.Helpers.psm1, L451Get-LatestPublishedVersion.github\actions\Resolve-PSModuleVersion\src\Resolve-PSModuleVersion.Helpers.psm1, L509Get-NextPrereleaseNumber.github\actions\Resolve-PSModuleVersion\src\Resolve-PSModuleVersion.Helpers.psm1, L556Get-NextModuleVersion.github\actions\Resolve-PSModuleVersion\src\Resolve-PSModuleVersion.Helpers.psm1, L631Get-ResolvedModuleVersion.github\actions\Resolve-PSModuleVersion\src\Resolve-PSModuleVersion.Helpers.psm1, L727Write-ActionOutput.github\actions\Resolve-PSModuleVersion\src\Resolve-PSModuleVersion.Helpers.psm1, L807Existing native parameter descriptions
Get-TestItemsFromFolder / FolderPathThe path to the folder to search for test items.Find-TestDirectory / PathThe root path to start searching for directories.Get-ModuleVersionString / ModuleVersionThe module version from the compiled manifest, in Major.Minor.Patch format.Get-ModuleVersionString / PrereleaseThe prerelease label from the compiled manifest. Empty for a stable release.Split-CommaSeparatedList / ValueThe comma-separated string to split.Get-PublishConfiguration / SettingsJsonThe JSON string containing the module settings.Get-GitHubPullRequest / SettingsJsonThe complete settings object, including normalized workflow context.Resolve-ReleaseDecision / ConfigurationThe publish configuration object.Resolve-ReleaseDecision / PullRequestThe pull request data object.ConvertFrom-GitHubReleaseJson / JsonThe raw JSON returned by 'gh release list'. Empty or null when the command produced no output.Get-LatestGitHubVersion / ReleasesThe GitHub releases array to search. Empty or null when the repository has no releases.Get-LatestPSGalleryVersion / ModuleNameThe name of the module to find in the PowerShell Gallery.Get-LatestPublishedVersion / GitHubVersionThe latest version found in GitHub releases. Null when the repository has no releases.Get-LatestPublishedVersion / PSGalleryVersionThe latest version found in the PowerShell Gallery. Null when the module is unpublished.Get-NextPrereleaseNumber / ModuleNameThe module name to query in the PowerShell Gallery.Get-NextPrereleaseNumber / BaseVersionThe base version string without prerelease (e.g. '1.2.3').Get-NextPrereleaseNumber / PrereleaseNameThe sanitized prerelease name derived from the branch name.Get-NextPrereleaseNumber / ReleasesThe GitHub releases list. Empty or null when the repository has no releases.Get-NextModuleVersion / LatestVersionThe current latest published version. Null resolves to a '0.0.0' baseline.Get-NextModuleVersion / DecisionThe release decision object.Get-NextModuleVersion / ConfigurationThe publish configuration object.Get-NextModuleVersion / ModuleNameThe name of the module.Get-NextModuleVersion / ReleasesThe GitHub releases list, used for incremental prerelease calculation.Empty or null when the repository has no releases.
Get-ResolvedModuleVersion / GitHubVersionThe latest version found in GitHub Releases.Get-ResolvedModuleVersion / PSGalleryVersionThe latest stable version found in the PowerShell Gallery.Get-ResolvedModuleVersion / DecisionThe release decision for this workflow run.Get-ResolvedModuleVersion / ConfigurationThe publish configuration object.Get-ResolvedModuleVersion / ModuleNameThe name of the module.Get-ResolvedModuleVersion / ReleasesThe GitHub releases list, used for prerelease numbering.Write-ActionOutput / DecisionThe release decision object.Write-ActionOutput / NewVersionThe resolved next version.All 31 existing parameter descriptions are classified. Undocumented parameters remain no-prose; their syntax and binding metadata stay exact.
No released prose and protected surfaces
src\main.ps1have no native-help prose. Their complete bytes remain unchanged.Docs.yml,Linter.yml,Release.yml,Test-Actions.yml,Workflow-Test-Default.ymlandWorkflow-Test-WithManifest.ymlhave no released reusable-workflow description value. Their complete bytes remain unchanged..OUTPUTSentries that describe arrays orPSSemVerwithout a verified precise native type remain protected. Missing examples/sections remain absent. No output or example is invented.Protected program and parser evidence
.github\actions\Cleanup-PSModulePrereleases\src\cleanup.ps1.github\actions\Get-PSModuleSettings\src\Get-PSModuleSettings.Helpers.psm1.github\actions\Get-PSModuleSettings\src\main.ps1.github\actions\Publish-PSModule\src\Publish-PSModule.Helpers.psm1.github\actions\Publish-PSModule\src\publish.ps1.github\actions\Release-PSModule\src\release.ps1.github\actions\Resolve-PSModuleVersion\src\main.ps1.github\actions\Resolve-PSModuleVersion\src\Resolve-PSModuleVersion.Helpers.psm1Non-comment token text and flags, AST node sequence, requirements, structural directives, native-help tags/association, rendered syntax and parameter binding metadata match the pre-edit source. The rendered syntax comparison excludes only the released parameter-description text that PowerShell repeats inside syntax objects. Object-property order is not semantic; array order remains exact. BOM and line-ending state are checked separately, including U+FEFF decoding before
ParseInput. The raw-text comparison accepts only the 109 exact planned replacements and rejects every other byte change.Exact condition, constraint, example and link checks
Existing commands and results
Parser.ParseInputGet-Help -FullNoneinput/output entries use type, blank line and prose. Existing tags and output claims are retained.Invoke-ScriptAnalyzer -Settings .github\linters\.powershell-psscriptanalyzer.psd1ConvertFrom-YamlTest-Json -Json '{}' -SchemaFile ...\Settings.schema.jsontomllibzensical build --cleanNo issues found. Runs on a byte-for-byte session-local copy of the current docs tree, not on fixtures or a publishing route.git diff --check BASE..HEADNo local publishing, cleanup, installation, network example, fixture or benchmark script runs. No repository check, snapshot test, enforcement tool, dependency, audit Markdown or implementation-shape test is added. No Markdown source changes, so no Markdown rewrite/lint claim is made. Existing standalone actionlint/zizmor validation is disabled by the repository's Linter workflow; no new tool is installed.
Precise retained factual and contract follow-ups
--generate-notes. Retained description; existing fallback. This PR does not choose or repair that contract.HasImportantChangesretains its fixed-path examples; runtime detection uses the configuredImportantFilePatterns.AutoCleanupretains its merge-to-main/abandoned-PR statement, andPrereleaseretains the unresolved referentthis. Schema; runtime pattern selection. These three existing-contract values are unchanged, not certified.all releases. The existing command has no explicit pagination or limit, while installedgh release list --helpreports default limit 30. Command. No release-list query or runtime correction is performed.retries up to five times; the implementation sets$retryCount = 5and loops from 1 through that count. Implementation. No retry policy or source-backed type/example contract is inferred or changed.Writing and delivery boundaries
Wording uses the fixed MSXOrg/docs@
1b0d4893c8fefabe604d04393068a8ff6f848082Documentation Model, Natural Language, Writing Guide, Documentation, Markdown, native PowerShell/YAML/GitHub Actions guidance, and Task/PR formats. The official STE overview and FAQ and the local Issue 9 rules/dictionary are consulted. Technical computing/release terms retain their source-backed meanings; no full STE-conformance claim follows from a scan. The manual and extracted material stay local and are not republished.Copilot review is explicitly requested at this final head. The command returns success; its captured response has no completed review. Hosted checks are not waited on and final-head completion is not certified. Earlier-head results are not substituted for final-head results. There is no CI/review watcher or waiting shell to stop. The PR stays draft; no merge, ready transition, auto-merge, Agent merge, release-label or lifecycle setting changes.
The scoped issue-convergence search covers the writing campaign and its source/contract siblings. Only #564 is a closing reference, effective after eventual merge. Other campaign and contract issues remain non-closing context.
MariusStorhaug commentedon Nov 4, 2026
Exact native-help changed-region inventory
Final source:
09d209ee07418174c6835cb64b6977c2740ad962oninterface-description-prose; base:64ffb1d87f86bd5d487891fdb140b78385a00531onmain.Draft: #582. The first coherent commit opened this fresh-main draft; seven small commits retain one focused delivery.
All 50 regions below are exact pre-edit source replacements. Line breaks are retained as
<br>inside verbatim text. Source citations pin both immutable revisions. All surrounding text is unchanged. EmptyAftertext means only the cited final appeal is removed.settings-routing-synopsis.github\actions\Get-PSModuleSettings\src\Get-PSModuleSettings.Helpers.psm1Resolves release and execution routing from normalized GitHub event state.Resolve release and execution routing from normalized GitHub event state.settings-push-selection-synopsis.github\actions\Get-PSModuleSettings\src\Get-PSModuleSettings.Helpers.psm1Selects the merged default-branch pull request associated with a pushed commit.Select the merged default-branch pull request associated with a pushed commit.settings-git-tree-synopsis.github\actions\Get-PSModuleSettings\src\Get-PSModuleSettings.Helpers.psm1Returns the files contained in a complete Git tree response.Return the files from a complete Git tree response.settings-comparison-synopsis.github\actions\Get-PSModuleSettings\src\Get-PSModuleSettings.Helpers.psm1Returns files from a complete GitHub compare response.Return files from a complete GitHub compare response.test-items-synopsis.github\actions\Get-PSModuleSettings\src\main.ps1Retrieves test items from a specified folder.Get test items from the specified folder.test-items-description.github\actions\Get-PSModuleSettings\src\main.ps1This function searches for test-related files in the specified folder.It looks for configuration files (.Configuration.ps1), container files (.Container.ps1),
and test files (*.Tests.ps1) in that order of precedence.
The function searches the specified folder for test-related files.It searches for configuration files (.Configuration.ps1), container files (.Container.ps1),
and test files (*.Tests.ps1), in that order of precedence.
test-items-parameter.github\actions\Get-PSModuleSettings\src\main.ps1The path to the folder to search for test items.Path to the folder to search for test items.test-items-output-format.github\actions\Get-PSModuleSettings\src\main.ps1System.IO.FileInfo[]Returns an array of test-related files found in the folder.
System.IO.FileInfo[]
An array of test-related files from the folder.
test-directories-synopsis.github\actions\Get-PSModuleSettings\src\main.ps1Finds test directories recursively.Find test directories recursively.test-directories-description.github\actions\Get-PSModuleSettings\src\main.ps1This function recursively searches for all directories starting from the specified path.It returns a flat array of all directory paths found.
The function searches recursively for all directories from the specified path.It returns all directory paths in a flat array.
test-directories-parameter.github\actions\Get-PSModuleSettings\src\main.ps1The root path to start searching for directories.Root path for the directory search.test-directories-output-format.github\actions\Get-PSModuleSettings\src\main.ps1System.String[]Returns an array of directory paths.
System.String[]
An array of directory paths.
publish-version-synopsis.github\actions\Publish-PSModule\src\Publish-PSModule.Helpers.psm1Builds the SemVer version string that identifies the module itself.Build the SemVer version string that identifies the module.publish-version-description.github\actions\Publish-PSModule\src\Publish-PSModule.Helpers.psm1Composes the module version and, when there is one, the prerelease label. This is the string the
PowerShell Gallery and the module manifest understand:
Major.Minor.Patchoptionally followed by-<prerelease>. It never carries the repository's version prefix, because neither the manifest'sModuleVersionnor a Gallery package version accepts one.If a prerelease label is present, the function puts the module version and the label together.The PowerShell Gallery and the module manifest use this string:
Major.Minor.Patchoptionally followed by-<prerelease>.The string never includes the repository's version prefix.
Neither the manifest's
ModuleVersionnor a Gallery package version accepts a prefix.publish-version-output-format.github\actions\Publish-PSModule\src\Publish-PSModule.Helpers.psm1String with the module version.System.String
The module version.
release-script-synopsis.github\actions\Release-PSModule\src\release.ps1Creates or resumes a GitHub release for a versioned PowerShell module artifact.Create or resume a GitHub release for a versioned PowerShell module artifact.release-script-description.github\actions\Release-PSModule\src\release.ps1Validates the supplied module artifact, creates a GitHub release when its tag does notalready exist, uploads the artifact ZIP, and reports the result on the source pull request.
The script validates the supplied module artifact. If the release tag does not exist, the script creates a GitHub release.It uploads the artifact ZIP and reports the result on the source pull request.
release-script-input-format.github\actions\Release-PSModule\src\release.ps1None. The Release-PSModule composite action supplies values through environment variables.None
The Release-PSModule composite action supplies values through environment variables.
release-script-output-format.github\actions\Release-PSModule\src\release.ps1None. The script writes ReleaseTag and ReleaseUrl to the GitHub Actions output file.None
The script writes ReleaseTag and ReleaseUrl to the GitHub Actions output file.
resolve-split-synopsis.github\actions\Resolve-PSModuleVersion\src\Resolve-PSModuleVersion.Helpers.psm1Splits a comma-separated string into a trimmed, non-empty array.Split a comma-separated string into a trimmed, non-empty array.resolve-input-synopsis.github\actions\Resolve-PSModuleVersion\src\Resolve-PSModuleVersion.Helpers.psm1Reads and validates action inputs from environment variables.Read and validate action inputs from environment variables.resolve-input-description.github\actions\Resolve-PSModuleVersion\src\Resolve-PSModuleVersion.Helpers.psm1Reads the module name and settings JSON from GitHub Actions environment variables.Falls back to the repository name when the module name input is not provided.
The function reads the module name and settings JSON from GitHub Actions environment variables.If the module name input is not provided, it uses the repository name.
resolve-input-output-format.github\actions\Resolve-PSModuleVersion\src\Resolve-PSModuleVersion.Helpers.psm1PSCustomObject with Name and SettingsJson properties.System.Management.Automation.PSCustomObject
An object with Name and SettingsJson properties.
resolve-config-synopsis.github\actions\Resolve-PSModuleVersion\src\Resolve-PSModuleVersion.Helpers.psm1Parses the settings JSON into a publish configuration object.Parse the settings JSON into a publish configuration object.resolve-config-description.github\actions\Resolve-PSModuleVersion\src\Resolve-PSModuleVersion.Helpers.psm1Extracts publish module settings including auto-patching flags, version prefix,release type, and label classification arrays.
The function extracts module publish settings: auto-patching flags, version prefix,release type, and label classification arrays.
resolve-config-output-format.github\actions\Resolve-PSModuleVersion\src\Resolve-PSModuleVersion.Helpers.psm1PSCustomObject with publish configuration properties.System.Management.Automation.PSCustomObject
An object with publish configuration properties.
resolve-pr-synopsis.github\actions\Resolve-PSModuleVersion\src\Resolve-PSModuleVersion.Helpers.psm1Reads normalized pull-request context from settings, with event-payload fallback.Read normalized pull-request context from settings, with event-payload fallback.resolve-pr-description.github\actions\Resolve-PSModuleVersion\src\Resolve-PSModuleVersion.Helpers.psm1The settings action resolves the pull request associated with a default-branch pushbefore this action runs. When no pull request exists, a direct push or manual
dispatch on the default branch still receives release context so it resolves the
default patch bump.
The settings action resolves the pull request for a default-branch push before this action runs.If no pull request exists, a direct push or manual dispatch on the default branch receives release context.
This context resolves the default patch bump.
resolve-pr-output-format.github\actions\Resolve-PSModuleVersion\src\Resolve-PSModuleVersion.Helpers.psm1PSCustomObject with pull-request metadata, or a default-branch direct-releasecontext with no pull-request number.
System.Management.Automation.PSCustomObject
An object with pull-request metadata, or a default-branch direct-release context with no pull-request number.
resolve-decision-synopsis.github\actions\Resolve-PSModuleVersion\src\Resolve-PSModuleVersion.Helpers.psm1Determines whether to publish a release and what kind of version bump to apply.Find whether to publish a release and which version bump to apply.resolve-decision-description.github\actions\Resolve-PSModuleVersion\src\Resolve-PSModuleVersion.Helpers.psm1Evaluates the PR labels against the configured label categories and release typeto produce a complete release decision.
The function evaluates the PR labels against the configured label categories and release type to produce a complete release decision.resolve-decision-output-format.github\actions\Resolve-PSModuleVersion\src\Resolve-PSModuleVersion.Helpers.psm1PSCustomObject with ShouldPublish, CreateRelease, CreatePrerelease, MajorRelease,MinorRelease, PatchRelease, HasVersionBump, and PrereleaseName properties.
System.Management.Automation.PSCustomObject
An object with ShouldPublish, CreateRelease, CreatePrerelease, MajorRelease,
MinorRelease, PatchRelease, HasVersionBump, and PrereleaseName properties.
resolve-json-synopsis.github\actions\Resolve-PSModuleVersion\src\Resolve-PSModuleVersion.Helpers.psm1Converts the JSON output of 'gh release list' into a flat array of release objects.Convert the JSON output of 'gh release list' into a flat array of release objects.resolve-json-description.github\actions\Resolve-PSModuleVersion\src\Resolve-PSModuleVersion.Helpers.psm1Normalizes the release listing so a repository with no releases, or a command thatproduced no output at all, yields an empty array instead of $null.
The function normalizes the release list.If the repository has no releases or the command produces no output, the result is an empty array instead of $null.
resolve-releases-synopsis.github\actions\Resolve-PSModuleVersion\src\Resolve-PSModuleVersion.Helpers.psm1Retrieves all releases from the current GitHub repository.Get all releases from the current GitHub repository.resolve-releases-description.github\actions\Resolve-PSModuleVersion\src\Resolve-PSModuleVersion.Helpers.psm1Lists the releases of the current repository. A repository that has no releases yetproduces no output, so callers normalize the result with @() before using it.
The function lists releases from the current repository. If the repository has no releases, it produces no output.Callers use @() to normalize the result.
resolve-github-version-synopsis.github\actions\Resolve-PSModuleVersion\src\Resolve-PSModuleVersion.Helpers.psm1Extracts the latest stable version from a GitHub releases list.Get the latest stable version from a GitHub releases list.resolve-github-version-description.github\actions\Resolve-PSModuleVersion\src\Resolve-PSModuleVersion.Helpers.psm1Returns the version of the release marked as latest. A repository that has no releasesyet - or that has releases but none marked as latest - resolves to '0.0.0' so a brand-new
module can still be versioned before its first release exists.
The function returns the version of the release marked as latest.If the repository has no releases or no release has the latest marker, the function returns '0.0.0'.
This baseline lets the workflow set a module version before the first release.
resolve-gallery-version-synopsis.github\actions\Resolve-PSModuleVersion\src\Resolve-PSModuleVersion.Helpers.psm1Finds the latest stable version of a module in the PowerShell Gallery.Find the latest stable version of a module in the PowerShell Gallery.resolve-gallery-version-description.github\actions\Resolve-PSModuleVersion\src\Resolve-PSModuleVersion.Helpers.psm1Queries the PowerShell Gallery for the latest published version of the module.Retries up to five times with a ten-second delay between attempts.
The function queries the PowerShell Gallery for the latest published version of the module.It retries up to five times, with a ten-second delay between attempts.
resolve-published-version-synopsis.github\actions\Resolve-PSModuleVersion\src\Resolve-PSModuleVersion.Helpers.psm1Returns the highest version between GitHub and the PowerShell Gallery.Return the highest version between GitHub and the PowerShell Gallery.resolve-published-version-description.github\actions\Resolve-PSModuleVersion\src\Resolve-PSModuleVersion.Helpers.psm1Compares the two known published versions and returns the highest one. A missing(null) version is treated as '0.0.0', so a module that has never been released to
GitHub or published to the PowerShell Gallery resolves to a '0.0.0' baseline.
The function compares the two known published versions and returns the highest one.If a version is missing (null), the function treats it as '0.0.0'.
A module with no GitHub release or PowerShell Gallery publication has a '0.0.0' baseline.
resolve-prerelease-number-synopsis.github\actions\Resolve-PSModuleVersion\src\Resolve-PSModuleVersion.Helpers.psm1Calculates the next incremental prerelease number across GitHub and PSGallery.Calculate the next incremental prerelease number across GitHub and PSGallery.resolve-prerelease-number-description.github\actions\Resolve-PSModuleVersion\src\Resolve-PSModuleVersion.Helpers.psm1Queries both GitHub releases and the PowerShell Gallery for existing prereleasesmatching the base version and prerelease name, then returns the next number
zero-padded to three digits.
The function queries GitHub releases and the PowerShell Gallery for prereleases that match the base version and prerelease name.It returns the next number, zero-padded to three digits.
resolve-prerelease-number-output-format.github\actions\Resolve-PSModuleVersion\src\Resolve-PSModuleVersion.Helpers.psm1String. A zero-padded three-digit number (e.g. '001').System.String
A zero-padded three-digit number (e.g. '001').
resolve-next-version-synopsis.github\actions\Resolve-PSModuleVersion\src\Resolve-PSModuleVersion.Helpers.psm1Calculates the next module version based on the release decision.Calculate the next module version from the release decision.resolve-next-version-description.github\actions\Resolve-PSModuleVersion\src\Resolve-PSModuleVersion.Helpers.psm1Increments the current version according to the version bump type (major, minor, or patch),then optionally appends a prerelease suffix with support for date-based and incremental numbering.
The function increments the current version for the major, minor, or patch version bump.It can append a prerelease suffix with date-based and incremental numbering.
resolve-resume-synopsis.github\actions\Resolve-PSModuleVersion\src\Resolve-PSModuleVersion.Helpers.psm1Resolves the next module version and resumes an incomplete stable release when possible.Resolve the next module version and resume an incomplete stable release when possible.resolve-resume-description.github\actions\Resolve-PSModuleVersion\src\Resolve-PSModuleVersion.Helpers.psm1Normally the highest version from GitHub Releases and the PowerShell Gallery is theversion baseline. If Gallery contains exactly the stable version implied by the latest
GitHub release and this run's version bump, Gallery publication succeeded but GitHub
release creation did not. In that case, return the Gallery version rather than bumping
again so the workflow can resume the missing GitHub release.
The highest version from GitHub Releases and the PowerShell Gallery is normally the version baseline.If Gallery contains exactly the stable version implied by the latest GitHub release and this run's version bump,
Gallery publication succeeded. GitHub release creation did not succeed in this case.
The function returns the Gallery version instead of another version bump so the workflow can resume the missing GitHub release.
resolve-output-synopsis.github\actions\Resolve-PSModuleVersion\src\Resolve-PSModuleVersion.Helpers.psm1Emits the resolved version and release type as GitHub Actions step outputs.Write the resolved version and release type as GitHub Actions step outputs.MariusStorhaug commentedon Nov 4, 2026
Exact description/consent changed-region inventory
Final source:
09d209ee07418174c6835cb64b6977c2740ad962oninterface-description-prose; base:64ffb1d87f86bd5d487891fdb140b78385a00531onmain.Draft: #582. The first coherent commit opened this fresh-main draft; seven small commits retain one focused delivery.
All 59 regions below are exact pre-edit source replacements. Line breaks are retained as
<br>inside verbatim text. Source citations pin both immutable revisions. All surrounding text is unchanged. EmptyAftertext means only the cited final appeal is removed.working-directory.github\actions\Cleanup-PSModulePrereleases\action.ymlThe working directory where the script will run from.Working directory for the script.working-directory.github\actions\Get-PSModuleSettings\action.ymlThe working directory where the script will run from.Working directory for the script.working-directory.github\actions\Publish-PSModule\action.ymlThe working directory where the script will run from.Working directory for the script.working-directory.github\actions\Release-PSModule\action.ymlThe working directory where the script will run from.Working directory for the script.working-directory.github\actions\Resolve-PSModuleVersion\action.ymlThe working directory where the script will run from.Working directory for the script.artifact-module-path.github\actions\Publish-PSModule\action.ymlPath to the folder containing the <Name>/ module subdirectory from Build-PSModule.Path to the folder with the <Name>/ module subdirectory from Build-PSModule.artifact-module-path.github\actions\Release-PSModule\action.ymlPath to the folder containing the <Name>/ module subdirectory from Build-PSModule.Path to the folder with the <Name>/ module subdirectory from Build-PSModule.artifact-name-match.github\actions\Publish-PSModule\action.ymlName of the uploaded artifact to download. Must match the name used in the upstream upload-artifact step.Name of the uploaded artifact to download. It must match the name used in the upstream upload-artifact step.artifact-name-match.github\actions\Release-PSModule\action.ymlName of the uploaded artifact to download. Must match the name used in the upstream upload-artifact step.Name of the uploaded artifact to download. It must match the name used in the upstream upload-artifact step.cleanup-synopsis.github\actions\Cleanup-PSModulePrereleases\action.ymlCleanup prerelease GitHub releases associated with the current pull request branch.Delete prerelease GitHub releases associated with the current pull request branch.cleanup-whatif.github\actions\Cleanup-PSModulePrereleases\action.ymlIf specified, the action will only log the changes it would make.If specified, the action only logs the changes it would make.settings-action-synopsis.github\actions\Get-PSModuleSettings\action.ymlGet settings for a PowerShell module workflowGet settings for a PowerShell module workflow.settings-path-formats.github\actions\Get-PSModuleSettings\action.ymlPath to the settings file (json, yaml/yml, or psd1)Path to the settings file (json, yaml/yml, or psd1).settings-module-version-range.github\actions\Get-PSModuleSettings\action.ymlSpecifies the version of the GitHub module to be installed. Accepts an exact version or a NuGet version range (for example '[1.2.0, 2.0.0)').Version of the GitHub module to install. The action accepts an exact version or a NuGet version range (for example '[1.2.0, 2.0.0)').settings-important-patterns.github\actions\Get-PSModuleSettings\action.ymlNewline-separated list of regex patterns that identify important files.Changes matching these patterns trigger build, test, and publish stages.
When set, fully replaces the defaults.
Newline-separated list of regular expression patterns that identifyimportant files.
Changes that match these patterns trigger build, test, and publish
stages.
When set, the list fully replaces the defaults.
settings-output-punctuation.github\actions\Get-PSModuleSettings\action.ymlThe complete settings object as JSON, including test suitesThe complete settings object as JSON, including test suites.publish-api-key.github\actions\Publish-PSModule\action.ymlPowerShell Gallery API Key.PowerShell Gallery API key.publish-whatif.github\actions\Publish-PSModule\action.ymlIf specified, the action will only log the changes it would make, but will not publish the module.If specified, the action only logs the changes it would make, but does not publish the module.release-whatif.github\actions\Release-PSModule\action.ymlIf specified, the action will only log the changes it would make, but will not actually create the release or upload artifacts.If specified, the action only logs the changes it would make, but does not create the release or upload artifacts.release-title-choice.github\actions\Release-PSModule\action.ymlWhen enabled, uses the pull request title as the name for the GitHub release. If not set, the version string is used.When enabled, the action uses the pull request title as the GitHub release name. If not set, it uses the version string.release-notes-choice.github\actions\Release-PSModule\action.ymlWhen enabled, uses the pull request body as the release notes for the GitHub release. If not set, the release notes are auto-generated.When enabled, the action uses the pull request body as the GitHub release notes. If not set, it auto-generates the release notes.release-notes-heading.github\actions\Release-PSModule\action.ymlWhen enabled along with UsePRBodyAsReleaseNotes, the release notes will begin with the pull request title as a H1 heading followed by the pull request body. The title will reference the pull request number.When enabled with UsePRBodyAsReleaseNotes, the release notes start with the pull request title as an H1 heading. The pull request body follows the heading. The title references the pull request number.resolve-action-synopsis.github\actions\Resolve-PSModuleVersion\action.ymlResolves the next module version from settings, PR labels, GitHub releases, and the PowerShell Gallery.Resolve the next module version from settings, PR labels, GitHub releases, and the PowerShell Gallery.resolve-name-fallback.github\actions\Resolve-PSModuleVersion\action.ymlName of the module. When empty, the repository name is used.Module name. When empty, the action uses the repository name.resolve-event-path.github\actions\Resolve-PSModuleVersion\action.ymlPath to the GitHub event JSON file. Defaults to the standard GitHub event path. Override for testing.Path to the GitHub event JSON file. The default is the standard GitHub event path. Override for testing.resolve-event-json.github\actions\Resolve-PSModuleVersion\action.ymlGitHub event payload as a JSON string. When set, overrides reading from the event file. Use for testing.GitHub event payload as a JSON string. When set, this value overrides the event file. Use for testing.schema-important-patterns.github\actions\Get-PSModuleSettings\src\Settings.schema.jsonRegex patterns that identify important files. Changes matching these patterns trigger build, test, and publish stages. Defaults to ['^src/', '^README\.md$'] when not configured.Regular expression patterns that identify important files. Changes that match these patterns trigger build, test, and publish stages. When not configured, the defaults are ['^src/', '^README\.md$'].schema-test-configuration.github\actions\Get-PSModuleSettings\src\Settings.schema.jsonTest configuration settingsTest configurationschema-test-results.github\actions\Get-PSModuleSettings\src\Settings.schema.jsonSkip test results collectionSkip collection of test resultsschema-code-coverage.github\actions\Get-PSModuleSettings\src\Settings.schema.jsonSkip code coverage collectionSkip collection of code coverageschema-step-summary-mode.github\actions\Get-PSModuleSettings\src\Settings.schema.jsonMode for displaying step summaryDisplay mode for the step summaryschema-build-configuration.github\actions\Get-PSModuleSettings\src\Settings.schema.jsonBuild configuration settingsBuild configurationschema-publish-configuration.github\actions\Get-PSModuleSettings\src\Settings.schema.jsonPublish configuration settingsPublish configurationschema-major-labels.github\actions\Get-PSModuleSettings\src\Settings.schema.jsonComma-separated labels that trigger major version bumpComma-separated labels that trigger a major version bumpschema-minor-labels.github\actions\Get-PSModuleSettings\src\Settings.schema.jsonComma-separated labels that trigger minor version bumpComma-separated labels that trigger a minor version bumpschema-patch-labels.github\actions\Get-PSModuleSettings\src\Settings.schema.jsonComma-separated labels that trigger patch version bumpComma-separated labels that trigger a patch version bumpschema-ignore-labels.github\actions\Get-PSModuleSettings\src\Settings.schema.jsonComma-separated labels that prevent releaseComma-separated labels that prevent a releaseschema-release-title.github\actions\Get-PSModuleSettings\src\Settings.schema.jsonUse pull request title as the GitHub release nameUse the pull request title as the GitHub release nameschema-release-body.github\actions\Get-PSModuleSettings\src\Settings.schema.jsonUse pull request body as the release notes contentUse the pull request body as the release notes contentschema-release-heading.github\actions\Get-PSModuleSettings\src\Settings.schema.jsonAdd pull request title as H1 heading in release notesAdd the pull request title as an H1 heading in release notesschema-site-publication.github\actions\Get-PSModuleSettings\src\Settings.schema.jsonSkip publishing the generated documentation siteSkip publication of the generated documentation siteschema-linter-configuration.github\actions\Get-PSModuleSettings\src\Settings.schema.jsonLinter configuration settingsLinter configurationschema-run-evergreen.github\actions\Get-PSModuleSettings\src\Settings.schema.jsonDeprecated. Runtime execution flags are now stored on each phase object.Deprecated. Runtime execution flags are stored on each phase object.workflow-exact-module-version.github\workflows\Plan.ymlSpecifies the version of the GitHub module to be installed. The value must be an exact version.Version of the GitHub module to install. The value must be an exact version.workflow-exact-module-version.github\workflows\workflow.ymlSpecifies the version of the GitHub module to be installed. The value must be an exact version.Version of the GitHub module to install. The value must be an exact version.workflow-prerelease-choice.github\workflows\Plan.ymlWhether to use a prerelease version of the 'GitHub' module.Use a prerelease version of the 'GitHub' module.workflow-prerelease-choice.github\workflows\workflow.ymlWhether to use a prerelease version of the 'GitHub' module.Use a prerelease version of the 'GitHub' module.workflow-root-path.github\workflows\Plan.ymlThe path to the root of the repo.Path to the repository root.workflow-root-path.github\workflows\workflow.ymlThe path to the root of the repo.Path to the repository root.workflow-important-patterns.github\workflows\Plan.ymlNewline-separated list of regex patterns that identify important files.Changes matching these patterns trigger build, test, and publish stages.
When set, fully replaces the defaults (^src/ and ^README.md$).
Newline-separated list of regular expression patterns that identifyimportant files.
Changes that match these patterns trigger build, test, and publish
stages.
When set, the list fully replaces the defaults
(^src/ and ^README.md$).
workflow-important-patterns.github\workflows\workflow.ymlNewline-separated list of regex patterns that identify important files.Changes matching these patterns trigger build, test, and publish stages.
When set, fully replaces the defaults (^src/ and ^README.md$).
Newline-separated list of regular expression patterns that identifyimportant files.
Changes that match these patterns trigger build, test, and publish
stages.
When set, the list fully replaces the defaults
(^src/ and ^README.md$).
workflow-settings-precedence.github\workflows\workflow.ymlThe path to the settings file. Settings in the settings file take precedence over the action inputs.Path to the settings file. Settings in this file take precedence over the action inputs.workflow-test-data.github\workflows\workflow.ymlOptional single-line JSON object carrying all data the module test jobs(BeforeAll-ModuleLocal, Test-ModuleLocal, AfterAll-ModuleLocal) need, in two maps:
{ "secrets": { "NAME": "value", ... }, "variables": { "NAME": "value", ... } }
Every entry is exposed as an environment variable the module's Pester tests read via
$env:<name>. Values under "secrets" are masked in the logs; values under "variables" are not.
Optional single-line JSON object with all data the module test jobs(BeforeAll-ModuleLocal, Test-ModuleLocal, AfterAll-ModuleLocal) need, in two maps:
{ "secrets": { "NAME": "value", ... }, "variables": { "NAME": "value", ... } }
The workflow exposes every entry as an environment variable that the
module's Pester tests read via $env:<name>.
It masks values under "secrets" in the logs but does not mask values
under "variables".
workflow-test-data-mapping.github\workflows\workflow.ymlkey, confirm the caller explicitly maps a TestData JSON value; secrets: inherit only passeskey, confirm the caller explicitly maps a TestData JSON value. secrets: inherit only passesbeforeall-test-data.github\workflows\BeforeAll-ModuleLocal.ymlOptional single-line JSON object with 'secrets' and 'variables' maps. Each entry is exposedas an environment variable available to the BeforeAll setup script; 'secrets' values are
masked in the logs, 'variables' values are not.
Optional single-line JSON object with 'secrets' and 'variables' maps.The workflow exposes each entry as an environment variable for the
BeforeAll setup script. It masks 'secrets' values in the logs but does
not mask 'variables' values.
afterall-test-data.github\workflows\AfterAll-ModuleLocal.ymlOptional single-line JSON object with 'secrets' and 'variables' maps. Each entry is exposedas an environment variable available to the AfterAll teardown script; 'secrets' values are
masked in the logs, 'variables' values are not.
Optional single-line JSON object with 'secrets' and 'variables' maps.The workflow exposes each entry as an environment variable for the
AfterAll teardown script. It masks 'secrets' values in the logs but
does not mask 'variables' values.
modulelocal-test-data.github\workflows\Test-ModuleLocal.ymlOptional single-line JSON object with 'secrets' and 'variables' maps. Each entry is exposedas an environment variable the module's Pester tests read via $env:<name>; 'secrets' values
are masked in the logs, 'variables' values are not.
Optional single-line JSON object with 'secrets' and 'variables' maps.The workflow exposes each entry as an environment variable that the
module's Pester tests read via $env:<name>. It masks 'secrets' values
in the logs but does not mask 'variables' values.
site-consent-appealdocs\zensical.tomlWith your consent, you're helping us tomake our documentation better.
template-consent-appeal.github\zensical.tomlWith your consent, you're helping us to make our documentation better.MariusStorhaug commentedon Nov 4, 2026
The confirmed release-list scope discrepancy now has a separate native Bug, #583. Parent read-only reproduction returns 30 releases from the default CLI call while the first REST page contains 100, without claiming that page is complete. The runtime fix and page-boundary behavior regression remain outside this prose delivery. Other cookie/measurement and contract limits retain the exact source-cited audit above; no source, release record, policy or lifecycle change is made.
MariusStorhaug commentedon Nov 11, 2026
Exact-head preparation: source-identical native trigger
The existing PSModule/Process-PSModule#582 remains open and non-draft. This preparation does not merge it or close #564. The root coordinator controls the global guarded merge/publication sequence.
896b048fcd7624abd00dddaf6d0f55424ab399d609d209ee07418174c6835cb64b6977c2740ad9628938314d16ecd805b595a0729b1f1c91ae77e0b2mainat64ffb1d87f86bd5d487891fdb140b78385a00531At
2026-11-11T14:56:41Z, clean local, origin, live branch, live PR and commit-tree reads match the reviewed parent and tree. Exact-head check runs, check suites, statuses and pull-request workflow runs each have count zero. That observed missing condition permits the one empty trigger. No retained native run or suite is available to rerun.The commit
Refresh native review and PR checks for unchanged proseis an immediate child of the reviewed parent. Localdiff-tree, the GitHub commit object, the branch ref, the PR head and the remote comparison prove the same full tree, one additional commit and zero changed files. The immediate post-push proof did not yet match; a read-only follow-up at14:57:23Zconfirms every identity. No second commit, reset, rebase, amendment or force push follows.The accepted 38-file audit and all immutable source citations remain valid for this identical tree. No audit repetition, dependency restoration, tool installation, validation code, source edit or additional prose decision is needed or performed.
Actual native PR-event CI
Every listed run starts naturally at
2026-11-11T14:57:14Z, uses eventpull_request, and associates PR 582, exact head896b048fcd7624abd00dddaf6d0f55424ab399d6, andmainbase64ffb1d87f86bd5d487891fdb140b78385a00531. None is a manual dispatch or a substituted historical run.Release.yml14:57:21-14:57:35ZTest-Actions.yml14:57:29-14:57:37ZDocs.ymlLinter.ymlWorkflow-Test-WithManifest.ymlWorkflow-Test-Default.ymlThe detailed 46-job snapshot has 14 successes, four skips and 28 in-progress jobs. That earlier aggregate Default API reports queued despite executing jobs; both values are retained as returned. At the final handoff check read near
15:00:40Z, four workflow runs have succeeded and the two self-test runs remain in progress. The exact-head check list has 42 successes, four skips and six in-progress checks. Those unfinished checks are not represented as passing.Exact observed skips:
Publish, and itsUpdate indexstep, skip on this PR event under their existing non-PR conditions.Lint-SourceCodeandTest-SourceCodeare skipped by the existing phase conditions.Lint-Repositoryis skipped by its existing phase condition.Docs build steps
Build Zensical projectandUpload pages artifactcomplete successfully at14:57:40Zand14:57:42Z. The existing Release route's successful check is recorded as a check result, not a publication receipt or permission to publish.The captured current check list has no completed failure. Pending jobs are not represented as passing. Workflow source/path filters are read: the unchanged cumulative 18-file PR diff matches action/workflow and docs paths, and Linter accepts ordinary PR events. No unrelated run, fixture edit, workflow change, dispatch or rerun is forced.
The legacy branch-protection required-status endpoint returns HTTP 404,
Branch not protected. The effective branch-rules endpoint still returns organization rules for pull requests, code-owner/last-push review, thread resolution, linear history, non-fast-forward protection, deletion, and Copilot review-on-push. It exposes norequired_status_checksrule in this read. This does not convert incomplete CI or a missing fresh review into acceptance.One fresh native review request and current threads
The one explicit native Copilot request starts at
2026-11-11T14:57:49.3577923Zand returns success at14:57:51.4546791Z. GitHub timeline event 35811024275, at14:57:52Z, recordsreview_requestedfor Copilot byMariusStorhaug. The head at request is896b048fcd7624abd00dddaf6d0f55424ab399d6. No second same-head round is requested.Participants and
author_associationare read before feedback. The existing native reviewer is Copilot /copilot-pull-request-reviewer[bot], associationCONTRIBUTOR; the existing summary-comment bot isgithub-actions[bot], associationNONE. Feedback remains untrusted regardless of association.The initial bounded review read at
14:59:26Zcontains no new review submitted after the request. Review 5769820091 hassubmitted_at = 2026-11-04T14:16:31Zand stateDISMISSED, despite its APIcommit_idbeing rebound to the new head. It is explicitly excluded from fresh acceptance. Its old approval text is not a new verdict.The fresh native review 5860771218 is APPROVED, submitted and updated at
2026-11-11T15:00:10Z, on exact commit896b048fcd7624abd00dddaf6d0f55424ab399d6. REST and GraphQL both confirm its new ID, timestamp, head, authorcopilot-pull-request-reviewer[bot]/copilot-pull-request-reviewer, andCONTRIBUTORassociation. It states that no active review issues remain. This is the one fresh round; no redundant round follows it.The fully paginated native review-thread query succeeds with
hasNextPage = falseand zero threads. There is no introduced writing defect to fix or thread to reply to/resolve in this snapshot. No protected runtime, caller, output, consent, fingerprint, TestData, native-accuracy or proposal decision is reopened.The fully paginated handoff thread read at
15:00:40Z, after that review's submission, still contains zero threads. GitHub reportsMERGEABLE,mergeStateStatus = UNSTABLE, andreviewDecision = APPROVED. There is no source conflict. Completion of the two running self-test CI runs remains an external gate; this preparation does not treat the incomplete checks as success or authorize merge.Unchanged lifecycle and handoff boundary
Read-only Agent merge status confirms enabled maintenance actions
address_reviews,fix_ciandresolve_conflicts, withmerge_pr = false. The PR is non-draft and GitHubauto_merge = null. No readiness, Agent merge, scheduling, release-label, branch-policy or lifecycle setting changes.No merge, merge request, auto-merge, queue operation, publication, new issue, new PR, new session or owner/proposal-branch amendment occurs. Root alone decides later merge and completion. No watcher, sleep or indefinite hosted wait is started.
Remaining blocker at this bounded snapshot: the two native self-test CI runs have not completed; six exact-head checks are still in progress. The one fresh exact-head native review is approved and there are no unresolved threads. No checked-and-failing edit-caused job or concrete introduced prose defect is observed. Existing protected decisions remain unchanged.
MariusStorhaug commentedon Nov 11, 2026
Parent final preparation read-back (2026-11-11), for PR #582 only:
The earlier bounded report that Default and WithManifest were still running is now superseded by completed native evidence. All six actual
pull_requestruns succeed on exact head896b048fcd7624abd00dddaf6d0f55424ab399d6, PR #582, and base64ffb1d87f86bd5d487891fdb140b78385a00531:Actual native jobs verify Plan, module build, Linux/macOS/Windows module-local tests, test-result/coverage collection, and root index verification succeed. Existing settings skip Default Lint-Repository and WithManifest Test-SourceCode/Lint-SourceCode. Fixture Publish-Module/Publish-Site and Docs Publish are expected PR-event skips; Docs Update index also skips. No publication or new release/version condition is claimed.
Fresh review
5860771218, submitted2026-11-11T15:00:10Zbycopilot-pull-request-reviewer[bot](CONTRIBUTOR), approves the exact head. Complete native thread pagination returns zero threads. Parent live aggregate is OPEN/non-draft, APPROVED, CLEAN, auto-merge null. Read-only Agent merge remains enabled for maintenance withmerge_pr=false.The sole immediate parent is
09d209ee07418174c6835cb64b6977c2740ad962; parent and head share full tree8938314d16ecd805b595a0729b1f1c91ae77e0b2. Exactly one normal empty trigger has zero source/file delta. No source/tooling/configuration/policy/protected-source change, new trigger or review round, lifecycle change, or merge occurred.Preparation is complete. Root alone rechecks its current merge-turn head/base and owns the global merge and applicable publication/completion sequence. Passing CI is not proof of full STE conformance.
MariusStorhaug commentedon Nov 11, 2026
Campaign merge hold (2026-11-11): actual PR CI and fresh review have been restored, but the effective Process-PSModule main ruleset does not require status checks. The fixed MSX standard requires that enforcement; no live owner exception or ruleset-change approval has been received. This writing merge remains held without changing its source, lifecycle settings or protections. Shared native evidence and the exact owner decision needed are recorded at #559 (comment) . Preparation is not merge or publication completion.
Reserved interface descriptions state their contracts directly (#582)
MariusStorhaug commentedon Nov 11, 2026
Final source integration and publication are verified, but this leaf is NOT complete while actual fixture gates remain pending.
PR #582 is merged at exact guarded squash
2471b535b3827de0271ed7e93d49427c17e452fcfrom accepted head896b048fcd7624abd00dddaf6d0f55424ab399d6. All 18 owned blobs/only-owned delta match. Final main/tree071891d4eca90fc0247c499008d79b7a2f2dac5dcontains all 105 accepted unique blobs and all ten real squash commits; all ten remote branches are cleaned up. Actual stable v8.0.10 release442025746points exactly to M. Actual Docs push43071789759and Pages deployment7717466091succeed at M; actual served consent retains the protected statement and removes the old appeal, without a runtime-cookie claim.Actual main-push WithManifest
43071790538attempt 1 fails macOS Environment130702034742: unchanged prescript Install-PSResource PSCustomObject receives PowerShell Gallery HTTP502 at 17:51:10Z BEFORE Pester. Result aggregation130702842661correctly fails for the missing environment report; the other 217 passed/4 skipped tests are not a substitute. ONE native same-push/exact-M failed-job retry is in progress with the original attempt preserved. No source, dependency, toolchain, workflow, authentication, settings or tests are changed, and there is no retry-until-green loop. Main-push Default43071790713is also still pending. Native closed routes, actual Release and main CodeQL succeed.The leaf remains OPEN until all applicable actual outcomes are verified. No final completion or slot-return claim is made yet.
MariusStorhaug commentedon Nov 11, 2026
Completion verified — final Process PR #582
#582 integrates accepted C
896b048fcd7624abd00dddaf6d0f55424ab399d6(tree8938314d16ecd805b595a0729b1f1c91ae77e0b2) through ordinary exact-head-guarded squash M2471b535b3827de0271ed7e93d49427c17e452fc, parent4ea45ecebafe6d5998f50d0e0261623159cd31c1. Exactly the 18 accepted description/schema/TOML blobs and only their owned delta match; the remote branch is deleted. Fresh actual approval5860771218, every actual PR check, complete empty thread pagination and native prerequisites were rechecked at the merge turn. No admin bypass, force, source refresh or control/settings change occurred.All SIX applicable native outcome runs are now complete SUCCESS:
43071790713, attempt 1: 28 successful jobs, two existing skips (Lint-Repository, Publish-Site); actual tests, results130706733055, coverage130706733268, WhatIf module stage and root-index verification succeed.43071790538, attempt 2: 20 successful jobs, four existing skips (Lint-SourceCode, Test-SourceCode, Lint-Repository, Publish-Site). The original attempt 1 macOS Environment130702034742fails before Pester on PowerShell Gallery PSCustomObject HTTP502 at 17:51:10Z; result aggregator130702842661correctly fails for the missing report. ONE same-push/exact-M failed-job retry succeeds with actual macOS Environment130705178581and results130705727675. Both attempts remain evidence, without source/toolchain/dependency/authentication changes or a retry-until-green loop.43071792150: Plan130701346953and WhatIf module/cleanup130702162484succeed; 14 inapplicable closed-event phases skip.43071792300: Plan130701349632succeeds; 15 phases skip under existing closed-event/AutoCleanup=false settings.43071791925/ job130701345375succeeds.43071789361/ Analyze130701345228succeeds.Push/scan runs use exact M. Closed runs retain accepted C and empty REST pull_requests lists; actual Plan git-log checkout M plus the native PR #582/merge_commit_sha M payload bind the closure route. No nonempty association is fabricated. Existing fixture WhatIf and Publish.Site.Skip outcomes are NOT Gallery publication.
The existing producer actually creates stable https://github.com/PSModule/Process-PSModule/releases/tag/v8.0.10, release
442025746, at 2026-11-11T17:49:27Z. The native version ref is a direct commit to exact M. No version, label, moving alias or template change is selected manually, and target_commitish=main is not used as provenance.Actual main-push Docs https://github.com/PSModule/Process-PSModule/actions/runs/43071789759 succeeds: Build
130701376316, Publish130703443557, non-PR Lint expected skip. Artifact13879111027, digestsha256:806786ac6c32892e5a0252135690c55f986e054f87fca9d1e73d8e8f89d55c5f, is bound to the run/M. Actual deploy payload binds artifact_id/source; Pages deployment7717466091is SUCCESS at 2026-11-11T17:53:14Z with that run/job/source.Meaningful served-content proof at https://psmodule.io/Process-PSModule/: before publication the consent paragraph contains the old With-your-consent/help-improve appeal; after publication the full protected declarative statement and its find-what-they-are-searching-for ending remain, while that exact appeal is absent. Accept/reject controls remain. This proves changed served copy, NOT actual cookie or measurement behavior; the pre-existing unverified policy statement is not expanded or newly asserted as enforced.
Final convergence verifies ALL 105 unique accepted blobs from all ten writing PRs in M, tree
071891d4eca90fc0247c499008d79b7a2f2dac5d, with no ownership overlap/overwrite. The ten actual squash commits form the linear main history; accepted C ancestry is not assumed across squash. All ten remote branch cleanups are verified. No generated main descendant, package/consumer rollout, new source, rule, setting, permission, review round, issue/session/tooling or scheduler is invented.This leaf stayed OPEN while every applicable outcome above was pending. All are now verified; close as completed and return the exclusive global slot immediately. CI does not establish full STE conformance. The earlier owning-leaf pending receipt preserves the real external failure rather than treating it as success.